├── CMakeLists.txt ├── README.md ├── cmake ├── FindEigen3.cmake └── LibFindMacros.cmake ├── examples ├── input │ ├── 0.off │ ├── 1.off │ ├── 10.off │ ├── 2.off │ ├── 3.off │ ├── 4.off │ ├── 5.off │ ├── 6.off │ ├── 7.off │ ├── 8.off │ └── 9.off ├── off_to_obj.py ├── reference_off │ ├── 0.off │ ├── 1.off │ ├── 10.off │ ├── 2.off │ ├── 3.off │ ├── 4.off │ ├── 5.off │ ├── 6.off │ ├── 7.off │ ├── 8.off │ └── 9.off ├── reference_txt │ ├── 0.txt │ ├── 1.txt │ ├── 10.txt │ ├── 2.txt │ ├── 3.txt │ ├── 4.txt │ ├── 5.txt │ ├── 6.txt │ ├── 7.txt │ ├── 8.txt │ └── 9.txt ├── txt_to_ply.py └── write_txt.py ├── main.cpp └── triangle_point ├── README.md ├── poitri.h ├── util.h └── vec.h /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project(mesh_evaluation) 3 | 4 | set(CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS} -O3 -g") 5 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) 6 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 7 | 8 | find_package(Boost COMPONENTS system filesystem program_options REQUIRED) 9 | find_package(Eigen3 REQUIRED) 10 | 11 | find_package(OpenMP) 12 | if (OPENMP_FOUND) 13 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") 14 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") 15 | endif() 16 | 17 | include_directories(${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR}) 18 | add_executable(evaluate main.cpp) 19 | target_link_libraries(evaluate ${Boost_LIBRARIES}) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Mesh Evaluation 2 | 3 | This is a parallel C++ implementation for efficiently computing distances 4 | (in particular, accuracy and completeness) between meshes or between 5 | point clouds and meshes. 6 | 7 | If you use this tool, please cite the following papers: 8 | 9 | @inproceedings{Stutz2018CVPR, 10 | title = {Learning 3D Shape Completion from Laser Scan Data with Weak Supervision }, 11 | author = {Stutz, David and Geiger, Andreas}, 12 | booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, 13 | publisher = {IEEE Computer Society}, 14 | year = {2018} 15 | } 16 | @misc{Stutz2017, 17 | author = {David Stutz}, 18 | title = {Learning Shape Completion from Bounding Boxes with CAD Shape Priors}, 19 | month = {September}, 20 | year = {2017}, 21 | institution = {RWTH Aachen University}, 22 | address = {Aachen, Germany}, 23 | howpublished = {http://davidstutz.de/}, 24 | } 25 | 26 | ## Overview 27 | 28 | The implementation allows to compute mesh-to-mesh distance as well as 29 | points-to-mesh distance. The main use case is evaluating 3D (surface) reconstruction 30 | or shape completion algorithms that generate a mesh as output which is then 31 | evaluated against a mesh or point cloud ground truth. The implementation 32 | follows the idea of Jensen et al. [1] and computes accuracy and completeness. 33 | Accuracy is the distance of the reconstruction (i.e. the input) to the 34 | ground truth (i.e. the reference); completeness is the distance from 35 | ground truth to reconstruction. When input and reference are meshes, both 36 | accuracy and completeness is computed, when the reference is a point cloud, 37 | only completeness is computed. 38 | 39 | [1] Rasmus Ramsbøl Jensen, Anders Lindbjerg Dahl, George Vogiatzis, Engil Tola, Henrik Aanæs: 40 | Large Scale Multi-view Stereopsis Evaluation. CVPR 2014: 406-413 41 | 42 | To compute mesh-to-mesh distance, the implementation first samples a fixed 43 | number (e.g. 10k) points on the input mesh, and then computes the distance 44 | of these points to the closest face of the reference mesh. For this, the 45 | triangle-point distance from [christopherbatty/SDFGen](https://github.com/christopherbatty/SDFGen) 46 | is used. For sampling points, we first compute the (relative) area of each 47 | face and sample points on each face proportional to its area. This ensures 48 | uniform sampling from the input mesh. 49 | 50 | Meshes are assumed to be available in [OFF](http://segeval.cs.princeton.edu/public/off_format.html) 51 | format; point clouds are assumed to be in a simple TXT format as described below. 52 | Utilities to read and convert to/from these formats are also provided. 53 | 54 | ## Installation 55 | 56 | Requirements for C++ tool: 57 | 58 | * CMake; 59 | * Boost; 60 | * Eigen; 61 | * OpenMP; 62 | * C++11. 63 | 64 | Requirements for Python tools: 65 | 66 | * Numpy. 67 | 68 | On Ubuntu and related Linux distributions, these requirements can be installed 69 | as follows: 70 | 71 | sudo apt-get install build-essential cmake libboost-all-dev libeigen3-dev 72 | 73 | For using the Python tools, also make sure to install numpy, h5py and skimage (or PyMCubes): 74 | 75 | pip install numpy 76 | 77 | To build, **first adapt `cmake/FindEigen3.cmake` to include the correct path 78 | to Eigen3's include directory and remove `NO_CMAKE_SYSTEM_PATH` if necessary**, and run: 79 | 80 | mkdir build 81 | cd build 82 | cmake .. 83 | make 84 | 85 | To test the installation you can run (form within the `build` directory): 86 | 87 | ../bin/evaluate ../examples/input/ ../examples/reference_off/ ../examples/output.txt 88 | ../bin/evaluate ../examples/input/ ../examples/reference_txt/ ../examples/output.txt 89 | 90 | Now install [MeshLab](http://www.meshlab.net/) to visualize the OFF files 91 | in `examples/input` and `examples/reference_off` for comparison. For visualizing 92 | the point clouds in `examples/reference_ply`, use (from within `build`): 93 | 94 | ../examples/txt_to_ply.py ../examples/reference_txt/ ../examples/reference_ply 95 | 96 | and then open the `.ply` files using MeshLab. 97 | 98 | ## Usage 99 | 100 | Using the `--help` option will give a detailed summary of available options: 101 | 102 | $ ../bin/evaluate --help 103 | Allowed options: 104 | --help produce help message 105 | --input arg input, either single OFF file or directory containing 106 | OFF files where the names correspond to integers 107 | (zero padding allowed) and are consecutively numbered 108 | starting with zero 109 | --reference arg reference, either single OFF or TXT file or directory 110 | containing OFF or TXT files where the names 111 | correspond to integers (zero padding allowed) and are 112 | consecutively numbered starting with zero (the file 113 | names need to correspond to those found in the input 114 | directory); for TXT files, accuracy cannot be 115 | computed 116 | --output arg output file, a TXT file containing accuracy and 117 | completeness for each input-reference pair as well as 118 | overall averages 119 | --n_points arg (=10000) number points to sample from meshes in order to 120 | compute distances 121 | 122 | The tool is able to evaluate single input-reference pairs where the reference 123 | is either an OFF file or a TXT file and the input has to be an OFF file. 124 | Alternatively, the tool can evaluate multiple input-reference pairs. Then, 125 | the input meshes need to be stored in a directory and named according to 126 | consecutive integers (see e.g. `examples/input`). The reference files 127 | should follow the same convention. 128 | 129 | Using `--n_points` the number of samples points to compute mesh-to-mesh distances 130 | can be controlled. Less points will reduce runtime but also make the distance less 131 | reliable; this means that the random sampling has more influence. 132 | 133 | The output file is a TXT file storing accuracy/completeness for each input-reference 134 | pair as well as overall averages as follows: 135 | 136 | 0 0.824145 0.832041 # 1st input-reference pair 137 | 1 0.747299 0.702853 # 2nd input-reference pair 138 | # ... 139 | 10 1.46198 1.36116 # 10th input-reference pair 140 | 0.868443 0.89825 # averages for accuracy and completeness 141 | 142 | ## License 143 | 144 | License for source code corresponding to: 145 | 146 | D. Stutz, A. Geiger. **Learning 3D Shape Completion from Laser Scan Data with Weak Supervision.** IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018. 147 | 148 | Note that the source code is based on the following projects for which separate licenses apply: 149 | 150 | * `triangle_point/README.md` 151 | * [Tronic/cmake-modules](https://github.com/Tronic/cmake-modules) 152 | 153 | Copyright (c) 2018 David Stutz, Max-Planck-Gesellschaft 154 | 155 | **Please read carefully the following terms and conditions and any accompanying documentation before you download and/or use this software and associated documentation files (the "Software").** 156 | 157 | The authors hereby grant you a non-exclusive, non-transferable, free of charge right to copy, modify, merge, publish, distribute, and sublicense the Software for the sole purpose of performing non-commercial scientific research, non-commercial education, or non-commercial artistic projects. 158 | 159 | Any other use, in particular any use for commercial purposes, is prohibited. This includes, without limitation, incorporation in a commercial product, use in a commercial service, or production of other artefacts for commercial purposes. 160 | 161 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 162 | 163 | You understand and agree that the authors are under no obligation to provide either maintenance services, update services, notices of latent defects, or corrections of defects with regard to the Software. The authors nevertheless reserve the right to update, modify, or discontinue the Software at any time. 164 | 165 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. You agree to cite the corresponding papers (see above) in documents and papers that report on research using the Software. 166 | -------------------------------------------------------------------------------- /cmake/FindEigen3.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find EIGEN3 2 | # Once done, this will define 3 | # 4 | # EIGEN3_FOUND - system has EIGEN3 5 | # EIGEN3_INCLUDE_DIRS - the EIGEN3 include directories 6 | # EIGEN3_LIBRARIES - link these to use EIGEN3 7 | 8 | include(LibFindMacros) 9 | 10 | # Include dir 11 | find_path(EIGEN3_INCLUDE_DIR 12 | NAMES signature_of_eigen3_matrix_library 13 | PATHS 14 | /usr/local/include 15 | PATH_SUFFIXES eigen3 16 | NO_CMAKE_SYSTEM_PATH 17 | ) 18 | 19 | # Set the include dir variables and the libraries and let libfind_process do the rest. 20 | # NOTE: Singular variables for this library, plural for libraries this lib depends on. 21 | set(EIGEN3_PROCESS_INCLUDES EIGEN3_INCLUDE_DIR) 22 | libfind_process(EIGEN3) 23 | -------------------------------------------------------------------------------- /cmake/LibFindMacros.cmake: -------------------------------------------------------------------------------- 1 | 2 | # Version 2.2 3 | # Public Domain, originally written by Lasse Kärkkäinen 4 | # Maintained at https://github.com/Tronic/cmake-modules 5 | # Please send your improvements as pull requests on Github. 6 | 7 | # Find another package and make it a dependency of the current package. 8 | # This also automatically forwards the "REQUIRED" argument. 9 | # Usage: libfind_package( [extra args to find_package]) 10 | macro (libfind_package PREFIX PKG) 11 | set(${PREFIX}_args ${PKG} ${ARGN}) 12 | if (${PREFIX}_FIND_REQUIRED) 13 | set(${PREFIX}_args ${${PREFIX}_args} REQUIRED) 14 | endif() 15 | find_package(${${PREFIX}_args}) 16 | set(${PREFIX}_DEPENDENCIES ${${PREFIX}_DEPENDENCIES};${PKG}) 17 | unset(${PREFIX}_args) 18 | endmacro() 19 | 20 | # A simple wrapper to make pkg-config searches a bit easier. 21 | # Works the same as CMake's internal pkg_check_modules but is always quiet. 22 | macro (libfind_pkg_check_modules) 23 | find_package(PkgConfig QUIET) 24 | if (PKG_CONFIG_FOUND) 25 | pkg_check_modules(${ARGN} QUIET) 26 | endif() 27 | endmacro() 28 | 29 | # Avoid useless copy&pasta by doing what most simple libraries do anyway: 30 | # pkg-config, find headers, find library. 31 | # Usage: libfind_pkg_detect( FIND_PATH [other args] FIND_LIBRARY [other args]) 32 | # E.g. libfind_pkg_detect(SDL2 sdl2 FIND_PATH SDL.h PATH_SUFFIXES SDL2 FIND_LIBRARY SDL2) 33 | function (libfind_pkg_detect PREFIX) 34 | # Parse arguments 35 | set(argname pkgargs) 36 | foreach (i ${ARGN}) 37 | if ("${i}" STREQUAL "FIND_PATH") 38 | set(argname pathargs) 39 | elseif ("${i}" STREQUAL "FIND_LIBRARY") 40 | set(argname libraryargs) 41 | else() 42 | set(${argname} ${${argname}} ${i}) 43 | endif() 44 | endforeach() 45 | if (NOT pkgargs) 46 | message(FATAL_ERROR "libfind_pkg_detect requires at least a pkg_config package name to be passed.") 47 | endif() 48 | # Find library 49 | libfind_pkg_check_modules(${PREFIX}_PKGCONF ${pkgargs}) 50 | if (pathargs) 51 | find_path(${PREFIX}_INCLUDE_DIR NAMES ${pathargs} HINTS ${${PREFIX}_PKGCONF_INCLUDE_DIRS}) 52 | endif() 53 | if (libraryargs) 54 | find_library(${PREFIX}_LIBRARY NAMES ${libraryargs} HINTS ${${PREFIX}_PKGCONF_LIBRARY_DIRS}) 55 | endif() 56 | endfunction() 57 | 58 | # Extracts a version #define from a version.h file, output stored to _VERSION. 59 | # Usage: libfind_version_header(Foobar foobar/version.h FOOBAR_VERSION_STR) 60 | # Fourth argument "QUIET" may be used for silently testing different define names. 61 | # This function does nothing if the version variable is already defined. 62 | function (libfind_version_header PREFIX VERSION_H DEFINE_NAME) 63 | # Skip processing if we already have a version or if the include dir was not found 64 | if (${PREFIX}_VERSION OR NOT ${PREFIX}_INCLUDE_DIR) 65 | return() 66 | endif() 67 | set(quiet ${${PREFIX}_FIND_QUIETLY}) 68 | # Process optional arguments 69 | foreach(arg ${ARGN}) 70 | if (arg STREQUAL "QUIET") 71 | set(quiet TRUE) 72 | else() 73 | message(AUTHOR_WARNING "Unknown argument ${arg} to libfind_version_header ignored.") 74 | endif() 75 | endforeach() 76 | # Read the header and parse for version number 77 | set(filename "${${PREFIX}_INCLUDE_DIR}/${VERSION_H}") 78 | if (NOT EXISTS ${filename}) 79 | if (NOT quiet) 80 | message(AUTHOR_WARNING "Unable to find ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}") 81 | endif() 82 | return() 83 | endif() 84 | file(READ "${filename}" header) 85 | string(REGEX REPLACE ".*#[ \t]*define[ \t]*${DEFINE_NAME}[ \t]*\"([^\n]*)\".*" "\\1" match "${header}") 86 | # No regex match? 87 | if (match STREQUAL header) 88 | if (NOT quiet) 89 | message(AUTHOR_WARNING "Unable to find \#define ${DEFINE_NAME} \"\" from ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}") 90 | endif() 91 | return() 92 | endif() 93 | # Export the version string 94 | set(${PREFIX}_VERSION "${match}" PARENT_SCOPE) 95 | endfunction() 96 | 97 | # Do the final processing once the paths have been detected. 98 | # If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain 99 | # all the variables, each of which contain one include directory. 100 | # Ditto for ${PREFIX}_PROCESS_LIBS and library files. 101 | # Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES. 102 | # Also handles errors in case library detection was required, etc. 103 | function (libfind_process PREFIX) 104 | # Skip processing if already processed during this configuration run 105 | if (${PREFIX}_FOUND) 106 | return() 107 | endif() 108 | 109 | set(found TRUE) # Start with the assumption that the package was found 110 | 111 | # Did we find any files? Did we miss includes? These are for formatting better error messages. 112 | set(some_files FALSE) 113 | set(missing_headers FALSE) 114 | 115 | # Shorthands for some variables that we need often 116 | set(quiet ${${PREFIX}_FIND_QUIETLY}) 117 | set(required ${${PREFIX}_FIND_REQUIRED}) 118 | set(exactver ${${PREFIX}_FIND_VERSION_EXACT}) 119 | set(findver "${${PREFIX}_FIND_VERSION}") 120 | set(version "${${PREFIX}_VERSION}") 121 | 122 | # Lists of config option names (all, includes, libs) 123 | unset(configopts) 124 | set(includeopts ${${PREFIX}_PROCESS_INCLUDES}) 125 | set(libraryopts ${${PREFIX}_PROCESS_LIBS}) 126 | 127 | # Process deps to add to 128 | foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES}) 129 | if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS) 130 | # The package seems to export option lists that we can use, woohoo! 131 | list(APPEND includeopts ${${i}_INCLUDE_OPTS}) 132 | list(APPEND libraryopts ${${i}_LIBRARY_OPTS}) 133 | else() 134 | # If plural forms don't exist or they equal singular forms 135 | if ((NOT DEFINED ${i}_INCLUDE_DIRS AND NOT DEFINED ${i}_LIBRARIES) OR 136 | ({i}_INCLUDE_DIR STREQUAL ${i}_INCLUDE_DIRS AND ${i}_LIBRARY STREQUAL ${i}_LIBRARIES)) 137 | # Singular forms can be used 138 | if (DEFINED ${i}_INCLUDE_DIR) 139 | list(APPEND includeopts ${i}_INCLUDE_DIR) 140 | endif() 141 | if (DEFINED ${i}_LIBRARY) 142 | list(APPEND libraryopts ${i}_LIBRARY) 143 | endif() 144 | else() 145 | # Oh no, we don't know the option names 146 | message(FATAL_ERROR "We couldn't determine config variable names for ${i} includes and libs. Aieeh!") 147 | endif() 148 | endif() 149 | endforeach() 150 | 151 | if (includeopts) 152 | list(REMOVE_DUPLICATES includeopts) 153 | endif() 154 | 155 | if (libraryopts) 156 | list(REMOVE_DUPLICATES libraryopts) 157 | endif() 158 | 159 | string(REGEX REPLACE ".*[ ;]([^ ;]*(_INCLUDE_DIRS|_LIBRARIES))" "\\1" tmp "${includeopts} ${libraryopts}") 160 | if (NOT tmp STREQUAL "${includeopts} ${libraryopts}") 161 | message(AUTHOR_WARNING "Plural form ${tmp} found in config options of ${PREFIX}. This works as before but is now deprecated. Please only use singular forms INCLUDE_DIR and LIBRARY, and update your find scripts for LibFindMacros > 2.0 automatic dependency system (most often you can simply remove the PROCESS variables entirely).") 162 | endif() 163 | 164 | # Include/library names separated by spaces (notice: not CMake lists) 165 | unset(includes) 166 | unset(libs) 167 | 168 | # Process all includes and set found false if any are missing 169 | foreach (i ${includeopts}) 170 | list(APPEND configopts ${i}) 171 | if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND") 172 | list(APPEND includes "${${i}}") 173 | else() 174 | set(found FALSE) 175 | set(missing_headers TRUE) 176 | endif() 177 | endforeach() 178 | 179 | # Process all libraries and set found false if any are missing 180 | foreach (i ${libraryopts}) 181 | list(APPEND configopts ${i}) 182 | if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND") 183 | list(APPEND libs "${${i}}") 184 | else() 185 | set (found FALSE) 186 | endif() 187 | endforeach() 188 | 189 | # Version checks 190 | if (found AND findver) 191 | if (NOT version) 192 | message(WARNING "The find module for ${PREFIX} does not provide version information, so we'll just assume that it is OK. Please fix the module or remove package version requirements to get rid of this warning.") 193 | elseif (version VERSION_LESS findver OR (exactver AND NOT version VERSION_EQUAL findver)) 194 | set(found FALSE) 195 | set(version_unsuitable TRUE) 196 | endif() 197 | endif() 198 | 199 | # If all-OK, hide all config options, export variables, print status and exit 200 | if (found) 201 | foreach (i ${configopts}) 202 | mark_as_advanced(${i}) 203 | endforeach() 204 | if (NOT quiet) 205 | message(STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}") 206 | if (LIBFIND_DEBUG) 207 | message(STATUS " ${PREFIX}_DEPENDENCIES=${${PREFIX}_DEPENDENCIES}") 208 | message(STATUS " ${PREFIX}_INCLUDE_OPTS=${includeopts}") 209 | message(STATUS " ${PREFIX}_INCLUDE_DIRS=${includes}") 210 | message(STATUS " ${PREFIX}_LIBRARY_OPTS=${libraryopts}") 211 | message(STATUS " ${PREFIX}_LIBRARIES=${libs}") 212 | endif() 213 | set (${PREFIX}_INCLUDE_OPTS ${includeopts} PARENT_SCOPE) 214 | set (${PREFIX}_LIBRARY_OPTS ${libraryopts} PARENT_SCOPE) 215 | set (${PREFIX}_INCLUDE_DIRS ${includes} PARENT_SCOPE) 216 | set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE) 217 | set (${PREFIX}_FOUND TRUE PARENT_SCOPE) 218 | endif() 219 | return() 220 | endif() 221 | 222 | # Format messages for debug info and the type of error 223 | set(vars "Relevant CMake configuration variables:\n") 224 | foreach (i ${configopts}) 225 | mark_as_advanced(CLEAR ${i}) 226 | set(val ${${i}}) 227 | if ("${val}" STREQUAL "${i}-NOTFOUND") 228 | set (val "") 229 | elseif (val AND NOT EXISTS ${val}) 230 | set (val "${val} (does not exist)") 231 | else() 232 | set(some_files TRUE) 233 | endif() 234 | set(vars "${vars} ${i}=${val}\n") 235 | endforeach() 236 | set(vars "${vars}You may use CMake GUI, cmake -D or ccmake to modify the values. Delete CMakeCache.txt to discard all values and force full re-detection if necessary.\n") 237 | if (version_unsuitable) 238 | set(msg "${PREFIX} ${${PREFIX}_VERSION} was found but") 239 | if (exactver) 240 | set(msg "${msg} only version ${findver} is acceptable.") 241 | else() 242 | set(msg "${msg} version ${findver} is the minimum requirement.") 243 | endif() 244 | else() 245 | if (missing_headers) 246 | set(msg "We could not find development headers for ${PREFIX}. Do you have the necessary dev package installed?") 247 | elseif (some_files) 248 | set(msg "We only found some files of ${PREFIX}, not all of them. Perhaps your installation is incomplete or maybe we just didn't look in the right place?") 249 | if(findver) 250 | set(msg "${msg} This could also be caused by incompatible version (if it helps, at least ${PREFIX} ${findver} should work).") 251 | endif() 252 | else() 253 | set(msg "We were unable to find package ${PREFIX}.") 254 | endif() 255 | endif() 256 | 257 | # Fatal error out if REQUIRED 258 | if (required) 259 | set(msg "REQUIRED PACKAGE NOT FOUND\n${msg} This package is REQUIRED and you need to install it or adjust CMake configuration in order to continue building ${CMAKE_PROJECT_NAME}.") 260 | message(FATAL_ERROR "${msg}\n${vars}") 261 | endif() 262 | # Otherwise just print a nasty warning 263 | if (NOT quiet) 264 | message(WARNING "WARNING: MISSING PACKAGE\n${msg} This package is NOT REQUIRED and you may ignore this warning but by doing so you may miss some functionality of ${CMAKE_PROJECT_NAME}. \n${vars}") 265 | endif() 266 | endfunction() 267 | 268 | -------------------------------------------------------------------------------- /examples/off_to_obj.py: -------------------------------------------------------------------------------- 1 | import os 2 | import argparse 3 | 4 | def read_off(file): 5 | """ 6 | Reads vertices and faces from an off file. 7 | 8 | :param file: path to file to read 9 | :type file: str 10 | :return: vertices and faces as lists of tuples 11 | :rtype: [(float)], [(int)] 12 | """ 13 | 14 | assert os.path.exists(file), 'file %s not found' % file 15 | 16 | with open(file, 'r') as fp: 17 | lines = fp.readlines() 18 | lines = [line.strip() for line in lines] 19 | 20 | assert lines[0] == 'OFF' or lines[0] == 'off', 'invalid OFF file %s' % file 21 | 22 | parts = lines[1].split(' ') 23 | assert len(parts) == 3 24 | 25 | num_vertices = int(parts[0]) 26 | assert num_vertices > 0 27 | 28 | num_faces = int(parts[1]) 29 | assert num_faces > 0 30 | 31 | vertices = [] 32 | for i in range(num_vertices): 33 | vertex = lines[2 + i].split(' ') 34 | vertex = [float(point) for point in vertex] 35 | assert len(vertex) == 3 36 | 37 | vertices.append(vertex) 38 | 39 | faces = [] 40 | for i in range(num_faces): 41 | face = lines[2 + num_vertices + i].split(' ') 42 | face = [index.strip() for index in face] 43 | 44 | # check to be sure 45 | for index in face: 46 | assert index != '', 'found empty vertex index: %s (%s)' % (lines[2 + num_vertices + i], file) 47 | 48 | face = [int(index) for index in face] 49 | 50 | assert face[0] == len(face) - 1, 'face should have %d vertices but as %d (%s)' % (face[0], len(face) - 1, file) 51 | assert face[0] == 3, 'only triangular meshes supported (%s)' % file 52 | for index in face: 53 | assert index >= 0 and index < num_vertices, 'vertex %d (of %d vertices) does not exist (%s)' % (index, num_vertices, file) 54 | 55 | faces.append(face[1:]) 56 | 57 | return vertices, faces 58 | 59 | def write_obj(file, vertices, faces): 60 | """ 61 | Writes the given vertices and faces to OBJ. 62 | 63 | :param vertices: vertices as tuples of (x, y, z) coordinates 64 | :type vertices: [(float)] 65 | :param faces: faces as tuples of (num_vertices, vertex_id_1, vertex_id_2, ...) 66 | :type faces: [(int)] 67 | """ 68 | 69 | num_vertices = len(vertices) 70 | num_faces = len(faces) 71 | 72 | assert num_vertices > 0 73 | assert num_faces > 0 74 | 75 | with open(file, 'w') as fp: 76 | for vertex in vertices: 77 | assert len(vertex) == 3, 'invalid vertex with %d dimensions found (%s)' % (len(vertex), file) 78 | fp.write('v' + ' ' + str(vertex[0]) + ' ' + str(vertex[1]) + ' ' + str(vertex[2]) + '\n') 79 | 80 | for face in faces: 81 | assert len(face) == 3, 'only triangular faces supported (%s)' % file 82 | fp.write('f' + ' ' + str(face[0] + 1) + ' ' + str(face[1] + 1) + ' ' + str(face[2] + 1) + '\n') 83 | 84 | # add empty line to be sure 85 | fp.write('\n') 86 | 87 | if __name__ == '__main__': 88 | 89 | parser = argparse.ArgumentParser(description='Process some integers.') 90 | parser.add_argument('input', type=str, help='The input directory containing OFF files.') 91 | parser.add_argument('output', type=str, help='The output directory for OBJ files.') 92 | 93 | args = parser.parse_args() 94 | if not os.path.exists(args.input): 95 | print('Input directory does not exist.') 96 | exit(1) 97 | 98 | if not os.path.exists(args.output): 99 | os.makedirs(args.output) 100 | print('Created output directory.') 101 | else: 102 | print('Output directory exists; potentially overwriting contents.') 103 | 104 | for filename in os.listdir(args.input): 105 | filepath = args.input + '/' + filename 106 | vertices, faces = read_off(filepath) 107 | print('Read %s.' % filepath) 108 | 109 | filepath = args.output + '/' + filename[:-4] + '.obj' 110 | write_obj(filepath, vertices, faces) 111 | print('Wrote %s.' % filepath) 112 | -------------------------------------------------------------------------------- /examples/reference_off/3.off: -------------------------------------------------------------------------------- 1 | OFF 2 | 502 1000 0 3 | 41.1151 5.15461 20.2159 4 | 41.6292 5.41005 20.3904 5 | 41.8374 5.70046 20.5576 6 | 42.5761 6.51778 20.6045 7 | 42.0522 9.17327 20.5399 8 | 41.7486 10.4288 7.11113 9 | 38.5992 9.94876 6.96544 10 | 39.3809 10.4846 7.11711 11 | 39.3655 11.36 7.76158 12 | 36.7625 10.3034 6.93357 13 | 37.3205 11.101 7.39932 14 | 37.188 11.5742 7.99345 15 | 36.4385 11.7307 7.81267 16 | 37.077 11.7748 9.00822 17 | 34.9772 12.7492 8.29688 18 | 34.3902 13.3708 10.6605 19 | 32.0041 14.3894 10.2773 20 | 31.6764 14.5992 12.1261 21 | 30.0744 14.7652 11.7264 22 | 22.0776 4.9637 19.3547 23 | 21.6292 5.09131 19.5627 24 | 20.835 4.65479 19.3193 25 | 20.2256 5.01254 19.5094 26 | 19.837 4.91561 18.9298 27 | 19.1354 5.52475 19.3386 28 | 17.4476 6.47245 18.6677 29 | 18.9561 5.8116 19.4185 30 | 15.3628 6.89183 18.3712 31 | 20.5851 9.61908 19.5569 32 | 24.0571 10.8311 19.6424 33 | 26.8801 10.8662 19.7325 34 | 26.6663 14.5837 16.8883 35 | 27.8562 12.939 18.5014 36 | 26.8732 14.4086 17.4902 37 | 24.8208 14.3009 17.2513 38 | 24.8258 14.0025 17.6309 39 | 26.1715 12.782 18.5569 40 | 23.3701 13.978 17.0999 41 | 23.0967 12.1128 18.7576 42 | 22.052 13.3924 17.3744 43 | 25.3366 11.8977 19.0012 44 | 22.3915 13.0698 17.9576 45 | 21.7826 11.196 19.3193 46 | 21.9185 9.99709 19.6845 47 | 21.5336 11.9047 18.7477 48 | 20.142 10.7881 19.4069 49 | 20.6264 12.8122 17.6036 50 | 19.2748 11.1642 19.1498 51 | 18.1136 10.8169 19.2416 52 | 18.0843 11.9872 16.6656 53 | 16.8312 11.1113 18.8067 54 | 19.1713 12.1455 17.7539 55 | 17.7654 11.788 17.825 56 | 13.8063 10.902 17.2365 57 | 13.8493 11.1449 16.3776 58 | 15.5939 11.6128 16.2119 59 | 14.5121 11.149 18.0145 60 | 14.3438 10.6932 18.1259 61 | 14.784 9.10921 18.5338 62 | 15.2336 7.9191 18.7274 63 | 15.7918 10.4612 18.8659 64 | 16.9659 8.48347 19.1795 65 | 18.0664 7.3894 19.2441 66 | 18.418 9.69163 19.3735 67 | 19.4962 7.52456 19.4499 68 | 20.9665 6.03489 19.4746 69 | 20.675 6.94138 19.5435 70 | 20.5032 8.41135 19.447 71 | 21.922 7.54569 19.5183 72 | 23.3624 7.08195 19.6408 73 | 26.3916 10.1397 19.8664 74 | 23.7574 8.76418 19.8077 75 | 25.6749 8.02962 19.8251 76 | 24.9907 6.56458 19.4987 77 | 27.2535 6.59919 19.6171 78 | 26.2963 6.24358 19.2697 79 | 27.4965 6.34548 19.4291 80 | 29.2194 6.3015 19.3672 81 | 34.1066 7.00651 20.0435 82 | 32.1821 6.821 19.8517 83 | 31.2259 7.78723 20.0515 84 | 30.0143 8.54998 20.0486 85 | 36.641 12.2831 14.2681 86 | 37.7092 11.856 14.5663 87 | 44.5808 7.05164 7.48958 88 | 45.6603 7.08412 7.91617 89 | 44.2348 8.59138 7.32627 90 | 46.1859 9.1633 7.96803 91 | 43.1648 9.94968 7.22339 92 | 44.7288 10.1258 7.79131 93 | 43.7309 10.9342 8.184 94 | 44.6763 10.8377 8.79514 95 | 44.3584 11.0376 10.6252 96 | 39.7574 11.6921 14.5269 97 | 39.9426 11.5213 17.838 98 | 33.231 12.4105 21.0069 99 | 35.1752 11.3407 19.8013 100 | 35.3583 12.204 18.8331 101 | 36.1064 11.5851 19.3975 102 | 35.959 10.8708 19.9585 103 | 37.5132 11.3381 19.6935 104 | 38.5674 11.5798 18.8452 105 | 36.4923 11.8518 18.1834 106 | 37.2698 11.8947 15.9449 107 | 36.4598 12.0339 17.2806 108 | 34.4042 13.2042 16.5626 109 | 33.9591 13.0976 18.5176 110 | 31.116 14.4797 17.2684 111 | 31.9602 14.141 17.7694 112 | 33.7144 12.6019 19.3522 113 | 34.1347 12.1653 19.9011 114 | 32.7185 13.0383 18.8189 115 | 32.0603 12.5214 18.9856 116 | 32.413 12.3742 19.6814 117 | 31.541 11.3526 19.5454 118 | 32.7078 11.7862 20.7661 119 | 31.9267 10.7433 20.012 120 | 33.1773 11.965 21.1357 121 | 33.2212 10.3161 20.1658 122 | 34.3742 11.4196 20.3524 123 | 33.8907 11.5105 20.7353 124 | 34.7549 10.3322 20.2199 125 | 38.5171 6.24087 18.5187 126 | 36.1075 6.38242 16.5786 127 | 36.9352 6.36446 18.1401 128 | 37.2671 6.40185 19.6485 129 | 36.3296 6.62007 20.0109 130 | 35.1813 6.5092 19.9161 131 | 34.0812 6.37654 19.5101 132 | 31.8492 6.31082 19.3552 133 | 32.7246 6.52856 19.794 134 | 30.03 6.27879 16.0161 135 | 30.348 6.27527 19.3366 136 | 30.9348 6.50851 19.7198 137 | 29.1751 6.82017 19.7412 138 | 27.6002 7.63711 19.8568 139 | 29.3229 10.5716 19.9149 140 | 27.6018 11.8366 19.1121 141 | 30.6372 13.1455 18.541 142 | 28.7492 14.5522 17.5145 143 | 29.8013 14.4959 17.6221 144 | 31.1687 14.1968 17.9621 145 | 29.4066 14.7203 15.9697 146 | 31.0114 14.6568 15.2751 147 | 29.7523 14.8132 13.733 148 | 32.3682 14.2038 15.1835 149 | 31.2174 14.6984 13.4132 150 | 34.2246 13.4694 13.9356 151 | 33.0283 14.0144 12.2239 152 | 37.1324 12.0296 11.855 153 | 38.5924 11.791 12.4526 154 | 36.775 12.1418 10.4064 155 | 41.0871 11.5658 12.4755 156 | 37.5183 11.8768 10.3335 157 | 40.7161 11.4944 10.2492 158 | 39.4357 11.5616 8.87618 159 | 41.8391 11.2849 8.49092 160 | 42.0676 10.9738 7.73666 161 | 40.7284 8.78969 7.13711 162 | 41.9187 9.00423 7.15091 163 | 42.7462 7.86075 7.21034 164 | 43.4501 6.93409 7.23882 165 | 42.5028 5.77118 7.19231 166 | 41.2318 5.27013 7.10391 167 | 43.9104 6.56887 7.46463 168 | 44.5775 6.71035 7.9218 169 | 41.7434 5.17423 7.48806 170 | 42.348 5.38312 8.07157 171 | 43.1652 6.05547 7.75716 172 | 42.8724 6.06849 8.934 173 | 41.5964 6.59079 10.0245 174 | 43.3721 6.65821 9.75953 175 | 47.5846 7.23408 10.9319 176 | 47.9148 8.52802 11.6951 177 | 47.7823 7.09331 11.8685 178 | 47.8851 7.06539 12.7325 179 | 47.8584 9.14074 12.166 180 | 47.9198 8.91476 15.2514 181 | 47.1734 10.0836 14.4973 182 | 45.9242 10.6777 14.9383 183 | 44.7973 10.8985 16.8011 184 | 45.3022 10.6808 17.9012 185 | 46.9367 6.77126 17.3371 186 | 46.3085 6.74222 19.4839 187 | 47.3408 7.01807 17.3727 188 | 46.9697 7.1307 18.3076 189 | 46.6294 7.41366 19.2192 190 | 46.6628 8.88503 19.5561 191 | 46.8171 9.41109 19.0399 192 | 47.2871 9.1062 18.2181 193 | 46.8724 10.0743 16.8133 194 | 48.0112 8.70222 13.2254 195 | 47.5123 6.87166 16.8027 196 | 47.5449 7.89012 16.7918 197 | 47.7395 7.23727 14.93 198 | 47.7601 7.67935 13.9638 199 | 47.7243 6.77902 14.3825 200 | 47.3176 6.77673 16.2313 201 | 47.5192 6.78515 14.6184 202 | 47.5757 6.7922 12.2704 203 | 44.2883 6.71652 13.234 204 | 43.7032 6.56096 8.74904 205 | 47.3951 6.76497 10.9878 206 | 45.5084 6.74703 8.08042 207 | 47.2117 6.77502 9.3093 208 | 46.0418 6.76107 8.23132 209 | 46.437 7.03586 8.30961 210 | 47.3619 8.2907 9.18286 211 | 47.4395 7.37949 9.97505 212 | 47.0758 8.90007 8.47869 213 | 47.8368 8.9856 10.9035 214 | 47.5223 9.13417 9.46986 215 | 46.4245 10.0033 8.54996 216 | 46.7364 10.1202 10.056 217 | 47.4017 9.74268 10.9638 218 | 46.4705 10.4454 11.5951 219 | 47.4042 9.87527 12.8773 220 | 43.5132 11.2424 12.0444 221 | 45.4727 10.884 13.184 222 | 44.2285 11.1545 14.7119 223 | 41.8462 11.4824 15.003 224 | 43.8626 11.0673 17.4277 225 | 43.3919 10.6075 20.0244 226 | 42.2213 11.205 18.9095 227 | 41.303 10.7308 20.2726 228 | 40.0471 11.3076 19.6 229 | 38.0993 10.3057 20.3408 230 | 42.3606 10.0133 20.6027 231 | 36.3894 8.58224 20.368 232 | 39.7859 10.3371 20.4675 233 | 40.4664 8.63262 20.4631 234 | 38.3256 7.80029 20.4067 235 | 40.9749 7.74011 20.5298 236 | 40.0947 7.71726 20.4483 237 | 37.4358 6.84531 20.1399 238 | 40.8411 5.50545 20.4981 239 | 39.3834 7.15597 20.2829 240 | 38.2769 6.39453 20.3187 241 | 38.908 6.3847 20.4387 242 | 38.2761 6.24436 19.7097 243 | 39.7468 5.1993 20.3586 244 | 40.8588 5.06049 19.0117 245 | 39.072 5.52133 19.3728 246 | 39.649 5.32503 18.9462 247 | 40.7533 5.61471 18.6862 248 | 39.3268 6.49542 17.7104 249 | 38.1667 6.40842 11.7263 250 | 38.6923 6.42925 9.39405 251 | 15.6 11.6352 12.776 252 | 14.3977 11.3245 10.3441 253 | 15.4277 11.3685 7.49475 254 | 16.1446 11.6573 9.30125 255 | 14.1315 9.0643 7.51029 256 | 14.3308 10.8264 7.67041 257 | 14.3672 11.1893 8.40372 258 | 13.6622 6.96589 8.59426 259 | 13.8679 7.87279 8.16818 260 | 13.8015 8.89164 8.59254 261 | 14.087 10.8243 9.119 262 | 13.5389 7.19673 9.87788 263 | 13.8556 9.96016 10.2322 264 | 13.518 8.89736 10.779 265 | 13.9029 11.0553 12.5484 266 | 13.4559 9.03314 12.2951 267 | 13.6941 10.186 14.0135 268 | 13.5369 8.58294 11.9768 269 | 13.3473 8.63502 13.365 270 | 13.9383 7.14094 12.8797 271 | 17.872 6.41721 9.67152 272 | 16.5341 6.42918 9.15111 273 | 17.1874 6.71093 7.84958 274 | 18.2217 6.38614 8.58515 275 | 18.462 6.32479 6.73747 276 | 24.2563 6.69764 6.39037 277 | 23.5181 6.12754 6.34112 278 | 23.7403 5.99291 6.9557 279 | 23.0781 5.27551 6.54196 280 | 22.8976 5.16838 7.50105 281 | 29.2604 6.27614 7.39088 282 | 29.2549 7.02933 6.67049 283 | 28.5459 6.37696 6.88065 284 | 33.6092 6.32843 7.64365 285 | 31.1195 6.28017 7.36949 286 | 30.2304 6.29156 9.85236 287 | 30.5003 6.27261 12.9826 288 | 20.2132 6.53232 12.3321 289 | 23.5707 6.29972 11.4493 290 | 22.2029 6.38586 13.2491 291 | 21.3003 6.44753 14.7714 292 | 24.2105 6.20685 15.8645 293 | 24.7034 6.19002 13.0778 294 | 23.7723 6.29519 9.1234 295 | 21.7095 6.41074 8.99584 296 | 23.2086 5.99069 8.45578 297 | 23.3889 5.73825 7.82914 298 | 24.625 6.181 7.92266 299 | 25.9904 6.25435 6.80543 300 | 26.905 6.29408 7.03668 301 | 24.5462 6.39741 6.82998 302 | 27.0501 6.61284 6.68262 303 | 25.5886 7.46225 6.39716 304 | 24.1142 8.85463 6.20288 305 | 27.2889 7.93177 6.4176 306 | 19.8334 8.13515 6.08289 307 | 21.2206 13.0172 8.75089 308 | 20.5251 12.5796 8.10031 309 | 21.2106 11.9152 7.13091 310 | 21.1907 11.1367 6.42555 311 | 19.6331 11.0994 6.3575 312 | 24.6199 10.251 6.27232 313 | 22.9157 10.9788 6.37976 314 | 22.5272 10.0331 6.15132 315 | 21.2136 8.11349 6.16949 316 | 20.0452 10.164 6.10566 317 | 22.8676 8.24875 6.26311 318 | 23.504 6.74975 6.25899 319 | 20.8058 7.38731 6.20861 320 | 19.5821 6.47103 6.05902 321 | 22.4515 5.39401 6.2246 322 | 20.6512 5.10056 6.12651 323 | 18.3962 7.14223 6.31235 324 | 19.2611 5.78126 6.36719 325 | 21.7756 4.65859 6.43673 326 | 20.4514 4.86313 6.50803 327 | 20.1573 5.0431 7.61274 328 | 21.2578 4.76424 7.80014 329 | 22.4439 4.98123 7.75122 330 | 19.2489 5.88471 7.7204 331 | 21.9718 5.45937 8.01144 332 | 19.8756 6.58195 9.24652 333 | 20.2419 6.15844 8.56409 334 | 21.0964 5.52603 8.08027 335 | 18.4915 6.65582 10.5843 336 | 18.304 6.67228 11.84 337 | 18.2613 6.67435 13.6112 338 | 15.9024 6.81663 10.8241 339 | 15.0577 6.87658 14.3519 340 | 14.3398 6.80287 14.5845 341 | 14.199 6.8198 13.1137 342 | 14.5719 6.75401 11.5884 343 | 14.0283 7.06715 11.7936 344 | 13.5351 8.0857 10.6792 345 | 14.4128 6.75995 10.2706 346 | 14.0479 7.05075 10.6358 347 | 13.9379 6.55702 9.55925 348 | 14.075 6.57071 8.56775 349 | 14.4408 6.89746 7.84449 350 | 14.9343 6.91276 7.21764 351 | 17.3154 6.60968 6.72414 352 | 14.3959 8.12179 7.00752 353 | 15.931 7.51005 6.59481 354 | 17.4956 6.97802 6.43875 355 | 17.3251 8.17583 6.18467 356 | 15.1566 8.62366 6.5974 357 | 14.7721 9.29985 6.90417 358 | 15.9509 10.5975 6.49207 359 | 15.1123 11.0586 6.89923 360 | 18.045 10.3964 6.15301 361 | 17.7509 10.9926 6.35649 362 | 19.2871 11.6398 7.02417 363 | 17.0812 11.4974 7.21863 364 | 18.3898 11.9091 8.15216 365 | 17.5824 11.9502 10.2185 366 | 17.3615 11.9371 11.3552 367 | 18.8072 12.4413 10.1018 368 | 19.5338 12.5353 9.63833 369 | 18.2882 12.2819 11.4476 370 | 21.2925 13.4725 11.8983 371 | 19.0156 12.5986 12.9141 372 | 21.359 13.518 13.3534 373 | 35.0239 9.09474 6.74938 374 | 33.6022 10.2499 6.71744 375 | 32.5725 10.873 6.77467 376 | 34.1216 11.249 6.28229 377 | 30.8961 10.4941 6.64328 378 | 32.0435 11.5203 7.29338 379 | 30.6365 12.7434 7.87978 380 | 28.8768 13.4444 8.21779 381 | 27.7332 14.2176 8.63977 382 | 26.0727 14.2651 8.61622 383 | 26.9739 14.5383 9.06716 384 | 24.9425 14.2791 8.94968 385 | 23.4851 14.2662 12.1551 386 | 22.9877 13.9202 10.6489 387 | 23.9532 14.1256 9.35757 388 | 23.9076 13.8493 8.4309 389 | 24.8615 12.2975 7.33711 390 | 25.6146 11.1962 6.6468 391 | 26.4693 12.3772 7.42956 392 | 27.1769 10.0564 6.38283 393 | 27.3502 10.9368 6.61487 394 | 29.7453 8.55439 6.5006 395 | 29.2245 10.8025 6.67788 396 | 31.3046 7.71221 6.66462 397 | 29.838 6.45512 6.90002 398 | 31.1471 6.73323 6.86382 399 | 34.6659 7.79222 6.82123 400 | 32.8745 6.52155 7.02138 401 | 36.0874 6.65953 7.17135 402 | 36.1246 6.39093 7.51773 403 | 36.2899 6.37968 10.6801 404 | 40.7282 6.56406 15.5705 405 | 37.1342 6.37705 14.1684 406 | 38.2912 6.42506 16.3127 407 | 25.4303 6.20913 18.9511 408 | 24.2698 6.33118 19.3478 409 | 23.7211 6.16299 18.9986 410 | 24.1326 6.22394 17.8419 411 | 23.1147 6.08017 19.4958 412 | 23.097 5.84081 17.9617 413 | 23.4453 6.29296 17.2218 414 | 22.091 4.89754 18.2089 415 | 22.7296 6.24643 16.947 416 | 21.5976 6.37978 16.3522 417 | 21.5003 5.1636 17.7317 418 | 21.0522 5.73106 17.5267 419 | 21.0409 6.39132 16.7351 420 | 20.2066 5.36299 17.5481 421 | 20.8196 4.69979 17.9541 422 | 19.4933 5.14913 17.9141 423 | 19.9677 6.35841 16.7786 424 | 19.1826 6.58949 16.0334 425 | 17.4374 6.70634 16.8923 426 | 18.2453 6.19199 17.4482 427 | 18.8601 5.90245 17.6821 428 | 17.3342 6.4855 18.3078 429 | 14.847 6.84878 17.7073 430 | 14.0393 6.96454 17.4024 431 | 13.8269 7.80581 17.8507 432 | 13.445 7.93565 15.5336 433 | 13.8244 8.72884 18.0359 434 | 13.4499 8.56262 17.1226 435 | 13.3127 8.6987 14.9277 436 | 13.847 9.81679 17.6176 437 | 13.6747 10.1359 16.2437 438 | 13.7868 10.9491 13.9941 439 | 14.0339 11.2585 13.0361 440 | 13.9589 11.2488 15.748 441 | 14.1569 11.3141 14.2706 442 | 17.5569 12.0009 13.3771 443 | 17.8517 12.0657 15.026 444 | 20.1589 12.9931 15.0808 445 | 21.8649 13.5753 15.451 446 | 24.949 14.58 14.4693 447 | 23.7518 14.3387 14.0501 448 | 25.0801 14.599 11.8806 449 | 27.2076 14.7699 14.4207 450 | 27.8543 14.7848 11.7457 451 | 29.6134 14.6429 9.43078 452 | 28.922 14.5153 8.96673 453 | 30.7095 14.6302 10.0253 454 | 31.0096 14.4058 8.89025 455 | 32.2725 13.791 8.48278 456 | 33.2799 12.9689 8.08304 457 | 32.8844 13.9089 8.82674 458 | 33.2074 12.5693 7.76817 459 | 33.9083 13.3512 8.47946 460 | 33.7122 12.6227 7.33068 461 | 34.1281 12.3648 5.90313 462 | 33.5649 12.2862 6.12807 463 | 32.6013 12.0483 7.26784 464 | 34.0251 11.979 5.69923 465 | 34.5918 12.3343 7.05743 466 | 35.3833 11.8346 7.4444 467 | 35.0134 10.2919 6.79782 468 | 34.7515 11.6337 6.49887 469 | 35.8678 10.8814 7.06572 470 | 36.775 8.69337 6.82581 471 | 38.0538 7.25964 7.0638 472 | 39.2433 7.21016 7.03302 473 | 38.0536 6.61315 7.26171 474 | 39.013 6.17855 7.20189 475 | 40.4896 5.66808 7.1009 476 | 38.0923 6.38548 7.94434 477 | 39.6375 5.57338 7.2528 478 | 40.8332 5.1338 7.3199 479 | 39.2959 5.94875 8.76804 480 | 41.3936 5.07044 8.50927 481 | 40.1686 6.52282 10.231 482 | 39.8903 6.47664 9.60288 483 | 42.239 5.73161 8.97945 484 | 39.9498 5.34454 8.66301 485 | 40.9768 5.94709 9.28734 486 | 39.8351 6.50486 13.2791 487 | 42.0174 6.61721 12.614 488 | 40.7971 6.54511 17.347 489 | 42.5709 6.66936 17.3375 490 | 42.0495 6.59946 17.8231 491 | 41.8865 5.45745 19.1046 492 | 43.4824 6.70443 18.4644 493 | 43.7931 6.70591 20.2297 494 | 42.6119 6.21643 18.7409 495 | 42.736 6.23026 20.0187 496 | 45.5475 6.7404 19.522 497 | 44.4672 6.82394 20.3533 498 | 45.7402 7.14746 19.8937 499 | 43.8641 7.23284 20.4773 500 | 45.6524 9.0506 20.1373 501 | 43.564 8.94917 20.5941 502 | 44.9318 10.1339 19.96 503 | 46.1312 9.93798 19.3982 504 | 43.7664 10.8587 19.4902 505 | 3 3 232 233 506 | 3 501 500 181 507 | 3 227 497 499 508 | 3 15 16 148 509 | 3 497 500 499 510 | 3 227 4 498 511 | 3 17 450 18 512 | 3 188 500 187 513 | 3 21 22 23 514 | 3 24 424 419 515 | 3 24 23 22 516 | 3 3 4 232 517 | 3 496 497 498 518 | 3 38 30 40 519 | 3 495 496 494 520 | 3 37 34 443 521 | 3 492 490 3 522 | 3 490 492 489 523 | 3 35 38 36 524 | 3 493 183 495 525 | 3 489 183 493 526 | 3 490 493 494 527 | 3 37 39 41 528 | 3 3 2 492 529 | 3 488 491 492 530 | 3 490 489 493 531 | 3 491 489 492 532 | 3 42 29 38 533 | 3 43 29 42 534 | 3 488 487 491 535 | 3 486 489 487 536 | 3 44 38 41 537 | 3 42 45 43 538 | 3 244 487 488 539 | 3 46 41 39 540 | 3 46 44 41 541 | 3 42 44 47 542 | 3 42 47 45 543 | 3 28 45 48 544 | 3 28 48 63 545 | 3 485 401 486 546 | 3 487 485 486 547 | 3 51 47 46 548 | 3 49 46 441 549 | 3 46 49 51 550 | 3 486 401 484 551 | 3 486 484 200 552 | 3 50 47 51 553 | 3 52 51 49 554 | 3 50 51 52 555 | 3 47 50 48 556 | 3 48 50 60 557 | 3 55 52 49 558 | 3 56 54 53 559 | 3 52 55 56 560 | 3 54 56 437 561 | 3 401 483 484 562 | 3 403 246 483 563 | 3 478 484 483 564 | 3 58 59 60 565 | 3 57 58 60 566 | 3 478 170 484 567 | 3 171 484 170 568 | 3 61 60 59 569 | 3 25 27 425 570 | 3 60 61 63 571 | 3 481 477 480 572 | 3 481 480 482 573 | 3 480 477 167 574 | 3 475 477 481 575 | 3 63 61 64 576 | 3 247 476 479 577 | 3 472 475 474 578 | 3 22 64 26 579 | 3 469 472 474 580 | 3 63 64 28 581 | 3 28 64 67 582 | 3 162 166 163 583 | 3 472 162 163 584 | 3 28 43 45 585 | 3 67 43 28 586 | 3 470 471 473 587 | 3 470 468 471 588 | 3 68 65 69 589 | 3 66 65 68 590 | 3 469 471 468 591 | 3 68 43 67 592 | 3 468 6 469 593 | 3 398 468 470 594 | 3 20 19 408 595 | 3 29 43 71 596 | 3 396 467 398 597 | 3 6 467 9 598 | 3 72 69 73 599 | 3 7 9 8 600 | 3 73 404 75 601 | 3 74 73 75 602 | 3 72 73 74 603 | 3 72 74 135 604 | 3 74 134 135 605 | 3 76 75 77 606 | 3 464 9 370 607 | 3 370 371 464 608 | 3 464 466 9 609 | 3 12 10 466 610 | 3 465 458 462 611 | 3 84 203 165 612 | 3 465 373 461 613 | 3 87 86 88 614 | 3 13 12 14 615 | 3 462 14 463 616 | 3 213 212 91 617 | 3 461 458 465 618 | 3 462 458 457 619 | 3 14 462 453 620 | 3 217 154 152 621 | 3 93 152 150 622 | 3 453 457 455 623 | 3 453 452 456 624 | 3 453 460 375 625 | 3 376 453 375 626 | 3 103 93 83 627 | 3 103 102 94 628 | 3 119 96 110 629 | 3 452 376 451 630 | 3 98 97 96 631 | 3 97 109 96 632 | 3 99 98 96 633 | 3 226 99 121 634 | 3 451 450 16 635 | 3 377 449 451 636 | 3 101 102 100 637 | 3 378 449 377 638 | 3 104 102 103 639 | 3 18 450 448 640 | 3 146 18 144 641 | 3 104 103 82 642 | 3 380 448 449 643 | 3 82 105 104 644 | 3 105 82 147 645 | 3 144 18 447 646 | 3 97 98 102 647 | 3 97 102 106 648 | 3 102 104 106 649 | 3 107 108 145 650 | 3 447 445 446 651 | 3 96 109 110 652 | 3 110 95 119 653 | 3 95 120 119 654 | 3 109 113 95 655 | 3 443 445 382 656 | 3 382 444 443 657 | 3 112 113 111 658 | 3 111 113 109 659 | 3 114 113 112 660 | 3 115 95 113 661 | 3 113 114 115 662 | 3 115 114 116 663 | 3 117 95 115 664 | 3 442 444 369 665 | 3 444 367 369 666 | 3 70 81 118 667 | 3 136 70 118 668 | 3 442 369 441 669 | 3 117 120 95 670 | 3 115 116 118 671 | 3 117 115 118 672 | 3 368 440 441 673 | 3 118 121 120 674 | 3 119 120 121 675 | 3 119 121 96 676 | 3 441 46 442 677 | 3 441 440 49 678 | 3 81 78 228 679 | 3 368 439 440 680 | 3 118 81 228 681 | 3 368 366 439 682 | 3 228 127 126 683 | 3 440 55 49 684 | 3 231 234 238 685 | 3 127 228 78 686 | 3 248 438 55 687 | 3 128 125 127 688 | 3 125 123 124 689 | 3 55 437 56 690 | 3 436 438 248 691 | 3 125 128 123 692 | 3 435 438 436 693 | 3 77 404 131 694 | 3 435 264 437 695 | 3 435 436 262 696 | 3 435 262 264 697 | 3 54 434 53 698 | 3 132 77 131 699 | 3 129 133 132 700 | 3 132 134 77 701 | 3 80 134 133 702 | 3 432 431 434 703 | 3 74 76 77 704 | 3 433 434 431 705 | 3 133 79 80 706 | 3 135 134 81 707 | 3 74 77 134 708 | 3 58 433 430 709 | 3 430 59 58 710 | 3 430 431 428 711 | 3 71 72 70 712 | 3 59 430 428 713 | 3 59 428 27 714 | 3 30 70 136 715 | 3 429 267 427 716 | 3 427 426 27 717 | 3 32 36 137 718 | 3 425 27 426 719 | 3 425 426 422 720 | 3 422 426 336 721 | 3 336 334 422 722 | 3 423 425 422 723 | 3 141 140 138 724 | 3 33 139 31 725 | 3 26 25 425 726 | 3 26 424 24 727 | 3 139 140 142 728 | 3 424 26 423 729 | 3 107 141 108 730 | 3 143 144 142 731 | 3 420 416 417 732 | 3 418 21 23 733 | 3 420 421 416 734 | 3 415 418 417 735 | 3 414 413 411 736 | 3 288 413 416 737 | 3 146 17 18 738 | 3 145 143 107 739 | 3 413 288 410 740 | 3 145 105 147 741 | 3 146 145 148 742 | 3 410 409 412 743 | 3 17 146 148 744 | 3 148 16 17 745 | 3 409 408 19 746 | 3 406 405 408 747 | 3 148 145 147 748 | 3 289 407 410 749 | 3 288 289 410 750 | 3 404 407 289 751 | 3 405 404 73 752 | 3 69 405 73 753 | 3 406 404 405 754 | 3 15 148 147 755 | 3 82 103 83 756 | 3 404 289 290 757 | 3 147 82 15 758 | 3 15 149 151 759 | 3 83 93 150 760 | 3 150 149 83 761 | 3 153 149 150 762 | 3 154 150 152 763 | 3 13 14 151 764 | 3 13 11 12 765 | 3 153 154 13 766 | 3 155 11 13 767 | 3 13 154 155 768 | 3 156 91 90 769 | 3 92 91 156 770 | 3 123 284 402 771 | 3 159 5 88 772 | 3 158 5 159 773 | 3 5 6 7 774 | 3 403 123 402 775 | 3 159 88 160 776 | 3 403 124 123 777 | 3 85 84 86 778 | 3 245 124 403 779 | 3 166 475 163 780 | 3 164 165 201 781 | 3 402 246 403 782 | 3 167 477 166 783 | 3 167 169 480 784 | 3 281 400 284 785 | 3 480 171 170 786 | 3 480 169 171 787 | 3 174 202 172 788 | 3 172 173 174 789 | 3 173 175 174 790 | 3 176 191 173 791 | 3 180 190 179 792 | 3 473 399 470 793 | 3 197 486 196 794 | 3 281 399 400 795 | 3 398 470 399 796 | 3 399 281 398 797 | 3 182 183 489 798 | 3 397 398 281 799 | 3 185 183 182 800 | 3 186 187 495 801 | 3 495 183 186 802 | 3 282 397 281 803 | 3 397 282 395 804 | 3 187 497 495 805 | 3 393 397 395 806 | 3 189 190 500 807 | 3 393 391 396 808 | 3 177 190 189 809 | 3 193 189 185 810 | 3 278 394 282 811 | 3 389 370 391 812 | 3 192 197 194 813 | 3 177 193 194 814 | 3 194 195 177 815 | 3 394 280 279 816 | 3 175 191 195 817 | 3 196 195 194 818 | 3 199 175 196 819 | 3 196 198 197 820 | 3 392 390 387 821 | 3 392 388 377 822 | 3 378 377 388 823 | 3 168 201 169 824 | 3 389 302 309 825 | 3 309 387 390 826 | 3 171 165 204 827 | 3 309 310 387 828 | 3 200 171 204 829 | 3 202 199 200 830 | 3 387 310 386 831 | 3 202 208 172 832 | 3 381 379 385 833 | 3 205 85 206 834 | 3 87 209 206 835 | 3 207 209 211 836 | 3 207 206 209 837 | 3 380 381 445 838 | 3 381 380 379 839 | 3 208 204 207 840 | 3 209 87 212 841 | 3 385 310 306 842 | 3 172 208 210 843 | 3 211 210 208 844 | 3 211 212 214 845 | 3 383 385 304 846 | 3 384 382 445 847 | 3 213 91 215 848 | 3 173 210 176 849 | 3 176 214 216 850 | 3 365 383 304 851 | 3 383 382 384 852 | 3 217 218 92 853 | 3 215 92 218 854 | 3 215 178 216 855 | 3 379 380 378 856 | 3 178 215 218 857 | 3 376 392 377 858 | 3 376 375 374 859 | 3 375 372 374 860 | 3 219 218 217 861 | 3 374 372 370 862 | 3 369 366 368 863 | 3 366 369 367 864 | 3 179 218 219 865 | 3 220 217 152 866 | 3 220 219 217 867 | 3 365 366 367 868 | 3 364 362 366 869 | 3 219 180 179 870 | 3 362 363 366 871 | 3 251 363 362 872 | 3 362 361 251 873 | 3 220 180 219 874 | 3 358 308 357 875 | 3 360 359 356 876 | 3 501 225 224 877 | 3 355 358 357 878 | 3 357 352 355 879 | 3 101 100 225 880 | 3 352 350 353 881 | 3 229 4 227 882 | 3 350 349 353 883 | 3 226 228 229 884 | 3 230 233 232 885 | 3 350 348 347 886 | 3 230 232 4 887 | 3 256 349 346 888 | 3 255 256 346 889 | 3 354 353 349 890 | 3 126 234 231 891 | 3 270 346 347 892 | 3 347 348 270 893 | 3 350 351 348 894 | 3 237 240 238 895 | 3 234 125 237 896 | 3 236 238 235 897 | 3 0 1 235 898 | 3 346 270 345 899 | 3 344 259 255 900 | 3 125 122 239 901 | 3 342 343 344 902 | 3 240 239 242 903 | 3 240 235 238 904 | 3 242 243 240 905 | 3 237 125 239 906 | 3 243 242 122 907 | 3 269 344 345 908 | 3 243 241 240 909 | 3 245 243 122 910 | 3 244 241 243 911 | 3 243 245 244 912 | 3 344 335 342 913 | 3 245 401 485 914 | 3 247 246 473 915 | 3 439 366 363 916 | 3 342 335 339 917 | 3 249 363 251 918 | 3 339 340 343 919 | 3 249 258 262 920 | 3 338 339 335 921 | 3 249 248 363 922 | 3 338 267 340 923 | 3 265 267 266 924 | 3 250 356 254 925 | 3 336 337 338 926 | 3 335 336 338 927 | 3 253 254 356 928 | 3 338 337 267 929 | 3 258 253 252 930 | 3 252 257 258 931 | 3 257 341 261 932 | 3 258 257 261 933 | 3 335 332 333 934 | 3 285 333 332 935 | 3 261 265 263 936 | 3 261 263 260 937 | 3 341 343 340 938 | 3 329 285 332 939 | 3 287 285 329 940 | 3 262 263 264 941 | 3 266 264 263 942 | 3 432 429 431 943 | 3 271 272 327 944 | 3 268 269 271 945 | 3 331 330 327 946 | 3 331 328 292 947 | 3 286 292 291 948 | 3 324 327 321 949 | 3 320 272 351 950 | 3 325 328 331 951 | 3 326 277 293 952 | 3 292 328 293 953 | 3 277 294 293 954 | 3 272 271 348 955 | 3 280 299 279 956 | 3 280 278 297 957 | 3 323 325 324 958 | 3 322 276 277 959 | 3 276 322 318 960 | 3 326 322 277 961 | 3 319 322 323 962 | 3 283 278 282 963 | 3 321 272 320 964 | 3 317 319 321 965 | 3 317 316 319 966 | 3 320 317 321 967 | 3 281 284 283 968 | 3 312 318 316 969 | 3 281 283 282 970 | 3 303 316 317 971 | 3 313 352 357 972 | 3 315 273 274 973 | 3 314 312 311 974 | 3 313 312 303 975 | 3 311 312 313 976 | 3 311 310 309 977 | 3 278 284 404 978 | 3 311 313 307 979 | 3 307 306 310 980 | 3 334 285 288 981 | 3 329 292 286 982 | 3 305 306 359 983 | 3 361 365 305 984 | 3 287 329 286 985 | 3 305 365 304 986 | 3 300 273 301 987 | 3 288 285 287 988 | 3 298 296 295 989 | 3 274 273 298 990 | 3 295 275 298 991 | 3 295 294 275 992 | 3 296 297 278 993 | 3 274 276 318 994 | 3 275 274 298 995 | 3 291 292 293 996 | 3 295 278 290 997 | 3 295 290 291 998 | 3 290 286 291 999 | 3 286 290 287 1000 | 3 295 291 293 1001 | 3 296 278 295 1002 | 3 278 404 290 1003 | 3 295 293 294 1004 | 3 289 287 290 1005 | 3 287 289 288 1006 | 3 296 298 273 1007 | 3 297 296 299 1008 | 3 296 300 302 1009 | 3 302 299 296 1010 | 3 296 273 300 1011 | 3 301 273 315 1012 | 3 301 309 302 1013 | 3 302 300 301 1014 | 3 313 303 352 1015 | 3 421 334 288 1016 | 3 305 359 361 1017 | 3 306 305 385 1018 | 3 283 284 278 1019 | 3 359 306 308 1020 | 3 306 307 308 1021 | 3 308 307 313 1022 | 3 307 310 311 1023 | 3 314 301 315 1024 | 3 314 311 301 1025 | 3 314 315 312 1026 | 3 315 318 312 1027 | 3 280 297 299 1028 | 3 312 316 303 1029 | 3 294 277 275 1030 | 3 317 352 303 1031 | 3 275 277 276 1032 | 3 318 315 274 1033 | 3 274 275 276 1034 | 3 348 351 272 1035 | 3 316 318 319 1036 | 3 270 348 271 1037 | 3 269 345 270 1038 | 3 270 271 269 1039 | 3 320 352 317 1040 | 3 319 318 322 1041 | 3 323 321 319 1042 | 3 266 267 429 1043 | 3 429 432 266 1044 | 3 322 325 323 1045 | 3 322 326 325 1046 | 3 263 265 266 1047 | 3 321 327 272 1048 | 3 324 321 323 1049 | 3 266 432 264 1050 | 3 262 260 263 1051 | 3 261 341 265 1052 | 3 340 265 341 1053 | 3 324 325 331 1054 | 3 260 262 258 1055 | 3 293 328 326 1056 | 3 325 326 328 1057 | 3 331 327 324 1058 | 3 260 258 261 1059 | 3 330 329 327 1060 | 3 262 436 249 1061 | 3 249 254 258 1062 | 3 330 331 292 1063 | 3 330 292 329 1064 | 3 341 257 259 1065 | 3 255 259 257 1066 | 3 271 327 329 1067 | 3 268 271 332 1068 | 3 257 252 256 1069 | 3 349 252 354 1070 | 3 329 332 271 1071 | 3 252 349 256 1072 | 3 253 258 254 1073 | 3 332 335 268 1074 | 3 252 356 354 1075 | 3 333 285 334 1076 | 3 249 251 250 1077 | 3 249 250 254 1078 | 3 248 249 436 1079 | 3 333 334 335 1080 | 3 483 401 403 1081 | 3 336 335 334 1082 | 3 122 242 239 1083 | 3 241 0 240 1084 | 3 340 339 338 1085 | 3 267 265 340 1086 | 3 237 239 240 1087 | 3 235 1 2 1088 | 3 343 259 344 1089 | 3 259 343 341 1090 | 3 342 339 343 1091 | 3 238 234 237 1092 | 3 238 236 231 1093 | 3 268 335 344 1094 | 3 269 268 344 1095 | 3 233 236 235 1096 | 3 2 3 235 1097 | 3 233 231 236 1098 | 3 233 229 231 1099 | 3 344 255 345 1100 | 3 233 235 3 1101 | 3 256 255 257 1102 | 3 345 255 346 1103 | 3 229 233 230 1104 | 3 349 347 346 1105 | 3 4 229 230 1106 | 3 320 351 352 1107 | 3 228 231 229 1108 | 3 229 224 226 1109 | 3 347 349 350 1110 | 3 224 229 227 1111 | 3 351 350 352 1112 | 3 355 353 354 1113 | 3 353 355 352 1114 | 3 356 355 354 1115 | 3 225 223 94 1116 | 3 100 226 224 1117 | 3 253 356 252 1118 | 3 355 356 358 1119 | 3 224 222 501 1120 | 3 223 225 501 1121 | 3 360 356 250 1122 | 3 101 225 94 1123 | 3 358 356 359 1124 | 3 308 313 357 1125 | 3 308 358 359 1126 | 3 221 94 223 1127 | 3 222 224 227 1128 | 3 223 501 221 1129 | 3 94 220 93 1130 | 3 361 250 251 1131 | 3 360 250 361 1132 | 3 361 359 360 1133 | 3 221 220 94 1134 | 3 220 221 180 1135 | 3 364 361 362 1136 | 3 365 364 366 1137 | 3 365 361 364 1138 | 3 439 363 248 1139 | 3 370 372 371 1140 | 3 373 371 372 1141 | 3 374 370 389 1142 | 3 374 392 376 1143 | 3 215 214 213 1144 | 3 214 215 216 1145 | 3 92 215 91 1146 | 3 367 382 383 1147 | 3 383 365 367 1148 | 3 214 212 213 1149 | 3 214 210 211 1150 | 3 214 176 210 1151 | 3 445 381 384 1152 | 3 211 208 207 1153 | 3 211 209 212 1154 | 3 212 87 89 1155 | 3 383 384 385 1156 | 3 385 305 304 1157 | 3 384 381 385 1158 | 3 206 207 204 1159 | 3 204 205 206 1160 | 3 204 208 202 1161 | 3 379 378 388 1162 | 3 379 386 385 1163 | 3 203 85 205 1164 | 3 202 200 204 1165 | 3 310 385 386 1166 | 3 388 386 379 1167 | 3 387 386 388 1168 | 3 311 309 301 1169 | 3 165 203 204 1170 | 3 204 203 205 1171 | 3 389 309 390 1172 | 3 388 392 387 1173 | 3 171 201 165 1174 | 3 169 201 171 1175 | 3 391 302 389 1176 | 3 389 390 392 1177 | 3 200 199 196 1178 | 3 299 302 279 1179 | 3 391 279 302 1180 | 3 389 392 374 1181 | 3 279 391 393 1182 | 3 196 175 195 1183 | 3 198 196 194 1184 | 3 198 194 197 1185 | 3 393 394 279 1186 | 3 282 394 395 1187 | 3 278 280 394 1188 | 3 395 394 393 1189 | 3 393 396 397 1190 | 3 193 192 194 1191 | 3 192 182 197 1192 | 3 391 370 396 1193 | 3 177 195 191 1194 | 3 193 184 192 1195 | 3 193 185 184 1196 | 3 177 189 193 1197 | 3 467 396 370 1198 | 3 397 396 398 1199 | 3 189 500 188 1200 | 3 178 190 177 1201 | 3 181 500 190 1202 | 3 189 188 187 1203 | 3 186 185 189 1204 | 3 189 187 186 1205 | 3 400 473 246 1206 | 3 400 399 473 1207 | 3 183 185 186 1208 | 3 182 184 185 1209 | 3 182 192 184 1210 | 3 489 197 182 1211 | 3 180 181 190 1212 | 3 190 178 179 1213 | 3 179 178 218 1214 | 3 177 216 178 1215 | 3 191 176 216 1216 | 3 177 191 216 1217 | 3 122 125 124 1218 | 3 245 122 124 1219 | 3 175 173 191 1220 | 3 199 202 174 1221 | 3 403 401 245 1222 | 3 174 175 199 1223 | 3 173 172 210 1224 | 3 484 171 200 1225 | 3 201 168 164 1226 | 3 246 402 400 1227 | 3 162 164 168 1228 | 3 167 162 168 1229 | 3 166 162 167 1230 | 3 164 162 161 1231 | 3 402 284 400 1232 | 3 162 160 161 1233 | 3 161 86 84 1234 | 3 84 164 161 1235 | 3 86 161 160 1236 | 3 159 160 158 1237 | 3 86 160 88 1238 | 3 89 88 5 1239 | 3 5 90 89 1240 | 3 90 5 157 1241 | 3 157 156 90 1242 | 3 157 8 156 1243 | 3 5 7 8 1244 | 3 5 8 157 1245 | 3 156 8 155 1246 | 3 131 284 129 1247 | 3 284 131 404 1248 | 3 155 154 156 1249 | 3 155 8 11 1250 | 3 11 8 10 1251 | 3 151 153 13 1252 | 3 150 154 153 1253 | 3 151 149 153 1254 | 3 149 15 82 1255 | 3 407 404 406 1256 | 3 83 149 82 1257 | 3 69 408 405 1258 | 3 411 409 19 1259 | 3 406 408 409 1260 | 3 406 409 407 1261 | 3 410 407 409 1262 | 3 409 411 412 1263 | 3 413 410 412 1264 | 3 143 145 146 1265 | 3 411 413 412 1266 | 3 411 21 418 1267 | 3 418 414 411 1268 | 3 411 19 21 1269 | 3 415 414 418 1270 | 3 414 415 416 1271 | 3 416 413 414 1272 | 3 146 144 143 1273 | 3 416 415 417 1274 | 3 416 421 288 1275 | 3 418 419 417 1276 | 3 142 144 446 1277 | 3 139 142 446 1278 | 3 142 107 143 1279 | 3 140 107 142 1280 | 3 419 420 417 1281 | 3 419 23 24 1282 | 3 424 420 419 1283 | 3 420 424 423 1284 | 3 420 423 421 1285 | 3 140 141 107 1286 | 3 334 421 422 1287 | 3 422 421 423 1288 | 3 139 138 140 1289 | 3 423 26 425 1290 | 3 33 32 139 1291 | 3 33 35 32 1292 | 3 138 139 32 1293 | 3 138 112 141 1294 | 3 114 138 137 1295 | 3 138 32 137 1296 | 3 137 136 114 1297 | 3 336 426 337 1298 | 3 36 40 137 1299 | 3 427 337 426 1300 | 3 137 30 136 1301 | 3 137 40 30 1302 | 3 267 337 427 1303 | 3 427 27 428 1304 | 3 70 72 81 1305 | 3 70 30 29 1306 | 3 428 429 427 1307 | 3 431 429 428 1308 | 3 81 72 135 1309 | 3 431 430 433 1310 | 3 76 74 75 1311 | 3 81 134 80 1312 | 3 434 54 264 1313 | 3 432 434 264 1314 | 3 437 264 54 1315 | 3 437 438 435 1316 | 3 133 134 132 1317 | 3 129 130 79 1318 | 3 79 133 129 1319 | 3 55 438 437 1320 | 3 129 132 131 1321 | 3 248 55 439 1322 | 3 128 130 129 1323 | 3 78 79 130 1324 | 3 129 123 128 1325 | 3 128 78 130 1326 | 3 439 55 440 1327 | 3 123 129 284 1328 | 3 127 78 128 1329 | 3 127 125 126 1330 | 3 234 126 125 1331 | 3 228 126 231 1332 | 3 442 39 37 1333 | 3 121 118 228 1334 | 3 441 369 368 1335 | 3 96 121 99 1336 | 3 34 31 443 1337 | 3 444 37 443 1338 | 3 442 37 444 1339 | 3 367 444 382 1340 | 3 120 117 118 1341 | 3 136 118 116 1342 | 3 443 31 446 1343 | 3 114 136 116 1344 | 3 138 114 112 1345 | 3 443 446 445 1346 | 3 112 111 141 1347 | 3 108 111 106 1348 | 3 445 447 380 1349 | 3 95 110 109 1350 | 3 109 106 111 1351 | 3 108 141 111 1352 | 3 106 105 108 1353 | 3 447 446 144 1354 | 3 105 145 108 1355 | 3 109 97 106 1356 | 3 380 447 448 1357 | 3 447 18 448 1358 | 3 104 105 106 1359 | 3 449 378 380 1360 | 3 17 16 450 1361 | 3 448 451 449 1362 | 3 98 100 102 1363 | 3 450 451 448 1364 | 3 451 376 377 1365 | 3 100 99 226 1366 | 3 225 100 224 1367 | 3 98 99 100 1368 | 3 121 228 226 1369 | 3 451 16 454 1370 | 3 452 451 454 1371 | 3 452 453 376 1372 | 3 94 102 101 1373 | 3 16 15 454 1374 | 3 93 103 94 1375 | 3 452 454 456 1376 | 3 220 152 93 1377 | 3 453 455 460 1378 | 3 458 455 457 1379 | 3 15 456 454 1380 | 3 458 459 455 1381 | 3 460 455 459 1382 | 3 459 458 461 1383 | 3 156 154 92 1384 | 3 92 154 217 1385 | 3 459 375 460 1386 | 3 372 375 459 1387 | 3 212 90 91 1388 | 3 461 372 459 1389 | 3 373 372 461 1390 | 3 90 212 89 1391 | 3 453 456 14 1392 | 3 85 86 87 1393 | 3 87 88 89 1394 | 3 85 87 206 1395 | 3 457 453 462 1396 | 3 84 85 203 1397 | 3 84 165 164 1398 | 3 462 463 465 1399 | 3 80 78 81 1400 | 3 464 371 373 1401 | 3 80 79 78 1402 | 3 466 464 465 1403 | 3 463 12 466 1404 | 3 463 14 12 1405 | 3 404 77 75 1406 | 3 12 11 10 1407 | 3 465 463 466 1408 | 3 465 464 373 1409 | 3 9 466 10 1410 | 3 9 7 6 1411 | 3 29 71 70 1412 | 3 467 370 9 1413 | 3 71 69 72 1414 | 3 68 69 71 1415 | 3 68 71 43 1416 | 3 20 408 69 1417 | 3 6 5 158 1418 | 3 468 467 6 1419 | 3 469 6 158 1420 | 3 20 69 65 1421 | 3 68 67 66 1422 | 3 398 467 468 1423 | 3 67 64 66 1424 | 3 160 469 158 1425 | 3 22 66 64 1426 | 3 26 24 22 1427 | 3 66 22 65 1428 | 3 20 65 22 1429 | 3 469 160 472 1430 | 3 162 472 160 1431 | 3 472 163 475 1432 | 3 61 62 64 1433 | 3 64 62 26 1434 | 3 473 471 476 1435 | 3 471 469 474 1436 | 3 475 166 477 1437 | 3 48 45 47 1438 | 3 247 473 476 1439 | 3 60 63 48 1440 | 3 481 471 474 1441 | 3 476 471 481 1442 | 3 481 479 476 1443 | 3 474 475 481 1444 | 3 62 25 26 1445 | 3 167 168 169 1446 | 3 59 62 61 1447 | 3 25 62 27 1448 | 3 479 478 247 1449 | 3 479 481 482 1450 | 3 479 482 478 1451 | 3 56 57 60 1452 | 3 247 478 246 1453 | 3 27 62 59 1454 | 3 482 480 170 1455 | 3 433 57 53 1456 | 3 57 433 58 1457 | 3 433 53 434 1458 | 3 478 482 170 1459 | 3 483 246 478 1460 | 3 57 56 53 1461 | 3 50 56 60 1462 | 3 50 52 56 1463 | 3 47 44 46 1464 | 3 200 196 486 1465 | 3 39 442 46 1466 | 3 44 42 38 1467 | 3 197 489 486 1468 | 3 244 485 487 1469 | 3 245 485 244 1470 | 3 35 41 38 1471 | 3 35 34 37 1472 | 3 37 41 35 1473 | 3 488 241 244 1474 | 3 36 38 40 1475 | 3 491 487 489 1476 | 3 34 33 31 1477 | 3 241 488 0 1478 | 3 0 488 1 1479 | 3 488 492 1 1480 | 3 33 34 35 1481 | 3 36 32 35 1482 | 3 31 139 446 1483 | 3 29 30 38 1484 | 3 496 490 494 1485 | 3 496 3 490 1486 | 3 493 495 494 1487 | 3 496 498 3 1488 | 3 496 495 497 1489 | 3 418 23 419 1490 | 3 22 21 20 1491 | 3 20 21 19 1492 | 3 4 3 498 1493 | 3 187 500 497 1494 | 3 227 498 497 1495 | 3 14 456 15 1496 | 3 15 151 14 1497 | 3 501 499 500 1498 | 3 222 227 499 1499 | 3 222 499 501 1500 | 3 8 9 10 1501 | 3 221 181 180 1502 | 3 221 501 181 1503 | 3 2 1 492 1504 | 3 235 240 0 1505 | -------------------------------------------------------------------------------- /examples/reference_txt/0.txt: -------------------------------------------------------------------------------- 1 | 468 2 | 43.4691 8.36043 19.1052 3 | 42.678 8.37325 19.5727 4 | 41.8627 8.365 19.5741 5 | 41.0375 8.35298 19.4933 6 | 44.2896 9.03745 19.336 7 | 43.495 9.0439 19.6936 8 | 42.6819 9.0353 19.644 9 | 41.8622 9.02563 19.5665 10 | 41.0431 9.01885 19.5681 11 | 40.2042 9.00498 19.38 12 | 49.9858 9.63184 15.7869 13 | 49.1135 9.68464 17.8428 14 | 48.2978 9.70191 18.6362 15 | 47.4971 9.70452 18.9108 16 | 46.6987 9.71104 19.3223 17 | 45.8995 9.70652 19.3456 18 | 45.1031 9.7091 19.6181 19 | 44.3032 9.70719 19.7334 20 | 43.4945 9.70048 19.6822 21 | 42.6813 9.69379 19.6325 22 | 41.8614 9.68625 19.5545 23 | 41.0377 9.67924 19.4959 24 | 40.2188 9.67553 19.5521 25 | 39.3703 9.6636 19.3262 26 | 21.7554 9.14377 5.06512 27 | 20.7777 9.1456 5.35253 28 | 19.7229 9.13922 5.36885 29 | 21.4249 9.5 17.6682 30 | 20.7762 9.52095 18.5528 31 | 19.8382 9.51411 18.5264 32 | 18.8947 9.5072 18.4988 33 | 49.9744 10.3149 16.1091 34 | 49.1032 10.3544 18.2481 35 | 48.2938 10.3636 18.8869 36 | 47.4956 10.3654 19.1602 37 | 46.699 10.3665 19.3944 38 | 45.9031 10.3671 19.6053 39 | 45.1051 10.3653 19.7008 40 | 44.3025 10.3618 19.7126 41 | 43.4948 10.3576 19.6872 42 | 42.6806 10.3525 19.6211 43 | 41.8623 10.3476 19.5681 44 | 41.0309 10.3404 19.4037 45 | 40.2135 10.3384 19.4898 46 | 39.3767 10.3325 19.3933 47 | 38.5265 10.3252 19.2244 48 | 37.6798 10.3197 19.1494 49 | 36.8278 10.3143 19.0763 50 | 35.9739 10.3094 19.0288 51 | 35.1105 10.3038 18.9503 52 | 34.24 10.298 18.8629 53 | 33.381 10.2943 18.8784 54 | 32.4797 10.2861 18.679 55 | 31.615 10.2828 18.7164 56 | 30.7311 10.2779 18.6742 57 | 29.8058 10.2692 18.4608 58 | 28.9131 10.2645 18.4334 59 | 28.0166 10.2599 18.41 60 | 27.1098 10.2548 18.3645 61 | 26.1871 10.2487 18.2771 62 | 21.9891 9.97871 5.94102 63 | 20.9457 9.97419 5.95667 64 | 19.8744 9.96793 5.89264 65 | 22.4151 10.2229 17.8679 66 | 21.6959 10.2332 18.5369 67 | 20.7764 10.2293 18.5533 68 | 19.8216 10.2233 18.4767 69 | 18.8968 10.2196 18.5048 70 | 17.933 10.2137 18.435 71 | 49.9597 10.994 16.526 72 | 49.0985 11.0148 18.4323 73 | 48.2926 11.0191 18.9647 74 | 47.4952 11.0202 19.2358 75 | 46.6993 11.0207 19.4598 76 | 45.9035 11.0206 19.6304 77 | 45.1055 11.0194 19.7173 78 | 44.3017 11.0169 19.6918 79 | 43.4938 11.0143 19.6663 80 | 42.6816 11.0117 19.6382 81 | 41.8619 11.0085 19.5622 82 | 41.0384 11.0055 19.5043 83 | 40.2113 11.0027 19.4636 84 | 39.3796 10.9999 19.4238 85 | 38.539 10.9966 19.3425 86 | 37.6922 10.9932 19.2569 87 | 36.8416 10.9899 19.1854 88 | 35.9933 10.9874 19.1703 89 | 35.1411 10.9849 19.1583 90 | 34.279 10.9819 19.1097 91 | 33.4131 10.979 19.0687 92 | 32.5357 10.9756 18.9916 93 | 31.6557 10.9724 18.9301 94 | 30.7736 10.9694 18.8856 95 | 29.8871 10.9664 18.8445 96 | 28.9917 10.9632 18.7863 97 | 28.0956 10.9603 18.7482 98 | 27.1923 10.9572 18.7015 99 | 26.2806 10.954 18.6428 100 | 25.3643 10.9507 18.5878 101 | 24.4424 10.9475 18.5325 102 | 23.5282 10.9448 18.5235 103 | 22.6115 10.9423 18.5212 104 | 21.7135 10.9406 18.5933 105 | 20.7653 10.9371 18.5192 106 | 19.8208 10.9339 18.4742 107 | 18.8924 10.9316 18.4921 108 | 17.9279 10.928 18.4206 109 | 16.939 10.9238 18.3001 110 | 49.943 11.6666 16.999 111 | 49.094 11.6723 18.6076 112 | 48.2914 11.6733 19.0423 113 | 47.4947 11.6737 19.3077 114 | 46.6994 11.6736 19.4782 115 | 45.9037 11.6736 19.6487 116 | 45.105 11.673 19.6966 117 | 44.301 11.6722 19.6709 118 | 43.4929 11.6713 19.6454 119 | 42.6797 11.6704 19.6045 120 | 41.8611 11.6694 19.5484 121 | 41.0403 11.6686 19.5302 122 | 40.2152 11.6678 19.5103 123 | 39.386 11.6669 19.4902 124 | 38.5502 11.666 19.4493 125 | 37.7047 11.6648 19.3641 126 | 36.8574 11.6638 19.3106 127 | 36.0091 11.6629 19.2856 128 | 35.1528 11.662 19.2375 129 | 34.2915 11.661 19.1892 130 | 33.4252 11.66 19.1405 131 | 32.5537 11.659 19.0916 132 | 31.6861 11.6581 19.0903 133 | 30.8001 11.657 19.0179 134 | 29.9062 11.6559 18.9345 135 | 29.0154 11.6549 18.8926 136 | 28.1243 11.654 18.8711 137 | 27.2262 11.653 18.84 138 | 26.3146 11.6519 18.7758 139 | 25.3985 11.6508 18.716 140 | 24.4833 11.6498 18.6798 141 | 23.5737 11.649 18.6809 142 | 22.6524 11.648 18.6573 143 | 21.7043 11.6468 18.5641 144 | 20.7566 11.6456 18.4923 145 | 19.8309 11.6448 18.5045 146 | 18.888 11.6438 18.4794 147 | 17.9228 11.6426 18.4063 148 | 16.9283 11.6411 18.271 149 | 15.8093 11.6383 17.8294 150 | 14.7403 11.6362 17.5533 151 | 13.6587 11.6341 17.2739 152 | 49.9464 12.3338 16.9038 153 | 49.0965 12.3281 18.5102 154 | 48.2913 12.3266 19.0509 155 | 47.4948 12.3263 19.3052 156 | 46.6994 12.3264 19.4776 157 | 45.9038 12.3264 19.65 158 | 45.1045 12.327 19.6758 159 | 44.3003 12.3279 19.6501 160 | 43.4916 12.3288 19.6164 161 | 42.6781 12.3297 19.5741 162 | 41.8609 12.3306 19.5456 163 | 41.0401 12.3314 19.5277 164 | 40.215 12.3323 19.5078 165 | 39.3857 12.3331 19.4877 166 | 38.5522 12.334 19.4675 167 | 37.7143 12.3348 19.4472 168 | 36.8701 12.3357 19.4106 169 | 36.0199 12.3367 19.3644 170 | 35.1645 12.3377 19.3166 171 | 34.3041 12.3387 19.2685 172 | 33.4386 12.3397 19.2201 173 | 32.568 12.3407 19.1715 174 | 31.6923 12.3417 19.1225 175 | 30.8124 12.3427 19.0789 176 | 29.9242 12.3438 19.0196 177 | 29.0385 12.3447 18.9963 178 | 28.1444 12.3457 18.9573 179 | 27.2453 12.3467 18.918 180 | 26.3409 12.3477 18.8785 181 | 25.4313 12.3487 18.8388 182 | 24.5157 12.3497 18.7964 183 | 23.5946 12.3507 18.7529 184 | 22.667 12.3518 18.7058 185 | 21.7156 12.3531 18.6003 186 | 20.757 12.3544 18.4934 187 | 19.8127 12.3555 18.4502 188 | 18.87 12.3564 18.4273 189 | 17.9175 12.3575 18.3914 190 | 16.9251 12.3589 18.2623 191 | 15.9144 12.3605 18.1053 192 | 14.8592 12.3625 17.8561 193 | 13.7767 12.3647 17.5656 194 | 12.5859 12.3679 17.0433 195 | 50.0788 13.0468 13.1515 196 | 49.1142 12.9926 17.8174 197 | 48.2964 12.9838 18.7228 198 | 47.4959 12.9813 19.1129 199 | 46.6987 12.9811 19.3112 200 | 45.9017 12.981 19.5041 201 | 45.1045 12.9811 19.6769 202 | 44.3007 12.9835 19.6609 203 | 43.4915 12.9864 19.6131 204 | 42.6783 12.9891 19.577 205 | 41.8607 12.9918 19.5428 206 | 41.0399 12.9942 19.5252 207 | 40.2148 12.9968 19.5052 208 | 39.3855 12.9993 19.4851 209 | 38.5494 13.0022 19.4414 210 | 37.7092 13.005 19.4033 211 | 36.8657 13.0077 19.3758 212 | 36.0169 13.0104 19.3428 213 | 35.1623 13.0133 19.3016 214 | 34.3028 13.0162 19.2601 215 | 33.4383 13.0191 19.2184 216 | 32.5689 13.0221 19.1765 217 | 31.6945 13.025 19.1343 218 | 30.8151 13.028 19.0924 219 | 29.9316 13.0309 19.0545 220 | 29.0423 13.0339 19.0133 221 | 28.147 13.0369 18.9681 222 | 27.2464 13.04 18.9226 223 | 26.3405 13.043 18.8768 224 | 25.4292 13.0461 18.831 225 | 24.5215 13.0488 18.8172 226 | 23.6092 13.0515 18.8034 227 | 22.6787 13.0548 18.7451 228 | 21.727 13.0588 18.6366 229 | 20.7685 13.0628 18.5291 230 | 19.8091 13.0665 18.4394 231 | 18.8657 13.0694 18.4149 232 | 17.9151 13.0725 18.3847 233 | 16.9319 13.0765 18.2808 234 | 15.9378 13.0806 18.1667 235 | 14.9077 13.0858 17.9797 236 | 13.8504 13.0915 17.7479 237 | 12.707 13.0997 17.3339 238 | 48.3157 13.6646 17.4943 239 | 47.4985 13.6446 18.6644 240 | 46.6977 13.6399 19.0786 241 | 45.8986 13.6395 19.2798 242 | 45.0998 13.6392 19.481 243 | 44.3007 13.6392 19.6606 244 | 43.4926 13.6434 19.6373 245 | 42.6788 13.6482 19.5876 246 | 41.8609 13.6529 19.5454 247 | 41.0397 13.6571 19.5227 248 | 40.2134 13.6617 19.4884 249 | 39.3801 13.6667 19.4291 250 | 38.5437 13.6715 19.3872 251 | 37.7042 13.6759 19.3598 252 | 36.8602 13.6804 19.3323 253 | 36.0116 13.6849 19.3044 254 | 35.1583 13.6894 19.2746 255 | 34.2985 13.6943 19.233 256 | 33.4337 13.6991 19.1912 257 | 32.564 13.704 19.1492 258 | 31.6899 13.7088 19.1104 259 | 30.8112 13.7137 19.0727 260 | 29.9274 13.7185 19.0348 261 | 29.0386 13.7234 18.9967 262 | 28.1447 13.7284 18.9583 263 | 27.2441 13.7335 18.9133 264 | 26.3381 13.7386 18.8675 265 | 25.4294 13.7435 18.8316 266 | 24.5217 13.748 18.8179 267 | 23.6044 13.7529 18.7869 268 | 22.6804 13.7579 18.7506 269 | 21.7379 13.7639 18.6716 270 | 20.7801 13.7705 18.5649 271 | 19.8216 13.7767 18.4768 272 | 18.8806 13.7815 18.4581 273 | 17.9124 13.7876 18.3772 274 | 16.9328 13.794 18.2831 275 | 15.9389 13.801 18.1694 276 | 14.9163 13.8091 18.0014 277 | 13.8407 13.8197 17.7239 278 | 12.7092 13.8328 17.3392 279 | 46.6926 14.3319 17.8123 280 | 45.8907 14.3114 18.7162 281 | 45.0878 14.3091 18.9805 282 | 44.2854 14.3078 19.2096 283 | 43.4806 14.3086 19.3667 284 | 42.6684 14.3131 19.3945 285 | 41.8491 14.3193 19.3629 286 | 41.0255 14.3255 19.3322 287 | 40.1981 14.3315 19.3087 288 | 39.3669 14.3375 19.2901 289 | 38.5337 14.3428 19.2926 290 | 37.696 14.3483 19.2891 291 | 36.8543 14.3539 19.2856 292 | 36.0057 14.3601 19.2608 293 | 35.1521 14.3664 19.2325 294 | 34.2939 14.3728 19.2039 295 | 33.4294 14.3795 19.1656 296 | 32.5603 14.3862 19.1283 297 | 31.6862 14.393 19.0907 298 | 30.8072 14.3997 19.053 299 | 29.9232 14.4066 19.015 300 | 29.0342 14.4134 18.9768 301 | 28.14 14.4203 18.9384 302 | 27.2408 14.4272 18.8998 303 | 26.3357 14.4343 18.8581 304 | 25.429 14.441 18.8302 305 | 24.5088 14.4486 18.7715 306 | 23.5828 14.4563 18.7123 307 | 22.6607 14.4631 18.6849 308 | 21.7396 14.4693 18.6771 309 | 20.7916 14.4776 18.6006 310 | 19.8381 14.4859 18.5259 311 | 18.878 14.4943 18.4506 312 | 17.9097 14.5029 18.3696 313 | 16.9337 14.5116 18.2855 314 | 15.9229 14.5226 18.1276 315 | 14.8961 14.5343 17.9501 316 | 13.831 14.5484 17.6999 317 | 12.6832 14.5679 17.2769 318 | 44.1167 15.15 14.2489 319 | 43.4253 15.0145 18.1116 320 | 42.626 15.0029 18.6121 321 | 41.8122 15.0032 18.7901 322 | 40.9922 15.0065 18.8859 323 | 40.1634 15.0129 18.899 324 | 39.3273 15.0208 18.8742 325 | 38.4899 15.0277 18.8777 326 | 37.6496 15.0343 18.8893 327 | 36.8097 15.0397 18.933 328 | 35.972 15.0437 19.0151 329 | 35.1892 15.0331 19.4839 330 | 34.3312 15.0418 19.4402 331 | 33.4498 15.0548 19.2863 332 | 32.5398 15.0723 19.0143 333 | 31.6615 15.0816 18.9607 334 | 30.7796 15.0906 18.9158 335 | 29.8926 15.0997 18.8706 336 | 29.0086 15.1074 18.8619 337 | 28.1142 15.1161 18.8277 338 | 27.2147 15.1248 18.7933 339 | 26.3106 15.1336 18.7601 340 | 25.4044 15.142 18.7381 341 | 24.4881 15.1511 18.697 342 | 23.5612 15.161 18.6376 343 | 22.6409 15.1694 18.619 344 | 21.7138 15.178 18.5946 345 | 20.7692 15.1882 18.5311 346 | 19.82 15.1983 18.4719 347 | 18.8517 15.2099 18.3747 348 | 17.8855 15.2206 18.3021 349 | 16.9126 15.2315 18.2283 350 | 15.9 15.2458 18.0675 351 | 14.8735 15.2607 17.8925 352 | 13.8211 15.2775 17.6755 353 | 12.6228 15.3073 17.1319 354 | 39.1913 15.7574 17.4446 355 | 38.3624 15.7558 17.6697 356 | 37.5782 15.7368 18.2733 357 | 36.75 15.7369 18.4607 358 | 35.9528 15.7265 18.8748 359 | 35.1933 15.7058 19.5119 360 | 34.3878 15.7012 19.798 361 | 33.505 15.7185 19.6136 362 | 32.5228 15.7595 18.9192 363 | 31.5679 15.7894 18.4684 364 | 30.6876 15.7988 18.4577 365 | 29.8029 15.8083 18.4469 366 | 28.9137 15.8179 18.4361 367 | 28.0256 15.8264 18.4485 368 | 27.1372 15.8342 18.4766 369 | 26.2389 15.8432 18.4798 370 | 25.3324 15.853 18.4682 371 | 24.422 15.8627 18.4593 372 | 23.507 15.8724 18.4503 373 | 22.5884 15.882 18.4443 374 | 21.6439 15.895 18.3704 375 | 20.6971 15.9074 18.3082 376 | 19.7628 15.9172 18.3009 377 | 18.8179 15.928 18.2768 378 | 17.856 15.9403 18.2195 379 | 16.8823 15.9535 18.1464 380 | 15.8724 15.9706 17.9949 381 | 14.826 15.9912 17.7715 382 | 13.7424 16.0153 17.481 383 | 12.5623 16.0494 16.9864 384 | 37.2944 16.5489 15.8251 385 | 36.6474 16.4604 17.649 386 | 35.8533 16.4436 18.148 387 | 35.1227 16.4057 19.0333 388 | 34.4177 16.3638 19.9873 389 | 33.535 16.3848 19.7917 390 | 32.3795 16.4869 18.1207 391 | 31.4934 16.4999 18.0768 392 | 30.6073 16.5116 18.0583 393 | 29.7166 16.5233 18.0398 394 | 28.8213 16.5351 18.0211 395 | 27.9213 16.5469 18.0025 396 | 27.0209 16.5578 18.0012 397 | 26.1159 16.5689 17.999 398 | 25.206 16.5801 17.9946 399 | 24.2877 16.5921 17.9763 400 | 23.3663 16.6039 17.9636 401 | 22.4413 16.6155 17.955 402 | 21.5123 16.627 17.9484 403 | 20.5591 16.642 17.8813 404 | 19.608 16.6558 17.8385 405 | 18.6358 16.6721 17.7509 406 | 17.6013 16.6974 17.5076 407 | 16.6029 16.7157 17.3901 408 | 15.5552 16.7403 17.1627 409 | 14.4793 16.7677 16.889 410 | 36.2426 17.3475 14.4458 411 | 35.7344 17.1819 17.2788 412 | 34.9632 17.1516 17.9513 413 | 34.1384 17.1467 18.2204 414 | 33.2804 17.1549 18.2825 415 | 32.3116 17.2013 17.742 416 | 31.4191 17.2171 17.6861 417 | 30.5286 17.2307 17.6665 418 | 29.6334 17.2443 17.6469 419 | 28.7319 17.2585 17.6197 420 | 27.8248 17.273 17.5892 421 | 26.9209 17.2853 17.5924 422 | 26.01 17.2985 17.5849 423 | 25.0912 17.3125 17.5645 424 | 24.1647 17.3272 17.5338 425 | 23.2328 17.3421 17.5022 426 | 22.2845 17.3595 17.4333 427 | 21.3281 17.3774 17.3579 428 | 20.3217 17.4042 17.1469 429 | 19.3302 17.4265 17.0087 430 | 18.2289 17.4681 16.5757 431 | 34.7084 17.9619 16.2232 432 | 33.9859 17.902 17.2554 433 | 33.1378 17.9028 17.4368 434 | 32.2367 17.9248 17.3248 435 | 31.3442 17.9411 17.2925 436 | 30.4462 17.9577 17.2567 437 | 29.5435 17.9743 17.2225 438 | 28.6358 17.9909 17.1881 439 | 27.723 18.0077 17.1539 440 | 26.8115 18.0227 17.1452 441 | 25.8963 18.0374 17.1403 442 | 24.9658 18.0552 17.0947 443 | 24.028 18.0736 17.0424 444 | 23.0793 18.0935 16.9717 445 | 22.1104 18.1169 16.8539 446 | 21.1125 18.1455 16.6664 447 | 20.0589 18.1851 16.3338 448 | 33.4245 18.8804 13.7033 449 | 33.0117 18.6572 16.6895 450 | 32.1616 18.6554 16.9061 451 | 31.2582 18.6764 16.8401 452 | 30.3492 18.6976 16.7738 453 | 29.4407 18.7164 16.7373 454 | 28.5274 18.7352 16.7014 455 | 27.6086 18.7543 16.6643 456 | 26.6855 18.7732 16.6303 457 | 25.7574 18.7921 16.597 458 | 24.8284 18.8098 16.5796 459 | 23.8801 18.8318 16.5102 460 | 22.8831 18.8661 16.2933 461 | 21.8191 18.9164 15.8849 462 | 31.1099 19.4486 16.0602 463 | 30.2518 19.4458 16.2895 464 | 29.3368 19.4672 16.2466 465 | 28.4175 19.4884 16.2083 466 | 27.493 19.5097 16.1695 467 | 26.5636 19.531 16.1325 468 | 25.6048 19.5609 16.0004 469 | 24.6345 19.5923 15.8534 470 | -------------------------------------------------------------------------------- /examples/reference_txt/1.txt: -------------------------------------------------------------------------------- 1 | 333 2 | 34.7401 5.65017 18.6721 3 | 33.8172 5.61661 18.7593 4 | 34.4677 5.61962 7.13224 5 | 33.5603 5.60177 7.4136 6 | 32.511 5.56334 7.44084 7 | 35.6851 6.35277 18.6408 8 | 34.8034 6.32738 18.7793 9 | 33.8416 6.29188 18.7997 10 | 32.9081 6.26139 18.8858 11 | 40.4393 6.78796 11.2458 12 | 40.4964 6.90283 13.391 13 | 40.3573 6.9851 15.0427 14 | 40.0192 7.03628 16.2313 15 | 39.5756 7.07104 17.1752 16 | 38.9371 7.07823 17.7203 17 | 38.1892 7.07072 18.0561 18 | 37.4143 7.05997 18.3477 19 | 36.6023 7.04488 18.5806 20 | 35.732 7.02302 18.7222 21 | 34.7949 6.99371 18.7649 22 | 33.8475 6.96414 18.8095 23 | 32.8692 6.93189 18.8228 24 | 31.923 6.90445 18.907 25 | 15.5266 6.37288 19.3001 26 | 14.7883 6.37767 19.8634 27 | 40.5079 7.49174 11.3957 28 | 40.581 7.59313 13.5709 29 | 40.3997 7.65898 15.1303 30 | 40.0973 7.70759 16.3889 31 | 39.6276 7.73441 17.2773 32 | 38.9679 7.73806 17.7794 33 | 38.2087 7.73019 18.0925 34 | 37.4369 7.72118 18.3888 35 | 36.6145 7.7069 18.6022 36 | 35.7188 7.68519 18.6993 37 | 34.7974 7.66148 18.7692 38 | 33.8387 7.63467 18.795 39 | 32.8229 7.60287 18.748 40 | 31.9393 7.58551 18.9327 41 | 30.8696 7.55016 18.8424 42 | 29.8478 7.52064 18.849 43 | 28.8278 7.4922 18.8784 44 | 27.8069 7.46456 18.9258 45 | 26.7801 7.4372 18.9831 46 | 25.6469 7.40086 18.9115 47 | 24.6343 7.37654 19.0263 48 | 23.4305 7.33579 18.9035 49 | 22.3414 7.30635 18.9549 50 | 13.0335 6.56231 8.60323 51 | 16.3995 7.12999 18.8914 52 | 15.9884 7.16072 19.8277 53 | 14.8348 7.13105 19.9155 54 | 13.687 7.1026 20.0263 55 | 40.1432 8.06341 8.47145 56 | 40.6795 8.20403 11.7704 57 | 40.6825 8.28194 13.7867 58 | 40.4933 8.33663 15.3241 59 | 40.1691 8.37532 16.5336 60 | 39.684 8.39633 17.3883 61 | 39.001 8.39701 17.8428 62 | 38.2356 8.38969 18.1428 63 | 37.445 8.38022 18.4035 64 | 36.6167 8.36759 18.6062 65 | 35.7056 8.34779 18.6763 66 | 34.7842 8.32775 18.7467 67 | 33.831 8.30557 18.7821 68 | 32.888 8.28503 18.8533 69 | 31.9392 8.26465 18.9326 70 | 30.9407 8.24075 18.9522 71 | 29.9176 8.21556 18.9542 72 | 28.9192 8.19318 19.0134 73 | 27.9201 8.17143 19.0892 74 | 26.8903 8.14791 19.1388 75 | 25.8511 8.12436 19.1937 76 | 24.7794 8.099 19.2225 77 | 23.7147 8.0749 19.2795 78 | 22.625 8.04963 19.3222 79 | 21.5372 8.02522 19.3857 80 | 20.423 7.99956 19.434 81 | 19.2936 7.97352 19.4821 82 | 18.1679 7.94844 19.5527 83 | 17.0724 7.92614 19.6761 84 | 16.0006 7.90606 19.8415 85 | 14.8028 7.87794 19.8797 86 | 13.6721 7.85505 20.01 87 | 12.4315 7.82546 20.0373 88 | 40.2871 8.79226 8.79436 89 | 40.5614 8.88368 11.5127 90 | 40.6034 8.95105 13.6187 91 | 40.4786 9.00144 15.2937 92 | 40.198 9.03678 16.5921 93 | 39.6656 9.05003 17.352 94 | 39.0205 9.05367 17.8802 95 | 38.2384 9.04633 18.148 96 | 37.4505 9.03879 18.4136 97 | 36.6038 9.02704 18.5833 98 | 35.6924 9.01084 18.6534 99 | 34.7627 8.99385 18.7103 100 | 33.8221 8.97664 18.7674 101 | 32.8848 8.96025 18.8481 102 | 31.9359 8.94358 18.9274 103 | 30.9765 8.92672 19.0075 104 | 29.987 8.90836 19.0592 105 | 28.9881 8.88993 19.1151 106 | 27.9722 8.87096 19.1645 107 | 26.9439 8.85176 19.2145 108 | 25.9028 8.83232 19.2651 109 | 24.861 8.8134 19.3328 110 | 23.7855 8.79295 19.3733 111 | 22.7035 8.77268 19.4238 112 | 21.6341 8.75374 19.5086 113 | 20.5284 8.73318 19.5649 114 | 19.3962 8.71162 19.6068 115 | 18.2921 8.69227 19.7007 116 | 17.1714 8.67249 19.7915 117 | 15.9724 8.64882 19.8093 118 | 14.8299 8.62891 19.9099 119 | 13.6572 8.60786 19.9937 120 | 12.3932 8.58239 19.9961 121 | 10.6956 8.53437 19.562 122 | 40.1742 9.54933 10.667 123 | 40.2248 9.60287 12.8137 124 | 40.1444 9.64553 14.6018 125 | 39.8797 9.6745 15.95 126 | 39.5538 9.69842 17.1323 127 | 38.8899 9.70021 17.6299 128 | 38.154 9.6975 17.9902 129 | 37.3769 9.69239 18.2794 130 | 36.5863 9.68666 18.552 131 | 35.6933 9.67515 18.655 132 | 34.7585 9.66164 18.7032 133 | 33.82 9.64839 18.764 134 | 32.8816 9.63557 18.8429 135 | 31.9326 9.6226 18.9222 136 | 30.9699 9.60932 18.9973 137 | 29.9845 9.59526 19.0554 138 | 28.9966 9.5815 19.1276 139 | 27.9888 9.56716 19.1885 140 | 26.9691 9.55264 19.2501 141 | 25.9371 9.53795 19.3124 142 | 24.8926 9.52308 19.3755 143 | 23.8355 9.50804 19.4394 144 | 22.7637 9.49273 19.5019 145 | 21.6778 9.47718 19.564 146 | 20.5784 9.46145 19.6269 147 | 19.4651 9.44551 19.6906 148 | 18.3529 9.43005 19.773 149 | 17.2075 9.41354 19.8335 150 | 15.9878 9.39421 19.8269 151 | 14.784 9.37606 19.8586 152 | 13.6185 9.36002 19.9512 153 | 12.3792 9.34127 19.981 154 | 11.0136 9.31774 19.897 155 | 9.46763 9.28738 19.6504 156 | 39.2019 10.2381 10.639 157 | 39.3414 10.28 12.9392 158 | 39.1451 10.3047 14.468 159 | 38.9762 10.3296 15.9966 160 | 38.5545 10.3422 16.9869 161 | 37.998 10.3485 17.6985 162 | 37.2528 10.3463 18.0531 163 | 36.4721 10.3428 18.3487 164 | 35.6684 10.3384 18.6117 165 | 34.7673 10.3301 18.7181 166 | 33.8201 10.3203 18.7641 167 | 32.8784 10.311 18.8378 168 | 31.9091 10.3009 18.885 169 | 30.9301 10.2908 18.9359 170 | 29.9546 10.2812 19.0102 171 | 28.968 10.2714 19.0853 172 | 27.9685 10.2615 19.1591 173 | 26.9482 10.2511 19.2206 174 | 25.9156 10.2406 19.2828 175 | 24.8719 10.23 19.3475 176 | 23.8179 10.2194 19.4162 177 | 22.7512 10.2087 19.4857 178 | 21.6679 10.1977 19.5514 179 | 20.5682 10.1864 19.6143 180 | 19.4622 10.1753 19.687 181 | 18.3656 10.1647 19.7881 182 | 17.2373 10.1535 19.8684 183 | 16.0161 10.1396 19.8593 184 | 14.7923 10.126 19.8679 185 | 13.6362 10.1148 19.9706 186 | 12.385 10.1011 19.9873 187 | 11.0912 10.0864 19.9787 188 | 9.62945 10.0672 19.8174 189 | 7.61081 10.0322 19.1195 190 | 37.57 10.9387 11.2906 191 | 37.6609 10.9617 13.4106 192 | 37.4906 10.9767 14.9477 193 | 37.2314 10.9888 16.2654 194 | 36.8672 10.9978 17.3499 195 | 36.1393 10.9972 17.7565 196 | 35.3799 10.9958 18.1105 197 | 34.5943 10.9938 18.4247 198 | 33.6665 10.9885 18.5096 199 | 32.7287 10.983 18.5955 200 | 31.7809 10.9776 18.6822 201 | 30.8416 10.9725 18.799 202 | 29.8874 10.9672 18.9087 203 | 28.9234 10.9619 19.0195 204 | 27.9386 10.9563 19.1159 205 | 26.9273 10.9502 19.1911 206 | 25.8971 10.944 19.2572 207 | 24.8552 10.9377 19.3249 208 | 23.8008 10.9313 19.3935 209 | 22.7336 10.9248 19.4629 210 | 21.6535 10.9183 19.5332 211 | 20.558 10.9116 19.6016 212 | 19.46 10.9051 19.6843 213 | 18.327 10.8981 19.7422 214 | 17.1962 10.8913 19.8203 215 | 16.0444 10.8843 19.8916 216 | 14.828 10.8763 19.9079 217 | 13.6262 10.8687 19.9596 218 | 12.3834 10.8606 19.9855 219 | 11.0602 10.8513 19.9461 220 | 9.59877 10.8398 19.7858 221 | 7.64302 10.8199 19.1521 222 | 33.4928 11.63 9.27622 223 | 34.5547 11.6459 13.1324 224 | 34.3497 11.6505 14.5715 225 | 34.0777 11.6544 15.8483 226 | 33.7124 11.6574 16.9288 227 | 33.2369 11.6594 17.798 228 | 32.4194 11.6586 18.095 229 | 31.5328 11.6573 18.29 230 | 30.5828 11.6555 18.3991 231 | 29.621 11.6537 18.5063 232 | 28.7414 11.6526 18.7507 233 | 28.0922 11.6532 19.3377 234 | 27.1366 11.6516 19.4867 235 | 25.8966 11.648 19.2565 236 | 24.7269 11.645 19.1514 237 | 23.6736 11.6429 19.2253 238 | 22.6411 11.641 19.3431 239 | 21.5737 11.6389 19.432 240 | 20.4861 11.6367 19.5123 241 | 19.3964 11.6346 19.607 242 | 18.2623 11.6323 19.6652 243 | 17.1391 11.6301 19.7538 244 | 16.0016 11.6278 19.8428 245 | 14.8097 11.6253 19.8874 246 | 13.5803 11.6226 19.9093 247 | 12.35 11.62 19.9497 248 | 10.9994 11.6167 19.882 249 | 9.56807 11.6131 19.7541 250 | 30.1325 12.372 10.8568 251 | 30.5505 12.3623 13.3479 252 | 30.4166 12.3573 14.854 253 | 30.1659 12.3534 16.1288 254 | 29.8325 12.3503 17.2397 255 | 29.282 12.3488 17.9942 256 | 28.5263 12.349 18.433 257 | 27.9924 12.3475 19.1937 258 | 27.3743 12.3467 19.8225 259 | 25.7668 12.3529 19.0771 260 | 24.4043 12.3573 18.7152 261 | 23.3695 12.3592 18.8227 262 | 22.3242 12.3612 18.9327 263 | 21.2926 12.363 19.0755 264 | 20.242 12.3649 19.2093 265 | 19.163 12.3669 19.3233 266 | 18.0749 12.3689 19.442 267 | 16.9772 12.371 19.565 268 | 15.8045 12.3734 19.6176 269 | 14.6669 12.3756 19.7275 270 | 13.4964 12.3779 19.8173 271 | 12.2719 12.3805 19.8658 272 | 10.9273 12.3837 19.8061 273 | 9.43996 12.3877 19.6218 274 | 28.7256 13.131 10.325 275 | 29.0873 13.1035 12.7029 276 | 29.1175 13.0847 14.4712 277 | 29.0104 13.0697 15.9694 278 | 28.7774 13.0579 17.2321 279 | 28.1945 13.0544 17.943 280 | 27.6376 13.0504 18.6812 281 | 27.31 13.0415 19.7316 282 | 25.1749 13.0714 18.2592 283 | 24.1302 13.0775 18.3446 284 | 23.0831 13.0835 18.4438 285 | 22.0243 13.0896 18.5441 286 | 20.9571 13.0957 18.6502 287 | 19.8824 13.1017 18.7629 288 | 18.7924 13.1079 18.8728 289 | 17.6876 13.1142 18.981 290 | 16.5798 13.1204 19.1016 291 | 15.4071 13.1277 19.1636 292 | 14.2123 13.1351 19.2188 293 | 12.8298 13.1458 19.0863 294 | 11.5649 13.1542 19.106 295 | 10.0694 13.1664 18.9026 296 | 27.2865 13.9106 9.78893 297 | 27.695 13.8633 12.2219 298 | 27.8509 13.8272 14.1776 299 | 27.8378 13.7987 15.8128 300 | 27.6394 13.7779 17.1232 301 | 26.9362 13.7762 17.6682 302 | 25.9732 13.784 17.8432 303 | 24.9049 13.7952 17.886 304 | 23.8528 13.8056 17.9694 305 | 22.79 13.816 18.0559 306 | 21.7149 13.8265 18.1434 307 | 20.6546 13.8363 18.2666 308 | 19.5736 13.8464 18.3795 309 | 18.4453 13.8578 18.4508 310 | 17.2994 13.8695 18.5188 311 | 16.1002 13.8826 18.5423 312 | 14.7191 13.901 18.3777 313 | 26.1448 14.6497 11.5413 314 | 26.399 14.5942 13.6393 315 | 26.4402 14.5514 15.3521 316 | 26.3666 14.5159 16.8455 317 | 25.6451 14.5141 17.3797 318 | 24.6051 14.5282 17.4716 319 | 23.5233 14.5439 17.5239 320 | 22.4504 14.5588 17.6066 321 | 21.3651 14.5738 17.6904 322 | 20.2691 14.5888 17.7778 323 | 19.1782 14.6033 17.8887 324 | 18.0364 14.6196 17.9537 325 | 16.8062 14.6395 17.9316 326 | 24.6333 15.4012 12.6836 327 | 24.7562 15.3408 14.5196 328 | 24.8053 15.2869 16.1934 329 | 24.17 15.2783 16.8703 330 | 23.1807 15.2923 17.0606 331 | 22.0973 15.3117 17.1392 332 | 21.0027 15.3313 17.221 333 | 19.8969 15.3509 17.3059 334 | 18.695 15.3758 17.2887 335 | -------------------------------------------------------------------------------- /examples/reference_txt/10.txt: -------------------------------------------------------------------------------- 1 | 193 2 | 13.8726 8.49181 17.2925 3 | 13.1311 8.52328 16.5117 4 | 12.4474 8.525 7.05726 5 | 12.217 8.53316 6.29719 6 | 12.0244 8.53958 5.53451 7 | 12.0848 9.1966 17.3121 8 | 11.958 9.19936 16.5368 9 | 11.9398 9.19805 15.7595 10 | 11.3371 9.19877 7.22075 11 | 11.222 9.20112 6.45424 12 | 11.1261 9.20274 5.68579 13 | 11.5587 9.8349 17.3179 14 | 10.2675 9.87099 16.5729 15 | 10.9747 9.84885 15.7902 16 | 11.8786 9.82095 14.9834 17 | 6.38707 9.96821 8.68083 18 | 6.68215 9.95809 7.90615 19 | 6.98019 9.94786 7.1237 20 | 10.4468 9.84435 5.80022 21 | 10.8354 10.4685 17.3258 22 | 7.14952 10.5442 16.6396 23 | 6.76083 10.5512 15.9242 24 | 6.42341 10.5572 15.2136 25 | 6.24471 10.5599 14.5008 26 | 6.07215 10.5625 13.7902 27 | 5.9871 10.5633 13.0758 28 | 5.86941 10.5647 12.3649 29 | 5.8306 10.5645 11.6479 30 | 5.79631 10.5642 10.9303 31 | 5.77458 10.5636 10.211 32 | 5.81173 10.5618 9.48358 33 | 5.88021 10.5594 8.7501 34 | 5.97435 10.5563 8.01036 35 | 6.30042 10.5485 7.23099 36 | 7.28299 10.5268 6.33308 37 | 10.8491 11.081 17.3257 38 | 6.94032 11.1291 16.6441 39 | 6.59894 11.1328 15.9293 40 | 6.2302 11.1368 15.2218 41 | 6.05618 11.1383 14.5107 42 | 5.88977 11.1398 13.8017 43 | 5.78515 11.1405 13.0906 44 | 5.73652 11.1405 12.376 45 | 5.69159 11.1404 11.6611 46 | 5.66184 11.1402 10.9445 47 | 5.65683 11.1397 10.2246 48 | 5.65181 11.1391 9.50375 49 | 5.71592 11.1377 8.77255 50 | 5.87224 11.1351 8.0254 51 | 6.07308 11.1319 7.26687 52 | 6.82223 11.1219 6.41069 53 | 10.7483 11.6941 17.3268 54 | 6.79449 11.7103 16.6472 55 | 6.44054 11.7116 15.9344 56 | 6.16634 11.7125 15.2245 57 | 5.98153 11.7131 14.5146 58 | 5.8591 11.7134 13.8036 59 | 5.76001 11.7136 13.0925 60 | 5.66674 11.7138 12.3819 61 | 5.56951 11.714 11.6726 62 | 5.56477 11.7138 10.9547 63 | 5.57677 11.7136 10.2338 64 | 5.60319 11.7132 9.50988 65 | 5.71773 11.7126 8.77231 66 | 5.85172 11.7118 8.02842 67 | 6.00702 11.7109 7.2773 68 | 6.54687 11.7084 6.45707 69 | 10.7568 12.306 17.3267 70 | 6.96625 12.2904 16.6435 71 | 6.56646 12.2889 15.9304 72 | 6.32195 12.2881 15.2179 73 | 6.13546 12.2876 14.5065 74 | 5.93689 12.2869 13.7987 75 | 5.83817 12.2867 13.0867 76 | 5.80373 12.2868 12.3704 77 | 5.78306 12.2869 11.6524 78 | 5.73275 12.2869 10.937 79 | 5.68229 12.2869 10.2216 80 | 5.72749 12.2873 9.4942 81 | 5.84704 12.288 8.75463 82 | 6.0005 12.2888 8.00651 83 | 6.19848 12.2899 7.24708 84 | 6.77432 12.2925 6.41876 85 | 10.0535 12.9091 17.3344 86 | 7.19187 12.874 16.6387 87 | 6.74014 12.869 15.9248 88 | 6.47825 12.8663 15.2113 89 | 6.29103 12.8646 14.4983 90 | 6.10099 12.8628 13.7884 91 | 6.04238 12.8627 13.0717 92 | 6.02178 12.8631 12.3521 93 | 6.00117 12.8634 11.6318 94 | 5.957 12.8635 10.9134 95 | 5.91258 12.8636 10.195 96 | 5.86815 12.8636 9.47646 97 | 5.96658 12.8655 8.7383 98 | 6.14994 12.8684 7.98451 99 | 6.40064 12.8722 7.21517 100 | 7.29628 12.8841 6.33085 101 | 11.2027 13.5391 17.3218 102 | 7.31806 13.4593 16.636 103 | 6.81693 13.4499 15.9224 104 | 6.54118 13.4452 15.2087 105 | 6.35632 13.4424 14.4949 106 | 6.19111 13.44 13.7827 107 | 6.1415 13.4399 13.0644 108 | 6.11543 13.4404 12.3442 109 | 6.08599 13.4408 11.6238 110 | 6.05169 13.4412 10.9035 111 | 6.02754 13.4417 10.1817 112 | 6.00337 13.4422 9.45941 113 | 6.06688 13.4446 8.72459 114 | 6.26712 13.4498 7.96726 115 | 6.5942 13.4577 7.18462 116 | 7.86843 13.4855 6.23448 117 | 7.32411 14.0432 16.6359 118 | 6.9304 14.0332 15.9188 119 | 6.62843 14.0258 15.205 120 | 6.40473 14.0207 14.4923 121 | 6.22006 14.0168 13.7809 122 | 6.14586 14.0161 13.0641 123 | 6.11346 14.0165 12.3444 124 | 6.07303 14.0168 11.625 125 | 6.03252 14.017 10.9055 126 | 6.00369 14.0176 10.1845 127 | 6.08146 14.0214 9.44956 128 | 6.19411 14.0261 8.7072 129 | 6.30729 14.0309 7.96134 130 | 6.64081 14.0422 7.17727 131 | 8.65271 14.1028 6.10239 132 | 7.7494 14.643 16.6268 133 | 7.1662 14.623 15.9113 134 | 6.82636 14.6121 15.1966 135 | 6.66017 14.6077 14.4789 136 | 6.49323 14.6033 13.7636 137 | 6.3618 14.6002 13.0482 138 | 6.28769 14.5993 12.3297 139 | 6.2469 14.5996 11.6086 140 | 6.2135 14.6002 10.8865 141 | 6.22056 14.6023 10.1594 142 | 6.30288 14.6073 9.42164 143 | 6.42818 14.6139 8.67521 144 | 6.63161 14.6234 7.91359 145 | 7.1057 14.6432 7.1039 146 | 10.9457 15.3766 16.5584 147 | 8.96686 15.2884 15.854 148 | 8.1895 15.2551 15.1391 149 | 7.9141 15.2447 14.4129 150 | 7.68413 15.2365 13.6885 151 | 7.56342 15.2332 12.9598 152 | 7.49152 15.2322 12.2285 153 | 7.44532 15.2324 11.4953 154 | 7.50922 15.2377 10.7504 155 | 7.6426 15.2461 9.99506 156 | 7.8483 15.2579 9.22674 157 | 8.05551 15.2698 8.4528 158 | 8.61583 15.298 7.62143 159 | 10.4611 15.3857 6.57433 160 | 11.3759 16.0167 15.7775 161 | 10.978 15.998 15.0214 162 | 10.5827 15.9794 14.2724 163 | 10.4117 15.973 13.5164 164 | 10.2413 15.9665 12.7628 165 | 10.1153 15.9625 12.008 166 | 10.099 15.9644 11.2444 167 | 10.1017 15.9674 10.4781 168 | 10.2465 15.9781 9.69411 169 | 10.5053 15.9951 8.89165 170 | 10.7018 16.0087 8.09114 171 | 10.9081 16.0228 7.28391 172 | 13.4188 16.7623 15.7125 173 | 12.4686 16.7063 14.9585 174 | 12.2031 16.693 14.1871 175 | 11.9554 16.6809 13.419 176 | 11.8536 16.6778 12.6442 177 | 11.7928 16.6773 11.867 178 | 11.758 16.6785 11.0876 179 | 11.7498 16.6813 10.3049 180 | 11.86 16.6916 9.50763 181 | 12.0181 16.7049 8.70086 182 | 12.177 16.7182 7.88952 183 | 12.9366 16.7695 6.98523 184 | 13.9837 17.4412 14.8945 185 | 13.8257 17.4338 14.1016 186 | 13.7509 17.4324 13.3057 187 | 13.6522 17.4293 12.5119 188 | 13.6847 17.4354 11.708 189 | 13.682 17.4391 10.9057 190 | 13.6067 17.4376 10.1099 191 | 13.6407 17.444 9.30182 192 | 13.7417 17.455 8.48349 193 | 13.8431 17.4662 7.66181 194 | 15.9309 18.2533 11.5193 195 | -------------------------------------------------------------------------------- /examples/reference_txt/2.txt: -------------------------------------------------------------------------------- 1 | 335 2 | 41.0294 6.1899 7.49789 3 | 40.1073 6.15055 7.74457 4 | 41.9648 6.75013 18.811 5 | 41.5606 6.75835 19.4852 6 | 40.4041 6.6953 19.49 7 | 39.2215 6.63091 19.4968 8 | 21.9684 5.6781 19.2973 9 | 21.2489 5.66726 19.931 10 | 42.0762 6.92048 7.40994 11 | 41.6886 6.93436 8.23073 12 | 40.6944 6.89245 8.38402 13 | 39.5156 6.83463 8.36069 14 | 42.8541 7.40194 18.5908 15 | 42.4534 7.40925 19.2621 16 | 41.5545 7.3745 19.4797 17 | 40.4078 7.31969 19.4933 18 | 39.2527 7.26514 19.5238 19 | 22.2582 5.96541 7.44859 20 | 21.8889 5.98713 8.44472 21 | 20.4121 5.92001 8.54936 22 | 22.7299 6.43474 18.6962 23 | 22.6761 6.47481 19.7708 24 | 21.2875 6.41515 19.9562 25 | 19.6858 6.34072 20.0287 26 | 46.537 7.83507 8.88374 27 | 46.9486 7.91101 10.5904 28 | 47.1832 7.97098 12.0479 29 | 47.1676 8.00952 13.1871 30 | 47.0612 8.04004 14.2034 31 | 47.0786 8.07979 15.3374 32 | 46.8456 8.0991 16.1819 33 | 46.5628 8.11418 16.9638 34 | 46.2701 8.12821 17.7274 35 | 45.7765 8.12663 18.2817 36 | 45.1243 8.11309 18.6811 37 | 44.3668 8.0919 18.9863 38 | 43.5183 8.06434 19.2169 39 | 42.6427 8.03528 19.4369 40 | 41.5529 7.99112 19.4782 41 | 40.4001 7.94317 19.4864 42 | 39.1384 7.88827 19.4247 43 | 38.003 7.84329 19.4978 44 | 36.6181 7.78151 19.386 45 | 35.3243 7.72714 19.379 46 | 33.9805 7.67023 19.3589 47 | 32.7525 7.62223 19.4569 48 | 31.3897 7.56585 19.4751 49 | 30.0204 7.50996 19.5155 50 | 28.5417 7.44766 19.5027 51 | 27.1786 7.39405 19.6018 52 | 25.6661 7.33145 19.6215 53 | 24.1172 7.26748 19.6454 54 | 22.8682 7.22396 19.8993 55 | 21.2423 7.15689 19.9266 56 | 19.6717 7.09439 20.0197 57 | 46.7647 8.49189 9.15853 58 | 47.1864 8.55669 10.8715 59 | 47.1868 8.59108 12.0521 60 | 47.205 8.626 13.2295 61 | 47.1577 8.65581 14.3107 62 | 47.0834 8.68322 15.3426 63 | 46.8521 8.69968 16.1889 64 | 46.627 8.71622 17.0309 65 | 46.3499 8.72907 17.8091 66 | 45.8271 8.72581 18.3325 67 | 45.1531 8.71292 18.7094 68 | 44.3857 8.69435 19.0046 69 | 43.5771 8.67352 19.2723 70 | 42.6334 8.64466 19.4283 71 | 41.5467 8.60748 19.4726 72 | 40.4004 8.56732 19.4867 73 | 39.1976 8.52443 19.476 74 | 38.0596 8.48618 19.5459 75 | 36.7537 8.43859 19.4987 76 | 35.4684 8.39302 19.4963 77 | 34.2537 8.35236 19.5766 78 | 32.9425 8.30678 19.605 79 | 31.6021 8.26027 19.6372 80 | 30.2332 8.2129 19.6745 81 | 28.7952 8.16238 19.6879 82 | 27.3849 8.11425 19.7493 83 | 25.8777 8.06149 19.7695 84 | 24.4124 8.01188 19.8473 85 | 22.889 7.95988 19.9133 86 | 21.2654 7.90324 19.9418 87 | 19.6601 7.84847 20.0123 88 | 17.3553 7.75705 19.6744 89 | 46.8847 9.13665 9.3033 90 | 47.2237 9.18487 10.9155 91 | 47.2478 9.21433 12.1227 92 | 47.2641 9.24277 13.2965 93 | 47.2226 9.26744 14.3828 94 | 47.0952 9.28692 15.3554 95 | 46.9118 9.30298 16.2526 96 | 46.6786 9.31605 17.0849 97 | 46.3934 9.32611 17.8536 98 | 45.8699 9.32338 18.3754 99 | 45.1969 9.31286 18.7524 100 | 44.4153 9.29692 19.033 101 | 43.5848 9.27874 19.2796 102 | 42.6162 9.25385 19.4125 103 | 41.5288 9.22341 19.4565 104 | 40.3913 9.19099 19.4787 105 | 39.245 9.1587 19.5171 106 | 38.0938 9.12674 19.5749 107 | 36.8873 9.09263 19.6098 108 | 35.6242 9.05637 19.6231 109 | 34.353 9.02033 19.6557 110 | 33.0452 8.98315 19.6851 111 | 31.7043 8.94503 19.7152 112 | 30.3541 8.90711 19.7648 113 | 28.9357 8.86665 19.7906 114 | 27.5247 8.82718 19.8492 115 | 26.0622 8.786 19.8985 116 | 24.5564 8.74352 19.9458 117 | 22.9628 8.69776 19.9627 118 | 21.2127 8.64576 19.9072 119 | 19.632 8.60205 19.9943 120 | 17.7649 8.54646 19.9306 121 | 15.4407 8.47183 19.6234 122 | 47.0041 9.77831 9.44737 123 | 47.2082 9.80977 10.8972 124 | 47.3104 9.83612 12.1951 125 | 47.3505 9.85925 13.3946 126 | 47.2558 9.87611 14.4198 127 | 47.1075 9.89035 15.3689 128 | 46.9612 9.90441 16.3053 129 | 46.7251 9.91443 17.1335 130 | 46.4368 9.92211 17.898 131 | 45.9007 9.91945 18.4064 132 | 45.2406 9.91179 18.7953 133 | 44.4229 9.89791 19.0404 134 | 43.5926 9.88377 19.287 135 | 42.5991 9.86342 19.3966 136 | 41.5087 9.83964 19.4383 137 | 40.372 9.81446 19.4616 138 | 39.2453 9.79012 19.5174 139 | 38.0935 9.76523 19.5747 140 | 36.9146 9.73975 19.6325 141 | 35.6856 9.71282 19.673 142 | 34.4131 9.68472 19.7036 143 | 33.109 9.65592 19.7348 144 | 31.772 9.6264 19.7669 145 | 30.4009 9.59612 19.7997 146 | 28.9996 9.56525 19.8373 147 | 27.5544 9.53331 19.8705 148 | 26.0707 9.50052 19.9045 149 | 24.6044 9.46887 19.9786 150 | 23.0341 9.43408 20.0104 151 | 21.2809 9.39351 19.9519 152 | 19.6526 9.35786 20.0074 153 | 17.8076 9.31537 19.9573 154 | 15.5254 9.25873 19.6752 155 | 46.6917 10.4031 9.07048 156 | 46.9187 10.4264 10.555 157 | 46.9607 10.4434 11.7901 158 | 47.0039 10.4601 13.0013 159 | 46.9515 10.4736 14.0815 160 | 46.8499 10.4853 15.0883 161 | 46.7369 10.4964 16.066 162 | 46.5266 10.5044 16.9261 163 | 46.2958 10.5116 17.7537 164 | 45.7571 10.5097 18.2623 165 | 45.1304 10.5052 18.6871 166 | 44.3272 10.4957 18.9482 167 | 43.4947 10.4856 19.1947 168 | 42.6135 10.4743 19.41 169 | 41.5057 10.4568 19.4355 170 | 40.3787 10.4391 19.4675 171 | 39.2456 10.4215 19.5176 172 | 38.0933 10.4037 19.5745 173 | 36.8651 10.3842 19.5914 174 | 35.6429 10.3651 19.6383 175 | 34.3865 10.3455 19.6823 176 | 33.0814 10.3249 19.7133 177 | 31.7435 10.3038 19.7451 178 | 30.3795 10.2824 19.7837 179 | 28.9833 10.2605 19.8254 180 | 27.548 10.2379 19.8659 181 | 26.0641 10.2145 19.8999 182 | 24.5935 10.1918 19.9712 183 | 23.0411 10.1674 20.015 184 | 21.349 10.1399 19.9965 185 | 19.6496 10.1127 20.0055 186 | 17.818 10.0827 19.9638 187 | 15.5074 10.0415 19.6642 188 | 45.6471 11.0217 7.81011 189 | 46.1732 11.0416 9.67381 190 | 46.4066 11.0556 11.1485 191 | 46.5538 11.0677 12.4906 192 | 46.5419 11.0766 13.6261 193 | 46.463 11.0841 14.6669 194 | 46.3385 11.0906 15.6409 195 | 46.0802 11.0946 16.4593 196 | 45.818 11.0985 17.2644 197 | 45.5039 11.1013 18.0083 198 | 44.9239 11.0995 18.4842 199 | 44.1695 11.0947 18.7964 200 | 43.3443 11.0888 19.0529 201 | 42.5006 11.0827 19.3057 202 | 41.5345 11.0746 19.4616 203 | 40.3913 11.0637 19.4786 204 | 39.2457 11.0529 19.5177 205 | 38.0345 11.0413 19.5245 206 | 36.8214 11.0298 19.555 207 | 35.5977 11.0184 19.6015 208 | 34.3444 11.0066 19.6488 209 | 33.0539 10.9945 19.6918 210 | 31.7219 10.982 19.7286 211 | 30.3598 10.9691 19.7691 212 | 28.963 10.956 19.8105 213 | 27.53 10.9425 19.853 214 | 26.0572 10.9286 19.8951 215 | 24.4915 10.9135 19.9015 216 | 22.9506 10.8991 19.9545 217 | 21.3711 10.8843 20.0109 218 | 19.5693 10.8664 19.9542 219 | 17.7214 10.8482 19.9034 220 | 15.4743 10.8244 19.644 221 | 44.5657 11.6736 9.01644 222 | 45.1229 11.6803 10.867 223 | 45.2438 11.6842 12.183 224 | 45.3395 11.6878 13.4432 225 | 45.1575 11.6897 14.3807 226 | 44.9438 11.6914 15.2714 227 | 44.9259 11.6942 16.3509 228 | 44.5983 11.6951 17.0999 229 | 44.1941 11.6956 17.767 230 | 43.7211 11.6957 18.3648 231 | 42.9887 11.6942 18.7176 232 | 42.1302 11.6921 18.9637 233 | 41.2277 11.6898 19.1842 234 | 40.1126 11.6863 19.2319 235 | 38.9307 11.6826 19.2446 236 | 37.72 11.6787 19.2575 237 | 36.5322 11.675 19.3146 238 | 35.3155 11.6713 19.3718 239 | 34.3882 11.6691 19.6837 240 | 33.282 11.666 19.8698 241 | 31.5573 11.6598 19.603 242 | 30.1037 11.655 19.5778 243 | 28.6849 11.6506 19.6073 244 | 27.3199 11.6464 19.7028 245 | 25.8601 11.6419 19.7572 246 | 24.3622 11.6372 19.813 247 | 22.726 11.6319 19.8042 248 | 21.0581 11.6265 19.8061 249 | 19.3886 11.6213 19.8386 250 | 17.502 11.615 19.7662 251 | 14.6449 11.6041 19.137 252 | 41.2548 12.3339 10.2164 253 | 42.0863 12.3257 12.2845 254 | 42.3275 12.3212 13.6899 255 | 42.0564 12.3198 14.5499 256 | 41.7724 12.3185 15.3874 257 | 41.4163 12.3176 16.1464 258 | 41.1273 12.3164 16.9629 259 | 40.7242 12.3158 17.6655 260 | 40.0818 12.3166 18.148 261 | 39.3772 12.3178 18.5806 262 | 38.2942 12.3209 18.6926 263 | 37.1922 12.3242 18.8094 264 | 35.9856 12.3279 18.8602 265 | 34.973 12.3306 19.0931 266 | 34.3258 12.3312 19.634 267 | 33.6376 12.3321 20.147 268 | 30.943 12.3434 19.1342 269 | 29.556 12.3478 19.1687 270 | 28.1372 12.3523 19.2071 271 | 26.7202 12.3566 19.274 272 | 25.2292 12.3613 19.3159 273 | 23.6819 12.3662 19.3475 274 | 22.104 12.3712 19.388 275 | 20.3216 12.3771 19.3242 276 | 17.89 12.3861 18.8799 277 | 33.2018 13.1154 5.66749 278 | 35.8212 13.0594 9.53945 279 | 36.1544 13.0439 11.0818 280 | 36.3106 13.0318 12.4218 281 | 36.4948 13.0194 13.7603 282 | 36.321 13.0132 14.7472 283 | 36.1202 13.0076 15.6964 284 | 35.9478 13.0016 16.6579 285 | 35.705 12.9969 17.5466 286 | 35.2484 12.9958 18.2474 287 | 34.4762 12.9997 18.6888 288 | 33.9627 12.9995 19.3447 289 | 33.5253 12.998 20.0595 290 | 30.4652 13.0378 18.7695 291 | 29.0568 13.0512 18.7959 292 | 27.6017 13.0651 18.8157 293 | 26.1436 13.0788 18.8617 294 | 24.6159 13.0933 18.8869 295 | 22.9932 13.1091 18.8763 296 | 20.9441 13.131 18.6119 297 | 34.1388 13.798 9.14174 298 | 34.6268 13.7677 10.8345 299 | 34.7819 13.7474 12.1787 300 | 34.9331 13.7276 13.4922 301 | 34.884 13.7137 14.6017 302 | 34.7784 13.7016 15.6439 303 | 34.6074 13.6915 16.6147 304 | 34.3831 13.683 17.528 305 | 33.9128 13.6813 18.2303 306 | 33.0636 13.6897 18.6284 307 | 31.4084 13.7193 18.4087 308 | 29.9803 13.7424 18.3995 309 | 28.5351 13.7655 18.4063 310 | 27.0578 13.7891 18.4182 311 | 25.5581 13.8129 18.4431 312 | 23.9215 13.8398 18.4012 313 | 22.0289 13.8727 18.2166 314 | 32.4916 14.5602 8.8215 315 | 32.9811 14.5178 10.516 316 | 33.1974 14.4868 11.9225 317 | 33.3666 14.4583 13.258 318 | 33.3436 14.4376 14.3997 319 | 33.2898 14.4185 15.4959 320 | 33.1751 14.4021 16.5238 321 | 32.9487 14.3901 17.4456 322 | 32.1748 14.3987 17.9204 323 | 30.8851 14.4263 18.0006 324 | 29.405 14.4604 17.9604 325 | 27.9174 14.4942 17.9449 326 | 26.3891 14.5289 17.9295 327 | 24.8339 14.564 17.9253 328 | 31.367 15.2607 11.4872 329 | 31.4234 15.2294 12.7346 330 | 31.5289 15.1962 14.0009 331 | 31.5294 15.1686 15.1558 332 | 31.4364 15.1461 16.2149 333 | 31.341 15.1241 17.2561 334 | 30.3174 15.1465 17.558 335 | 28.7878 15.1925 17.4894 336 | 27.2754 15.2368 17.4655 337 | -------------------------------------------------------------------------------- /examples/reference_txt/3.txt: -------------------------------------------------------------------------------- 1 | 342 2 | 20.226 5.49049 6.57653 3 | 20.8957 5.51227 5.9616 4 | 21.8453 5.47736 6.0062 5 | 22.8602 5.43138 6.17461 6 | 19.7676 5.44522 18.1638 7 | 20.5546 5.46327 17.5166 8 | 21.6018 5.42781 17.5815 9 | 19.3138 6.20167 6.59652 10 | 19.9978 6.21833 6.01895 11 | 20.9044 6.1936 5.98223 12 | 21.8551 6.16221 6.02881 13 | 22.8041 6.13256 6.04902 14 | 41.0717 5.51326 7.19367 15 | 41.9845 5.50739 6.8605 16 | 14.49 6.92075 8.18895 17 | 15.3501 6.90283 8.10515 18 | 16.2229 6.88353 8.03966 19 | 17.1706 6.85159 8.16251 20 | 17.4881 6.9336 6.56762 21 | 18.3359 6.91935 6.42461 22 | 19.1313 6.91467 6.13712 23 | 19.9529 6.90592 5.90936 24 | 20.9131 6.87531 6.00286 25 | 21.8628 6.8478 6.04647 26 | 22.803 6.82301 6.04653 27 | 23.7672 6.79576 6.07898 28 | 24.9143 6.7429 6.47799 29 | 25.8793 6.71846 6.46046 30 | 26.9033 6.68676 6.54345 31 | 27.9675 6.65086 6.682 32 | 28.9639 6.62554 6.66518 33 | 30.1766 6.5727 7.03356 34 | 31.2527 6.5396 7.11708 35 | 40.1669 5.63535 18.927 36 | 41.1868 5.62826 18.5777 37 | 39.759 6.32649 6.92053 38 | 40.7989 6.30641 6.79112 39 | 41.9663 6.2732 6.83416 40 | 43.1482 6.2395 6.87896 41 | 14.2094 7.3671 13.0208 42 | 13.8666 7.57228 9.00235 43 | 14.3956 7.61432 7.90041 44 | 14.9797 7.64463 7.01134 45 | 15.7517 7.64259 6.69391 46 | 16.5451 7.63726 6.43337 47 | 17.3809 7.62567 6.28043 48 | 18.2362 7.61175 6.16606 49 | 19.0621 7.60285 5.96301 50 | 19.9576 7.58446 5.92089 51 | 20.9204 7.55759 6.02015 52 | 21.8525 7.53615 6.02294 53 | 22.8019 7.51343 6.04404 54 | 23.7662 7.48979 6.07678 55 | 24.7674 7.46251 6.16641 56 | 25.7745 7.43568 6.24424 57 | 26.8167 7.40572 6.36937 58 | 27.8131 7.38246 6.37947 59 | 28.8315 7.35759 6.41217 60 | 29.8633 7.33216 6.44991 61 | 30.9436 7.3023 6.55537 62 | 31.997 7.27654 6.58991 63 | 33.0792 7.24864 6.65448 64 | 34.1686 7.22101 6.71027 65 | 35.2738 7.19273 6.77188 66 | 36.3927 7.16407 6.83499 67 | 37.5046 7.13712 6.8666 68 | 38.6368 7.10908 6.91077 69 | 39.6864 7.09 6.81096 70 | 40.7939 7.06604 6.7837 71 | 41.9668 7.03672 6.83497 72 | 43.15 7.0074 6.88155 73 | 44.447 6.96867 7.06672 74 | 13.794 8.0167 14.7335 75 | 13.9788 8.11575 12.2641 76 | 13.9021 8.24811 9.11478 77 | 14.3052 8.30227 7.62412 78 | 14.9105 8.32452 6.80689 79 | 15.6899 8.32149 6.51737 80 | 16.503 8.31409 6.31708 81 | 17.3258 8.30584 6.133 82 | 18.1791 8.29413 6.01782 83 | 19.0673 8.27869 5.9761 84 | 19.963 8.26312 5.93404 85 | 20.9038 8.24299 5.98091 86 | 21.8486 8.22335 6.01392 87 | 22.8082 8.20296 6.05818 88 | 23.7617 8.18416 6.06704 89 | 24.7398 8.16356 6.10777 90 | 25.73 8.14256 6.15229 91 | 26.7256 8.12191 6.18612 92 | 27.7378 8.10044 6.23187 93 | 28.7671 8.07816 6.28921 94 | 29.8124 8.05521 6.35513 95 | 30.8553 8.0334 6.39489 96 | 31.9078 8.01152 6.4317 97 | 32.9799 7.98868 6.48266 98 | 34.0658 7.96544 6.53657 99 | 35.1648 7.9419 6.5918 100 | 36.2969 7.91634 6.6804 101 | 37.4218 7.89228 6.73606 102 | 38.5311 7.87035 6.74772 103 | 39.6388 7.84929 6.7391 104 | 40.7952 7.825 6.78566 105 | 41.9655 7.80041 6.83302 106 | 43.1518 7.77535 6.88414 107 | 44.357 7.74964 6.94214 108 | 45.8522 7.7028 7.37376 109 | 13.5871 8.76818 14.0287 110 | 13.7644 8.84931 11.5602 111 | 13.9409 8.92549 9.23753 112 | 14.2961 8.97567 7.59629 113 | 14.9071 8.99319 6.79675 114 | 15.6598 8.99371 6.43129 115 | 16.4874 8.98598 6.27383 116 | 17.3193 8.9782 6.11564 117 | 18.1823 8.96759 6.02609 118 | 19.0716 8.95486 5.98689 119 | 19.9674 8.94212 5.94486 120 | 20.8994 8.92651 5.97035 121 | 21.8411 8.91072 5.99656 122 | 22.8022 8.89388 6.04471 123 | 23.7549 8.87856 6.05206 124 | 24.7122 8.86352 6.04923 125 | 25.6996 8.84653 6.08951 126 | 26.7107 8.82827 6.15621 127 | 27.7223 8.81073 6.20146 128 | 28.7373 8.79363 6.2323 129 | 29.7632 8.77634 6.26346 130 | 30.8084 8.75824 6.30971 131 | 31.8677 8.73976 6.36051 132 | 32.9391 8.72106 6.4119 133 | 34.0229 8.70215 6.46388 134 | 35.1192 8.68302 6.51647 135 | 36.2152 8.6646 6.54849 136 | 37.3436 8.64457 6.61262 137 | 38.5 8.62332 6.69968 138 | 39.6249 8.6049 6.71817 139 | 40.8051 8.58344 6.8002 140 | 41.9757 8.5633 6.84786 141 | 43.1475 8.54375 6.87792 142 | 44.369 8.52168 6.95878 143 | 45.8143 8.48645 7.32245 144 | 13.6639 9.4785 14.2903 145 | 13.7831 9.54761 11.6215 146 | 13.9944 9.60357 9.40694 147 | 14.3458 9.64312 7.74801 148 | 14.9387 9.65852 6.89003 149 | 15.6706 9.66083 6.46217 150 | 16.4922 9.65535 6.28708 151 | 17.3279 9.64899 6.13865 152 | 18.1807 9.64159 6.02198 153 | 19.0747 9.63132 5.99449 154 | 19.9716 9.62132 5.95509 155 | 20.9002 9.60944 5.97237 156 | 21.8348 9.59769 5.98211 157 | 22.7864 9.58527 6.00924 158 | 23.7345 9.57364 6.00766 159 | 24.7076 9.56083 6.03963 160 | 25.7074 9.54678 6.10568 161 | 26.7108 9.5331 6.15635 162 | 27.7172 9.51979 6.19141 163 | 28.732 9.50649 6.22218 164 | 29.761 9.49285 6.25928 165 | 30.8033 9.47894 6.30034 166 | 31.8572 9.46488 6.34186 167 | 32.9229 9.45066 6.38385 168 | 34.0006 9.43627 6.42631 169 | 35.0906 9.42173 6.46924 170 | 36.1975 9.40677 6.51995 171 | 37.3207 9.39146 6.57652 172 | 38.4689 9.37535 6.65171 173 | 39.6215 9.35954 6.71307 174 | 40.8016 9.34286 6.79506 175 | 41.9675 9.32743 6.83589 176 | 43.1436 9.31199 6.87255 177 | 44.3658 9.2948 6.95425 178 | 45.7868 9.26856 7.28524 179 | 47.4916 9.22969 7.96227 180 | 13.833 10.1866 14.8665 181 | 13.907 10.2395 12.0284 182 | 14.0812 10.2823 9.68162 183 | 14.4072 10.3124 7.93572 184 | 14.9706 10.3255 6.98419 185 | 15.7008 10.3273 6.54852 186 | 16.497 10.325 6.30033 187 | 17.3365 10.3202 6.16167 188 | 18.1814 10.3154 6.02372 189 | 19.073 10.3082 5.99036 190 | 19.9747 10.3008 5.96262 191 | 20.8942 10.2928 5.95799 192 | 21.8286 10.2844 5.96766 193 | 22.7722 10.2759 5.97742 194 | 23.7375 10.2667 6.01412 195 | 24.7171 10.2573 6.05968 196 | 25.7103 10.2476 6.11166 197 | 26.7059 10.2382 6.14652 198 | 27.712 10.2287 6.18135 199 | 28.7309 10.219 6.22002 200 | 29.7665 10.2089 6.26951 201 | 30.815 10.1987 6.32173 202 | 31.8756 10.1884 6.37455 203 | 32.9484 10.178 6.42798 204 | 34.0329 10.1675 6.48096 205 | 35.1062 10.1578 6.49501 206 | 36.2239 10.1467 6.56251 207 | 37.3529 10.1355 6.62731 208 | 38.4687 10.1253 6.65149 209 | 39.6168 10.1141 6.70601 210 | 40.7782 10.1029 6.76054 211 | 41.9535 10.0915 6.81571 212 | 43.1372 10.0802 6.86343 213 | 44.4191 10.0659 7.02801 214 | 45.9342 10.0439 7.48497 215 | 13.9785 10.9056 15.3621 216 | 14.0345 10.9383 12.4468 217 | 14.2183 10.9637 10.1156 218 | 14.463 10.9852 8.10623 219 | 15.0039 10.994 7.08263 220 | 15.7172 10.9957 6.59526 221 | 16.5155 10.9943 6.35144 222 | 17.3606 10.9913 6.22628 223 | 18.2128 10.9881 6.10533 224 | 19.1105 10.9836 6.08483 225 | 20.0245 10.9788 6.08418 226 | 20.9563 10.9737 6.1053 227 | 21.8981 10.9685 6.12799 228 | 22.8382 10.9635 6.12533 229 | 23.794 10.9583 6.13739 230 | 24.7769 10.9526 6.1865 231 | 25.7704 10.9468 6.23569 232 | 26.7667 10.9412 6.26878 233 | 27.7838 10.9352 6.32195 234 | 28.8068 10.9293 6.36503 235 | 29.8345 10.9236 6.39629 236 | 30.8705 10.9178 6.42255 237 | 31.9148 10.9121 6.44411 238 | 32.9879 10.9058 6.49636 239 | 33.9899 10.9015 6.40811 240 | 35.0362 10.8963 6.37941 241 | 36.2904 10.8864 6.66991 242 | 37.4514 10.879 6.78275 243 | 38.5879 10.8724 6.83537 244 | 39.7074 10.8665 6.84271 245 | 40.8365 10.8605 6.84655 246 | 41.9766 10.8544 6.84913 247 | 43.3262 10.8441 7.13062 248 | 44.8114 10.8313 7.5709 249 | 14.3521 11.6416 13.4893 250 | 14.537 11.6502 11.1248 251 | 14.877 11.6562 9.37186 252 | 15.3211 11.6606 8.01959 253 | 15.9315 11.6626 7.20747 254 | 16.7307 11.6621 6.9463 255 | 17.5693 11.6613 6.78493 256 | 18.4169 11.6604 6.63479 257 | 19.285 11.6592 6.52382 258 | 20.1704 11.658 6.44063 259 | 21.0892 11.6565 6.42053 260 | 22.0366 11.6547 6.44718 261 | 22.9877 11.653 6.46036 262 | 23.9353 11.6514 6.44519 263 | 24.9154 11.6495 6.48015 264 | 25.9059 11.6476 6.51548 265 | 26.9176 11.6457 6.57219 266 | 27.9456 11.6436 6.63897 267 | 28.9848 11.6415 6.70503 268 | 30.0264 11.6395 6.75378 269 | 31.0948 11.6373 6.83014 270 | 32.169 11.6352 6.89495 271 | 33.0563 11.6347 6.61483 272 | 33.8136 11.6353 6.11009 273 | 34.8716 11.6334 6.10745 274 | 36.5356 11.6269 7.06562 275 | 37.75 11.624 7.25387 276 | 38.9034 11.6218 7.32213 277 | 40.0686 11.6195 7.38767 278 | 41.383 11.6161 7.65313 279 | 17.8125 12.361 12.5797 280 | 17.9534 12.3528 10.3263 281 | 18.4259 12.3489 9.07853 282 | 18.9543 12.3459 8.02938 283 | 19.6862 12.3453 7.5338 284 | 20.4888 12.3455 7.21837 285 | 21.3733 12.3466 7.09448 286 | 22.2717 12.3478 6.98908 287 | 23.2043 12.3492 6.94556 288 | 24.1561 12.3508 6.92652 289 | 25.1327 12.3526 6.94106 290 | 26.1241 12.3544 6.96597 291 | 27.1351 12.3564 7.00968 292 | 28.1674 12.3584 7.07366 293 | 29.2093 12.3605 7.13391 294 | 30.254 12.3625 7.17762 295 | 31.3219 12.3646 7.24292 296 | 32.3938 12.3667 7.2936 297 | 33.1864 12.3664 6.84018 298 | 33.802 12.3646 6.0904 299 | 34.5055 12.3636 5.50278 300 | 19.6291 13.0895 12.2999 301 | 19.9286 13.0714 10.5578 302 | 20.3682 13.0589 9.25012 303 | 20.919 13.0507 8.26905 304 | 21.6665 13.0492 7.7899 305 | 22.5012 13.0505 7.51791 306 | 23.4236 13.0544 7.437 307 | 24.3822 13.0593 7.41915 308 | 25.3525 13.0643 7.40727 309 | 26.3426 13.0696 7.41698 310 | 27.352 13.0752 7.44589 311 | 28.3873 13.0814 7.50455 312 | 29.4363 13.0876 7.56764 313 | 30.484 13.0936 7.60621 314 | 31.5424 13.0996 7.64362 315 | 32.6076 13.1055 7.67283 316 | 33.6338 13.1103 7.61483 317 | 34.6856 13.1155 7.58455 318 | 21.5007 13.8286 12.1006 319 | 21.8724 13.8035 10.598 320 | 22.3201 13.7836 9.34024 321 | 22.8529 13.7692 8.32843 322 | 23.6458 13.7687 7.93477 323 | 24.6107 13.7769 7.91707 324 | 25.5721 13.7845 7.8728 325 | 26.5617 13.7931 7.86951 326 | 27.5771 13.8026 7.89853 327 | 28.6142 13.8127 7.9492 328 | 29.6624 13.8228 7.9995 329 | 30.7191 13.833 8.04422 330 | 31.7688 13.8424 8.05507 331 | 32.8256 13.8518 8.05946 332 | 33.9807 13.8649 8.21547 333 | 23.6025 14.5933 12.3821 334 | 23.8876 14.5527 10.713 335 | 24.2546 14.5198 9.29879 336 | 24.8994 14.5078 8.54616 337 | 25.7943 14.5135 8.344 338 | 26.7843 14.5253 8.32897 339 | 27.8073 14.5387 8.36137 340 | 28.8632 14.5537 8.43714 341 | 29.9187 14.5681 8.48913 342 | 30.9583 14.5809 8.48982 343 | 32.0148 14.5942 8.50216 344 | -------------------------------------------------------------------------------- /examples/reference_txt/4.txt: -------------------------------------------------------------------------------- 1 | 278 2 | 37.1798 6.36726 8.18081 3 | 37.4676 6.38246 8.99237 4 | 37.0227 6.34565 9.85332 5 | 35.3073 6.15327 21.1858 6 | 36.0299 6.19976 21.8987 7 | 35.7998 6.17773 22.8196 8 | 37.7469 7.0654 8.15098 9 | 38.5492 7.11105 8.92418 10 | 41.2534 7.27596 9.5423 11 | 42.0158 7.31939 10.2684 12 | 42.3482 7.33591 11.0205 13 | 42.4065 7.33523 11.7959 14 | 42.5091 7.33734 12.5664 15 | 42.6672 7.34294 13.3292 16 | 42.7485 7.34371 14.1007 17 | 42.7961 7.34237 14.8768 18 | 42.7314 7.33393 15.6711 19 | 42.6453 7.32412 16.4719 20 | 42.3744 7.3026 17.3091 21 | 42.2554 7.29066 18.1247 22 | 42.3333 7.29118 18.9048 23 | 41.6216 7.24161 19.8516 24 | 41.3064 7.21712 20.7272 25 | 36.8619 6.9302 22.5723 26 | 37.7552 7.7238 8.15054 27 | 40.1874 7.8518 8.82088 28 | 41.6008 7.9247 9.51676 29 | 42.1451 7.9505 10.2575 30 | 42.4749 7.96468 11.0086 31 | 42.608 7.96817 11.7748 32 | 42.7149 7.97024 12.5427 33 | 42.8558 7.97417 13.3055 34 | 42.9399 7.97501 14.0745 35 | 42.9155 7.96991 14.8592 36 | 42.763 7.9578 15.6661 37 | 42.7086 7.95103 16.4612 38 | 42.6565 7.94438 17.2585 39 | 42.5151 7.93283 18.0754 40 | 42.3928 7.92229 18.8929 41 | 42.0939 7.90203 19.7518 42 | 41.7618 7.8799 20.6261 43 | 41.3493 7.8533 21.5277 44 | 13.9598 7.30333 6.19789 45 | 15.9505 7.39012 7.20083 46 | 28.8713 7.97793 7.70318 47 | 37.7525 8.38155 8.15068 48 | 40.2836 8.4944 8.81482 49 | 41.7262 8.55743 9.50755 50 | 42.283 8.57984 10.2459 51 | 42.5793 8.5903 10.9987 52 | 42.7269 8.59393 11.7623 53 | 42.8386 8.59591 12.5284 54 | 42.962 8.59843 13.2921 55 | 43.0147 8.59769 14.0643 56 | 43.0308 8.59526 14.8422 57 | 42.8787 8.58503 15.6479 58 | 42.8076 8.57854 16.4445 59 | 42.7818 8.57414 17.2361 60 | 42.6267 8.56372 18.0542 61 | 42.4666 8.55306 18.8781 62 | 42.2018 8.5375 19.729 63 | 41.902 8.52029 20.5949 64 | 41.4934 8.49797 21.4941 65 | 13.7472 8.14931 6.20244 66 | 21.3556 8.43074 7.02901 67 | 30.1623 8.75762 7.64871 68 | 37.7488 9.03932 8.15087 69 | 40.4079 9.13645 8.80698 70 | 41.8511 9.18805 9.49836 71 | 42.4546 9.20815 10.2315 72 | 42.6817 9.2141 10.989 73 | 42.8296 9.21709 11.7515 74 | 42.9619 9.21949 12.5141 75 | 43.0475 9.22013 13.2813 76 | 43.0746 9.21856 14.0561 77 | 43.1022 9.217 14.8317 78 | 43.0402 9.21205 15.6223 79 | 42.9584 9.20634 16.4191 80 | 42.8987 9.20146 17.2151 81 | 42.7396 9.19279 18.0327 82 | 42.5307 9.18221 18.8652 83 | 42.3203 9.17156 19.704 84 | 42.0418 9.15829 20.5639 85 | 41.6245 9.1397 21.4636 86 | 40.3296 9.08759 22.5876 87 | 13.5337 8.99881 6.20701 88 | 22.9639 9.27077 6.97789 89 | 31.5172 9.51766 7.59155 90 | 37.8192 9.6993 8.14717 91 | 40.4955 9.77536 8.80145 92 | 41.8732 9.81358 9.49673 93 | 42.4093 9.82724 10.2353 94 | 42.7384 9.83486 10.9837 95 | 42.8284 9.83548 11.7516 96 | 42.9146 9.83599 12.5196 97 | 42.9555 9.83517 13.2929 98 | 42.9655 9.83345 14.071 99 | 42.8809 9.82893 14.8643 100 | 42.8612 9.82632 15.6506 101 | 42.8435 9.82377 16.4385 102 | 42.7814 9.81989 17.2361 103 | 42.6427 9.81375 18.0511 104 | 42.487 9.8071 18.874 105 | 42.3304 9.8004 19.7019 106 | 42.1728 9.79366 20.5348 107 | 41.7228 9.77824 21.4407 108 | 40.6354 9.74387 22.5131 109 | 13.8419 9.8627 6.20041 110 | 24.0036 10.0722 6.94484 111 | 31.7811 10.2324 7.58041 112 | 37.8848 10.358 8.14372 113 | 40.2324 10.4055 8.81804 114 | 41.5567 10.4317 9.52001 115 | 42.0712 10.441 10.2637 116 | 42.2592 10.4434 11.0289 117 | 42.4467 10.4459 11.7917 118 | 42.6136 10.448 12.5544 119 | 42.6248 10.4468 13.3346 120 | 42.6358 10.4455 14.1161 121 | 42.6111 10.4436 14.904 122 | 42.5578 10.441 15.6985 123 | 42.4915 10.4381 16.4978 124 | 42.3835 10.4344 17.3074 125 | 42.2567 10.4302 18.1244 126 | 42.1105 10.4257 18.9495 127 | 41.9438 10.4207 19.7835 128 | 41.6485 10.4129 20.6512 129 | 41.3817 10.4058 21.5201 130 | 14.1955 10.722 6.19284 131 | 24.2499 10.8464 6.93701 132 | 31.7095 10.9385 7.58344 133 | 37.9528 11.0157 8.14014 134 | 39.8222 11.0382 8.84391 135 | 40.9522 11.0514 9.56444 136 | 41.3839 11.056 10.3214 137 | 41.6085 11.0579 11.0904 138 | 41.8027 11.0595 11.8593 139 | 41.8866 11.0596 12.6384 140 | 41.9435 11.0595 13.4205 141 | 41.9727 11.059 14.2067 142 | 41.988 11.0583 14.9958 143 | 41.9651 11.0571 15.7921 144 | 41.9322 11.0558 16.5921 145 | 41.8128 11.0534 17.4097 146 | 41.6928 11.051 18.2315 147 | 41.5224 11.048 19.0675 148 | 41.2589 11.0437 19.9283 149 | 40.9376 11.0387 20.8091 150 | 40.5521 11.0329 21.7133 151 | 14.5713 11.5756 6.1848 152 | 24.186 11.6152 6.93904 153 | 31.3101 11.6445 7.60029 154 | 36.9951 11.6679 8.19053 155 | 38.7268 11.6748 8.91298 156 | 39.8574 11.6792 9.64493 157 | 40.2586 11.6806 10.416 158 | 40.4455 11.6811 11.2003 159 | 40.5445 11.6812 11.9915 160 | 40.6487 11.6814 12.7814 161 | 40.7867 11.6816 13.5664 162 | 40.8974 11.6818 14.3537 163 | 40.8565 11.6813 15.1625 164 | 40.8379 11.681 15.9701 165 | 40.8031 11.6805 16.7824 166 | 40.5997 11.6794 17.6271 167 | 40.3533 11.678 18.4858 168 | 40.1936 11.677 19.334 169 | 40.1399 11.6765 20.1647 170 | 39.5743 11.6738 21.1118 171 | 38.8501 11.6704 22.1095 172 | 14.8732 12.4232 6.17834 173 | 23.6565 12.387 6.95587 174 | 30.1148 12.3605 7.65072 175 | 34.6148 12.342 8.31576 176 | 36.9862 12.3325 9.02273 177 | 37.8403 12.3292 9.79322 178 | 38.106 12.3284 10.5968 179 | 38.307 12.3279 11.4024 180 | 38.4963 12.3274 12.2066 181 | 38.7426 12.3266 13.0017 182 | 38.8069 12.3267 13.8161 183 | 38.8505 12.3268 14.6335 184 | 38.8933 12.3269 15.4516 185 | 38.9228 12.3271 16.2725 186 | 38.6919 12.3284 17.1382 187 | 38.3115 12.3303 18.0371 188 | 38.2306 12.3309 18.8889 189 | 37.9882 12.3323 19.7763 190 | 37.6447 12.334 20.6919 191 | 36.9438 12.3373 21.6958 192 | 12.9764 13.2932 6.21894 193 | 28.3489 13.1024 6.80671 194 | 29.7047 13.0865 7.66802 195 | 31.4618 13.0655 8.48165 196 | 33.4224 13.042 9.24744 197 | 34.28 13.0322 10.0549 198 | 34.4765 13.0307 10.9016 199 | 34.7614 13.0281 11.7374 200 | 34.9533 13.0266 12.5786 201 | 35.208 13.0244 13.4101 202 | 35.3737 13.0232 14.249 203 | 35.3465 13.0245 15.1124 204 | 35.3097 13.026 15.9794 205 | 35.1623 13.0288 16.8663 206 | 34.8383 13.0338 17.7877 207 | 34.5111 13.0389 18.7182 208 | 34.1868 13.044 19.6567 209 | 33.6233 13.0521 20.6518 210 | 27.7271 13.1279 22.7874 211 | 28.7228 13.8296 6.79483 212 | 29.1818 13.8217 7.69008 213 | 30.0893 13.8045 8.55386 214 | 30.7189 13.793 9.41791 215 | 31.0014 13.7888 10.296 216 | 31.2305 13.7857 11.1743 217 | 31.3598 13.7846 12.0589 218 | 31.3609 13.7863 12.9559 219 | 31.3729 13.7877 13.8532 220 | 31.3879 13.789 14.7517 221 | 31.4028 13.7904 15.6515 222 | 31.2676 13.7949 16.5748 223 | 31.0048 13.8021 17.5228 224 | 30.7185 13.8098 18.482 225 | 30.3941 13.8184 19.4559 226 | 29.9391 13.8297 20.4632 227 | 28.1845 13.8685 21.7427 228 | 27.4349 13.8861 22.8492 229 | 27.9766 14.5856 7.74093 230 | 29.0966 14.5553 8.60609 231 | 29.5839 14.5434 9.48947 232 | 29.7813 14.54 10.3857 233 | 29.9772 14.5366 11.2795 234 | 30.0738 14.5362 12.1804 235 | 30.0736 14.5385 13.091 236 | 30.0504 14.5416 14.0061 237 | 30.0275 14.5446 14.9232 238 | 29.9794 14.5484 15.8461 239 | 29.8226 14.5554 16.7876 240 | 29.597 14.5645 17.7451 241 | 29.3697 14.5736 18.7094 242 | 29.0291 14.586 19.7005 243 | 28.4624 14.6052 20.7436 244 | 18.1809 15.6916 8.15421 245 | 25.8227 15.4082 8.77833 246 | 28.358 15.3162 9.56676 247 | 28.5273 15.3129 10.4778 248 | 28.7037 15.3093 11.3865 249 | 28.7597 15.3103 12.3045 250 | 28.7353 15.3143 13.2316 251 | 28.7107 15.3183 14.1609 252 | 28.6861 15.3223 15.0924 253 | 28.5738 15.3297 16.0382 254 | 28.4118 15.3389 16.9954 255 | 28.2452 15.3484 17.9585 256 | 27.9502 15.3627 18.9486 257 | 27.5851 15.3797 19.9593 258 | 22.1841 16.3325 8.96977 259 | 27.0574 16.1128 9.64877 260 | 27.158 16.112 10.5785 261 | 27.2481 16.1117 11.5088 262 | 27.2845 16.1138 12.4439 263 | 27.2994 16.117 13.3824 264 | 27.2366 16.1237 14.3312 265 | 27.1368 16.1322 15.2878 266 | 27.0241 16.1412 16.25 267 | 26.8357 16.1538 17.2275 268 | 26.5925 16.1689 18.2195 269 | 26.3471 16.1842 19.2188 270 | 24.1983 17.0157 9.82905 271 | 25.0418 16.9746 10.7341 272 | 25.3939 16.96 11.6645 273 | 25.6851 16.9488 12.5951 274 | 25.645 16.9556 13.5561 275 | 25.4575 16.9704 14.5368 276 | 25.3343 16.9818 15.5151 277 | 25.1195 16.9982 16.5103 278 | 24.8806 17.0159 17.5155 279 | 24.2027 17.0577 18.5969 280 | -------------------------------------------------------------------------------- /examples/reference_txt/5.txt: -------------------------------------------------------------------------------- 1 | 419 2 | 13.0284 5.85161 18.1321 3 | 12.1374 5.85064 18.3008 4 | 11.1783 5.83732 18.3056 5 | 34.8583 6.86248 18.3499 6 | 33.9952 6.85117 18.3424 7 | 33.1285 6.83994 18.3367 8 | 32.2533 6.82671 18.3002 9 | 12.4546 5.79174 5.45752 10 | 11.4196 5.7878 5.60541 11 | 10.2385 5.75791 5.35953 12 | 13.8331 6.56084 17.7366 13 | 13.0951 6.58623 18.3027 14 | 12.1238 6.57184 18.2669 15 | 11.1812 6.5628 18.3126 16 | 10.2119 6.55006 18.3033 17 | 35.1502 6.82591 4.69132 18 | 35.6887 7.54351 18.1047 19 | 34.8588 7.54769 18.3538 20 | 33.995 7.5376 18.3409 21 | 33.1194 7.52453 18.2742 22 | 32.2584 7.51828 18.333 23 | 31.3827 7.508 18.3189 24 | 24.9847 7.39941 17.5849 25 | 24.087 7.39261 17.641 26 | 23.1886 7.3862 17.7044 27 | 22.2881 7.37985 17.7695 28 | 21.358 7.36819 17.7406 29 | 20.4509 7.36168 17.804 30 | 19.5423 7.35535 17.8711 31 | 18.6252 7.34794 17.9196 32 | 17.6904 7.33801 17.9241 33 | 16.756 7.32875 17.9414 34 | 15.8272 7.32094 17.9847 35 | 14.9051 7.31463 18.0549 36 | 14.0264 7.31522 18.2465 37 | 13.0854 7.30665 18.278 38 | 12.1157 7.29444 18.2467 39 | 11.1883 7.28875 18.3298 40 | 10.2106 7.27654 18.3002 41 | 9.21595 7.2627 18.2434 42 | 7.99622 7.22052 17.6987 43 | 39.8665 8.2147 16.9265 44 | 39.0236 8.2146 17.0972 45 | 38.2197 8.2359 17.7365 46 | 37.389 8.23948 17.9866 47 | 36.5585 8.24244 18.223 48 | 35.7179 8.24081 18.3591 49 | 34.8586 8.23259 18.3523 50 | 33.9948 8.22405 18.3393 51 | 33.124 8.21453 18.3058 52 | 32.2402 8.20239 18.2167 53 | 31.3912 8.20143 18.3697 54 | 30.4868 8.18608 18.2133 55 | 29.5902 8.17436 18.1361 56 | 28.6971 8.16469 18.1039 57 | 27.8034 8.15582 18.0898 58 | 26.9208 8.15016 18.1449 59 | 26.0305 8.14343 18.1776 60 | 25.1241 8.13418 18.1575 61 | 24.2133 8.12488 18.1372 62 | 23.3031 8.11642 18.1356 63 | 22.3926 8.10856 18.1471 64 | 21.4797 8.10087 18.1631 65 | 20.5582 8.09236 18.1626 66 | 19.6377 8.08458 18.1783 67 | 18.7107 8.07636 18.1853 68 | 17.7753 8.06746 18.179 69 | 16.838 8.05884 18.1793 70 | 15.908 8.05173 18.2116 71 | 14.9843 8.04585 18.2704 72 | 14.0435 8.03814 18.2915 73 | 13.0791 8.02792 18.2618 74 | 12.1257 8.01959 18.2717 75 | 11.1838 8.01303 18.3189 76 | 10.2096 8.00311 18.2978 77 | 9.20716 7.99053 18.2233 78 | 8.12209 7.96955 17.9786 79 | 7.04867 7.9508 17.7813 80 | 5.95646 7.93097 17.5636 81 | 4.74459 7.89987 17.1197 82 | 40.6315 8.84789 15.2711 83 | 39.8656 8.9024 16.912 84 | 39.0543 8.91854 17.5179 85 | 38.226 8.92311 17.8121 86 | 37.4 8.92759 18.1036 87 | 36.5638 8.92754 18.2738 88 | 35.7164 8.92382 18.3463 89 | 34.8593 8.91779 18.3579 90 | 33.9968 8.91117 18.3546 91 | 33.1268 8.90351 18.3248 92 | 32.2506 8.89538 18.2833 93 | 31.3809 8.88974 18.3081 94 | 30.5023 8.88284 18.3005 95 | 29.6141 8.87477 18.2631 96 | 28.7218 8.86674 18.2273 97 | 27.8353 8.86058 18.2415 98 | 26.9504 8.85526 18.2783 99 | 26.0537 8.84848 18.2778 100 | 25.1532 8.84168 18.2773 101 | 24.251 8.83517 18.2853 102 | 23.3501 8.82938 18.3124 103 | 22.4355 8.82211 18.302 104 | 21.5095 8.81383 18.2666 105 | 20.5931 8.80739 18.2795 106 | 19.6788 8.80166 18.3109 107 | 18.7574 8.79543 18.3305 108 | 17.8238 8.78818 18.3246 109 | 16.8863 8.78092 18.3194 110 | 15.9606 8.77542 18.3594 111 | 15.0187 8.76849 18.3641 112 | 14.0623 8.76044 18.3411 113 | 13.0874 8.75096 18.2831 114 | 12.1147 8.7422 18.2442 115 | 11.1658 8.73621 18.2756 116 | 10.2082 8.72969 18.2946 117 | 9.217 8.72042 18.2457 118 | 8.20391 8.70966 18.1605 119 | 7.15745 8.6965 18.0169 120 | 6.09099 8.68224 17.8476 121 | 4.95486 8.66284 17.5525 122 | 41.2727 9.40082 9.97563 123 | 40.6459 9.55629 15.5458 124 | 39.8751 9.59515 17.064 125 | 39.0594 9.60533 17.5877 126 | 38.2318 9.60888 17.8816 127 | 37.4013 9.61078 18.1184 128 | 36.5666 9.61111 18.3012 129 | 35.7149 9.60704 18.3334 130 | 34.8577 9.60234 18.3449 131 | 33.9961 9.59741 18.3491 132 | 33.1262 9.5915 18.3206 133 | 32.2598 9.58703 18.342 134 | 31.39 9.58251 18.362 135 | 30.5168 9.57796 18.3819 136 | 29.6374 9.57292 18.3861 137 | 28.7463 9.56668 18.3504 138 | 27.8624 9.56205 18.3699 139 | 26.9706 9.55682 18.3696 140 | 26.075 9.55156 18.3694 141 | 25.1756 9.54628 18.3691 142 | 24.2722 9.54098 18.3688 143 | 23.365 9.53565 18.3685 144 | 22.4538 9.53031 18.3683 145 | 21.5377 9.52483 18.3645 146 | 20.625 9.52009 18.386 147 | 19.7048 9.51494 18.3946 148 | 18.7768 9.5094 18.3908 149 | 17.8446 9.50382 18.387 150 | 16.9095 9.49834 18.3868 151 | 15.981 9.49375 18.4167 152 | 15.0415 9.48851 18.4261 153 | 14.0824 9.48198 18.3943 154 | 13.1067 9.4745 18.3325 155 | 12.1299 9.46733 18.2821 156 | 11.1511 9.46039 18.24 157 | 10.2129 9.45676 18.3055 158 | 9.22424 9.44973 18.2623 159 | 8.21975 9.44194 18.1957 160 | 7.20911 9.43411 18.1288 161 | 6.11957 9.42141 17.908 162 | 4.99654 9.40713 17.6383 163 | 3.6993 9.38245 17.0409 164 | 41.3112 10.1622 10.8856 165 | 40.6563 10.2586 15.744 166 | 39.8817 10.2844 17.1691 167 | 39.0645 10.291 17.6573 168 | 38.2343 10.2927 17.9119 169 | 37.4027 10.2937 18.1332 170 | 36.5675 10.2938 18.3094 171 | 35.7134 10.2905 18.3205 172 | 34.8561 10.2871 18.332 173 | 33.9924 10.2833 18.322 174 | 33.1269 10.2798 18.3258 175 | 32.2607 10.2766 18.3478 176 | 31.3909 10.2733 18.3678 177 | 30.5178 10.2701 18.3877 178 | 29.6415 10.2668 18.4076 179 | 28.7583 10.2632 18.4102 180 | 27.8716 10.2595 18.4137 181 | 26.9797 10.2557 18.4105 182 | 26.0839 10.2519 18.4074 183 | 25.1841 10.2481 18.4042 184 | 24.2804 10.2442 18.401 185 | 23.3728 10.2404 18.3978 186 | 22.4611 10.2365 18.3946 187 | 21.547 10.2327 18.397 188 | 20.6289 10.2289 18.3991 189 | 19.705 10.225 18.3954 190 | 18.777 10.221 18.3916 191 | 17.8449 10.217 18.3878 192 | 16.9126 10.2133 18.3957 193 | 15.9842 10.21 18.4256 194 | 15.0468 10.2064 18.4406 195 | 14.1011 10.2025 18.4434 196 | 13.126 10.1972 18.3819 197 | 12.1495 10.192 18.3309 198 | 11.1765 10.1874 18.3013 199 | 10.215 10.1835 18.3104 200 | 9.22943 10.1786 18.2741 201 | 8.22721 10.1732 18.2123 202 | 7.19193 10.1664 18.0916 203 | 6.11993 10.1582 17.9087 204 | 4.98881 10.1476 17.6224 205 | 3.60257 10.126 16.8467 206 | 40.6521 10.9542 15.6642 207 | 39.8728 10.9689 17.0267 208 | 39.0587 10.9736 17.5786 209 | 38.2291 10.9748 17.8497 210 | 37.3956 10.9753 18.0572 211 | 36.5627 10.9757 18.2635 212 | 35.7143 10.9744 18.3281 213 | 34.8554 10.9722 18.3265 214 | 33.9934 10.9701 18.3291 215 | 33.1281 10.968 18.3341 216 | 32.2616 10.966 18.3537 217 | 31.3919 10.9641 18.3736 218 | 30.518 10.9621 18.3888 219 | 29.6335 10.9596 18.3656 220 | 28.7512 10.9575 18.3746 221 | 27.8653 10.9553 18.3837 222 | 26.9757 10.9532 18.3926 223 | 26.0798 10.9509 18.3897 224 | 25.1798 10.9486 18.3865 225 | 24.2759 10.9463 18.3833 226 | 23.3686 10.944 18.382 227 | 22.4582 10.9418 18.3843 228 | 21.544 10.9395 18.3866 229 | 20.6259 10.9372 18.3889 230 | 19.7038 10.9349 18.3913 231 | 18.7773 10.9326 18.3924 232 | 17.8451 10.9302 18.3886 233 | 16.9156 10.9281 18.4045 234 | 15.9746 10.9257 18.3988 235 | 15.0233 10.923 18.3767 236 | 14.0839 10.9209 18.3981 237 | 13.1444 10.9189 18.4288 238 | 12.171 10.9159 18.3842 239 | 11.1922 10.9129 18.3391 240 | 10.2113 10.91 18.3019 241 | 9.22636 10.9071 18.2671 242 | 8.21556 10.9036 18.1864 243 | 7.17408 10.8993 18.0529 244 | 6.1203 10.8949 17.9095 245 | 4.95848 10.8877 17.56 246 | 40.5253 11.6414 13.2474 247 | 39.8238 11.6531 16.2452 248 | 39.0325 11.6564 17.2189 249 | 38.2111 11.6574 17.6338 250 | 37.3773 11.6576 17.8615 251 | 36.5445 11.6578 18.0888 252 | 35.7129 11.6581 18.3158 253 | 34.8598 11.6575 18.3616 254 | 33.9966 11.6568 18.3524 255 | 33.1299 11.656 18.3461 256 | 32.2625 11.6554 18.3595 257 | 31.3885 11.6546 18.3533 258 | 30.5068 11.6538 18.3259 259 | 29.6268 11.653 18.33 260 | 28.7441 11.6523 18.339 261 | 27.8577 11.6516 18.348 262 | 26.9678 11.6509 18.357 263 | 26.0742 11.6502 18.3658 264 | 25.1755 11.6495 18.3688 265 | 24.2724 11.6487 18.3693 266 | 23.3658 11.648 18.3716 267 | 22.4554 11.6472 18.3739 268 | 21.541 11.6465 18.3762 269 | 20.6216 11.6457 18.3746 270 | 19.6966 11.6449 18.368 271 | 18.7673 11.6441 18.3614 272 | 17.8342 11.6433 18.3557 273 | 16.8993 11.6425 18.3571 274 | 15.9519 11.6416 18.3349 275 | 14.9998 11.6407 18.3126 276 | 14.0618 11.64 18.3399 277 | 13.1033 11.6392 18.3237 278 | 12.1392 11.6383 18.3053 279 | 11.1673 11.6374 18.2792 280 | 10.1816 11.6364 18.2321 281 | 9.19623 11.6354 18.1983 282 | 8.19267 11.6343 18.1355 283 | 7.15282 11.6329 18.0069 284 | 6.10501 11.6315 17.8772 285 | 4.90973 11.6288 17.4596 286 | 39.4563 12.3712 10.3849 287 | 38.8975 12.3513 15.3699 288 | 38.1297 12.3467 16.6561 289 | 37.3334 12.3443 17.3927 290 | 36.5076 12.3436 17.734 291 | 35.6652 12.3437 17.8996 292 | 34.822 12.3437 18.0595 293 | 33.9688 12.3441 18.1479 294 | 33.0983 12.3449 18.1301 295 | 32.2234 12.3457 18.1098 296 | 31.3443 12.3465 18.0895 297 | 30.4611 12.3473 18.0691 298 | 29.5802 12.348 18.0833 299 | 28.6952 12.3487 18.0942 300 | 27.806 12.3494 18.1021 301 | 26.95 12.3494 18.2764 302 | 26.1209 12.3489 18.5666 303 | 25.2438 12.3493 18.6495 304 | 24.2805 12.3512 18.4013 305 | 23.3195 12.3528 18.1973 306 | 22.3931 12.3538 18.1489 307 | 21.465 12.3547 18.1122 308 | 20.542 12.3555 18.1084 309 | 19.6244 12.3561 18.1355 310 | 18.7048 12.3568 18.167 311 | 17.7764 12.3575 18.1822 312 | 16.8366 12.3583 18.1751 313 | 15.8925 12.3591 18.168 314 | 14.944 12.3599 18.1609 315 | 13.9928 12.3608 18.1578 316 | 13.0206 12.3618 18.1122 317 | 12.0532 12.3627 18.0916 318 | 11.0818 12.3635 18.0726 319 | 10.0979 12.3645 18.0356 320 | 9.09851 12.3656 17.9752 321 | 8.06219 12.367 17.8454 322 | 7.01232 12.3685 17.7026 323 | 5.86125 12.3708 17.3627 324 | 4.69392 12.3732 17.0154 325 | 36.8203 13.1014 11.9153 326 | 36.1346 13.0757 14.1497 327 | 35.4361 13.0561 15.8987 328 | 34.6651 13.0469 16.8043 329 | 33.8399 13.0442 17.1967 330 | 33.0012 13.043 17.4658 331 | 32.1329 13.0444 17.5326 332 | 31.261 13.0458 17.5919 333 | 30.3867 13.0473 17.6513 334 | 29.4964 13.0497 17.64 335 | 28.5971 13.0524 17.6031 336 | 27.7328 13.0527 17.7545 337 | 26.9311 13.0494 18.1912 338 | 26.1767 13.0437 18.8068 339 | 25.3348 13.0432 19.0232 340 | 24.3739 13.0487 18.7684 341 | 23.1922 13.0646 17.7179 342 | 22.2715 13.067 17.7095 343 | 21.3477 13.0693 17.7048 344 | 20.4198 13.0717 17.7001 345 | 19.4878 13.0741 17.6954 346 | 18.5606 13.0762 17.719 347 | 17.6221 13.0785 17.719 348 | 16.6781 13.0809 17.7151 349 | 15.7259 13.0835 17.7003 350 | 14.7714 13.086 17.6912 351 | 13.8135 13.0885 17.6851 352 | 12.8429 13.0913 17.6574 353 | 11.8519 13.0946 17.5914 354 | 10.8362 13.0985 17.4799 355 | 9.73118 13.105 17.1749 356 | 8.64487 13.1106 16.9391 357 | 29.3967 13.863 12.0945 358 | 28.9072 13.8156 14.5207 359 | 28.3255 13.7829 16.2431 360 | 27.5827 13.7697 17.0417 361 | 26.7722 13.7642 17.4739 362 | 26.0876 13.7477 18.4232 363 | 25.3943 13.7334 19.2678 364 | 24.2272 13.7602 18.1919 365 | 23.0943 13.7822 17.3491 366 | 22.1665 13.7865 17.33 367 | 21.2371 13.7905 17.3204 368 | 20.3034 13.7947 17.3108 369 | 19.3639 13.7989 17.2963 370 | 18.4239 13.8029 17.2941 371 | 17.4809 13.8068 17.2951 372 | 16.5317 13.8109 17.2902 373 | 15.5723 13.8153 17.2687 374 | 14.6072 13.8199 17.2445 375 | 13.6183 13.8255 17.1703 376 | 12.622 13.8313 17.0922 377 | 11.5358 13.8417 16.8059 378 | 10.4551 13.8512 16.5599 379 | 27.5955 14.6047 12.5885 380 | 27.2058 14.5309 15.252 381 | 26.6068 14.4922 16.727 382 | 25.8192 14.4814 17.2688 383 | 24.939 14.4829 17.3971 384 | 23.9328 14.4991 17.0349 385 | 22.9962 14.5062 16.9799 386 | 22.0606 14.5126 16.9473 387 | 21.1261 14.5184 16.9348 388 | 20.1839 14.5246 16.9114 389 | 19.2371 14.5308 16.8878 390 | 18.2954 14.5362 16.8945 391 | 17.3464 14.5418 16.8915 392 | 16.3804 14.5486 16.8513 393 | 15.4058 14.5558 16.8011 394 | 14.4197 14.5635 16.7343 395 | 13.408 14.5728 16.6155 396 | 12.3374 14.5863 16.3639 397 | 25.8979 15.3272 13.5262 398 | 25.507 15.2421 15.9254 399 | 24.7218 15.2267 16.505 400 | 23.8353 15.228 16.6518 401 | 22.8875 15.2381 16.5706 402 | 21.9437 15.2469 16.5247 403 | 20.9985 15.2552 16.4916 404 | 20.0486 15.2636 16.4592 405 | 19.0939 15.272 16.4266 406 | 18.1347 15.2804 16.3951 407 | 17.1708 15.2887 16.3644 408 | 16.2094 15.2963 16.3548 409 | 15.2269 15.3058 16.2988 410 | 14.175 15.3222 16.0687 411 | 24.0624 16.0714 13.796 412 | 23.6521 15.9793 15.9318 413 | 22.7756 15.9776 16.149 414 | 21.8183 15.9899 16.0714 415 | 20.8621 16.0011 16.018 416 | 19.9063 16.0115 15.9833 417 | 18.9458 16.0219 15.9494 418 | 17.9804 16.0323 15.9156 419 | 17.0106 16.0427 15.8834 420 | 15.9895 16.0595 15.7167 421 | -------------------------------------------------------------------------------- /examples/reference_txt/6.txt: -------------------------------------------------------------------------------- 1 | 277 2 | 35.9773 7.01415 16.9152 3 | 37.3706 7.42197 5.39578 4 | 37.2039 7.44153 6.37338 5 | 37.5837 7.72707 15.9691 6 | 37.3773 7.74093 16.8085 7 | 36.4283 7.70752 17.1897 8 | 34.3515 7.60347 16.9154 9 | 38.31 8.15465 5.035 10 | 38.4909 8.1913 6.2852 11 | 38.2791 8.2048 7.2091 12 | 37.023 8.15835 7.33077 13 | 40.7276 8.39462 11.1734 14 | 41.173 8.44365 12.5081 15 | 41.0227 8.4586 13.3906 16 | 40.538 8.4547 14.0316 17 | 40.0373 8.44998 14.6638 18 | 40.113 8.47703 15.6831 19 | 39.4606 8.46393 16.213 20 | 38.6415 8.44192 16.6435 21 | 37.9702 8.42819 17.1779 22 | 36.5504 8.37446 17.264 23 | 34.8309 8.30542 17.2004 24 | 14.5368 7.45069 14.759 25 | 14.546 7.47805 15.9021 26 | 41.0642 8.98547 7.26793 27 | 41.4732 9.02539 8.6529 28 | 41.6862 9.05552 9.85761 29 | 41.7912 9.08019 10.9592 30 | 41.7113 9.09592 11.9061 31 | 41.5664 9.10844 12.7948 32 | 41.338 9.11697 13.6155 33 | 41.024 9.12148 14.3707 34 | 40.6949 9.12524 15.1125 35 | 40.3764 9.12943 15.8589 36 | 39.8568 9.12457 16.4714 37 | 38.9047 9.10055 16.8113 38 | 38.1184 9.08416 17.2702 39 | 36.5886 9.03532 17.2873 40 | 34.8317 8.9772 17.2009 41 | 31.6173 8.85661 16.3059 42 | 29.6112 8.78956 16.1724 43 | 27.5989 8.72307 16.0781 44 | 25.2933 8.64492 15.8675 45 | 22.8459 8.5617 15.6313 46 | 20.5862 8.48738 15.5431 47 | 15.5989 8.29995 14.1375 48 | 16.134 8.34419 15.5369 49 | 15.1627 8.3257 16.1946 50 | 41.311 9.66455 7.46804 51 | 41.7301 9.6959 8.85681 52 | 41.9212 9.71847 10.0403 53 | 41.994 9.73642 11.1135 54 | 41.8308 9.7456 11.9951 55 | 41.6635 9.7545 12.8656 56 | 41.4238 9.76071 13.6767 57 | 41.1469 9.76551 14.4564 58 | 40.871 9.77028 15.2327 59 | 40.473 9.77072 15.9234 60 | 40.0592 9.7706 16.6034 61 | 39.0675 9.7505 16.9151 62 | 38.0973 9.7314 17.2571 63 | 36.6433 9.69601 17.3206 64 | 34.8277 9.6488 17.1985 65 | 32.0344 9.5692 16.548 66 | 29.9684 9.51497 16.3749 67 | 27.8962 9.46118 16.2425 68 | 25.8422 9.40866 16.1636 69 | 23.6049 9.35074 16.0306 70 | 21.1741 9.28719 15.8447 71 | 18.8294 9.2272 15.7524 72 | 16.856 9.17993 15.8885 73 | 15.3277 9.14751 16.2729 74 | 12.5821 9.0766 16.1205 75 | 41.1461 10.3159 6.26088 76 | 41.4579 10.3357 7.58716 77 | 41.7853 10.3557 8.90071 78 | 41.9155 10.3702 10.0358 79 | 41.9963 10.3832 11.1153 80 | 41.8685 10.3907 12.0231 81 | 41.6875 10.3967 12.8831 82 | 41.4126 10.4002 13.6687 83 | 41.1378 10.4037 14.4501 84 | 40.8487 10.4068 15.2175 85 | 40.5222 10.4089 15.9562 86 | 40.0153 10.4065 16.5748 87 | 39.1016 10.3941 16.9368 88 | 38.0761 10.379 17.2439 89 | 36.613 10.3536 17.3022 90 | 34.9114 10.3226 17.2483 91 | 32.3551 10.2714 16.7342 92 | 30.3175 10.2333 16.5727 93 | 28.1839 10.1934 16.4016 94 | 26.1163 10.1555 16.3115 95 | 23.8539 10.1135 16.1616 96 | 21.4021 10.0676 15.9617 97 | 19.1022 10.0258 15.8888 98 | 17.0246 9.98956 15.9706 99 | 15.4037 9.96425 16.3089 100 | 12.6773 9.91403 16.1645 101 | 41.3342 10.9995 7.48684 102 | 41.7898 11.0135 8.90426 103 | 41.9246 11.0223 10.0429 104 | 41.9986 11.03 11.117 105 | 41.8966 11.0348 12.0441 106 | 41.6763 11.0378 12.8749 107 | 41.4015 11.04 13.6607 108 | 41.1426 11.0423 14.4534 109 | 40.7114 11.042 15.1238 110 | 40.3532 11.0428 15.8434 111 | 39.8874 11.042 16.4913 112 | 39.0695 11.036 16.9164 113 | 37.9614 11.0257 17.1724 114 | 36.5883 11.0118 17.2871 115 | 34.8507 10.9927 17.2122 116 | 32.5307 10.9654 16.8361 117 | 30.5802 10.9438 16.7215 118 | 28.4683 10.9201 16.5589 119 | 26.3884 10.8972 16.4583 120 | 24.1934 10.8729 16.3402 121 | 21.6248 10.8437 16.0759 122 | 19.3917 10.8195 16.0336 123 | 17.2372 10.7967 16.0742 124 | 15.3838 10.7783 16.2995 125 | 12.7168 10.749 16.1827 126 | 7.895 10.6907 15.1509 127 | 40.9159 11.6643 7.14774 128 | 41.7943 11.6712 8.90781 129 | 41.8826 11.6739 10.0103 130 | 41.9187 11.6762 11.0562 131 | 41.8376 11.678 12.0002 132 | 41.6256 11.679 12.838 133 | 41.2981 11.6795 13.587 134 | 40.9116 11.6796 14.2922 135 | 40.3414 11.6788 14.8713 136 | 39.9389 11.6789 15.567 137 | 39.6095 11.6793 16.3101 138 | 38.807 11.6774 16.749 139 | 37.7008 11.674 17.01 140 | 36.5659 11.6705 17.2735 141 | 34.8579 11.6643 17.2165 142 | 32.5975 11.6555 16.8748 143 | 30.6695 11.6484 16.7721 144 | 28.6807 11.641 16.6763 145 | 26.6488 11.6336 16.5987 146 | 24.4575 11.6255 16.4791 147 | 21.8411 11.6156 16.1868 148 | 19.6669 11.6078 16.1711 149 | 17.3641 11.5995 16.136 150 | 15.4133 11.5929 16.3135 151 | 12.6704 11.5828 16.1613 152 | 8.26068 11.5652 15.3152 153 | 39.9103 12.3411 6.33245 154 | 40.1442 12.3375 7.59779 155 | 40.8279 12.3317 9.19039 156 | 40.9122 12.329 10.2903 157 | 40.9558 12.3266 11.3434 158 | 40.7951 12.3252 12.2326 159 | 40.4963 12.3246 13.0152 160 | 40.1556 12.3242 13.7648 161 | 39.7943 12.324 14.498 162 | 39.1596 12.325 15.0471 163 | 38.8547 12.3245 15.8177 164 | 38.4839 12.3242 16.543 165 | 37.4404 12.3273 16.8478 166 | 36.216 12.3312 17.0605 167 | 34.5241 12.3374 17.0181 168 | 32.6641 12.3442 16.9135 169 | 30.6767 12.3516 16.7762 170 | 28.9683 12.3576 16.8353 171 | 26.6543 12.3664 16.6017 172 | 24.4908 12.3743 16.4967 173 | 22.2715 12.3824 16.4076 174 | 19.9408 12.391 16.3081 175 | 17.4902 12.3999 16.1974 176 | 15.2324 12.4079 16.2277 177 | 12.3906 12.4185 16.0321 178 | 7.89079 12.4365 15.149 179 | 39.0334 13.0232 7.79547 180 | 39.3748 13.011 9.12036 181 | 39.6847 12.9995 10.3966 182 | 39.6342 12.9936 11.3865 183 | 39.3671 12.9912 12.2099 184 | 39.0208 12.99 12.9731 185 | 38.6347 12.9894 13.7067 186 | 38.249 12.9888 14.4395 187 | 37.6014 12.9921 15.0002 188 | 36.9519 12.9954 15.5662 189 | 36.3628 12.9978 16.1765 190 | 35.6121 13.0025 16.6929 191 | 33.9769 13.02 16.6928 192 | 32.2871 13.0381 16.6947 193 | 30.4832 13.0576 16.6665 194 | 29.0215 13.072 16.8647 195 | 26.5972 13.0999 16.5709 196 | 24.4109 13.124 16.4547 197 | 22.1422 13.1491 16.3412 198 | 19.7557 13.1754 16.2155 199 | 17.5315 13.1992 16.2175 200 | 14.9895 13.2272 16.1125 201 | 12.0011 13.2608 15.8522 202 | 36.4175 13.7502 7.96317 203 | 36.9464 13.7251 9.42732 204 | 37.6247 13.6964 10.9672 205 | 37.4597 13.6895 11.884 206 | 36.8867 13.693 12.514 207 | 36.2417 13.6982 13.1002 208 | 35.7425 13.6997 13.7876 209 | 35.0523 13.706 14.3552 210 | 34.2879 13.7139 14.8838 211 | 33.3049 13.7271 15.2887 212 | 32.3133 13.7404 15.7039 213 | 31.1699 13.7571 16.0462 214 | 29.8691 13.7774 16.3186 215 | 29.0149 13.7868 16.8611 216 | 25.7887 13.8522 16.1348 217 | 23.6016 13.8924 16.0288 218 | 21.3994 13.9325 15.9603 219 | 19.1892 13.9722 15.9323 220 | 16.9227 14.0128 15.921 221 | 14.5116 14.0562 15.8858 222 | 11.5766 14.1111 15.6562 223 | 29.4512 14.6669 5.13818 224 | 31.1642 14.5887 7.49198 225 | 31.723 14.5522 8.99067 226 | 32.0515 14.5242 10.3044 227 | 31.8265 14.5159 11.2333 228 | 31.4869 14.5116 12.082 229 | 31.2302 14.5046 12.9788 230 | 30.901 14.5001 13.8256 231 | 30.419 14.5008 14.5777 232 | 29.9073 14.5025 15.3133 233 | 29.0836 14.5147 15.8735 234 | 28.4247 14.5212 16.5348 235 | 24.8488 14.6242 15.6277 236 | 22.6699 14.68 15.5387 237 | 20.4217 14.7374 15.4588 238 | 18.2194 14.7926 15.4475 239 | 16.0195 14.8471 15.4811 240 | 13.2581 14.919 15.2912 241 | 29.7081 15.3727 7.61585 242 | 29.946 15.3403 8.8996 243 | 30.0368 15.3148 10.0659 244 | 30.0114 15.2948 11.1413 245 | 29.7681 15.2847 12.0679 246 | 29.5262 15.2747 12.9888 247 | 29.2116 15.268 13.86 248 | 28.8209 15.2646 14.6827 249 | 28.0965 15.2757 15.3142 250 | 26.1934 15.3371 15.301 251 | 24.1533 15.4036 15.2526 252 | 21.86 15.48 15.1126 253 | 19.6505 15.552 15.0632 254 | 17.4359 15.6233 15.0558 255 | 15.0342 15.7015 15.0012 256 | 28.1423 16.1818 7.69614 257 | 28.3552 16.1434 8.96899 258 | 28.4508 16.1118 10.1463 259 | 28.3579 16.0908 11.1893 260 | 28.1442 16.0766 12.1477 261 | 27.8894 16.0647 13.074 262 | 27.6085 16.0543 13.979 263 | 27.093 16.0565 14.7456 264 | 25.3853 16.121 14.8542 265 | 23.2961 16.2046 14.7901 266 | 21.0653 16.2944 14.6945 267 | 18.7508 16.3875 14.6017 268 | 16.4966 16.4764 14.5863 269 | 25.7216 17.0669 7.25109 270 | 26.2182 17.0028 8.72292 271 | 26.4629 16.9555 10.0087 272 | 26.2978 16.9349 11.0239 273 | 26.1272 16.9148 12.0265 274 | 25.8145 16.9038 12.9377 275 | 25.291 16.9062 13.7246 276 | 24.4521 16.928 14.3381 277 | 22.3843 17.0251 14.2983 278 | 19.9956 17.1406 14.1317 279 | -------------------------------------------------------------------------------- /examples/reference_txt/7.txt: -------------------------------------------------------------------------------- 1 | 289 2 | 12.0894 7.26408 20.7966 3 | 10.9685 7.3885 8.89432 4 | 10.8164 7.40154 8.1201 5 | 10.523 7.98143 20.4743 6 | 10.5607 7.98247 19.6999 7 | 11.8982 7.91235 19.1655 8 | 10.0118 8.05222 9.60874 9 | 9.89457 8.06159 8.8434 10 | 9.81319 8.06901 8.08299 11 | 35.03 6.70712 7.99781 12 | 35.4532 6.68826 6.98833 13 | 10.0184 8.62047 21.1481 14 | 9.92397 8.62747 20.3511 15 | 9.85516 8.63327 19.5623 16 | 10.4301 8.60923 18.8948 17 | 12.6725 8.50804 18.5061 18 | 33.8047 7.54007 19.1068 19 | 34.1043 7.52967 18.1255 20 | 35.9278 7.44901 17.3236 21 | 9.3396 8.68789 10.3238 22 | 9.28836 8.69278 9.56689 23 | 9.15396 8.70147 8.80829 24 | 9.1367 8.70478 8.05797 25 | 33.2555 7.60267 7.95065 26 | 33.2285 7.60726 6.95233 27 | 9.4454 9.2567 21.0241 28 | 8.10079 9.30987 19.976 29 | 8.80765 9.28514 19.3579 30 | 9.49373 9.26123 18.7222 31 | 10.1368 9.23898 18.0655 32 | 13.964 9.09626 17.9158 33 | 14.7375 9.06925 17.2204 34 | 14.6114 9.07627 16.3821 35 | 14.4859 9.08326 15.5478 36 | 14.3792 9.08953 14.7197 37 | 14.337 9.09335 13.9022 38 | 14.3154 9.0964 13.0889 39 | 14.36 9.09694 12.2833 40 | 8.68867 9.3125 11.0276 41 | 8.06223 9.3381 10.2365 42 | 6.14872 9.41201 9.38525 43 | 7.80671 9.35176 8.74441 44 | 8.9409 9.31125 8.05073 45 | 23.1397 8.78125 7.68179 46 | 31.7811 8.46014 6.9289 47 | 35.9518 8.30679 5.97206 48 | 4.80355 10.0035 20.0196 49 | 4.30394 10.0198 19.1949 50 | 4.09706 10.0274 18.4391 51 | 18.2301 9.61228 20.3332 52 | 4.07856 10.031 17.0128 53 | 4.16767 10.0299 16.3176 54 | 30.0837 9.26913 19.5614 55 | 37.9906 9.03883 19.701 56 | 39.7776 8.98863 18.8709 57 | 40.9282 8.95717 17.9278 58 | 41.2475 8.95015 16.8704 59 | 41.5792 8.94277 15.8093 60 | 41.8747 8.93646 14.7396 61 | 41.9323 8.93713 13.6466 62 | 41.9864 8.93789 12.5539 63 | 4.83099 10.0256 9.30902 64 | 6.61514 9.97504 8.68792 65 | 8.69807 9.91584 8.04174 66 | 21.0571 9.55722 7.62644 67 | 31.6446 9.25075 6.92669 68 | 36.1276 9.12239 5.97308 69 | 4.60375 10.5781 19.9763 70 | 4.17926 10.5882 19.1693 71 | 15.9321 10.3416 20.7476 72 | 18.6455 10.2857 20.4098 73 | 21.8653 10.2193 20.1035 74 | 26.3476 10.1264 19.9362 75 | 30.9261 10.0317 19.6899 76 | 37.9101 9.88657 19.6896 77 | 40.0448 9.84341 18.906 78 | 41.0298 9.82442 17.9401 79 | 41.4474 9.81735 16.8925 80 | 41.6839 9.81407 15.8197 81 | 41.9174 9.81087 14.7434 82 | 42.0419 9.80994 13.6552 83 | 42.1051 9.8103 12.562 84 | 41.934 9.81555 11.4556 85 | 6.04281 10.5655 8.66078 86 | 8.62521 10.5128 8.03905 87 | 19.4396 10.2888 7.58345 88 | 30.0192 10.0701 6.90038 89 | 36.0133 9.94694 5.97241 90 | 5.06757 11.1403 20.8025 91 | 4.41785 11.1492 19.9361 92 | 4.05432 11.1545 19.1436 93 | 16.1768 11.0019 20.7953 94 | 18.9882 10.9671 20.473 95 | 22.2841 10.9263 20.1763 96 | 26.8728 10.8692 20.0219 97 | 31.6592 10.8098 19.8017 98 | 37.7586 10.7339 19.6681 99 | 40.0917 10.7055 18.9122 100 | 41.0831 10.694 17.9465 101 | 41.3987 10.691 16.8871 102 | 41.6756 10.6885 15.8189 103 | 41.9073 10.6866 14.7425 104 | 42.1106 10.6851 13.6607 105 | 42.122 10.686 12.5632 106 | 41.9687 10.6889 11.4576 107 | 5.64265 11.1443 8.64181 108 | 8.62814 11.1077 8.03916 109 | 18.5151 10.9848 7.55888 110 | 28.4929 10.8611 6.87568 111 | 35.8515 10.7702 5.97147 112 | 5.07228 11.7134 20.8036 113 | 4.37194 11.7166 19.9262 114 | 4.06607 11.7181 19.146 115 | 16.466 11.6661 20.8518 116 | 19.3286 11.6543 20.5358 117 | 23.0593 11.6388 20.311 118 | 27.4042 11.6208 20.1086 119 | 31.7461 11.6029 19.815 120 | 37.5276 11.5789 19.6353 121 | 39.5994 11.5706 18.8475 122 | 40.467 11.5672 17.8721 123 | 40.7861 11.5662 16.8195 124 | 41.5156 11.5635 15.8029 125 | 41.8725 11.5624 14.7394 126 | 42.09 11.5618 13.659 127 | 42.0616 11.5622 12.559 128 | 41.8927 11.5633 11.4532 129 | 5.50243 11.7154 8.63516 130 | 8.65401 11.7024 8.04012 131 | 17.4151 11.6662 7.52964 132 | 27.2819 11.6254 6.85608 133 | 5.30058 12.2875 20.8554 134 | 4.58733 12.2843 19.9728 135 | 4.24634 12.2826 19.1831 136 | 4.04678 12.2816 18.4293 137 | 19.6719 12.3472 20.5991 138 | 23.5629 12.3633 20.3985 139 | 27.4182 12.3792 20.1109 140 | 31.8064 12.3974 19.8242 141 | 36.7578 12.4178 19.526 142 | 38.9275 12.4266 18.7592 143 | 39.3466 12.4281 17.7367 144 | 39.7285 12.4293 16.7029 145 | 40.291 12.4314 15.6807 146 | 40.5673 12.4322 14.6229 147 | 40.7342 12.4325 13.5522 148 | 40.7388 12.4322 12.4687 149 | 40.4856 12.4308 11.3718 150 | 5.93065 12.2864 8.65546 151 | 8.89818 12.2986 8.04915 152 | 17.1687 12.3328 7.52309 153 | 27.7697 12.3766 6.86398 154 | 5.53042 12.8655 20.9076 155 | 4.9004 12.8569 20.0405 156 | 4.45576 12.8506 19.2261 157 | 4.25479 12.8474 18.4699 158 | 4.05533 12.8442 17.7193 159 | 23.3261 13.0869 20.3574 160 | 27.6447 13.1405 20.1478 161 | 31.1281 13.1835 19.7207 162 | 34.9627 13.2309 19.2712 163 | 36.5794 13.2503 18.4507 164 | 37.1908 13.2571 17.4762 165 | 38.0615 13.267 16.519 166 | 38.3994 13.2703 15.492 167 | 38.6991 13.2731 14.4561 168 | 38.9825 13.2757 13.4142 169 | 38.9512 13.2743 12.3466 170 | 4.66824 12.8441 9.2996 171 | 6.25545 12.8633 8.67086 172 | 9.24838 12.9001 8.0621 173 | 17.0917 12.9974 7.52104 174 | 28.2548 13.1359 6.87183 175 | 5.038 13.431 20.0703 176 | 4.5835 13.4203 19.2524 177 | 4.36595 13.4146 18.4916 178 | 4.19531 13.41 17.7451 179 | 22.7741 13.7998 20.2615 180 | 26.2903 13.8724 19.9269 181 | 30.0055 13.949 19.5495 182 | 32.1124 13.9917 18.8665 183 | 33.13 14.0115 17.9975 184 | 34.0653 14.0296 17.0985 185 | 34.6587 14.0405 16.1437 186 | 35.4704 14.0559 15.1997 187 | 35.8655 14.0626 14.2031 188 | 36.1745 14.0674 13.193 189 | 35.7936 14.0579 12.1309 190 | 4.89185 13.4115 9.31254 191 | 6.46459 13.4433 8.68078 192 | 9.64371 13.5084 8.07672 193 | 18.6273 13.6943 7.56186 194 | 26.5081 13.8569 6.84356 195 | 5.11164 14.0056 20.0862 196 | 4.75302 13.9935 19.2873 197 | 4.47836 13.9838 18.5135 198 | 4.26311 13.9759 17.7576 199 | 4.12919 13.9705 17.0216 200 | 24.4198 14.5663 19.6217 201 | 28.9316 14.697 19.3856 202 | 29.7598 14.7193 18.5326 203 | 30.2971 14.7329 17.6253 204 | 30.6654 14.7416 16.6877 205 | 30.8952 14.7463 15.7286 206 | 31.0065 14.7474 14.7543 207 | 31.1524 14.7496 13.7824 208 | 31.2738 14.751 12.8069 209 | 31.1488 14.7453 11.8136 210 | 5.02905 13.9802 9.32048 211 | 6.76916 14.0295 8.69522 212 | 10.5819 14.1391 8.11142 213 | 25.7404 14.5793 7.75091 214 | 26.5125 14.5998 6.84363 215 | 5.41408 14.5901 20.1517 216 | 4.93298 14.5699 19.3243 217 | 4.61471 14.5558 18.5401 218 | 4.37371 14.5447 17.778 219 | 4.20316 14.5363 17.0344 220 | 4.12976 14.5315 16.3114 221 | 26.2187 15.365 18.9718 222 | 28.4797 15.4478 18.3509 223 | 28.9211 15.4618 17.4445 224 | 29.2202 15.4704 16.5131 225 | 29.3546 15.4728 15.5587 226 | 29.4439 15.4735 14.5984 227 | 29.5013 15.473 13.635 228 | 29.4026 15.4667 12.6595 229 | 4.69365 14.5353 10.0064 230 | 5.18887 14.5519 9.32972 231 | 7.55922 14.6389 8.73268 232 | 12.3503 14.8166 8.17683 233 | 6.50127 15.2137 19.6469 234 | 5.20066 15.1509 18.6544 235 | 5.01269 15.1398 17.8958 236 | 4.81931 15.1284 17.1415 237 | 4.63137 15.1173 16.3932 238 | 4.54966 15.1111 15.6663 239 | 4.49212 15.1061 14.9456 240 | 4.44457 15.1015 14.2285 241 | 4.45064 15.0994 13.52 242 | 4.46909 15.0979 12.8138 243 | 4.60346 15.1017 12.1199 244 | 4.79983 15.1083 11.4298 245 | 5.00689 15.1155 10.7375 246 | 5.8127 15.1501 10.0829 247 | 7.17909 15.2104 9.44486 248 | 9.37779 15.3088 8.8189 249 | 24.82 16.0141 8.63805 250 | 10.3085 16.0037 19.6507 251 | 9.44247 15.9532 18.7127 252 | 8.94302 15.9228 17.8581 253 | 8.68676 15.9058 17.0549 254 | 8.36566 15.8852 16.2484 255 | 8.01158 15.8629 15.4452 256 | 7.93459 15.8557 14.687 257 | 7.90659 15.8513 13.9376 258 | 7.87864 15.8468 13.1899 259 | 8.15541 15.8589 12.4743 260 | 8.48058 15.8736 11.7584 261 | 8.74718 15.8851 11.0322 262 | 9.00864 15.8963 10.3012 263 | 9.86544 15.9398 9.60028 264 | 12.9457 16.1038 8.98806 265 | 12.1067 16.7297 19.204 266 | 11.2249 16.6704 18.2546 267 | 10.8425 16.6427 17.4066 268 | 10.5165 16.6185 16.5765 269 | 10.3445 16.6041 15.7764 270 | 10.2417 16.5941 14.9902 271 | 10.1394 16.5842 14.2074 272 | 10.1411 16.5808 13.4394 273 | 10.291 16.5867 12.6874 274 | 10.4412 16.5926 11.9334 275 | 10.5918 16.5985 11.1775 276 | 10.7427 16.6044 10.4196 277 | 11.6334 16.6566 9.70256 278 | 23.008 17.3646 9.46514 279 | 13.5587 17.4601 18.6601 280 | 13.1382 17.4258 17.7811 281 | 12.9502 17.4082 16.9477 282 | 12.7431 17.3892 16.1169 283 | 12.6969 17.3818 15.3128 284 | 12.6908 17.3772 14.5157 285 | 12.5703 17.3645 13.7074 286 | 12.4241 17.35 12.9002 287 | 12.4662 17.3489 12.1142 288 | 12.52 17.3486 11.3294 289 | 12.5738 17.3483 10.5447 290 | 14.3133 17.4676 9.8576 291 | -------------------------------------------------------------------------------- /examples/reference_txt/8.txt: -------------------------------------------------------------------------------- 1 | 362 2 | 35.9909 7.59662 16.0821 3 | 35.6431 7.62743 17.0647 4 | 34.6656 7.59844 17.1391 5 | 33.2936 7.53387 16.6883 6 | 36.4239 7.88581 5.08223 7 | 36.0153 7.91566 6.21501 8 | 34.9436 7.88622 6.22665 9 | 37.4554 8.28412 15.2372 10 | 37.0816 8.30866 16.1978 11 | 36.6425 8.32716 17.0423 12 | 35.7838 8.31143 17.2675 13 | 34.7366 8.28123 17.2392 14 | 33.6722 8.25052 17.2105 15 | 32.5044 8.21272 17.0658 16 | 40.5873 8.89237 10.5769 17 | 40.4845 8.93567 12.11 18 | 40.163 8.96158 13.2264 19 | 39.816 8.98484 14.2732 20 | 39.4122 9.00335 15.204 21 | 39.0214 9.02219 16.136 22 | 38.2713 9.01578 16.4949 23 | 37.4805 9.00681 16.7991 24 | 36.8123 9.00628 17.2926 25 | 35.8188 8.98438 17.3178 26 | 34.7631 8.95908 17.2765 27 | 33.6509 8.93088 17.1811 28 | 32.5547 8.90448 17.1336 29 | 30.9071 8.84456 16.3824 30 | 29.5865 8.80628 16.1081 31 | 28.3725 8.77548 16.0029 32 | 27.1615 8.74566 15.9286 33 | 25.7388 8.70415 15.6238 34 | 12.5742 8.39692 15.3842 35 | 11.8637 8.40125 16.0738 36 | 10.1822 8.35603 15.8423 37 | 40.6501 9.54574 8.92191 38 | 40.8789 9.60009 11.0936 39 | 40.6548 9.62648 12.4048 40 | 40.3621 9.64811 13.563 41 | 39.9737 9.66371 14.5337 42 | 39.5697 9.67795 15.458 43 | 39.0748 9.68683 16.2202 44 | 38.4018 9.68591 16.6961 45 | 37.5994 9.67822 16.9782 46 | 36.8144 9.67166 17.2957 47 | 35.8304 9.65511 17.3346 48 | 34.6931 9.63131 17.1777 49 | 33.6524 9.61298 17.1831 50 | 32.5794 9.59358 17.1669 51 | 31.0543 9.55288 16.5767 52 | 29.8099 9.52665 16.3968 53 | 28.6026 9.50286 16.2939 54 | 27.3985 9.47985 16.2221 55 | 26.1639 9.45603 16.139 56 | 24.9337 9.43303 16.0875 57 | 23.6487 9.40816 15.9977 58 | 22.3347 9.38264 15.9015 59 | 21.0044 9.35703 15.8144 60 | 19.6606 9.33148 15.7396 61 | 18.2939 9.30556 15.6669 62 | 16.8992 9.27909 15.5915 63 | 15.3209 9.24562 15.3546 64 | 14.1262 9.22865 15.5369 65 | 13.3348 9.22843 16.1332 66 | 12.0297 9.20763 16.234 67 | 10.479 9.17756 16.1229 68 | 39.9953 10.1883 5.87671 69 | 40.87 10.2563 9.32113 70 | 40.9414 10.2884 11.2045 71 | 40.7003 10.3065 12.4835 72 | 40.363 10.3201 13.5646 73 | 40.0034 10.3324 14.5827 74 | 39.6264 10.3436 15.5496 75 | 39.1431 10.3504 16.328 76 | 38.4488 10.3489 16.7685 77 | 37.6213 10.3424 17.0111 78 | 36.8074 10.3366 17.2854 79 | 35.8238 10.3248 17.3251 80 | 34.7069 10.3086 17.1973 81 | 33.6648 10.2954 17.2003 82 | 32.5935 10.2816 17.1859 83 | 31.16 10.2557 16.7162 84 | 29.9484 10.238 16.5757 85 | 28.7466 10.2212 16.476 86 | 27.5274 10.2042 16.3816 87 | 26.2925 10.1871 16.2949 88 | 25.0655 10.1707 16.244 89 | 23.8223 10.1542 16.1993 90 | 22.5338 10.1367 16.128 91 | 21.1952 10.1181 16.027 92 | 19.7834 10.0977 15.8736 93 | 18.4579 10.0804 15.8422 94 | 17.0744 10.0617 15.7749 95 | 15.7178 10.0443 15.7618 96 | 14.4429 10.0297 15.8552 97 | 13.4553 10.0238 16.2519 98 | 11.987 10.0042 16.1928 99 | 10.4893 9.98426 16.1327 100 | 8.93348 9.96312 16.0454 101 | 40.1572 10.9172 6.17786 102 | 40.8794 10.954 9.33819 103 | 40.9584 10.9735 11.2345 104 | 40.7255 10.9845 12.5271 105 | 40.3631 10.9921 13.5648 106 | 40.0052 10.9995 14.5857 107 | 39.5991 11.0055 15.5055 108 | 39.1504 11.0104 16.3394 109 | 38.4481 11.0093 16.7675 110 | 37.6431 11.0059 17.0441 111 | 36.8049 11.0019 17.2817 112 | 35.8173 10.9948 17.3157 113 | 34.8062 10.9873 17.3372 114 | 33.715 10.9783 17.2695 115 | 32.6003 10.9691 17.1952 116 | 31.2723 10.9557 16.8645 117 | 30.0824 10.9456 16.7488 118 | 28.8857 10.9355 16.6519 119 | 27.6476 10.9249 16.5305 120 | 26.4205 10.9148 16.45 121 | 25.1893 10.9048 16.3908 122 | 23.9501 10.895 16.3478 123 | 22.6644 10.8845 16.2766 124 | 21.2991 10.8728 16.1429 125 | 19.856 10.8599 15.9528 126 | 18.5799 10.8504 15.9726 127 | 17.2208 10.8397 15.9283 128 | 15.866 10.8292 15.9138 129 | 14.5575 10.8199 15.9704 130 | 13.5078 10.8152 16.3035 131 | 12.0244 10.8032 16.2289 132 | 10.4821 10.7904 16.1258 133 | 8.9661 10.7784 16.0756 134 | 6.63 10.753 15.3076 135 | 4.30995 10.7285 14.6095 136 | 40.9077 11.6516 9.38945 137 | 40.9617 11.6579 11.2404 138 | 40.75 11.6617 12.5695 139 | 40.4403 11.6647 13.6952 140 | 39.8705 11.6654 14.3633 141 | 39.3289 11.6664 15.0695 142 | 38.9048 11.6682 15.9521 143 | 38.349 11.669 16.6147 144 | 37.5371 11.6678 16.8844 145 | 36.6741 11.6663 17.089 146 | 35.8107 11.6649 17.3062 147 | 34.7957 11.6624 17.3224 148 | 33.6942 11.6593 17.2408 149 | 32.6003 11.6564 17.1951 150 | 31.2838 11.652 16.8798 151 | 30.1343 11.6489 16.816 152 | 28.973 11.6458 16.7624 153 | 27.7673 11.6424 16.6786 154 | 26.5434 11.6391 16.599 155 | 25.3125 11.6357 16.537 156 | 24.0655 11.6324 16.4819 157 | 22.7808 11.6289 16.4091 158 | 21.3969 11.6249 16.2518 159 | 19.9656 11.6207 16.0724 160 | 18.701 11.6176 16.1021 161 | 17.3453 11.614 16.0586 162 | 15.9939 11.6105 16.045 163 | 14.6831 11.6074 16.0966 164 | 13.5204 11.6051 16.316 165 | 12.1206 11.6016 16.3217 166 | 10.6069 11.5975 16.2438 167 | 9.00661 11.593 16.1132 168 | 6.80138 11.5853 15.4632 169 | 4.92398 11.5795 15.1557 170 | 39.6071 12.3595 7.02844 171 | 40.4748 12.3462 10.3774 172 | 40.3388 12.3417 11.8579 173 | 39.9525 12.3393 12.8706 174 | 39.5343 12.3373 13.8081 175 | 39.0481 12.3358 14.6164 176 | 38.5812 12.3343 15.4417 177 | 38.1916 12.3322 16.3721 178 | 37.4085 12.3331 16.6906 179 | 36.5433 12.3346 16.8962 180 | 35.6848 12.336 17.1248 181 | 34.7735 12.3378 17.2911 182 | 33.7197 12.3405 17.276 183 | 32.553 12.344 17.1313 184 | 31.3141 12.3478 16.9198 185 | 30.1584 12.351 16.8471 186 | 28.9978 12.3541 16.7937 187 | 27.7968 12.3574 16.7151 188 | 26.6102 12.3605 16.68 189 | 25.3973 12.3637 16.6377 190 | 24.1592 12.367 16.5907 191 | 22.8958 12.3704 16.5399 192 | 21.5911 12.3739 16.4682 193 | 20.1364 12.3783 16.2589 194 | 18.8177 12.3817 16.2269 195 | 17.4715 12.3853 16.1908 196 | 16.1132 12.3888 16.1674 197 | 14.7237 12.3924 16.1375 198 | 13.5125 12.3949 16.3081 199 | 12.1101 12.3985 16.3116 200 | 10.5934 12.4026 16.2311 201 | 8.94183 12.4073 16.0532 202 | 6.94481 12.4139 15.5934 203 | 5.05206 12.4198 15.2696 204 | 38.212 13.0957 6.36706 205 | 39.2917 13.051 10.0456 206 | 39.1935 13.0364 11.5875 207 | 38.8392 13.0285 12.66 208 | 38.4317 13.022 13.6218 209 | 37.9526 13.0175 14.4504 210 | 37.2763 13.0175 14.961 211 | 36.8592 13.0117 15.8627 212 | 36.344 13.0083 16.6025 213 | 35.4724 13.0128 16.8187 214 | 34.5286 13.0187 16.9459 215 | 33.4562 13.0272 16.9127 216 | 32.3708 13.0357 16.8856 217 | 31.2885 13.0439 16.8859 218 | 30.1508 13.053 16.8373 219 | 28.9858 13.0625 16.7785 220 | 27.7597 13.0729 16.6692 221 | 26.6988 13.0798 16.7873 222 | 25.404 13.091 16.6456 223 | 24.1644 13.1009 16.5968 224 | 22.8902 13.1112 16.5336 225 | 21.5906 13.1218 16.4676 226 | 20.2867 13.1321 16.4229 227 | 18.928 13.1432 16.3447 228 | 17.5996 13.1535 16.3249 229 | 16.2071 13.1647 16.2637 230 | 14.7808 13.1762 16.1948 231 | 13.4987 13.185 16.2946 232 | 12.0468 13.1964 16.2505 233 | 10.58 13.2079 16.2183 234 | 8.80878 13.2242 15.9299 235 | 6.96927 13.2413 15.6156 236 | 4.94536 13.2611 15.1747 237 | 36.728 13.8276 7.41976 238 | 37.7447 13.7579 10.8525 239 | 37.4297 13.7428 12.0048 240 | 36.932 13.7353 12.8407 241 | 36.4384 13.7279 13.6694 242 | 35.9327 13.7211 14.4662 243 | 35.2463 13.7212 14.9847 244 | 34.6323 13.7187 15.6079 245 | 33.9695 13.718 16.1576 246 | 33.1552 13.7227 16.4974 247 | 32.1618 13.7335 16.6035 248 | 31.1009 13.7463 16.6383 249 | 29.9978 13.7603 16.6395 250 | 28.8792 13.7744 16.6437 251 | 27.7488 13.7885 16.6558 252 | 26.8409 13.795 16.9595 253 | 25.3402 13.8204 16.5699 254 | 24.1187 13.8363 16.5437 255 | 22.8519 13.8533 16.49 256 | 21.5616 13.8705 16.4353 257 | 20.242 13.8882 16.3741 258 | 18.9052 13.9061 16.3203 259 | 17.5201 13.9249 16.2417 260 | 16.1404 13.9431 16.1953 261 | 14.8232 13.9591 16.2375 262 | 13.4367 13.9767 16.2335 263 | 11.9336 13.9973 16.1413 264 | 10.4044 14.0181 16.0524 265 | 8.6691 14.0443 15.8005 266 | 6.91346 14.0704 15.5649 267 | 4.71677 14.1081 14.9713 268 | 34.9519 14.4984 11.3777 269 | 34.4096 14.4897 12.1707 270 | 33.6987 14.4899 12.704 271 | 32.9473 14.4922 13.1792 272 | 32.2311 14.4927 13.707 273 | 31.6137 14.4883 14.3715 274 | 30.9294 14.4872 14.9406 275 | 30.1137 14.4926 15.3348 276 | 29.3495 14.4953 15.8018 277 | 28.4582 14.5039 16.1113 278 | 27.6197 14.5099 16.4959 279 | 26.9758 14.5068 17.123 280 | 25.0276 14.5627 16.199 281 | 23.7616 14.5868 16.1288 282 | 22.5001 14.6101 16.0897 283 | 21.2108 14.634 16.0444 284 | 19.918 14.6575 16.0205 285 | 18.6227 14.6805 16.0184 286 | 17.3078 14.7038 16.0193 287 | 15.9686 14.7275 16.0191 288 | 14.6015 14.7519 16.0146 289 | 13.2814 14.7737 16.0806 290 | 11.7361 14.8041 15.9508 291 | 10.1928 14.8338 15.8524 292 | 8.55063 14.8666 15.6908 293 | 6.78402 14.9036 15.4474 294 | 29.5116 15.4301 8.22736 295 | 29.7676 15.3645 10.2341 296 | 29.6033 15.3276 11.599 297 | 29.3645 15.2964 12.829 298 | 28.9794 15.2752 13.8371 299 | 28.4656 15.2624 14.6597 300 | 27.8937 15.2535 15.3973 301 | 27.1622 15.2543 15.9295 302 | 26.5838 15.2461 16.6479 303 | 24.6134 15.319 15.7075 304 | 23.3454 15.3498 15.6452 305 | 22.0758 15.3799 15.6069 306 | 20.7865 15.4103 15.5716 307 | 19.4686 15.4416 15.53 308 | 18.1508 15.4721 15.5139 309 | 16.8248 15.5023 15.5136 310 | 15.4972 15.5319 15.5355 311 | 14.1687 15.5609 15.5797 312 | 12.8181 15.5904 15.6244 313 | 11.2992 15.6278 15.5293 314 | 9.72265 15.6674 15.4079 315 | 7.63572 15.7318 14.8433 316 | 27.8582 16.2633 7.54228 317 | 28.1842 16.1778 9.64186 318 | 28.116 16.125 11.1443 319 | 27.8444 16.0892 12.3385 320 | 27.5619 16.055 13.492 321 | 27.1432 16.0319 14.4482 322 | 26.5178 16.0245 15.1317 323 | 25.5035 16.0452 15.3385 324 | 24.2697 16.081 15.2996 325 | 23.042 16.1154 15.2927 326 | 21.767 16.1523 15.2555 327 | 20.4469 16.1914 15.1932 328 | 19.1168 16.2302 15.1461 329 | 17.794 16.2675 15.1324 330 | 16.4724 16.3039 15.1446 331 | 15.1428 16.3399 15.1719 332 | 13.7799 16.3773 15.1889 333 | 12.353 16.4179 15.1664 334 | 10.5948 16.4784 14.8497 335 | 26.153 17.1248 6.84067 336 | 26.6114 17.0119 9.1141 337 | 26.5955 16.9447 10.6895 338 | 26.3927 16.8958 11.9812 339 | 26.1194 16.8544 13.1532 340 | 25.8091 16.8173 14.2543 341 | 25.1812 16.8081 14.9479 342 | 23.911 16.8531 14.874 343 | 22.6693 16.8946 14.8596 344 | 21.4044 16.937 14.843 345 | 20.0972 16.9817 14.8035 346 | 18.761 17.0277 14.7577 347 | 17.4491 17.0706 14.7637 348 | 16.0555 17.1189 14.7079 349 | 14.724 17.1613 14.7423 350 | 13.3228 17.208 14.7295 351 | 24.1104 17.9627 7.40837 352 | 24.7409 17.8177 9.8468 353 | 24.5991 17.7544 11.2306 354 | 24.3634 17.7021 12.4645 355 | 23.9983 17.6639 13.5143 356 | 23.5124 17.6384 14.4009 357 | 22.2804 17.6848 14.4077 358 | 21.0053 17.7342 14.3888 359 | 19.7178 17.7835 14.3807 360 | 18.3944 17.835 14.3577 361 | 17.0282 17.889 14.3138 362 | 15.5896 17.9484 14.22 363 | 14.0185 18.018 14.0186 364 | -------------------------------------------------------------------------------- /examples/reference_txt/9.txt: -------------------------------------------------------------------------------- 1 | 365 2 | 33.7799 8.08967 7.48377 3 | 34.6548 8.09941 7.29297 4 | 35.539 8.10069 7.28707 5 | 12.0442 8.72186 9.04364 6 | 12.9825 8.7275 8.91671 7 | 13.8969 8.72871 8.90716 8 | 14.7844 8.72396 9.05588 9 | 14.0716 8.33161 19.504 10 | 32.0364 8.76199 8.47123 11 | 32.8929 8.79941 7.49449 12 | 33.7709 8.807 7.31391 13 | 34.6493 8.81188 7.20568 14 | 35.5294 8.81452 7.15709 15 | 36.411 8.81584 7.14394 16 | 37.3872 8.77948 8.13815 17 | 11.1114 9.44717 9.12896 18 | 12.0322 9.44856 9.10427 19 | 12.9655 9.45206 9.00762 20 | 13.9035 9.45675 8.86988 21 | 14.8197 9.45819 8.84358 22 | 15.6824 9.44976 9.15414 23 | 16.5573 9.44258 9.42223 24 | 17.4698 9.44246 9.44908 25 | 18.402 9.44694 9.31842 26 | 19.326 9.45016 9.23103 27 | 20.2451 9.45263 9.16942 28 | 21.1649 9.45587 9.08126 29 | 22.0816 9.45885 9.00193 30 | 22.9986 9.46281 8.88864 31 | 23.9109 9.46586 8.80679 32 | 24.8213 9.46906 8.71977 33 | 25.7285 9.47166 8.65332 34 | 26.6329 9.47333 8.61841 35 | 27.5373 9.47669 8.52576 36 | 28.4394 9.48058 8.41476 37 | 29.3388 9.48339 8.34093 38 | 30.2366 9.48537 8.29524 39 | 31.1326 9.48768 8.23834 40 | 32.0149 9.50091 7.80676 41 | 32.8892 9.51319 7.40722 42 | 33.7679 9.51818 7.25808 43 | 34.6551 9.51767 7.29771 44 | 35.531 9.52179 7.17814 45 | 36.4062 9.5251 7.08664 46 | 37.2873 9.52587 7.08221 47 | 38.2307 9.50923 7.6764 48 | 39.1639 9.49815 8.07934 49 | 40.3468 9.43115 10.4069 50 | 7.09572 10.1456 10.5162 51 | 8.13504 10.1554 10.0704 52 | 9.09363 10.1587 9.93381 53 | 10.0756 10.1646 9.6751 54 | 11.1162 10.177 9.10599 55 | 12.041 10.1785 9.0596 56 | 12.9484 10.1781 9.09871 57 | 13.9008 10.1831 8.8852 58 | 14.8281 10.1855 8.79295 59 | 15.7245 10.1841 8.88339 60 | 16.5998 10.1794 9.12935 61 | 17.5133 10.1799 9.1257 62 | 18.4334 10.1817 9.06491 63 | 19.3536 10.1838 8.98792 64 | 20.2667 10.1848 8.96034 65 | 21.1865 10.1876 8.84842 66 | 22.1007 10.1897 8.76923 67 | 23.0107 10.1912 8.72141 68 | 23.9204 10.1931 8.65296 69 | 24.8301 10.1958 8.54609 70 | 25.7356 10.1977 8.47744 71 | 26.6396 10.1998 8.39754 72 | 27.5412 10.2018 8.32749 73 | 28.4408 10.2035 8.26519 74 | 29.3387 10.2058 8.17867 75 | 30.2347 10.2072 8.13321 76 | 31.1282 10.2097 8.03699 77 | 32.0122 10.2167 7.7218 78 | 32.8888 10.2239 7.3978 79 | 33.7683 10.2271 7.26418 80 | 34.6573 10.2262 7.33112 81 | 35.5277 10.2308 7.13352 82 | 36.4057 10.2323 7.0806 83 | 37.2915 10.2318 7.12664 84 | 38.2107 10.2248 7.48618 85 | 39.1314 10.2188 7.79714 86 | 40.2551 10.1803 9.67666 87 | 7.21017 10.8931 10.0588 88 | 8.18111 10.8957 9.87823 89 | 9.14758 10.8982 9.69845 90 | 10.1278 10.9018 9.43599 91 | 11.1163 10.9062 9.10535 92 | 12.0536 10.9079 8.99594 93 | 12.9591 10.9076 9.04165 94 | 13.9093 10.9104 8.83736 95 | 14.8303 10.9115 8.77963 96 | 15.7341 10.9112 8.82141 97 | 16.6114 10.9086 9.0492 98 | 17.5319 10.9097 8.98751 99 | 18.4501 10.9107 8.93099 100 | 19.3698 10.912 8.84606 101 | 20.2881 10.9135 8.75231 102 | 21.2021 10.9147 8.68022 103 | 22.1131 10.9157 8.61913 104 | 23.0221 10.9167 8.56247 105 | 23.9303 10.9179 8.49034 106 | 24.8377 10.9193 8.3973 107 | 25.7412 10.9204 8.33915 108 | 26.6433 10.9214 8.27493 109 | 27.5437 10.9226 8.20234 110 | 28.4421 10.9239 8.1254 111 | 29.3385 10.9254 8.02808 112 | 30.2325 10.9267 7.9419 113 | 31.1242 10.9281 7.85624 114 | 32.0117 10.9302 7.70716 115 | 32.8884 10.9345 7.38839 116 | 33.7679 10.9364 7.25674 117 | 34.6465 10.9378 7.1617 118 | 35.5245 10.939 7.09094 119 | 36.4058 10.9394 7.08197 120 | 37.2957 10.9385 7.17111 121 | 38.1971 10.9365 7.35644 122 | 39.1034 10.9343 7.55448 123 | 40.2174 10.9119 9.37719 124 | 6.07054 11.6275 10.8698 125 | 7.2428 11.6316 9.92846 126 | 8.20303 11.6323 9.78679 127 | 9.15911 11.6329 9.6481 128 | 10.1309 11.634 9.42196 129 | 11.109 11.6353 9.14058 130 | 12.0637 11.6362 8.94509 131 | 12.9889 11.6365 8.88247 132 | 13.911 11.6369 8.82764 133 | 14.8314 11.6372 8.77268 134 | 15.731 11.637 8.84131 135 | 16.6317 11.6368 8.90954 136 | 17.55 11.6371 8.85313 137 | 18.4667 11.6375 8.79682 138 | 19.3839 11.6379 8.72186 139 | 20.2973 11.6382 8.664 140 | 21.2091 11.6385 8.60392 141 | 22.1222 11.639 8.50839 142 | 23.0325 11.6395 8.41809 143 | 23.9402 11.64 8.33057 144 | 24.8449 11.6404 8.25684 145 | 25.7469 11.6407 8.20026 146 | 26.6472 11.641 8.14379 147 | 27.5461 11.6414 8.07754 148 | 28.4434 11.6419 7.98606 149 | 29.3384 11.6423 7.91206 150 | 30.2313 11.6427 7.83976 151 | 31.1223 11.6431 7.76763 152 | 32.0091 11.6437 7.62641 153 | 32.8886 11.6448 7.39413 154 | 33.7689 11.6454 7.2766 155 | 34.6477 11.6459 7.18113 156 | 35.5254 11.6463 7.10307 157 | 36.406 11.6465 7.0849 158 | 37.3015 11.6459 7.2324 159 | 38.2099 11.645 7.47818 160 | 39.1444 11.6433 7.91037 161 | 40.2555 11.636 9.68055 162 | 7.21973 12.3688 10.0207 163 | 8.20251 12.3677 9.78897 164 | 9.17417 12.3668 9.5824 165 | 10.1408 12.3658 9.3767 166 | 11.0972 12.365 9.19728 167 | 12.0474 12.3642 9.02747 168 | 12.9793 12.3637 8.93389 169 | 13.9037 12.3633 8.86909 170 | 14.8241 12.363 8.817 171 | 15.721 12.3633 8.9056 172 | 16.6396 12.363 8.85468 173 | 17.56 12.3626 8.77949 174 | 18.478 12.3622 8.70624 175 | 19.3931 12.3618 8.64079 176 | 20.3053 12.3615 8.58628 177 | 21.2152 12.3612 8.53904 178 | 22.1269 12.3607 8.4513 179 | 23.0364 12.3603 8.36321 180 | 23.9426 12.3599 8.29151 181 | 24.8461 12.3595 8.23202 182 | 25.7484 12.3591 8.16194 183 | 26.6492 12.3587 8.07721 184 | 27.5477 12.3583 7.99954 185 | 28.4439 12.3579 7.9377 186 | 29.3383 12.3576 7.87536 187 | 30.231 12.3572 7.81315 188 | 31.1216 12.3568 7.73462 189 | 32.0109 12.3565 7.68309 190 | 32.893 12.3556 7.49606 191 | 33.7701 12.3547 7.29786 192 | 34.6501 12.3543 7.21896 193 | 35.5297 12.354 7.16106 194 | 36.4127 12.3539 7.16365 195 | 37.3128 12.3546 7.35134 196 | 38.2227 12.3555 7.60026 197 | 39.1997 12.3587 8.38978 198 | 40.3229 12.3662 10.2169 199 | 7.18065 13.1084 10.1768 200 | 8.17599 13.1046 9.89959 201 | 9.16391 13.1009 9.62718 202 | 10.1271 13.0983 9.43963 203 | 11.0803 13.0959 9.27817 204 | 12.0305 13.0936 9.11281 205 | 12.9642 13.0921 9.01453 206 | 13.8928 13.0907 8.93072 207 | 14.8076 13.0903 8.91631 208 | 15.7229 13.0897 8.89379 209 | 16.6422 13.0887 8.83724 210 | 17.5623 13.0875 8.76208 211 | 18.4804 13.0863 8.6871 212 | 19.3964 13.085 8.61228 213 | 20.3103 13.0838 8.53762 214 | 21.2221 13.0826 8.46481 215 | 22.1315 13.0815 8.39589 216 | 23.0381 13.0805 8.33918 217 | 23.9431 13.0795 8.283 218 | 24.8467 13.0784 8.22107 219 | 25.7485 13.0774 8.15927 220 | 26.6489 13.0762 8.08697 221 | 27.5473 13.0751 8.0191 222 | 28.4436 13.0741 7.96261 223 | 29.3383 13.073 7.90023 224 | 30.2309 13.0715 7.80097 225 | 31.1218 13.0706 7.74547 226 | 32.0113 13.0696 7.69463 227 | 32.898 13.0684 7.61423 228 | 33.7801 13.0665 7.48653 229 | 34.663 13.0654 7.42108 230 | 35.5522 13.0657 7.46558 231 | 36.447 13.0667 7.5706 232 | 37.359 13.0698 7.84058 233 | 38.4141 13.0893 9.42352 234 | 39.5436 13.1133 11.3727 235 | 7.14684 13.8501 10.3119 236 | 8.15188 13.8431 10.0002 237 | 9.1491 13.8362 9.69178 238 | 10.1075 13.8323 9.5292 239 | 11.0592 13.8287 9.37979 240 | 12.0064 13.8252 9.23504 241 | 12.9393 13.8229 9.14755 242 | 13.8688 13.8207 9.06663 243 | 14.7967 13.8185 8.98156 244 | 15.7247 13.8159 8.88199 245 | 16.6447 13.8141 8.81981 246 | 17.5624 13.8124 8.76104 247 | 18.4747 13.8114 8.73276 248 | 19.3865 13.8102 8.699 249 | 20.2989 13.8087 8.64825 250 | 21.2097 13.8071 8.59758 251 | 22.1242 13.8043 8.48476 252 | 23.0376 13.801 8.34622 253 | 23.9424 13.7994 8.29423 254 | 24.8454 13.798 8.24721 255 | 25.7469 13.7965 8.20026 256 | 26.6476 13.7946 8.13069 257 | 27.5478 13.7912 7.99034 258 | 28.4436 13.7903 7.97112 259 | 29.3385 13.7912 8.03591 260 | 30.2334 13.7905 8.02285 261 | 31.1263 13.7885 7.9502 262 | 32.0177 13.7868 7.89237 263 | 32.9088 13.7859 7.8676 264 | 33.8007 13.7856 7.87506 265 | 34.7006 13.788 8.01431 266 | 35.6408 13.8011 8.6656 267 | 36.6479 13.8274 9.95577 268 | 37.7463 13.8681 11.934 269 | 7.04951 14.6016 10.7008 270 | 8.1132 14.5851 10.1615 271 | 9.09231 14.5779 9.93958 272 | 10.0592 14.5717 9.74999 273 | 11.0266 14.5648 9.53612 274 | 11.9703 14.5606 9.41727 275 | 12.9063 14.5572 9.32375 276 | 13.8355 14.5545 9.25523 277 | 14.7628 14.5518 9.18577 278 | 15.6887 14.5491 9.11357 279 | 16.606 14.5476 9.08671 280 | 17.5212 14.5464 9.06764 281 | 18.4334 14.5457 9.06523 282 | 19.3451 14.5449 9.06281 283 | 20.2588 14.5435 9.03677 284 | 21.176 14.5406 8.96169 285 | 22.0897 14.5383 8.90401 286 | 23.0017 14.536 8.84643 287 | 23.9118 14.5337 8.79148 288 | 24.8203 14.5315 8.7381 289 | 25.728 14.5287 8.66501 290 | 26.6546 14.5057 7.90015 291 | 27.5537 14.499 7.69301 292 | 28.4431 14.508 8.02387 293 | 29.3392 14.5255 8.6451 294 | 30.2436 14.5324 8.90551 295 | 31.1502 14.5357 9.04089 296 | 32.0892 14.5661 10.1054 297 | 33.038 14.5883 10.8909 298 | 34.0067 14.6127 11.7543 299 | 35.0476 14.6623 13.4801 300 | 8.80064 15.3625 11.2121 301 | 9.87467 15.3383 10.5938 302 | 10.9037 15.3198 10.1266 303 | 11.8934 15.3069 9.80663 304 | 12.8323 15.3027 9.71924 305 | 13.7686 15.2987 9.63373 306 | 14.6978 15.2957 9.57687 307 | 15.6185 15.2943 9.56418 308 | 16.5345 15.294 9.57893 309 | 17.453 15.293 9.574 310 | 18.3739 15.291 9.54403 311 | 19.2969 15.288 9.48695 312 | 20.2182 15.285 9.43008 313 | 21.1376 15.2821 9.37494 314 | 22.0552 15.2792 9.32211 315 | 22.9711 15.2765 9.2718 316 | 23.8847 15.2742 9.23261 317 | 24.7983 15.271 9.17059 318 | 25.71 15.2678 9.10941 319 | 26.6262 15.257 8.84309 320 | 27.5362 15.2464 8.58224 321 | 28.4325 15.2671 9.15643 322 | 29.341 15.3067 10.2361 323 | 11.6767 16.0922 10.9028 324 | 12.7391 16.0596 10.2176 325 | 13.6803 16.0547 10.1336 326 | 14.6254 16.0481 10.0128 327 | 15.5562 16.0448 9.96461 328 | 16.4801 16.0433 9.95378 329 | 17.4049 16.0412 9.93118 330 | 18.3308 16.0383 9.89165 331 | 19.2554 16.0354 9.85218 332 | 20.18 16.032 9.79956 333 | 21.1034 16.0284 9.74385 334 | 22.0251 16.0248 9.68825 335 | 22.9448 16.0214 9.63775 336 | 23.8608 16.0196 9.62183 337 | 24.7784 16.0157 9.5601 338 | 25.6943 16.0118 9.49644 339 | 26.6132 16.0004 9.27143 340 | 27.5136 16.0203 9.72783 341 | 28.4053 16.1275 12.0885 342 | 13.5434 16.8341 10.9086 343 | 14.567 16.8032 10.3648 344 | 15.4944 16.8018 10.3619 345 | 16.4213 16.8004 10.3591 346 | 17.3496 16.7982 10.3414 347 | 18.2783 16.7955 10.314 348 | 19.2081 16.7917 10.2677 349 | 20.1365 16.7879 10.2211 350 | 21.0637 16.784 10.171 351 | 21.9895 16.78 10.121 352 | 22.9143 16.7756 10.0626 353 | 23.8374 16.7711 10.003 354 | 24.7583 16.7673 9.95497 355 | 25.6743 16.7679 9.98988 356 | 26.552 16.8379 11.303 357 | 16.3312 17.5779 10.9797 358 | 17.2901 17.5641 10.7836 359 | 18.2247 17.5603 10.7461 360 | 19.158 17.5565 10.7086 361 | 20.0913 17.5519 10.6586 362 | 21.023 17.5474 10.6098 363 | 21.9541 17.5423 10.5501 364 | 22.8771 17.5427 10.5794 365 | 23.7985 17.5448 10.6368 366 | 24.6335 17.6539 12.403 367 | -------------------------------------------------------------------------------- /examples/txt_to_ply.py: -------------------------------------------------------------------------------- 1 | import os 2 | import argparse 3 | import numpy as np 4 | 5 | def read_txt(filepath): 6 | """ 7 | Read a point cloud from txt file in the following format:: 8 | 9 | num_points 10 | point1x point1y point1z 11 | point2x point2y point2z 12 | ... 13 | 14 | :param filepath: path to file to read 15 | :type filepath: str 16 | :return: points 17 | :rtype: numpy.ndarray 18 | """ 19 | 20 | assert os.path.exists(filepath) 21 | 22 | with open(filepath, 'r') as f: 23 | lines = f.readlines() 24 | lines = [line.strip() for line in lines if line.strip() != ''] 25 | 26 | num_points = int(lines[0]) 27 | points = np.zeros((num_points, 3)) 28 | assert num_points == len(lines) - 1 29 | 30 | for i in range(0, num_points): 31 | line = lines[i + 1] 32 | 33 | parts = line.split(' ') 34 | assert len(parts) == 3, "invalid line: %s" % line 35 | 36 | for j in range(3): 37 | points[i, j] = float(parts[j]) 38 | 39 | return points 40 | 41 | def write_ply(filepath, points): 42 | """ 43 | Write the given points to PLY. 44 | 45 | :param filepath: path to file to write 46 | :type filepath: str 47 | :param points: pointy 48 | :type points: numpy.ndarray 49 | """ 50 | 51 | with open(filepath, 'w') as f: 52 | f.write('ply\n') 53 | f.write('format ascii 1.0\n') 54 | #f.write('format binary_little_endian 1.0\n') 55 | #f.write('format binary_big_endian 1.0\n') 56 | f.write('element vertex ' + str(points.shape[0]) + '\n') 57 | f.write('property float x\n') 58 | f.write('property float y\n') 59 | f.write('property float z\n') 60 | f.write('property uchar red\n') 61 | f.write('property uchar green\n') 62 | f.write('property uchar blue\n') 63 | f.write('end_header\n') 64 | 65 | for n in range(points.shape[0]): 66 | f.write(str(points[n, 0]) + ' ' + str(points[n, 1]) + ' ' + str(points[n, 2])) 67 | f.write(' 0 0 0\n') 68 | 69 | if __name__ == '__main__': 70 | 71 | parser = argparse.ArgumentParser(description='Convert TXT to PLY.') 72 | parser.add_argument('input', type=str, help='The input directory containing TXT files.') 73 | parser.add_argument('output', type=str, help='The output directory for PLY files.') 74 | 75 | args = parser.parse_args() 76 | if not os.path.exists(args.input): 77 | print('Input directory does not exist.') 78 | exit(1) 79 | 80 | if not os.path.exists(args.output): 81 | os.makedirs(args.output) 82 | print('Created output directory.') 83 | else: 84 | print('Output directory exists; potentially overwriting contents.') 85 | 86 | for filename in os.listdir(args.input): 87 | filepath = args.input + '/' + filename 88 | points = read_txt(filepath) 89 | print('Read %s.' % filepath) 90 | 91 | filepath = args.output + '/' + filename[:-4] + '.ply' 92 | write_ply(filepath, points) 93 | print('Wrote %s.' % filepath) 94 | -------------------------------------------------------------------------------- /examples/write_txt.py: -------------------------------------------------------------------------------- 1 | import os 2 | import argparse 3 | import numpy as np 4 | 5 | def write_txt(filepath, points): 6 | """ 7 | Write a point cloud to txt file in the following format:: 8 | 9 | num_points 10 | point1x point1y point1z 11 | point2x point2y point2z 12 | ... 13 | 14 | :param filepath: path to file to read 15 | :type filepath: str 16 | :param points: points 17 | :type points: numpy.ndarray 18 | """ 19 | 20 | with open(filepath, 'w') as f: 21 | f.write(str(points.shape[0]) + '\n') 22 | 23 | for i in range(points.shape[0]): 24 | f.write(str(points[i, 0]) + ' ' + str(points[i, 1]) + ' ' + str(points[i, 2]) + '\n') 25 | 26 | if __name__ == '__main__': 27 | 28 | parser = argparse.ArgumentParser(description='Write example point cloud as TXT.') 29 | parser.add_argument('output', type=str, help='TXT file for example point cloud.') 30 | 31 | args = parser.parse_args() 32 | write_txt(args.output, np.random.random((100, 3))) 33 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | // Eigen 11 | #include 12 | #include 13 | 14 | // Boost 15 | #include 16 | #include 17 | 18 | // OpenMP 19 | #include 20 | 21 | #include "triangle_point/poitri.h" 22 | 23 | /** \brief Compute triangle point distance and corresponding closest point. 24 | * \param[in] point point 25 | * \param[in] v1 first vertex 26 | * \param[in] v2 second vertex 27 | * \param[in] v3 third vertex 28 | * \param[out] ray corresponding closest point 29 | * \return distance 30 | */ 31 | float triangle_point_distance(const Eigen::Vector3f point, const Eigen::Vector3f v1, const Eigen::Vector3f v2, const Eigen::Vector3f v3, 32 | Eigen::Vector3f &closest_point) { 33 | 34 | Vec3f x0(point.data()); 35 | Vec3f x1(v1.data()); 36 | Vec3f x2(v2.data()); 37 | Vec3f x3(v3.data()); 38 | 39 | Vec3f r(0); 40 | float distance = point_triangle_distance(x0, x1, x2, x3, r); 41 | 42 | for (int d = 0; d < 3; d++) { 43 | closest_point(d) = r[d]; 44 | } 45 | 46 | return distance; 47 | } 48 | 49 | /** \brief Point cloud class forward declaration. */ 50 | class PointCloud; 51 | 52 | /** \brief Just encapsulating vertices and faces. */ 53 | class Mesh { 54 | public: 55 | /** \brief Empty constructor. */ 56 | Mesh() { 57 | 58 | } 59 | 60 | /** \brief Reading an off file and returning the vertices x, y, z coordinates and the 61 | * face indices. 62 | * \param[in] filepath path to the OFF file 63 | * \param[out] mesh read mesh with vertices and faces 64 | * \return success 65 | */ 66 | static bool from_off(const std::string filepath, Mesh& mesh) { 67 | 68 | std::ifstream* file = new std::ifstream(filepath.c_str()); 69 | std::string line; 70 | std::stringstream ss; 71 | int line_nb = 0; 72 | 73 | std::getline(*file, line); 74 | ++line_nb; 75 | 76 | if (line != "off" && line != "OFF") { 77 | std::cout << "[Error] Invalid header: \"" << line << "\", " << filepath << std::endl; 78 | return false; 79 | } 80 | 81 | size_t n_edges; 82 | std::getline(*file, line); 83 | ++line_nb; 84 | 85 | int n_vertices; 86 | int n_faces; 87 | ss << line; 88 | ss >> n_vertices; 89 | ss >> n_faces; 90 | ss >> n_edges; 91 | 92 | for (size_t v = 0; v < n_vertices; ++v) { 93 | std::getline(*file, line); 94 | ++line_nb; 95 | 96 | ss.clear(); 97 | ss.str(""); 98 | 99 | Eigen::Vector3f vertex; 100 | ss << line; 101 | ss >> vertex(0); 102 | ss >> vertex(1); 103 | ss >> vertex(2); 104 | 105 | mesh.add_vertex(vertex); 106 | } 107 | 108 | size_t n; 109 | for (size_t f = 0; f < n_faces; ++f) { 110 | std::getline(*file, line); 111 | ++line_nb; 112 | 113 | ss.clear(); 114 | ss.str(""); 115 | 116 | size_t n; 117 | ss << line; 118 | ss >> n; 119 | 120 | if(n != 3) { 121 | std::cout << "[Error] Not a triangle (" << n << " points) at " << (line_nb - 1) << std::endl; 122 | return false; 123 | } 124 | 125 | Eigen::Vector3i face; 126 | ss >> face(0); 127 | ss >> face(1); 128 | ss >> face(2); 129 | 130 | mesh.add_face(face); 131 | } 132 | 133 | if (n_vertices != mesh.num_vertices()) { 134 | std::cout << "[Error] Number of vertices in header differs from actual number of vertices." << std::endl; 135 | return false; 136 | } 137 | 138 | if (n_faces != mesh.num_faces()) { 139 | std::cout << "[Error] Number of faces in header differs from actual number of faces." << std::endl; 140 | return false; 141 | } 142 | 143 | file->close(); 144 | delete file; 145 | 146 | return true; 147 | } 148 | 149 | /** \brief Write mesh to OFF file. 150 | * \param[in] filepath path to OFF file to write 151 | * \return success 152 | */ 153 | bool to_off(const std::string filepath) const { 154 | std::ofstream* out = new std::ofstream(filepath, std::ofstream::out); 155 | if (!static_cast(out)) { 156 | return false; 157 | } 158 | 159 | (*out) << "OFF" << std::endl; 160 | (*out) << this->num_vertices() << " " << this->num_faces() << " 0" << std::endl; 161 | 162 | for (unsigned int v = 0; v < this->num_vertices(); v++) { 163 | (*out) << this->vertices[v](0) << " " << this->vertices[v](1) << " " << this->vertices[v](2) << std::endl; 164 | } 165 | 166 | for (unsigned int f = 0; f < this->num_faces(); f++) { 167 | (*out) << "3 " << this->faces[f](0) << " " << this->faces[f](1) << " " << this->faces[f](2) << std::endl; 168 | } 169 | 170 | out->close(); 171 | delete out; 172 | 173 | return true; 174 | } 175 | 176 | /** \brief Add a vertex. 177 | * \param[in] vertex vertex to add 178 | */ 179 | void add_vertex(Eigen::Vector3f& vertex) { 180 | this->vertices.push_back(vertex); 181 | } 182 | 183 | /** \brief Get the number of vertices. 184 | * \return number of vertices 185 | */ 186 | int num_vertices() const { 187 | return static_cast(this->vertices.size()); 188 | } 189 | 190 | /** \brief Get a vertex. 191 | * \param[in] v vertex index 192 | * \return vertex 193 | */ 194 | Eigen::Vector3f vertex(int v) const { 195 | assert(v >= 0 && v < this->num_vertices()); 196 | return this->vertices[v]; 197 | } 198 | 199 | /** \brief Add a face. 200 | * \param[in] face face to add 201 | */ 202 | void add_face(Eigen::Vector3i& face) { 203 | this->faces.push_back(face); 204 | } 205 | 206 | /** \brief Get the number of faces. 207 | * \return number of faces 208 | */ 209 | int num_faces() const { 210 | return static_cast(this->faces.size()); 211 | } 212 | 213 | /** \brief Get a face. 214 | * \param[in] f face index 215 | * \return face 216 | */ 217 | Eigen::Vector3i face(int f) const { 218 | assert(f >= 0 && f < this->num_faces()); 219 | return this->faces[f]; 220 | } 221 | 222 | /** \brief Sample points from the mesh 223 | * \param[in] mesh mesh to sample from 224 | * \param[in] n batch index in points 225 | * \param[in] points pre-initialized tensor holding points 226 | */ 227 | bool sample(const int N, PointCloud &point_cloud) const; 228 | 229 | private: 230 | 231 | /** \brief Vertices as (x,y,z)-vectors. */ 232 | std::vector vertices; 233 | 234 | /** \brief Faces as list of vertex indices. */ 235 | std::vector faces; 236 | }; 237 | 238 | /** \brief Class representing a point cloud in 3D. */ 239 | class PointCloud { 240 | public: 241 | /** \brief Constructor. */ 242 | PointCloud() { 243 | 244 | } 245 | 246 | /** \brief Copy constructor. 247 | * \param[in] point_cloud point cloud to copy 248 | */ 249 | PointCloud(const PointCloud &point_cloud) { 250 | this->points.clear(); 251 | 252 | for (unsigned int i = 0; i < point_cloud.points.size(); i++) { 253 | this->points.push_back(point_cloud.points[i]); 254 | } 255 | } 256 | 257 | /** \brief Destructor. */ 258 | ~PointCloud() { 259 | 260 | } 261 | 262 | /** \brief Read point cloud from txt file. 263 | * \param[in] filepath path to file to read 264 | * \param[out] point_cloud 265 | * \return success 266 | */ 267 | static bool from_txt(const std::string &filepath, PointCloud &point_cloud) { 268 | std::ifstream file(filepath.c_str()); 269 | std::string line; 270 | std::stringstream ss; 271 | 272 | std::getline(file, line); 273 | ss << line; 274 | 275 | int n_points = 0; 276 | ss >> n_points; 277 | 278 | if (n_points < 0) { 279 | return false; 280 | } 281 | 282 | for (int i = 0; i < n_points; i++) { 283 | std::getline(file, line); 284 | 285 | ss.clear(); 286 | ss.str(""); 287 | ss << line; 288 | 289 | Eigen::Vector3f point(0, 0, 0); 290 | ss >> point(0); 291 | ss >> point(1); 292 | ss >> point(2); 293 | 294 | point_cloud.add_point(point); 295 | } 296 | 297 | return true; 298 | } 299 | 300 | /** \brief Add a point to the point cloud. 301 | * \param[in] point point to add 302 | */ 303 | void add_point(const Eigen::Vector3f &point) { 304 | this->points.push_back(point); 305 | } 306 | 307 | /** \brief Get number of points. 308 | * \return number of points 309 | */ 310 | unsigned int num_points() const { 311 | return this->points.size(); 312 | } 313 | 314 | /** \brief Compute distance to mesh. 315 | * \param[in] mesh 316 | * \param[out] distances per point distances 317 | * \param[out] distance 318 | * \return success 319 | */ 320 | bool compute_distance(const Mesh &mesh, float &_distance) { 321 | _distance = 0; 322 | 323 | if (this->num_points() <= 0) { 324 | std::cout << "[Error] no points in this point clouds" << std::endl; 325 | return false; 326 | } 327 | 328 | if (mesh.num_faces() <= 0) { 329 | std::cout << "[Error] no faces in given mesh" << std::endl; 330 | return false; 331 | } 332 | 333 | #pragma omp parallel 334 | { 335 | #pragma omp for 336 | for (unsigned int i = 0; i < this->points.size(); i++) { 337 | 338 | float min_distance = FLT_MAX; 339 | for (int f = 0; f < mesh.num_faces(); f++) { 340 | Eigen::Vector3f closest_point; 341 | Eigen::Vector3f v1 = mesh.vertex(mesh.face(f)(0)); 342 | Eigen::Vector3f v2 = mesh.vertex(mesh.face(f)(1)); 343 | Eigen::Vector3f v3 = mesh.vertex(mesh.face(f)(2)); 344 | 345 | triangle_point_distance(this->points[i], v1, v2, v3, closest_point); 346 | float distance = (this->points[i] - closest_point).norm(); 347 | 348 | if (distance < min_distance) { 349 | min_distance = distance; 350 | } 351 | } 352 | 353 | #pragma omp atomic 354 | _distance += min_distance; 355 | } 356 | } 357 | 358 | _distance /= this->num_points(); 359 | return true; 360 | } 361 | 362 | private: 363 | /** \brief The points of the point cloud. */ 364 | std::vector points; 365 | 366 | }; 367 | 368 | /** \brief Sample points from the mesh 369 | * \param[in] mesh mesh to sample from 370 | * \param[in] n batch index in points 371 | * \param[in] points pre-initialized tensor holding points 372 | */ 373 | bool Mesh::sample(const int N, PointCloud &point_cloud) const { 374 | 375 | // Stores the areas of faces. 376 | std::vector areas(this->num_faces()); 377 | float sum = 0; 378 | 379 | // Build a probability distribution over faces. 380 | for (int f = 0; f < this->num_faces(); f++) { 381 | Eigen::Vector3f a = this->vertices[this->faces[f][0]]; 382 | Eigen::Vector3f b = this->vertices[this->faces[f][1]]; 383 | Eigen::Vector3f c = this->vertices[this->faces[f][2]]; 384 | 385 | // Angle between a->b and a->c. 386 | Eigen::Vector3f ab = b - a; 387 | Eigen::Vector3f ac = c - a; 388 | float cos_angle = ab.dot(ac)/(ab.norm()*ac.norm()); 389 | float angle = std::acos(cos_angle); 390 | 391 | // Compute triangle area. 392 | float area = std::max(0., 0.5*ab.norm()*ac.norm()*std::sin(angle)); 393 | //std::cout << area << " " << std::pow(area, 1./4.) << " " << angle << " " << ab.norm() << " " << ac.norm() << " " << std::sin(angle) << std::endl; 394 | 395 | // Accumulate. 396 | //area = std::sqrt(area); 397 | areas[f] = area; 398 | sum += area; 399 | //areas.push_back(1); 400 | //sum += 1; 401 | } 402 | 403 | //std::cout << sum << std::endl; 404 | if (sum < 1e-6) { 405 | std::cout << "[Error] face area sum of " << sum << std::endl; 406 | return false; 407 | } 408 | 409 | for (int f = 0; f < this->num_faces(); f++) { 410 | //std::cout << areas[f] << " "; 411 | areas[f] /= sum; 412 | //std::cout << areas[f] << std::endl; 413 | } 414 | 415 | std::vector cum_areas(areas.size()); 416 | cum_areas[0] = areas[0]; 417 | 418 | for (int f = 1; f < this->num_faces(); f++) { 419 | cum_areas[f] = areas[f] + cum_areas[f - 1]; 420 | } 421 | 422 | for (int f = 0; f < this->num_faces(); f++) { 423 | int n = std::max(static_cast(areas[f]*N), 1); 424 | 425 | for (int i = 0; i < n; i++) { 426 | float r1 = 0; 427 | float r2 = 0; 428 | do { 429 | r1 = static_cast(std::rand())/static_cast(RAND_MAX); 430 | r2 = static_cast(std::rand())/static_cast(RAND_MAX); 431 | } 432 | while (r1 + r2 > 1.f); 433 | 434 | int s = std::rand()%3; 435 | //std::cout << face << " " << areas[face] << std::endl; 436 | 437 | Eigen::Vector3f a = this->vertices[this->faces[f](s)]; 438 | Eigen::Vector3f b = this->vertices[this->faces[f]((s + 1)%3)]; 439 | Eigen::Vector3f c = this->vertices[this->faces[f]((s + 2)%3)]; 440 | 441 | Eigen::Vector3f ab = b - a; 442 | Eigen::Vector3f ac = c - a; 443 | 444 | Eigen::Vector3f point = a + r1*ab + r2*ac; 445 | point_cloud.add_point(point); 446 | } 447 | } 448 | 449 | return true; 450 | } 451 | 452 | /** \brief Read all files in a directory matching the given extension. 453 | * \param[in] directory path to directory 454 | * \param[out] files read file paths 455 | * \param[in] extension extension to filter for 456 | */ 457 | void read_directory(const boost::filesystem::path directory, std::map& files, const std::vector &extensions) { 458 | 459 | files.clear(); 460 | boost::filesystem::directory_iterator end; 461 | 462 | for (boost::filesystem::directory_iterator it(directory); it != end; ++it) { 463 | bool filtered = true; 464 | for (unsigned int i = 0; i < extensions.size(); i++) { 465 | if (it->path().extension().string() == extensions[i]) { 466 | filtered = false; 467 | } 468 | } 469 | 470 | if (!filtered) { 471 | int number = std::stoi(it->path().filename().string()); 472 | files.insert(std::pair(number, it->path())); 473 | } 474 | } 475 | } 476 | 477 | /** \brief Main entrance point of the script. 478 | * Expects one parameter, the path to the corresponding config file in config/. 479 | */ 480 | int main(int argc, char** argv) { 481 | boost::program_options::options_description desc("Allowed options"); 482 | desc.add_options() 483 | ("help", "produce help message") 484 | ("input", boost::program_options::value(), "input, either single OFF file or directory containing OFF files where the names correspond to integers (zero padding allowed) and are consecutively numbered starting with zero") 485 | ("reference", boost::program_options::value(), "reference, either single OFF or TXT file or directory containing OFF or TXT files where the names correspond to integers (zero padding allowed) and are consecutively numbered starting with zero (the file names need to correspond to those found in the input directory); for TXT files, accuracy cannot be computed") 486 | ("output", boost::program_options::value(), "output file, a TXT file containing accuracy and completeness for each input-reference pair as well as overall averages") 487 | ("n_points", boost::program_options::value()->default_value(10000), "number points to sample from meshes in order to compute distances"); 488 | 489 | boost::program_options::positional_options_description positionals; 490 | positionals.add("input", 1); 491 | positionals.add("reference", 1); 492 | positionals.add("output", 1); 493 | 494 | boost::program_options::variables_map parameters; 495 | boost::program_options::store(boost::program_options::command_line_parser(argc, argv).options(desc).positional(positionals).run(), parameters); 496 | boost::program_options::notify(parameters); 497 | 498 | if (parameters.find("help") != parameters.end()) { 499 | std::cout << desc << std::endl; 500 | return 1; 501 | } 502 | 503 | boost::filesystem::path input(parameters["input"].as()); 504 | if (!boost::filesystem::is_directory(input) && !boost::filesystem::is_regular_file(input)) { 505 | std::cout << "Input is neither directory nor file." << std::endl; 506 | return 1; 507 | } 508 | 509 | boost::filesystem::path reference(parameters["reference"].as()); 510 | if (!boost::filesystem::is_directory(reference) && !boost::filesystem::is_regular_file(reference)) { 511 | std::cout << "Reference is neither directory nor file." << std::endl; 512 | return 1; 513 | } 514 | 515 | boost::filesystem::path output(parameters["output"].as()); 516 | if (boost::filesystem::is_regular_file(output)) { 517 | std::cout << "Output file already exists; overwriting." << std::endl; 518 | } 519 | 520 | int N_points = parameters["n_points"].as(); 521 | std::cout << "Using " << N_points << " points." << std::endl; 522 | 523 | std::map input_files; 524 | std::map reference_files; 525 | 526 | if (boost::filesystem::is_regular_file(input)) { 527 | if (input.extension().string() != ".off") { 528 | std::cout << "Only OFF files supported as input." << std::endl; 529 | return 1; 530 | } 531 | 532 | input_files.insert(std::pair(0, input)); 533 | } 534 | else { 535 | read_directory(input, input_files, {".off"}); 536 | 537 | if (input_files.size() <= 0) { 538 | std::cout << "Could not find any OFF files in input directory." << std::endl; 539 | return 1; 540 | } 541 | 542 | std::cout << "Read " << input_files.size() << " input files." << std::endl; 543 | } 544 | 545 | if (boost::filesystem::is_regular_file(reference)) { 546 | if (reference.extension().string() != ".off" && reference.extension().string() != ".txt") { 547 | std::cout << "Only OFF or TXT files supported as reference." << std::endl; 548 | return 1; 549 | } 550 | 551 | reference_files.insert(std::pair(0, reference)); 552 | } 553 | else { 554 | read_directory(reference, reference_files, {".off", ".txt"}); 555 | 556 | if (input_files.size() <= 0) { 557 | std::cout << "Could not find any OFF or TXT files in reference directory." << std::endl; 558 | return 1; 559 | } 560 | 561 | std::cout << "Read " << reference_files.size() << " reference files." << std::endl; 562 | } 563 | 564 | std::map accuracies; 565 | std::map completenesses; 566 | 567 | for (std::map::iterator it = input_files.begin(); it != input_files.end(); it++) { 568 | 569 | int n = it->first; 570 | if (reference_files.find(n) == reference_files.end()) { 571 | std::cout << "Could not find the reference file corresponding to " << input_files[n] << "." << std::endl; 572 | return 1; 573 | } 574 | 575 | boost::filesystem::path input_file = input_files[n]; 576 | boost::filesystem::path reference_file = reference_files[n]; 577 | 578 | Mesh input_mesh; 579 | bool success = Mesh::from_off(input_file.string(), input_mesh); 580 | 581 | if (!success) { 582 | std::cout << "Could not read " << input_file << "." << std::endl; 583 | return 1; 584 | } 585 | 586 | if (reference_file.extension().string() == ".off") { 587 | Mesh reference_mesh; 588 | success = Mesh::from_off(reference_file.string(), reference_mesh); 589 | 590 | if (!success) { 591 | std::cout << "Could not read " << reference_file << "." << std::endl; 592 | return 1; 593 | } 594 | 595 | PointCloud input_point_cloud; 596 | success = input_mesh.sample(N_points, input_point_cloud); 597 | 598 | if (success) { 599 | float accuracy = 0; 600 | success = input_point_cloud.compute_distance(reference_mesh, accuracy); 601 | 602 | if (success) { 603 | accuracies[n] = accuracy; 604 | std::cout << "Computed accuracy for " << input_file << "." << std::endl; 605 | } 606 | else { 607 | std::cout << "Could not compute accuracy for " << input_file << "." << std::endl; 608 | } 609 | } 610 | else { 611 | std::cout << "Could not compute accuracy for " << input_file << "." << std::endl; 612 | } 613 | 614 | PointCloud reference_point_cloud; 615 | reference_mesh.sample(N_points, reference_point_cloud); 616 | 617 | if (success) { 618 | float completeness = 0; 619 | success = reference_point_cloud.compute_distance(input_mesh, completeness); 620 | 621 | if (success) { 622 | completenesses[n] = completeness; 623 | std::cout << "Computed completeness for " << input_file << "." << std::endl; 624 | } 625 | else { 626 | std::cout << "Could not compute completeness for " << input_file << "." << std::endl; 627 | } 628 | } 629 | else { 630 | std::cout << "Could not compute completeness for " << input_file << "." << std::endl; 631 | } 632 | } 633 | else if (reference_file.extension().string() == ".txt") { 634 | PointCloud reference_point_cloud; 635 | success = PointCloud::from_txt(reference_file.string(), reference_point_cloud); 636 | 637 | if (!success) { 638 | std::cout << "Could not read " << reference_file << "." << std::endl; 639 | return 1; 640 | } 641 | 642 | float completeness = 0; 643 | success = reference_point_cloud.compute_distance(input_mesh, completeness); 644 | 645 | if (success) { 646 | completenesses[n] = completeness; 647 | std::cout << "Computed completeness for " << input_file << "." << std::endl; 648 | } 649 | else { 650 | std::cout << "Could not compute completeness for " << input_file << "." << std::endl; 651 | } 652 | } 653 | else { 654 | std::cout << "Reference file " << reference_file << " has invalid extension." << std::endl; 655 | } 656 | } 657 | 658 | std::ofstream* out = new std::ofstream(output.string(), std::ofstream::out); 659 | if (!static_cast(*out)) { 660 | std::cout << "Could not open " << output << std::endl; 661 | exit(1); 662 | } 663 | 664 | float accuracy = 0; 665 | float completeness = 0; 666 | 667 | for (std::map::iterator it = input_files.begin(); it != input_files.end(); it++) { 668 | int n = it->first; 669 | 670 | (*out) << n << " "; 671 | if (accuracies.find(n) != accuracies.end()) { 672 | (*out) << accuracies[n]; 673 | accuracy += accuracies[n]; 674 | } 675 | else { 676 | (*out) << "-1"; 677 | } 678 | 679 | (*out) << " "; 680 | if (completenesses.find(n) != completenesses.end()) { 681 | (*out) << completenesses[n]; 682 | completeness += completenesses[n]; 683 | } 684 | else { 685 | (*out) << "-1"; 686 | } 687 | 688 | (*out) << std::endl; 689 | } 690 | 691 | 692 | if (accuracies.size() > 0) { 693 | accuracy /= accuracies.size(); 694 | (*out) << accuracy; 695 | std::cout << "Accuracy (input to reference): " << accuracy << std::endl; 696 | } 697 | else { 698 | (*out) << "-1"; 699 | std::cout << "Could not compute accuracy." << std::endl; 700 | } 701 | 702 | (*out) << " "; 703 | if (completenesses.size() > 0) { 704 | completeness /= completenesses.size(); 705 | (*out) << completeness; 706 | std::cout << "Completeness (reference to input): " << completeness << std::endl; 707 | } 708 | else { 709 | (*out) << "-1"; 710 | std::cout << "Could not compute completeness." << std::endl; 711 | } 712 | 713 | out->close(); 714 | delete out; 715 | std::cout << "Wrote " << output << "." << std::endl; 716 | 717 | exit(0); 718 | } -------------------------------------------------------------------------------- /triangle_point/README.md: -------------------------------------------------------------------------------- 1 | # SDFGen 2 | 3 | A simple commandline utility to generate grid-based signed distance field (level set) generator from triangle meshes, using code from Robert Bridson's website. 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2015, Christopher Batty 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy 10 | of this software and associated documentation files (the "Software"), to deal 11 | in the Software without restriction, including without limitation the rights 12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the Software is 14 | furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in all 17 | copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | SOFTWARE. 26 | -------------------------------------------------------------------------------- /triangle_point/poitri.h: -------------------------------------------------------------------------------- 1 | #ifndef POITRI_H_ 2 | #define POITRI_H_ 3 | 4 | #include "vec.h" 5 | 6 | // find distance x0 is from segment x1-x2 7 | float point_segment_distance(const Vec3f &x0, const Vec3f &x1, const Vec3f &x2, Vec3f &r) 8 | { 9 | Vec3f dx(x2-x1); 10 | double m2=mag2(dx); 11 | // find parameter value of closest point on segment 12 | float s12=(float)(dot(x2-x0, dx)/m2); 13 | if(s12<0){ 14 | s12=0; 15 | }else if(s12>1){ 16 | s12=1; 17 | } 18 | // and find the distance 19 | r = s12*x1+(1-s12)*x2; 20 | return dist(x0, s12*x1+(1-s12)*x2); 21 | } 22 | 23 | // find distance x0 is from triangle x1-x2-x3 24 | float point_triangle_distance(const Vec3f &x0, const Vec3f &x1, const Vec3f &x2, const Vec3f &x3, Vec3f &r) 25 | { 26 | // first find barycentric coordinates of closest point on infinite plane 27 | Vec3f x13(x1-x3), x23(x2-x3), x03(x0-x3); 28 | float m13=mag2(x13), m23=mag2(x23), d=dot(x13,x23); 29 | float invdet=1.f/max(m13*m23-d*d,1e-30f); 30 | float a=dot(x13,x03), b=dot(x23,x03); 31 | // the barycentric coordinates themselves 32 | float w23=invdet*(m23*a-d*b); 33 | float w31=invdet*(m13*b-d*a); 34 | float w12=1-w23-w31; 35 | if(w23>=0 && w31>=0 && w12>=0){ // if we're inside the triangle 36 | r = w23*x1+w31*x2+w12*x3; 37 | return dist(x0, w23*x1+w31*x2+w12*x3); 38 | }else{ // we have to clamp to one of the edges 39 | Vec3f r1(0); 40 | Vec3f r2(0); 41 | 42 | if(w23>0){ // this rules out edge 2-3 for us 43 | //return min(point_segment_distance(x0,x1,x2), point_segment_distance(x0,x1,x3,r)); 44 | float d1 = point_segment_distance(x0,x1,x2,r1); 45 | float d2 = point_segment_distance(x0,x1,x3,r2); 46 | 47 | if(d10){ // this rules out edge 1-3 55 | //return min(point_segment_distance(x0,x1,x2), point_segment_distance(x0,x2,x3)); 56 | float d1 = point_segment_distance(x0,x1,x2,r1); 57 | float d2 = point_segment_distance(x0,x2,x3,r2); 58 | 59 | if(d10, ruling out edge 1-2 67 | //return min(point_segment_distance(x0,x1,x3), point_segment_distance(x0,x2,x3)); 68 | float d1 = point_segment_distance(x0,x1,x3,r1); 69 | float d2 = point_segment_distance(x0,x2,x3,r2); 70 | 71 | if(d1 5 | #include 6 | #include 7 | #include 8 | 9 | #ifndef M_PI 10 | const double M_PI = 3.1415926535897932384626433832795; 11 | #endif 12 | 13 | #ifdef WIN32 14 | #undef min 15 | #undef max 16 | #endif 17 | 18 | using std::min; 19 | using std::max; 20 | using std::swap; 21 | 22 | template 23 | inline T sqr(const T& x) 24 | { return x*x; } 25 | 26 | template 27 | inline T cube(const T& x) 28 | { return x*x*x; } 29 | 30 | template 31 | inline T min(T a1, T a2, T a3) 32 | { return min(a1, min(a2, a3)); } 33 | 34 | template 35 | inline T min(T a1, T a2, T a3, T a4) 36 | { return min(min(a1, a2), min(a3, a4)); } 37 | 38 | template 39 | inline T min(T a1, T a2, T a3, T a4, T a5) 40 | { return min(min(a1, a2), min(a3, a4), a5); } 41 | 42 | template 43 | inline T min(T a1, T a2, T a3, T a4, T a5, T a6) 44 | { return min(min(a1, a2), min(a3, a4), min(a5, a6)); } 45 | 46 | template 47 | inline T max(T a1, T a2, T a3) 48 | { return max(a1, max(a2, a3)); } 49 | 50 | template 51 | inline T max(T a1, T a2, T a3, T a4) 52 | { return max(max(a1, a2), max(a3, a4)); } 53 | 54 | template 55 | inline T max(T a1, T a2, T a3, T a4, T a5) 56 | { return max(max(a1, a2), max(a3, a4), a5); } 57 | 58 | template 59 | inline T max(T a1, T a2, T a3, T a4, T a5, T a6) 60 | { return max(max(a1, a2), max(a3, a4), max(a5, a6)); } 61 | 62 | template 63 | inline void minmax(T a1, T a2, T& amin, T& amax) 64 | { 65 | if(a1 75 | inline void minmax(T a1, T a2, T a3, T& amin, T& amax) 76 | { 77 | if(a1 100 | inline void minmax(T a1, T a2, T a3, T a4, T& amin, T& amax) 101 | { 102 | if(a1 122 | inline void minmax(T a1, T a2, T a3, T a4, T a5, T& amin, T& amax) 123 | { 124 | //@@@ the logic could be shortcircuited a lot! 125 | amin=min(a1,a2,a3,a4,a5); 126 | amax=max(a1,a2,a3,a4,a5); 127 | } 128 | 129 | template 130 | inline void minmax(T a1, T a2, T a3, T a4, T a5, T a6, T& amin, T& amax) 131 | { 132 | //@@@ the logic could be shortcircuited a lot! 133 | amin=min(a1,a2,a3,a4,a5,a6); 134 | amax=max(a1,a2,a3,a4,a5,a6); 135 | } 136 | 137 | template 138 | inline void update_minmax(T a1, T& amin, T& amax) 139 | { 140 | if(a1amax) amax=a1; 142 | } 143 | 144 | template 145 | inline void sort(T &a, T &b, T &c) 146 | { 147 | T temp; 148 | if(a 170 | inline T clamp(T a, T lower, T upper) 171 | { 172 | if(aupper) return upper; 174 | else return a; 175 | } 176 | 177 | // only makes sense with T=float or double 178 | template 179 | inline T smooth_step(T r) 180 | { 181 | if(r<0) return 0; 182 | else if(r>1) return 1; 183 | return r*r*r*(10+r*(-15+r*6)); 184 | } 185 | 186 | // only makes sense with T=float or double 187 | template 188 | inline T smooth_step(T r, T r_lower, T r_upper, T value_lower, T value_upper) 189 | { return value_lower + smooth_step((r-r_lower)/(r_upper-r_lower)) * (value_upper-value_lower); } 190 | 191 | // only makes sense with T=float or double 192 | template 193 | inline T ramp(T r) 194 | { return smooth_step((r+1)/2)*2-1; } 195 | 196 | #ifdef WIN32 197 | inline int lround(double x) 198 | { 199 | if(x>0) 200 | return (x-floor(x)<0.5) ? (int)floor(x) : (int)ceil(x); 201 | else 202 | return (x-floor(x)<=0.5) ? (int)floor(x) : (int)ceil(x); 203 | } 204 | 205 | inline double remainder(double x, double y) 206 | { 207 | return x-std::floor(x/y+0.5)*y; 208 | } 209 | #endif 210 | 211 | inline unsigned int round_up_to_power_of_two(unsigned int n) 212 | { 213 | int exponent=0; 214 | --n; 215 | while(n){ 216 | ++exponent; 217 | n>>=1; 218 | } 219 | return 1<1){ 226 | ++exponent; 227 | n>>=1; 228 | } 229 | return 1<>16); 239 | i*=2654435769u; 240 | i^=(i>>16); 241 | i*=2654435769u; 242 | return i; 243 | } 244 | 245 | // the inverse of randhash 246 | inline unsigned int unhash(unsigned int h) 247 | { 248 | h*=340573321u; 249 | h^=(h>>16); 250 | h*=340573321u; 251 | h^=(h>>16); 252 | h*=340573321u; 253 | h^=0xA3C59AC3u; 254 | return h; 255 | } 256 | 257 | // returns repeatable stateless pseudo-random number in [0,1] 258 | inline double randhashd(unsigned int seed) 259 | { return randhash(seed)/(double)UINT_MAX; } 260 | inline float randhashf(unsigned int seed) 261 | { return randhash(seed)/(float)UINT_MAX; } 262 | 263 | // returns repeatable stateless pseudo-random number in [a,b] 264 | inline double randhashd(unsigned int seed, double a, double b) 265 | { return (b-a)*randhash(seed)/(double)UINT_MAX + a; } 266 | inline float randhashf(unsigned int seed, float a, float b) 267 | { return ( (b-a)*randhash(seed)/(float)UINT_MAX + a); } 268 | 269 | inline int intlog2(int x) 270 | { 271 | int exp=-1; 272 | while(x){ 273 | x>>=1; 274 | ++exp; 275 | } 276 | return exp; 277 | } 278 | 279 | template 280 | inline void get_barycentric(T x, int& i, T& f, int i_low, int i_high) 281 | { 282 | T s=std::floor(x); 283 | i=(int)s; 284 | if(ii_high-2){ 288 | i=i_high-2; 289 | f=1; 290 | }else 291 | f=(T)(x-s); 292 | } 293 | 294 | template 295 | inline S lerp(const S& value0, const S& value1, T f) 296 | { return (1-f)*value0 + f*value1; } 297 | 298 | template 299 | inline S bilerp(const S& v00, const S& v10, 300 | const S& v01, const S& v11, 301 | T fx, T fy) 302 | { 303 | return lerp(lerp(v00, v10, fx), 304 | lerp(v01, v11, fx), 305 | fy); 306 | } 307 | 308 | template 309 | inline S trilerp(const S& v000, const S& v100, 310 | const S& v010, const S& v110, 311 | const S& v001, const S& v101, 312 | const S& v011, const S& v111, 313 | T fx, T fy, T fz) 314 | { 315 | return lerp(bilerp(v000, v100, v010, v110, fx, fy), 316 | bilerp(v001, v101, v011, v111, fx, fy), 317 | fz); 318 | } 319 | 320 | template 321 | inline S quadlerp(const S& v0000, const S& v1000, 322 | const S& v0100, const S& v1100, 323 | const S& v0010, const S& v1010, 324 | const S& v0110, const S& v1110, 325 | const S& v0001, const S& v1001, 326 | const S& v0101, const S& v1101, 327 | const S& v0011, const S& v1011, 328 | const S& v0111, const S& v1111, 329 | T fx, T fy, T fz, T ft) 330 | { 331 | return lerp(trilerp(v0000, v1000, v0100, v1100, v0010, v1010, v0110, v1110, fx, fy, fz), 332 | trilerp(v0001, v1001, v0101, v1101, v0011, v1011, v0111, v1111, fx, fy, fz), 333 | ft); 334 | } 335 | 336 | // f should be between 0 and 1, with f=0.5 corresponding to balanced weighting between w0 and w2 337 | template 338 | inline void quadratic_bspline_weights(T f, T& w0, T& w1, T& w2) 339 | { 340 | w0=T(0.5)*sqr(f-1); 341 | w1=T(0.75)-sqr(f-T(0.5));; 342 | w2=T(0.5)*sqr(f); 343 | } 344 | 345 | // f should be between 0 and 1 346 | template 347 | inline void cubic_interp_weights(T f, T& wneg1, T& w0, T& w1, T& w2) 348 | { 349 | T f2(f*f), f3(f2*f); 350 | wneg1=-T(1./3)*f+T(1./2)*f2-T(1./6)*f3; 351 | w0=1-f2+T(1./2)*(f3-f); 352 | w1=f+T(1./2)*(f2-f3); 353 | w2=T(1./6)*(f3-f); 354 | } 355 | 356 | template 357 | inline S cubic_interp(const S& value_neg1, const S& value0, const S& value1, const S& value2, T f) 358 | { 359 | T wneg1, w0, w1, w2; 360 | cubic_interp_weights(f, wneg1, w0, w1, w2); 361 | return wneg1*value_neg1 + w0*value0 + w1*value1 + w2*value2; 362 | } 363 | 364 | template 365 | void zero(std::vector& v) 366 | { for(int i=(int)v.size()-1; i>=0; --i) v[i]=0; } 367 | 368 | template 369 | T abs_max(const std::vector& v) 370 | { 371 | T m=0; 372 | for(int i=(int)v.size()-1; i>=0; --i){ 373 | if(std::fabs(v[i])>m) 374 | m=std::fabs(v[i]); 375 | } 376 | return m; 377 | } 378 | 379 | template 380 | bool contains(const std::vector& a, T e) 381 | { 382 | for(unsigned int i=0; i 388 | void add_unique(std::vector& a, T e) 389 | { 390 | for(unsigned int i=0; i 396 | void insert(std::vector& a, unsigned int index, T e) 397 | { 398 | a.push_back(a.back()); 399 | for(unsigned int i=(unsigned int)a.size()-1; i>index; --i) 400 | a[i]=a[i-1]; 401 | a[index]=e; 402 | } 403 | 404 | template 405 | void erase(std::vector& a, unsigned int index) 406 | { 407 | for(unsigned int i=index; i 413 | void erase_swap(std::vector& a, unsigned int index) 414 | { 415 | for(unsigned int i=index; i 421 | void erase_unordered(std::vector& a, unsigned int index) 422 | { 423 | a[index]=a.back(); 424 | a.pop_back(); 425 | } 426 | 427 | template 428 | void erase_unordered_swap(std::vector& a, unsigned int index) 429 | { 430 | swap(a[index], a.back()); 431 | a.pop_back(); 432 | } 433 | 434 | template 435 | void find_and_erase_unordered(std::vector& a, const T& doomed_element) 436 | { 437 | for(unsigned int i=0; i 445 | void replace_once(std::vector& a, const T& old_element, const T& new_element) 446 | { 447 | for(unsigned int i=0; i 455 | void write_matlab(std::ostream& output, const std::vector& a, const char *variable_name, bool column_vector=true, int significant_digits=18) 456 | { 457 | output< 5 | #include 6 | #include 7 | #include "util.h" 8 | 9 | // Defines a thin wrapper around fixed size C-style arrays, using template parameters, 10 | // which is useful for dealing with vectors of different dimensions. 11 | // For example, float[3] is equivalent to Vec<3,float>. 12 | // Entries in the vector are accessed with the overloaded [] operator, so 13 | // for example if x is a Vec<3,float>, then the middle entry is x[1]. 14 | // For convenience, there are a number of typedefs for abbreviation: 15 | // Vec<3,float> -> Vec3f 16 | // Vec<2,int> -> Vec2i 17 | // and so on. 18 | // Arithmetic operators are appropriately overloaded, and functions are defined 19 | // for additional operations (such as dot-products, norms, cross-products, etc.) 20 | 21 | template 22 | struct Vec 23 | { 24 | T v[N]; 25 | 26 | Vec(void) 27 | {} 28 | 29 | explicit Vec(T value_for_all) 30 | { for(unsigned int i=0; i 33 | explicit Vec(const S *source) 34 | { for(unsigned int i=0; i 37 | explicit Vec(const Vec& source) 38 | { for(unsigned int i=0; i(T v0, T v1) 41 | { 42 | assert(N==2); 43 | v[0]=v0; v[1]=v1; 44 | } 45 | 46 | Vec(T v0, T v1, T v2) 47 | { 48 | assert(N==3); 49 | v[0]=v0; v[1]=v1; v[2]=v2; 50 | } 51 | 52 | Vec(T v0, T v1, T v2, T v3) 53 | { 54 | assert(N==4); 55 | v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; 56 | } 57 | 58 | Vec(T v0, T v1, T v2, T v3, T v4) 59 | { 60 | assert(N==5); 61 | v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; 62 | } 63 | 64 | Vec(T v0, T v1, T v2, T v3, T v4, T v5) 65 | { 66 | assert(N==6); 67 | v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; v[5]=v5; 68 | } 69 | 70 | T &operator[](int index) 71 | { 72 | assert(0<=index && (unsigned int)index operator+=(const Vec &w) 89 | { 90 | for(unsigned int i=0; i operator+(const Vec &w) const 95 | { 96 | Vec sum(*this); 97 | sum+=w; 98 | return sum; 99 | } 100 | 101 | Vec operator-=(const Vec &w) 102 | { 103 | for(unsigned int i=0; i operator-(void) const // unary minus 108 | { 109 | Vec negative; 110 | for(unsigned int i=0; i operator-(const Vec &w) const // (binary) subtraction 115 | { 116 | Vec diff(*this); 117 | diff-=w; 118 | return diff; 119 | } 120 | 121 | Vec operator*=(T a) 122 | { 123 | for(unsigned int i=0; i operator*(T a) const 128 | { 129 | Vec w(*this); 130 | w*=a; 131 | return w; 132 | } 133 | 134 | Vec operator*=(const Vec &w) 135 | { 136 | for(unsigned int i=0; i operator*(const Vec &w) const 141 | { 142 | Vec componentwise_product; 143 | for(unsigned int i=0; i operator/=(T a) 148 | { 149 | for(unsigned int i=0; i operator/(T a) const 154 | { 155 | Vec w(*this); 156 | w/=a; 157 | return w; 158 | } 159 | }; 160 | 161 | typedef Vec<2,double> Vec2d; 162 | typedef Vec<2,float> Vec2f; 163 | typedef Vec<2,int> Vec2i; 164 | typedef Vec<2,unsigned int> Vec2ui; 165 | typedef Vec<2,short> Vec2s; 166 | typedef Vec<2,unsigned short> Vec2us; 167 | typedef Vec<2,char> Vec2c; 168 | typedef Vec<2,unsigned char> Vec2uc; 169 | 170 | typedef Vec<3,double> Vec3d; 171 | typedef Vec<3,float> Vec3f; 172 | typedef Vec<3,int> Vec3i; 173 | typedef Vec<3,unsigned int> Vec3ui; 174 | typedef Vec<3,short> Vec3s; 175 | typedef Vec<3,unsigned short> Vec3us; 176 | typedef Vec<3,char> Vec3c; 177 | typedef Vec<3,unsigned char> Vec3uc; 178 | 179 | typedef Vec<4,double> Vec4d; 180 | typedef Vec<4,float> Vec4f; 181 | typedef Vec<4,int> Vec4i; 182 | typedef Vec<4,unsigned int> Vec4ui; 183 | typedef Vec<4,short> Vec4s; 184 | typedef Vec<4,unsigned short> Vec4us; 185 | typedef Vec<4,char> Vec4c; 186 | typedef Vec<4,unsigned char> Vec4uc; 187 | 188 | typedef Vec<6,double> Vec6d; 189 | typedef Vec<6,float> Vec6f; 190 | typedef Vec<6,unsigned int> Vec6ui; 191 | typedef Vec<6,int> Vec6i; 192 | typedef Vec<6,short> Vec6s; 193 | typedef Vec<6,unsigned short> Vec6us; 194 | typedef Vec<6,char> Vec6c; 195 | typedef Vec<6,unsigned char> Vec6uc; 196 | 197 | 198 | template 199 | T mag2(const Vec &a) 200 | { 201 | T l=sqr(a.v[0]); 202 | for(unsigned int i=1; i 207 | T mag(const Vec &a) 208 | { return sqrt(mag2(a)); } 209 | 210 | template 211 | inline T dist2(const Vec &a, const Vec &b) 212 | { 213 | T d=sqr(a.v[0]-b.v[0]); 214 | for(unsigned int i=1; i 219 | inline T dist(const Vec &a, const Vec &b) 220 | { return std::sqrt(dist2(a,b)); } 221 | 222 | template 223 | inline void normalize(Vec &a) 224 | { a/=mag(a); } 225 | 226 | template 227 | inline Vec normalized(const Vec &a) 228 | { return a/mag(a); } 229 | 230 | template 231 | inline T infnorm(const Vec &a) 232 | { 233 | T d=std::fabs(a.v[0]); 234 | for(unsigned int i=1; i 239 | void zero(Vec &a) 240 | { 241 | for(unsigned int i=0; i 246 | std::ostream &operator<<(std::ostream &out, const Vec &v) 247 | { 248 | out< 255 | std::istream &operator>>(std::istream &in, Vec &v) 256 | { 257 | in>>v.v[0]; 258 | for(unsigned int i=1; i>v.v[i]; 260 | return in; 261 | } 262 | 263 | template 264 | inline bool operator==(const Vec &a, const Vec &b) 265 | { 266 | bool t = (a.v[0] == b.v[0]); 267 | unsigned int i=1; 268 | while(i 276 | inline bool operator!=(const Vec &a, const Vec &b) 277 | { 278 | bool t = (a.v[0] != b.v[0]); 279 | unsigned int i=1; 280 | while(i 288 | inline Vec operator*(T a, const Vec &v) 289 | { 290 | Vec w(v); 291 | w*=a; 292 | return w; 293 | } 294 | 295 | template 296 | inline T min(const Vec &a) 297 | { 298 | T m=a.v[0]; 299 | for(unsigned int i=1; i 304 | inline Vec min_union(const Vec &a, const Vec &b) 305 | { 306 | Vec m; 307 | for(unsigned int i=0; i 312 | inline Vec max_union(const Vec &a, const Vec &b) 313 | { 314 | Vec m; 315 | for(unsigned int i=0; i b.v[i]) ? m.v[i]=a.v[i] : m.v[i]=b.v[i]; 316 | return m; 317 | } 318 | 319 | template 320 | inline T max(const Vec &a) 321 | { 322 | T m=a.v[0]; 323 | for(unsigned int i=1; im) m=a.v[i]; 324 | return m; 325 | } 326 | 327 | template 328 | inline T dot(const Vec &a, const Vec &b) 329 | { 330 | T d=a.v[0]*b.v[0]; 331 | for(unsigned int i=1; i 336 | inline Vec<2,T> rotate(const Vec<2,T>& a, float angle) 337 | { 338 | T c = cos(angle); 339 | T s = sin(angle); 340 | return Vec<2,T>(c*a[0] - s*a[1],s*a[0] + c*a[1]); // counter-clockwise rotation 341 | } 342 | 343 | template 344 | inline Vec<2,T> perp(const Vec<2,T> &a) 345 | { return Vec<2,T>(-a.v[1], a.v[0]); } // counter-clockwise rotation by 90 degrees 346 | 347 | template 348 | inline T cross(const Vec<2,T> &a, const Vec<2,T> &b) 349 | { return a.v[0]*b.v[1]-a.v[1]*b.v[0]; } 350 | 351 | template 352 | inline Vec<3,T> cross(const Vec<3,T> &a, const Vec<3,T> &b) 353 | { return Vec<3,T>(a.v[1]*b.v[2]-a.v[2]*b.v[1], a.v[2]*b.v[0]-a.v[0]*b.v[2], a.v[0]*b.v[1]-a.v[1]*b.v[0]); } 354 | 355 | template 356 | inline T triple(const Vec<3,T> &a, const Vec<3,T> &b, const Vec<3,T> &c) 357 | { return a.v[0]*(b.v[1]*c.v[2]-b.v[2]*c.v[1]) 358 | +a.v[1]*(b.v[2]*c.v[0]-b.v[0]*c.v[2]) 359 | +a.v[2]*(b.v[0]*c.v[1]-b.v[1]*c.v[0]); } 360 | 361 | template 362 | inline unsigned int hash(const Vec &a) 363 | { 364 | unsigned int h=a.v[0]; 365 | for(unsigned int i=1; i 371 | inline void assign(const Vec &a, T &a0, T &a1) 372 | { 373 | assert(N==2); 374 | a0=a.v[0]; a1=a.v[1]; 375 | } 376 | 377 | template 378 | inline void assign(const Vec &a, T &a0, T &a1, T &a2) 379 | { 380 | assert(N==3); 381 | a0=a.v[0]; a1=a.v[1]; a2=a.v[2]; 382 | } 383 | 384 | template 385 | inline void assign(const Vec &a, T &a0, T &a1, T &a2, T &a3) 386 | { 387 | assert(N==4); 388 | a0=a.v[0]; a1=a.v[1]; a2=a.v[2]; a3=a.v[3]; 389 | } 390 | 391 | template 392 | inline void assign(const Vec &a, T &a0, T &a1, T &a2, T &a3, T &a4, T &a5) 393 | { 394 | assert(N==6); 395 | a0=a.v[0]; a1=a.v[1]; a2=a.v[2]; a3=a.v[3]; a4=a.v[4]; a5=a.v[5]; 396 | } 397 | 398 | template 399 | inline Vec round(const Vec &a) 400 | { 401 | Vec rounded; 402 | for(unsigned int i=0; i 408 | inline Vec floor(const Vec &a) 409 | { 410 | Vec rounded; 411 | for(unsigned int i=0; i 417 | inline Vec ceil(const Vec &a) 418 | { 419 | Vec rounded; 420 | for(unsigned int i=0; i 426 | inline Vec fabs(const Vec &a) 427 | { 428 | Vec result; 429 | for(unsigned int i=0; i 435 | inline void minmax(const Vec &x0, const Vec &x1, Vec &xmin, Vec &xmax) 436 | { 437 | for(unsigned int i=0; i 442 | inline void minmax(const Vec &x0, const Vec &x1, const Vec &x2, Vec &xmin, Vec &xmax) 443 | { 444 | for(unsigned int i=0; i 449 | inline void minmax(const Vec &x0, const Vec &x1, const Vec &x2, const Vec &x3, 450 | Vec &xmin, Vec &xmax) 451 | { 452 | for(unsigned int i=0; i 457 | inline void minmax(const Vec &x0, const Vec &x1, const Vec &x2, const Vec &x3, const Vec &x4, 458 | Vec &xmin, Vec &xmax) 459 | { 460 | for(unsigned int i=0; i 465 | inline void minmax(const Vec &x0, const Vec &x1, const Vec &x2, const Vec &x3, const Vec &x4, 466 | const Vec &x5, Vec &xmin, Vec &xmax) 467 | { 468 | for(unsigned int i=0; i 473 | inline void update_minmax(const Vec &x, Vec &xmin, Vec &xmax) 474 | { 475 | for(unsigned int i=0; i