koffi 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/CMakeLists.txt +60 -60
  2. package/README.md +163 -153
  3. package/package.json +19 -18
  4. package/src/call.hh +27 -27
  5. package/src/call_arm64.cc +482 -482
  6. package/src/call_arm64_fwd.S +115 -115
  7. package/src/call_x64_sysv.cc +477 -477
  8. package/src/call_x64_sysv_fwd.S +131 -131
  9. package/src/call_x64_win.cc +243 -243
  10. package/src/call_x64_win_fwd.asm +105 -105
  11. package/src/call_x86.cc +259 -259
  12. package/src/call_x86_fwd.S +48 -48
  13. package/src/call_x86_fwd.asm +50 -50
  14. package/src/ffi.cc +504 -504
  15. package/src/ffi.hh +135 -135
  16. package/src/util.cc +296 -296
  17. package/src/util.hh +80 -80
  18. package/vendor/dragonbox/CMakeLists.txt +122 -122
  19. package/vendor/dragonbox/LICENSE-Apache2-LLVM +218 -218
  20. package/vendor/dragonbox/LICENSE-Boost +23 -23
  21. package/vendor/dragonbox/README.md +277 -277
  22. package/vendor/dragonbox/cmake/dragonboxConfig.cmake +1 -1
  23. package/vendor/dragonbox/include/dragonbox/dragonbox.h +2670 -2670
  24. package/vendor/dragonbox/include/dragonbox/dragonbox_to_chars.h +108 -108
  25. package/vendor/dragonbox/other_files/unknown_win64_vc2019.html +539 -539
  26. package/vendor/dragonbox/source/dragonbox_to_chars.cpp +303 -303
  27. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/CMakeLists.txt +23 -23
  28. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.cpp +238 -238
  29. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/fp_to_chars.h +95 -95
  30. package/vendor/dragonbox/subproject/3rdparty/grisu_exact/grisu_exact.h +2666 -2666
  31. package/vendor/dragonbox/subproject/3rdparty/ryu/CMakeLists.txt +16 -16
  32. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/common.h +114 -114
  33. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s.c +509 -509
  34. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_full_table.h +367 -367
  35. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/d2s_intrinsics.h +357 -357
  36. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/digit_table.h +35 -35
  37. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s.c +345 -345
  38. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_full_table.h +55 -55
  39. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/f2s_intrinsics.h +128 -128
  40. package/vendor/dragonbox/subproject/3rdparty/ryu/ryu/ryu.h +46 -46
  41. package/vendor/dragonbox/subproject/3rdparty/schubfach/CMakeLists.txt +21 -21
  42. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.cc +699 -699
  43. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_32.h +31 -31
  44. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.cc +1354 -1354
  45. package/vendor/dragonbox/subproject/3rdparty/schubfach/schubfach_64.h +31 -31
  46. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/example_shaded_plots.m +68 -68
  47. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/license.txt +25 -25
  48. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution.m +92 -92
  49. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_distribution_prctile.m +121 -121
  50. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_histogram_shaded.m +99 -99
  51. package/vendor/dragonbox/subproject/3rdparty/shaded_plots/plot_shaded.m +93 -93
  52. package/vendor/dragonbox/subproject/benchmark/CMakeLists.txt +64 -64
  53. package/vendor/dragonbox/subproject/benchmark/include/benchmark.h +40 -40
  54. package/vendor/dragonbox/subproject/benchmark/matlab/plot_benchmarks.m +21 -21
  55. package/vendor/dragonbox/subproject/benchmark/matlab/plot_digit_benchmark.m +78 -78
  56. package/vendor/dragonbox/subproject/benchmark/matlab/plot_uniform_benchmark.m +95 -95
  57. package/vendor/dragonbox/subproject/benchmark/source/benchmark.cpp +237 -237
  58. package/vendor/dragonbox/subproject/benchmark/source/dragonbox.cpp +30 -30
  59. package/vendor/dragonbox/subproject/benchmark/source/grisu_exact.cpp +36 -36
  60. package/vendor/dragonbox/subproject/benchmark/source/ryu.cpp +27 -27
  61. package/vendor/dragonbox/subproject/benchmark/source/schubfach.cpp +31 -31
  62. package/vendor/dragonbox/subproject/common/CMakeLists.txt +41 -41
  63. package/vendor/dragonbox/subproject/common/include/best_rational_approx.h +96 -96
  64. package/vendor/dragonbox/subproject/common/include/big_uint.h +217 -217
  65. package/vendor/dragonbox/subproject/common/include/continued_fractions.h +173 -173
  66. package/vendor/dragonbox/subproject/common/include/good_rational_approx.h +266 -266
  67. package/vendor/dragonbox/subproject/common/include/random_float.h +182 -182
  68. package/vendor/dragonbox/subproject/common/include/rational_continued_fractions.h +56 -56
  69. package/vendor/dragonbox/subproject/common/source/big_uint.cpp +601 -601
  70. package/vendor/dragonbox/subproject/meta/CMakeLists.txt +40 -40
  71. package/vendor/dragonbox/subproject/meta/results/binary32_generated_cache.txt +81 -81
  72. package/vendor/dragonbox/subproject/meta/results/binary64_compressed_cache_error_table.txt +9 -9
  73. package/vendor/dragonbox/subproject/meta/results/binary64_generated_cache.txt +622 -622
  74. package/vendor/dragonbox/subproject/meta/source/generate_cache.cpp +126 -126
  75. package/vendor/dragonbox/subproject/meta/source/live_test.cpp +81 -81
  76. package/vendor/dragonbox/subproject/meta/source/perf_test.cpp +104 -104
  77. package/vendor/dragonbox/subproject/meta/source/sandbox.cpp +20 -20
  78. package/vendor/dragonbox/subproject/test/CMakeLists.txt +69 -69
  79. package/vendor/dragonbox/subproject/test/results/binary32.csv +255 -255
  80. package/vendor/dragonbox/subproject/test/results/binary64.csv +2047 -2047
  81. package/vendor/dragonbox/subproject/test/results/plot_required_bits.m +17 -17
  82. package/vendor/dragonbox/subproject/test/source/test_all_shorter_interval_cases.cpp +88 -88
  83. package/vendor/dragonbox/subproject/test/source/uniform_random_test.cpp +95 -95
  84. package/vendor/dragonbox/subproject/test/source/verify_cache_precision.cpp +337 -337
  85. package/vendor/dragonbox/subproject/test/source/verify_compressed_cache.cpp +154 -154
  86. package/vendor/dragonbox/subproject/test/source/verify_fast_multiplication.cpp +168 -168
  87. package/vendor/dragonbox/subproject/test/source/verify_log_computation.cpp +251 -251
  88. package/vendor/dragonbox/subproject/test/source/verify_magic_division.cpp +113 -113
  89. package/vendor/libcc/libcc.cc +7651 -7651
  90. package/vendor/libcc/libcc.hh +4312 -4312
  91. package/vendor/node-addon-api/CHANGELOG.md +859 -859
  92. package/vendor/node-addon-api/CODE_OF_CONDUCT.md +4 -4
  93. package/vendor/node-addon-api/CONTRIBUTING.md +93 -93
  94. package/vendor/node-addon-api/LICENSE.md +12 -12
  95. package/vendor/node-addon-api/README.md +293 -293
  96. package/vendor/node-addon-api/appveyor.yml +37 -37
  97. package/vendor/node-addon-api/benchmark/README.md +47 -47
  98. package/vendor/node-addon-api/benchmark/binding.gyp +25 -25
  99. package/vendor/node-addon-api/benchmark/function_args.cc +217 -217
  100. package/vendor/node-addon-api/benchmark/function_args.js +60 -60
  101. package/vendor/node-addon-api/benchmark/index.js +34 -34
  102. package/vendor/node-addon-api/benchmark/property_descriptor.cc +91 -91
  103. package/vendor/node-addon-api/benchmark/property_descriptor.js +37 -37
  104. package/vendor/node-addon-api/common.gypi +21 -21
  105. package/vendor/node-addon-api/doc/addon.md +163 -163
  106. package/vendor/node-addon-api/doc/array.md +81 -81
  107. package/vendor/node-addon-api/doc/array_buffer.md +155 -155
  108. package/vendor/node-addon-api/doc/async_context.md +86 -86
  109. package/vendor/node-addon-api/doc/async_operations.md +31 -31
  110. package/vendor/node-addon-api/doc/async_worker.md +427 -427
  111. package/vendor/node-addon-api/doc/async_worker_variants.md +557 -557
  112. package/vendor/node-addon-api/doc/bigint.md +97 -97
  113. package/vendor/node-addon-api/doc/boolean.md +68 -68
  114. package/vendor/node-addon-api/doc/buffer.md +150 -150
  115. package/vendor/node-addon-api/doc/callback_scope.md +54 -54
  116. package/vendor/node-addon-api/doc/callbackinfo.md +97 -97
  117. package/vendor/node-addon-api/doc/checker-tool.md +32 -32
  118. package/vendor/node-addon-api/doc/class_property_descriptor.md +115 -115
  119. package/vendor/node-addon-api/doc/cmake-js.md +68 -68
  120. package/vendor/node-addon-api/doc/conversion-tool.md +27 -27
  121. package/vendor/node-addon-api/doc/creating_a_release.md +62 -62
  122. package/vendor/node-addon-api/doc/dataview.md +248 -248
  123. package/vendor/node-addon-api/doc/date.md +68 -68
  124. package/vendor/node-addon-api/doc/env.md +196 -196
  125. package/vendor/node-addon-api/doc/error.md +120 -120
  126. package/vendor/node-addon-api/doc/error_handling.md +254 -254
  127. package/vendor/node-addon-api/doc/escapable_handle_scope.md +80 -80
  128. package/vendor/node-addon-api/doc/external.md +63 -63
  129. package/vendor/node-addon-api/doc/function.md +402 -402
  130. package/vendor/node-addon-api/doc/function_reference.md +238 -238
  131. package/vendor/node-addon-api/doc/generator.md +13 -13
  132. package/vendor/node-addon-api/doc/handle_scope.md +63 -63
  133. package/vendor/node-addon-api/doc/hierarchy.md +91 -91
  134. package/vendor/node-addon-api/doc/instance_wrap.md +408 -408
  135. package/vendor/node-addon-api/doc/maybe.md +76 -76
  136. package/vendor/node-addon-api/doc/memory_management.md +27 -27
  137. package/vendor/node-addon-api/doc/name.md +29 -29
  138. package/vendor/node-addon-api/doc/node-gyp.md +82 -82
  139. package/vendor/node-addon-api/doc/number.md +163 -163
  140. package/vendor/node-addon-api/doc/object.md +432 -432
  141. package/vendor/node-addon-api/doc/object_lifetime_management.md +83 -83
  142. package/vendor/node-addon-api/doc/object_reference.md +117 -117
  143. package/vendor/node-addon-api/doc/object_wrap.md +561 -561
  144. package/vendor/node-addon-api/doc/prebuild_tools.md +16 -16
  145. package/vendor/node-addon-api/doc/promises.md +79 -79
  146. package/vendor/node-addon-api/doc/property_descriptor.md +286 -286
  147. package/vendor/node-addon-api/doc/propertylvalue.md +50 -50
  148. package/vendor/node-addon-api/doc/range_error.md +59 -59
  149. package/vendor/node-addon-api/doc/reference.md +113 -113
  150. package/vendor/node-addon-api/doc/setup.md +110 -110
  151. package/vendor/node-addon-api/doc/string.md +93 -93
  152. package/vendor/node-addon-api/doc/symbol.md +60 -60
  153. package/vendor/node-addon-api/doc/threadsafe.md +121 -121
  154. package/vendor/node-addon-api/doc/threadsafe_function.md +290 -290
  155. package/vendor/node-addon-api/doc/type_error.md +59 -59
  156. package/vendor/node-addon-api/doc/typed_array.md +78 -78
  157. package/vendor/node-addon-api/doc/typed_array_of.md +137 -137
  158. package/vendor/node-addon-api/doc/typed_threadsafe_function.md +306 -306
  159. package/vendor/node-addon-api/doc/value.md +340 -340
  160. package/vendor/node-addon-api/doc/version_management.md +43 -43
  161. package/vendor/node-addon-api/except.gypi +25 -25
  162. package/vendor/node-addon-api/index.js +11 -11
  163. package/vendor/node-addon-api/napi-inl.deprecated.h +192 -192
  164. package/vendor/node-addon-api/napi-inl.h +6209 -6209
  165. package/vendor/node-addon-api/napi.h +2983 -2983
  166. package/vendor/node-addon-api/node_api.gyp +9 -9
  167. package/vendor/node-addon-api/noexcept.gypi +26 -26
  168. package/vendor/node-addon-api/package-support.json +21 -21
  169. package/vendor/node-addon-api/package.json +399 -399
  170. package/vendor/node-addon-api/test/README.md +91 -91
  171. package/vendor/node-addon-api/test/addon.cc +36 -36
  172. package/vendor/node-addon-api/test/addon.js +11 -11
  173. package/vendor/node-addon-api/test/addon_build/index.js +49 -49
  174. package/vendor/node-addon-api/test/addon_build/tpl/addon.cc +17 -17
  175. package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +62 -62
  176. package/vendor/node-addon-api/test/addon_build/tpl/index.js +9 -9
  177. package/vendor/node-addon-api/test/addon_build/tpl/package.json +11 -11
  178. package/vendor/node-addon-api/test/addon_data.cc +99 -99
  179. package/vendor/node-addon-api/test/addon_data.js +46 -46
  180. package/vendor/node-addon-api/test/array_buffer.cc +243 -243
  181. package/vendor/node-addon-api/test/array_buffer.js +69 -69
  182. package/vendor/node-addon-api/test/async_context.cc +21 -21
  183. package/vendor/node-addon-api/test/async_context.js +86 -86
  184. package/vendor/node-addon-api/test/async_progress_queue_worker.cc +83 -83
  185. package/vendor/node-addon-api/test/async_progress_queue_worker.js +46 -46
  186. package/vendor/node-addon-api/test/async_progress_worker.cc +134 -134
  187. package/vendor/node-addon-api/test/async_progress_worker.js +61 -61
  188. package/vendor/node-addon-api/test/async_worker.cc +106 -106
  189. package/vendor/node-addon-api/test/async_worker.js +179 -179
  190. package/vendor/node-addon-api/test/async_worker_nocallback.js +13 -13
  191. package/vendor/node-addon-api/test/async_worker_persistent.cc +63 -63
  192. package/vendor/node-addon-api/test/async_worker_persistent.js +24 -24
  193. package/vendor/node-addon-api/test/basic_types/array.cc +40 -40
  194. package/vendor/node-addon-api/test/basic_types/array.js +35 -35
  195. package/vendor/node-addon-api/test/basic_types/boolean.cc +38 -38
  196. package/vendor/node-addon-api/test/basic_types/boolean.js +35 -35
  197. package/vendor/node-addon-api/test/basic_types/number.cc +99 -99
  198. package/vendor/node-addon-api/test/basic_types/number.js +114 -114
  199. package/vendor/node-addon-api/test/basic_types/value.cc +120 -120
  200. package/vendor/node-addon-api/test/basic_types/value.js +133 -133
  201. package/vendor/node-addon-api/test/bigint.cc +91 -91
  202. package/vendor/node-addon-api/test/bigint.js +53 -53
  203. package/vendor/node-addon-api/test/binding-swallowexcept.cc +12 -12
  204. package/vendor/node-addon-api/test/binding.cc +171 -171
  205. package/vendor/node-addon-api/test/binding.gyp +117 -117
  206. package/vendor/node-addon-api/test/buffer.cc +183 -183
  207. package/vendor/node-addon-api/test/buffer.js +69 -69
  208. package/vendor/node-addon-api/test/callbackscope.cc +22 -22
  209. package/vendor/node-addon-api/test/callbackscope.js +49 -49
  210. package/vendor/node-addon-api/test/common/index.js +113 -113
  211. package/vendor/node-addon-api/test/common/test_helper.h +61 -61
  212. package/vendor/node-addon-api/test/dataview/dataview.cc +48 -48
  213. package/vendor/node-addon-api/test/dataview/dataview.js +35 -35
  214. package/vendor/node-addon-api/test/dataview/dataview_read_write.cc +115 -115
  215. package/vendor/node-addon-api/test/dataview/dataview_read_write.js +90 -90
  216. package/vendor/node-addon-api/test/date.cc +44 -44
  217. package/vendor/node-addon-api/test/date.js +18 -18
  218. package/vendor/node-addon-api/test/env_cleanup.cc +88 -88
  219. package/vendor/node-addon-api/test/env_cleanup.js +56 -56
  220. package/vendor/node-addon-api/test/error.cc +287 -287
  221. package/vendor/node-addon-api/test/error.js +81 -81
  222. package/vendor/node-addon-api/test/error_handling_for_primitives.cc +13 -13
  223. package/vendor/node-addon-api/test/error_handling_for_primitives.js +29 -29
  224. package/vendor/node-addon-api/test/error_terminating_environment.js +94 -94
  225. package/vendor/node-addon-api/test/external.cc +81 -81
  226. package/vendor/node-addon-api/test/external.js +88 -88
  227. package/vendor/node-addon-api/test/function.cc +295 -295
  228. package/vendor/node-addon-api/test/function.js +121 -121
  229. package/vendor/node-addon-api/test/function_reference.cc +202 -202
  230. package/vendor/node-addon-api/test/function_reference.js +157 -157
  231. package/vendor/node-addon-api/test/globalObject/global_object.cc +61 -61
  232. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +31 -31
  233. package/vendor/node-addon-api/test/globalObject/global_object_delete_property.js +61 -61
  234. package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +40 -40
  235. package/vendor/node-addon-api/test/globalObject/global_object_get_property.js +57 -57
  236. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +28 -28
  237. package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.js +48 -48
  238. package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +30 -30
  239. package/vendor/node-addon-api/test/globalObject/global_object_set_property.js +58 -58
  240. package/vendor/node-addon-api/test/handlescope.cc +60 -60
  241. package/vendor/node-addon-api/test/handlescope.js +14 -14
  242. package/vendor/node-addon-api/test/index.js +136 -136
  243. package/vendor/node-addon-api/test/maybe/check.cc +23 -23
  244. package/vendor/node-addon-api/test/maybe/index.js +38 -38
  245. package/vendor/node-addon-api/test/memory_management.cc +17 -17
  246. package/vendor/node-addon-api/test/memory_management.js +9 -9
  247. package/vendor/node-addon-api/test/movable_callbacks.cc +23 -23
  248. package/vendor/node-addon-api/test/movable_callbacks.js +21 -21
  249. package/vendor/node-addon-api/test/name.cc +108 -108
  250. package/vendor/node-addon-api/test/name.js +59 -59
  251. package/vendor/node-addon-api/test/napi_child.js +14 -14
  252. package/vendor/node-addon-api/test/object/delete_property.cc +38 -38
  253. package/vendor/node-addon-api/test/object/delete_property.js +41 -41
  254. package/vendor/node-addon-api/test/object/finalizer.cc +29 -29
  255. package/vendor/node-addon-api/test/object/finalizer.js +28 -28
  256. package/vendor/node-addon-api/test/object/get_property.cc +34 -34
  257. package/vendor/node-addon-api/test/object/get_property.js +40 -40
  258. package/vendor/node-addon-api/test/object/has_own_property.cc +34 -34
  259. package/vendor/node-addon-api/test/object/has_own_property.js +34 -34
  260. package/vendor/node-addon-api/test/object/has_property.cc +38 -38
  261. package/vendor/node-addon-api/test/object/has_property.js +37 -37
  262. package/vendor/node-addon-api/test/object/object.cc +348 -348
  263. package/vendor/node-addon-api/test/object/object.js +217 -217
  264. package/vendor/node-addon-api/test/object/object_deprecated.cc +66 -66
  265. package/vendor/node-addon-api/test/object/object_deprecated.js +47 -47
  266. package/vendor/node-addon-api/test/object/object_freeze_seal.cc +25 -25
  267. package/vendor/node-addon-api/test/object/object_freeze_seal.js +61 -61
  268. package/vendor/node-addon-api/test/object/set_property.cc +37 -37
  269. package/vendor/node-addon-api/test/object/set_property.js +29 -29
  270. package/vendor/node-addon-api/test/object/subscript_operator.cc +42 -42
  271. package/vendor/node-addon-api/test/object/subscript_operator.js +17 -17
  272. package/vendor/node-addon-api/test/object_reference.cc +219 -219
  273. package/vendor/node-addon-api/test/object_reference.js +259 -259
  274. package/vendor/node-addon-api/test/objectwrap.cc +268 -268
  275. package/vendor/node-addon-api/test/objectwrap.js +284 -284
  276. package/vendor/node-addon-api/test/objectwrap_constructor_exception.cc +26 -26
  277. package/vendor/node-addon-api/test/objectwrap_constructor_exception.js +18 -18
  278. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.cc +30 -30
  279. package/vendor/node-addon-api/test/objectwrap_multiple_inheritance.js +13 -13
  280. package/vendor/node-addon-api/test/objectwrap_removewrap.cc +45 -45
  281. package/vendor/node-addon-api/test/objectwrap_removewrap.js +40 -40
  282. package/vendor/node-addon-api/test/objectwrap_worker_thread.js +19 -19
  283. package/vendor/node-addon-api/test/promise.cc +29 -29
  284. package/vendor/node-addon-api/test/promise.js +18 -18
  285. package/vendor/node-addon-api/test/reference.cc +24 -24
  286. package/vendor/node-addon-api/test/reference.js +14 -14
  287. package/vendor/node-addon-api/test/run_script.cc +56 -56
  288. package/vendor/node-addon-api/test/run_script.js +45 -45
  289. package/vendor/node-addon-api/test/symbol.cc +79 -79
  290. package/vendor/node-addon-api/test/symbol.js +73 -73
  291. package/vendor/node-addon-api/test/testUtil.js +54 -54
  292. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.cc +195 -195
  293. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function.js +188 -188
  294. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.cc +63 -63
  295. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ctx.js +12 -12
  296. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.cc +115 -115
  297. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_existing_tsfn.js +14 -14
  298. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.cc +26 -26
  299. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_ptr.js +7 -7
  300. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.cc +225 -225
  301. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_sum.js +59 -59
  302. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.cc +42 -42
  303. package/vendor/node-addon-api/test/threadsafe_function/threadsafe_function_unref.js +53 -53
  304. package/vendor/node-addon-api/test/thunking_manual.cc +140 -140
  305. package/vendor/node-addon-api/test/thunking_manual.js +17 -17
  306. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.cc +215 -215
  307. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function.js +188 -188
  308. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.cc +68 -68
  309. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ctx.js +12 -12
  310. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.cc +127 -127
  311. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_existing_tsfn.js +14 -14
  312. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.cc +28 -28
  313. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_ptr.js +7 -7
  314. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.cc +237 -237
  315. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_sum.js +59 -59
  316. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.cc +53 -53
  317. package/vendor/node-addon-api/test/typed_threadsafe_function/typed_threadsafe_function_unref.js +53 -53
  318. package/vendor/node-addon-api/test/typedarray-bigint.js +58 -58
  319. package/vendor/node-addon-api/test/typedarray.cc +216 -216
  320. package/vendor/node-addon-api/test/typedarray.js +69 -69
  321. package/vendor/node-addon-api/test/version_management.cc +27 -27
  322. package/vendor/node-addon-api/test/version_management.js +31 -31
  323. package/vendor/node-addon-api/tools/README.md +73 -73
  324. package/vendor/node-addon-api/tools/check-napi.js +100 -100
  325. package/vendor/node-addon-api/tools/clang-format.js +68 -68
  326. package/vendor/node-addon-api/tools/conversion.js +309 -309
  327. package/vendor/node-addon-api/tools/eslint-format.js +71 -71
@@ -1,540 +1,540 @@
1
- <html>
2
- <head>
3
- <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
4
- <script src="http://www.google.com/jsapi?autoload={%22modules%22:[{%22name%22:%22visualization%22,%22version%22:%221%22,%22packages%22:[%22controls%22,%22charteditor%22]}]}"></script>
5
- <script src="jquery.csv.js"></script>
6
- <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
7
- <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
8
- <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
9
- <script>
10
- $(function() {
11
- google.load("visualization", "1", {packages:["corechart"]});
12
- google.setOnLoadCallback(function() {
13
-
14
- var csv = $('#textInput').val();
15
- var data = $.csv.toArrays(csv, {
16
- onParseValue: $.csv.hooks.castToScalar
17
- });
18
-
19
- // Convert data for bar chart (summing all digits)
20
- var timeData = {}; // type -> table
21
- var funcRowMap;
22
- var maxDigit = 0;
23
-
24
- for (var i = 1; i < data.length; i++) {
25
- var type = data[i][0];
26
- var func = data[i][1];
27
- var digit = data[i][2];
28
- var time = data[i][3];
29
- if (timeData[type] == null) {
30
- timeData[type] = [["Function", "Time (ns)"/*, { role: "style" }*/]];
31
- if (digit != 0)
32
- funcRowMap = {};
33
- }
34
-
35
- var table = timeData[type];
36
-
37
- if (digit != 0) {
38
- if (funcRowMap[func] == null)
39
- funcRowMap[func] = table.push([func, 0]) - 1;
40
-
41
- table[funcRowMap[func]][1] += time;
42
- }
43
- else
44
- table.push([func, time]);
45
-
46
- maxDigit = Math.max(maxDigit, digit);
47
- }
48
-
49
- // Compute average
50
- for (var type in timeData) {
51
- var table = timeData[type];
52
- for (var i = 1; i < table.length; i++)
53
- table[i][1] /= maxDigit;
54
- }
55
-
56
- // Convert data for drawing line chart per random digit
57
- var timeDigitData = {}; // type -> table
58
- var funcColumnMap;
59
-
60
- for (var i = 1; i < data.length; i++) {
61
- var type = data[i][0];
62
- var func = data[i][1];
63
- var digit = data[i][2];
64
- var time = data[i][3];
65
-
66
- if (digit == 0)
67
- continue;
68
-
69
- if (timeDigitData[type] == null) {
70
- timeDigitData[type] = [["Digit"]];
71
- funcColumnMap = {};
72
- }
73
-
74
- var table = timeDigitData[type];
75
-
76
- if (funcColumnMap[func] == null)
77
- funcColumnMap[func] = table[0].push(func) - 1;
78
-
79
- var row;
80
- for (row = 1; row < table.length; row++)
81
- if (table[row][0] == digit)
82
- break;
83
-
84
- if (row == table.length)
85
- table.push([digit]);
86
-
87
- table[row][funcColumnMap[func]] = time;
88
- }
89
-
90
- for (var type in timeData) {
91
- $("#main").append(
92
- $("<a>", {name: type}),
93
- $("<h2>", {style: "padding-top: 70px; margin-top: -70px;"}).append(type)
94
- );
95
-
96
- $("#section").append($("<li>").append($("<a>", {href: "#" + type}).append(type)));
97
-
98
- drawTable(type, timeData[type]);
99
- drawBarChart(type, timeData[type]);
100
- if (timeDigitData[type] != null)
101
- drawDigitChart(type, timeDigitData[type]);
102
- }
103
-
104
- $(".chart").each(function() {
105
- var chart = $(this);
106
- var d = $("#downloadDD").clone().css("display", "");
107
- $('li a', d).each(function() {
108
- $(this).click(function() {
109
- var svg = chart[0].getElementsByTagName('svg')[0].parentNode.innerHTML;
110
- svg=sanitize(svg);
111
- $('#imageFilename').val($("#title").html() + "_" + chart.data("filename"));
112
- $('#imageGetFormTYPE').val($(this).attr('dltype'));
113
- $('#imageGetFormSVG').val(svg);
114
- $('#imageGetForm').submit();
115
- });
116
- });
117
- $(this).after(d);
118
- });
119
-
120
- // Add configurations
121
- var thisConfig = "unknown_win64_vc2019";
122
- var configurations = ["corei7920@2.67_cygwin32_gcc4.8","corei7920@2.67_cygwin64_gcc4.8","corei7920@2.67_win32_vc2013","corei7920@2.67_win64_vc2013","unknown_mac32_clang7.0","unknown_mac64_clang7.0","unknown_win64_vc2019"];
123
-
124
- for (var i in configurations) {
125
- var c = configurations[i];
126
- $("#configuration").append($("<li>", {class : (c == thisConfig ? "active" : "")}).append($("<a>", {href: c + ".html"}).append(c)));
127
- }
128
- })
129
- });
130
-
131
- function drawTable(type, timeData) {
132
- var data = google.visualization.arrayToDataTable(timeData);
133
- data.addColumn('number', 'Speedup');
134
- data.sort([{ column: 1, desc: true }]);
135
- var formatter1 = new google.visualization.NumberFormat({ fractionDigits: 3 });
136
- formatter1.format(data, 1);
137
-
138
- var div = document.createElement("div");
139
- div.className = "tablechart";
140
- $("#main").append(div);
141
- var table = new google.visualization.Table(div);
142
- redrawTable(0);
143
- table.setSelection([{ row: 0, column: null}]);
144
-
145
- function redrawTable(selectedRow) {
146
- // Compute relative time using the first row as basis
147
- var basis = data.getValue(selectedRow, 1);
148
- for (var rowIndex = 0; rowIndex < data.getNumberOfRows(); rowIndex++)
149
- data.setValue(rowIndex, 2, basis / data.getValue(rowIndex, 1));
150
-
151
- var formatter = new google.visualization.NumberFormat({suffix: 'x'});
152
- formatter.format(data, 2); // Apply formatter to second column
153
-
154
- table.draw(data);
155
- }
156
-
157
- google.visualization.events.addListener(table, 'select',
158
- function() {
159
- var selection = table.getSelection();
160
- if (selection.length > 0) {
161
- var item = selection[0];
162
- if (item.row != null)
163
- redrawTable(item.row);
164
- }
165
- });
166
-
167
- }
168
-
169
- function drawBarChart(type, timeData) {
170
- var defaultColors = ["#3366cc","#dc3912","#ff9900","#109618","#990099","#0099c6","#dd4477","#66aa00","#b82e2e","#316395","#994499","#22aa99","#aaaa11","#6633cc","#e67300","#8b0707","#651067","#329262","#5574a6","#3b3eac","#b77322","#16d620","#b91383","#f4359e","#9c5935","#a9c413","#2a778d","#668d1c","#bea413","#0c5922","#743411"];
171
-
172
- var data = google.visualization.arrayToDataTable(timeData);
173
- data.addColumn({ type: "string", role: "style" })
174
- for (var rowIndex = 0; rowIndex < data.getNumberOfRows(); rowIndex++)
175
- data.setValue(rowIndex, 2, defaultColors[rowIndex]);
176
-
177
- data.sort([{ column: 1, desc: true }]);
178
- var options = {
179
- title: type,
180
- chartArea: {'width': '70%', 'height': '70%'},
181
- width: 800,
182
- height: 300,
183
- legend: { position: "none" },
184
- hAxis: { title: "Time (ns)" }
185
- };
186
- var div = document.createElement("div");
187
- div.className = "chart";
188
- $(div).data("filename", type + "_time");
189
- $("#main").append(div);
190
- var chart = new google.visualization.BarChart(div);
191
-
192
- chart.draw(data, options);
193
- }
194
-
195
- function drawDigitChart(type, timeDigitData) {
196
- var data = google.visualization.arrayToDataTable(timeDigitData);
197
-
198
- var options = {
199
- title: type,
200
- chartArea: {left:100, 'width': '60%', 'height': '80%'},
201
- hAxis: {
202
- title: "Digit",
203
- gridlines: { count: timeDigitData.length - 1 },
204
- maxAlternation: 1,
205
- minTextSpacing: 0
206
- },
207
- vAxis: {
208
- title: "Time (ns) in log scale",
209
- logScale: true,
210
- minorGridlines: { count: 0 },
211
- baseline: 0,
212
- viewWindow: {max: 150, min: 20},
213
- minorGridlines: {interval: [1,2,3,4,5,6,7,8,9,10]}
214
- },
215
- width: 800,
216
- height: 600
217
- };
218
- var div = document.createElement("div");
219
- div.className = "chart";
220
- $(div).data("filename", type + "_timedigit");
221
- $("#main").append(div);
222
- var chart = new google.visualization.LineChart(div);
223
-
224
- chart.draw(data, options);
225
- }
226
-
227
- // http://jsfiddle.net/P6XXM/
228
- function sanitize(svg) {
229
- svg = svg
230
- .replace(/\<svg/,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1"')
231
- .replace(/zIndex="[^"]+"/g, '')
232
- .replace(/isShadow="[^"]+"/g, '')
233
- .replace(/symbolName="[^"]+"/g, '')
234
- .replace(/jQuery[0-9]+="[^"]+"/g, '')
235
- .replace(/isTracker="[^"]+"/g, '')
236
- .replace(/url\([^#]+#/g, 'url(#')
237
- .replace('<svg xmlns:xlink="http://www.w3.org/1999/xlink" ', '<svg ')
238
- .replace(/ href=/g, ' xlink:href=')
239
- /*.replace(/preserveAspectRatio="none">/g, 'preserveAspectRatio="none"/>')*/
240
- /* This fails in IE < 8
241
- .replace(/([0-9]+)\.([0-9]+)/g, function(s1, s2, s3) { // round off to save weight
242
- return s2 +'.'+ s3[0];
243
- })*/
244
-
245
- // IE specific
246
- .replace(/id=([^" >]+)/g, 'id="$1"')
247
- .replace(/class=([^" ]+)/g, 'class="$1"')
248
- .replace(/ transform /g, ' ')
249
- .replace(/:(path|rect)/g, '$1')
250
- .replace(/<img ([^>]*)>/gi, '<image $1 />')
251
- .replace(/<\/image>/g, '') // remove closing tags for images as they'll never have any content
252
- .replace(/<image ([^>]*)([^\/])>/gi, '<image $1$2 />') // closes image tags for firefox
253
- .replace(/width=(\d+)/g, 'width="$1"')
254
- .replace(/height=(\d+)/g, 'height="$1"')
255
- .replace(/hc-svg-href="/g, 'xlink:href="')
256
- .replace(/style="([^"]+)"/g, function (s) {
257
- return s.toLowerCase();
258
- });
259
-
260
- // IE9 beta bugs with innerHTML. Test again with final IE9.
261
- svg = svg.replace(/(url\(#highcharts-[0-9]+)&quot;/g, '$1')
262
- .replace(/&quot;/g, "'");
263
- if (svg.match(/ xmlns="/g).length == 2) {
264
- svg = svg.replace(/xmlns="[^"]+"/, '');
265
- }
266
-
267
- return svg;
268
- }
269
- </script>
270
- <style type="text/css">
271
- @media (min-width: 800px) {
272
- .container {
273
- max-width: 800px;
274
- }
275
- }
276
- textarea {
277
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
278
- }
279
- .tablechart {
280
- width: 700px;
281
- margin: auto;
282
- padding-top: 20px;
283
- padding-bottom: 20px;
284
- }
285
- .chart {
286
- padding-top: 20px;
287
- padding-bottom: 20px;
288
- }
289
- body { padding-top: 70px; }
290
- </style>
291
- </head>
292
- <body>
293
- <div class="container">
294
- <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
295
- <div class="container">
296
- <!-- Brand and toggle get grouped for better mobile display -->
297
- <div class="navbar-header">
298
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
299
- <span class="sr-only">Toggle navigation</span>
300
- <span class="icon-bar"></span>
301
- <span class="icon-bar"></span>
302
- <span class="icon-bar"></span>
303
- </button>
304
- <a class="navbar-brand" href="https://github.com/miloyip/dtoa-benchmark"><span class="glyphicon glyphicon-home"></span> dtoa-benchmark</a>
305
- </div>
306
-
307
- <!-- Collect the nav links, forms, and other content for toggling -->
308
- <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
309
- <ul class="nav navbar-nav">
310
- <li class="dropdown">
311
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <span class="caret"></span></a>
312
- <ul class="dropdown-menu" role="menu" id="configuration">
313
- </ul>
314
- </li>
315
- <li class="dropdown">
316
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Section <span class="caret"></span></a>
317
- <ul class="dropdown-menu" role="menu" id="section">
318
- </ul>
319
- </li>
320
- </ul>
321
- <p class="navbar-text navbar-right">Developed by <a href="https://github.com/miloyip" class="navbar-link">Milo Yip</a></p>
322
- </div><!-- /.navbar-collapse -->
323
- </div><!-- /.container-fluid -->
324
- </nav>
325
- <div class="page-header">
326
- <h1 id="title">unknown_win64_vc2019</h1>
327
- </div>
328
- <div id="main"></div>
329
- <h2>Source CSV</h2>
330
- <textarea id="textInput" class="form-control" rows="5" readonly>
331
- Type,Function,Digit,Time(ns)
332
- randomdigit,doubleconv,1,71.223000
333
- randomdigit,doubleconv,2,83.739000
334
- randomdigit,doubleconv,3,87.977000
335
- randomdigit,doubleconv,4,90.844000
336
- randomdigit,doubleconv,5,96.071000
337
- randomdigit,doubleconv,6,100.920000
338
- randomdigit,doubleconv,7,106.860000
339
- randomdigit,doubleconv,8,107.243000
340
- randomdigit,doubleconv,9,107.882000
341
- randomdigit,doubleconv,10,114.161000
342
- randomdigit,doubleconv,11,120.089000
343
- randomdigit,doubleconv,12,124.157000
344
- randomdigit,doubleconv,13,121.921000
345
- randomdigit,doubleconv,14,124.308000
346
- randomdigit,doubleconv,15,127.801000
347
- randomdigit,doubleconv,16,133.545000
348
- randomdigit,doubleconv,17,140.764000
349
- randomdigit,emyg,1,49.488000
350
- randomdigit,emyg,2,54.384000
351
- randomdigit,emyg,3,56.676000
352
- randomdigit,emyg,4,58.776000
353
- randomdigit,emyg,5,62.045000
354
- randomdigit,emyg,6,59.798000
355
- randomdigit,emyg,7,60.171000
356
- randomdigit,emyg,8,62.302000
357
- randomdigit,emyg,9,63.449000
358
- randomdigit,emyg,10,64.685000
359
- randomdigit,emyg,11,65.412000
360
- randomdigit,emyg,12,66.872000
361
- randomdigit,emyg,13,68.013000
362
- randomdigit,emyg,14,69.450000
363
- randomdigit,emyg,15,71.172000
364
- randomdigit,emyg,16,74.847000
365
- randomdigit,emyg,17,77.391000
366
- randomdigit,erthink,1,34.692000
367
- randomdigit,erthink,2,35.652000
368
- randomdigit,erthink,3,37.090000
369
- randomdigit,erthink,4,37.854000
370
- randomdigit,erthink,5,40.699000
371
- randomdigit,erthink,6,42.624000
372
- randomdigit,erthink,7,44.213000
373
- randomdigit,erthink,8,45.829000
374
- randomdigit,erthink,9,46.268000
375
- randomdigit,erthink,10,47.757000
376
- randomdigit,erthink,11,49.229000
377
- randomdigit,erthink,12,54.313000
378
- randomdigit,erthink,13,52.171000
379
- randomdigit,erthink,14,56.760000
380
- randomdigit,erthink,15,58.601000
381
- randomdigit,erthink,16,56.738000
382
- randomdigit,erthink,17,57.844000
383
- randomdigit,floaxie,1,32.675000
384
- randomdigit,floaxie,2,38.321000
385
- randomdigit,floaxie,3,42.846000
386
- randomdigit,floaxie,4,49.954000
387
- randomdigit,floaxie,5,56.737000
388
- randomdigit,floaxie,6,61.745000
389
- randomdigit,floaxie,7,69.012000
390
- randomdigit,floaxie,8,77.025000
391
- randomdigit,floaxie,9,83.648000
392
- randomdigit,floaxie,10,87.588000
393
- randomdigit,floaxie,11,92.134000
394
- randomdigit,floaxie,12,96.296000
395
- randomdigit,floaxie,13,98.109000
396
- randomdigit,floaxie,14,99.591000
397
- randomdigit,floaxie,15,100.592000
398
- randomdigit,floaxie,16,101.807000
399
- randomdigit,floaxie,17,101.887000
400
- randomdigit,fmt,1,53.977000
401
- randomdigit,fmt,2,57.743000
402
- randomdigit,fmt,3,58.027000
403
- randomdigit,fmt,4,57.938000
404
- randomdigit,fmt,5,57.543000
405
- randomdigit,fmt,6,58.663000
406
- randomdigit,fmt,7,58.296000
407
- randomdigit,fmt,8,59.124000
408
- randomdigit,fmt,9,62.657000
409
- randomdigit,fmt,10,63.963000
410
- randomdigit,fmt,11,63.576000
411
- randomdigit,fmt,12,64.037000
412
- randomdigit,fmt,13,61.003000
413
- randomdigit,fmt,14,60.267000
414
- randomdigit,fmt,15,61.596000
415
- randomdigit,fmt,16,64.429000
416
- randomdigit,fmt,17,64.504000
417
- randomdigit,grisu2,1,103.766000
418
- randomdigit,grisu2,2,113.021000
419
- randomdigit,grisu2,3,112.313000
420
- randomdigit,grisu2,4,114.278000
421
- randomdigit,grisu2,5,116.382000
422
- randomdigit,grisu2,6,118.683000
423
- randomdigit,grisu2,7,120.528000
424
- randomdigit,grisu2,8,124.457000
425
- randomdigit,grisu2,9,126.515000
426
- randomdigit,grisu2,10,127.444000
427
- randomdigit,grisu2,11,129.016000
428
- randomdigit,grisu2,12,131.285000
429
- randomdigit,grisu2,13,129.324000
430
- randomdigit,grisu2,14,131.143000
431
- randomdigit,grisu2,15,133.030000
432
- randomdigit,grisu2,16,134.716000
433
- randomdigit,grisu2,17,140.260000
434
- randomdigit,milo,1,51.258000
435
- randomdigit,milo,2,54.217000
436
- randomdigit,milo,3,56.843000
437
- randomdigit,milo,4,57.965000
438
- randomdigit,milo,5,60.638000
439
- randomdigit,milo,6,62.935000
440
- randomdigit,milo,7,64.241000
441
- randomdigit,milo,8,66.264000
442
- randomdigit,milo,9,67.355000
443
- randomdigit,milo,10,69.715000
444
- randomdigit,milo,11,72.008000
445
- randomdigit,milo,12,72.875000
446
- randomdigit,milo,13,81.763000
447
- randomdigit,milo,14,80.948000
448
- randomdigit,milo,15,85.340000
449
- randomdigit,milo,16,83.437000
450
- randomdigit,milo,17,96.519000
451
- randomdigit,ryu,1,54.887000
452
- randomdigit,ryu,2,55.220000
453
- randomdigit,ryu,3,54.280000
454
- randomdigit,ryu,4,52.602000
455
- randomdigit,ryu,5,51.612000
456
- randomdigit,ryu,6,50.740000
457
- randomdigit,ryu,7,49.837000
458
- randomdigit,ryu,8,48.804000
459
- randomdigit,ryu,9,46.491000
460
- randomdigit,ryu,10,48.427000
461
- randomdigit,ryu,11,46.493000
462
- randomdigit,ryu,12,44.799000
463
- randomdigit,ryu,13,43.150000
464
- randomdigit,ryu,14,42.205000
465
- randomdigit,ryu,15,40.604000
466
- randomdigit,ryu,16,39.912000
467
- randomdigit,ryu,17,39.437000
468
- randomdigit,dragonbox,1,29.427000
469
- randomdigit,dragonbox,2,31.778000
470
- randomdigit,dragonbox,3,30.199000
471
- randomdigit,dragonbox,4,31.238000
472
- randomdigit,dragonbox,5,29.360000
473
- randomdigit,dragonbox,6,30.439000
474
- randomdigit,dragonbox,7,28.457000
475
- randomdigit,dragonbox,8,30.089000
476
- randomdigit,dragonbox,9,29.953000
477
- randomdigit,dragonbox,10,30.676000
478
- randomdigit,dragonbox,11,31.074000
479
- randomdigit,dragonbox,12,30.812000
480
- randomdigit,dragonbox,13,29.128000
481
- randomdigit,dragonbox,14,28.778000
482
- randomdigit,dragonbox,15,30.860000
483
- randomdigit,dragonbox,16,28.859000
484
- randomdigit,dragonbox,17,33.514000
485
- randomdigit,dragonbox_comp,1,33.047000
486
- randomdigit,dragonbox_comp,2,35.702000
487
- randomdigit,dragonbox_comp,3,33.917000
488
- randomdigit,dragonbox_comp,4,36.103000
489
- randomdigit,dragonbox_comp,5,33.100000
490
- randomdigit,dragonbox_comp,6,34.315000
491
- randomdigit,dragonbox_comp,7,34.149000
492
- randomdigit,dragonbox_comp,8,36.791000
493
- randomdigit,dragonbox_comp,9,35.710000
494
- randomdigit,dragonbox_comp,10,36.800000
495
- randomdigit,dragonbox_comp,11,37.123000
496
- randomdigit,dragonbox_comp,12,36.863000
497
- randomdigit,dragonbox_comp,13,35.854000
498
- randomdigit,dragonbox_comp,14,35.038000
499
- randomdigit,dragonbox_comp,15,34.857000
500
- randomdigit,dragonbox_comp,16,34.560000
501
- randomdigit,dragonbox_comp,17,39.080000
502
- randomdigit,fmt_full_cache,1,45.122000
503
- randomdigit,fmt_full_cache,2,45.366000
504
- randomdigit,fmt_full_cache,3,49.022000
505
- randomdigit,fmt_full_cache,4,50.854000
506
- randomdigit,fmt_full_cache,5,51.579000
507
- randomdigit,fmt_full_cache,6,52.227000
508
- randomdigit,fmt_full_cache,7,51.044000
509
- randomdigit,fmt_full_cache,8,50.727000
510
- randomdigit,fmt_full_cache,9,54.859000
511
- randomdigit,fmt_full_cache,10,55.533000
512
- randomdigit,fmt_full_cache,11,53.122000
513
- randomdigit,fmt_full_cache,12,55.535000
514
- randomdigit,fmt_full_cache,13,53.757000
515
- randomdigit,fmt_full_cache,14,54.531000
516
- randomdigit,fmt_full_cache,15,54.673000
517
- randomdigit,fmt_full_cache,16,58.299000
518
- randomdigit,fmt_full_cache,17,60.408000
519
- </textarea>
520
- </div>
521
- <div class="row" id="downloadDD" style="display: none">
522
- <div class="btn-group pull-right" >
523
- <button class="btn dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-picture"></span></button>
524
- <ul class="dropdown-menu">
525
- <li><a tabindex="-1" href="#" dltype="image/jpeg">JPEG</a></li>
526
- <li><a tabindex="-1" href="#" dltype="image/png">PNG</a></li>
527
- <li><a tabindex="-1" href="#" dltype="application/pdf">PDF</a></li>
528
- <li><a tabindex="-1" href="#" dltype="image/svg+xml">SVG</a></li>
529
- </ul>
530
- </div>
531
- </div>
532
- <form method="post" action="http://export.highcharts.com/" id="imageGetForm">
533
- <input type="hidden" name="filename" id="imageFilename" value="" />
534
- <input type="hidden" name="type" id="imageGetFormTYPE" value="" />
535
- <input type="hidden" name="width" value="900" />
536
- <input type="hidden" name="svg" value="" id="imageGetFormSVG" />
537
- </form>
538
- </div>
539
- </body>
1
+ <html>
2
+ <head>
3
+ <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
4
+ <script src="http://www.google.com/jsapi?autoload={%22modules%22:[{%22name%22:%22visualization%22,%22version%22:%221%22,%22packages%22:[%22controls%22,%22charteditor%22]}]}"></script>
5
+ <script src="jquery.csv.js"></script>
6
+ <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
7
+ <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
8
+ <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
9
+ <script>
10
+ $(function() {
11
+ google.load("visualization", "1", {packages:["corechart"]});
12
+ google.setOnLoadCallback(function() {
13
+
14
+ var csv = $('#textInput').val();
15
+ var data = $.csv.toArrays(csv, {
16
+ onParseValue: $.csv.hooks.castToScalar
17
+ });
18
+
19
+ // Convert data for bar chart (summing all digits)
20
+ var timeData = {}; // type -> table
21
+ var funcRowMap;
22
+ var maxDigit = 0;
23
+
24
+ for (var i = 1; i < data.length; i++) {
25
+ var type = data[i][0];
26
+ var func = data[i][1];
27
+ var digit = data[i][2];
28
+ var time = data[i][3];
29
+ if (timeData[type] == null) {
30
+ timeData[type] = [["Function", "Time (ns)"/*, { role: "style" }*/]];
31
+ if (digit != 0)
32
+ funcRowMap = {};
33
+ }
34
+
35
+ var table = timeData[type];
36
+
37
+ if (digit != 0) {
38
+ if (funcRowMap[func] == null)
39
+ funcRowMap[func] = table.push([func, 0]) - 1;
40
+
41
+ table[funcRowMap[func]][1] += time;
42
+ }
43
+ else
44
+ table.push([func, time]);
45
+
46
+ maxDigit = Math.max(maxDigit, digit);
47
+ }
48
+
49
+ // Compute average
50
+ for (var type in timeData) {
51
+ var table = timeData[type];
52
+ for (var i = 1; i < table.length; i++)
53
+ table[i][1] /= maxDigit;
54
+ }
55
+
56
+ // Convert data for drawing line chart per random digit
57
+ var timeDigitData = {}; // type -> table
58
+ var funcColumnMap;
59
+
60
+ for (var i = 1; i < data.length; i++) {
61
+ var type = data[i][0];
62
+ var func = data[i][1];
63
+ var digit = data[i][2];
64
+ var time = data[i][3];
65
+
66
+ if (digit == 0)
67
+ continue;
68
+
69
+ if (timeDigitData[type] == null) {
70
+ timeDigitData[type] = [["Digit"]];
71
+ funcColumnMap = {};
72
+ }
73
+
74
+ var table = timeDigitData[type];
75
+
76
+ if (funcColumnMap[func] == null)
77
+ funcColumnMap[func] = table[0].push(func) - 1;
78
+
79
+ var row;
80
+ for (row = 1; row < table.length; row++)
81
+ if (table[row][0] == digit)
82
+ break;
83
+
84
+ if (row == table.length)
85
+ table.push([digit]);
86
+
87
+ table[row][funcColumnMap[func]] = time;
88
+ }
89
+
90
+ for (var type in timeData) {
91
+ $("#main").append(
92
+ $("<a>", {name: type}),
93
+ $("<h2>", {style: "padding-top: 70px; margin-top: -70px;"}).append(type)
94
+ );
95
+
96
+ $("#section").append($("<li>").append($("<a>", {href: "#" + type}).append(type)));
97
+
98
+ drawTable(type, timeData[type]);
99
+ drawBarChart(type, timeData[type]);
100
+ if (timeDigitData[type] != null)
101
+ drawDigitChart(type, timeDigitData[type]);
102
+ }
103
+
104
+ $(".chart").each(function() {
105
+ var chart = $(this);
106
+ var d = $("#downloadDD").clone().css("display", "");
107
+ $('li a', d).each(function() {
108
+ $(this).click(function() {
109
+ var svg = chart[0].getElementsByTagName('svg')[0].parentNode.innerHTML;
110
+ svg=sanitize(svg);
111
+ $('#imageFilename').val($("#title").html() + "_" + chart.data("filename"));
112
+ $('#imageGetFormTYPE').val($(this).attr('dltype'));
113
+ $('#imageGetFormSVG').val(svg);
114
+ $('#imageGetForm').submit();
115
+ });
116
+ });
117
+ $(this).after(d);
118
+ });
119
+
120
+ // Add configurations
121
+ var thisConfig = "unknown_win64_vc2019";
122
+ var configurations = ["corei7920@2.67_cygwin32_gcc4.8","corei7920@2.67_cygwin64_gcc4.8","corei7920@2.67_win32_vc2013","corei7920@2.67_win64_vc2013","unknown_mac32_clang7.0","unknown_mac64_clang7.0","unknown_win64_vc2019"];
123
+
124
+ for (var i in configurations) {
125
+ var c = configurations[i];
126
+ $("#configuration").append($("<li>", {class : (c == thisConfig ? "active" : "")}).append($("<a>", {href: c + ".html"}).append(c)));
127
+ }
128
+ })
129
+ });
130
+
131
+ function drawTable(type, timeData) {
132
+ var data = google.visualization.arrayToDataTable(timeData);
133
+ data.addColumn('number', 'Speedup');
134
+ data.sort([{ column: 1, desc: true }]);
135
+ var formatter1 = new google.visualization.NumberFormat({ fractionDigits: 3 });
136
+ formatter1.format(data, 1);
137
+
138
+ var div = document.createElement("div");
139
+ div.className = "tablechart";
140
+ $("#main").append(div);
141
+ var table = new google.visualization.Table(div);
142
+ redrawTable(0);
143
+ table.setSelection([{ row: 0, column: null}]);
144
+
145
+ function redrawTable(selectedRow) {
146
+ // Compute relative time using the first row as basis
147
+ var basis = data.getValue(selectedRow, 1);
148
+ for (var rowIndex = 0; rowIndex < data.getNumberOfRows(); rowIndex++)
149
+ data.setValue(rowIndex, 2, basis / data.getValue(rowIndex, 1));
150
+
151
+ var formatter = new google.visualization.NumberFormat({suffix: 'x'});
152
+ formatter.format(data, 2); // Apply formatter to second column
153
+
154
+ table.draw(data);
155
+ }
156
+
157
+ google.visualization.events.addListener(table, 'select',
158
+ function() {
159
+ var selection = table.getSelection();
160
+ if (selection.length > 0) {
161
+ var item = selection[0];
162
+ if (item.row != null)
163
+ redrawTable(item.row);
164
+ }
165
+ });
166
+
167
+ }
168
+
169
+ function drawBarChart(type, timeData) {
170
+ var defaultColors = ["#3366cc","#dc3912","#ff9900","#109618","#990099","#0099c6","#dd4477","#66aa00","#b82e2e","#316395","#994499","#22aa99","#aaaa11","#6633cc","#e67300","#8b0707","#651067","#329262","#5574a6","#3b3eac","#b77322","#16d620","#b91383","#f4359e","#9c5935","#a9c413","#2a778d","#668d1c","#bea413","#0c5922","#743411"];
171
+
172
+ var data = google.visualization.arrayToDataTable(timeData);
173
+ data.addColumn({ type: "string", role: "style" })
174
+ for (var rowIndex = 0; rowIndex < data.getNumberOfRows(); rowIndex++)
175
+ data.setValue(rowIndex, 2, defaultColors[rowIndex]);
176
+
177
+ data.sort([{ column: 1, desc: true }]);
178
+ var options = {
179
+ title: type,
180
+ chartArea: {'width': '70%', 'height': '70%'},
181
+ width: 800,
182
+ height: 300,
183
+ legend: { position: "none" },
184
+ hAxis: { title: "Time (ns)" }
185
+ };
186
+ var div = document.createElement("div");
187
+ div.className = "chart";
188
+ $(div).data("filename", type + "_time");
189
+ $("#main").append(div);
190
+ var chart = new google.visualization.BarChart(div);
191
+
192
+ chart.draw(data, options);
193
+ }
194
+
195
+ function drawDigitChart(type, timeDigitData) {
196
+ var data = google.visualization.arrayToDataTable(timeDigitData);
197
+
198
+ var options = {
199
+ title: type,
200
+ chartArea: {left:100, 'width': '60%', 'height': '80%'},
201
+ hAxis: {
202
+ title: "Digit",
203
+ gridlines: { count: timeDigitData.length - 1 },
204
+ maxAlternation: 1,
205
+ minTextSpacing: 0
206
+ },
207
+ vAxis: {
208
+ title: "Time (ns) in log scale",
209
+ logScale: true,
210
+ minorGridlines: { count: 0 },
211
+ baseline: 0,
212
+ viewWindow: {max: 150, min: 20},
213
+ minorGridlines: {interval: [1,2,3,4,5,6,7,8,9,10]}
214
+ },
215
+ width: 800,
216
+ height: 600
217
+ };
218
+ var div = document.createElement("div");
219
+ div.className = "chart";
220
+ $(div).data("filename", type + "_timedigit");
221
+ $("#main").append(div);
222
+ var chart = new google.visualization.LineChart(div);
223
+
224
+ chart.draw(data, options);
225
+ }
226
+
227
+ // http://jsfiddle.net/P6XXM/
228
+ function sanitize(svg) {
229
+ svg = svg
230
+ .replace(/\<svg/,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1"')
231
+ .replace(/zIndex="[^"]+"/g, '')
232
+ .replace(/isShadow="[^"]+"/g, '')
233
+ .replace(/symbolName="[^"]+"/g, '')
234
+ .replace(/jQuery[0-9]+="[^"]+"/g, '')
235
+ .replace(/isTracker="[^"]+"/g, '')
236
+ .replace(/url\([^#]+#/g, 'url(#')
237
+ .replace('<svg xmlns:xlink="http://www.w3.org/1999/xlink" ', '<svg ')
238
+ .replace(/ href=/g, ' xlink:href=')
239
+ /*.replace(/preserveAspectRatio="none">/g, 'preserveAspectRatio="none"/>')*/
240
+ /* This fails in IE < 8
241
+ .replace(/([0-9]+)\.([0-9]+)/g, function(s1, s2, s3) { // round off to save weight
242
+ return s2 +'.'+ s3[0];
243
+ })*/
244
+
245
+ // IE specific
246
+ .replace(/id=([^" >]+)/g, 'id="$1"')
247
+ .replace(/class=([^" ]+)/g, 'class="$1"')
248
+ .replace(/ transform /g, ' ')
249
+ .replace(/:(path|rect)/g, '$1')
250
+ .replace(/<img ([^>]*)>/gi, '<image $1 />')
251
+ .replace(/<\/image>/g, '') // remove closing tags for images as they'll never have any content
252
+ .replace(/<image ([^>]*)([^\/])>/gi, '<image $1$2 />') // closes image tags for firefox
253
+ .replace(/width=(\d+)/g, 'width="$1"')
254
+ .replace(/height=(\d+)/g, 'height="$1"')
255
+ .replace(/hc-svg-href="/g, 'xlink:href="')
256
+ .replace(/style="([^"]+)"/g, function (s) {
257
+ return s.toLowerCase();
258
+ });
259
+
260
+ // IE9 beta bugs with innerHTML. Test again with final IE9.
261
+ svg = svg.replace(/(url\(#highcharts-[0-9]+)&quot;/g, '$1')
262
+ .replace(/&quot;/g, "'");
263
+ if (svg.match(/ xmlns="/g).length == 2) {
264
+ svg = svg.replace(/xmlns="[^"]+"/, '');
265
+ }
266
+
267
+ return svg;
268
+ }
269
+ </script>
270
+ <style type="text/css">
271
+ @media (min-width: 800px) {
272
+ .container {
273
+ max-width: 800px;
274
+ }
275
+ }
276
+ textarea {
277
+ font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
278
+ }
279
+ .tablechart {
280
+ width: 700px;
281
+ margin: auto;
282
+ padding-top: 20px;
283
+ padding-bottom: 20px;
284
+ }
285
+ .chart {
286
+ padding-top: 20px;
287
+ padding-bottom: 20px;
288
+ }
289
+ body { padding-top: 70px; }
290
+ </style>
291
+ </head>
292
+ <body>
293
+ <div class="container">
294
+ <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
295
+ <div class="container">
296
+ <!-- Brand and toggle get grouped for better mobile display -->
297
+ <div class="navbar-header">
298
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
299
+ <span class="sr-only">Toggle navigation</span>
300
+ <span class="icon-bar"></span>
301
+ <span class="icon-bar"></span>
302
+ <span class="icon-bar"></span>
303
+ </button>
304
+ <a class="navbar-brand" href="https://github.com/miloyip/dtoa-benchmark"><span class="glyphicon glyphicon-home"></span> dtoa-benchmark</a>
305
+ </div>
306
+
307
+ <!-- Collect the nav links, forms, and other content for toggling -->
308
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
309
+ <ul class="nav navbar-nav">
310
+ <li class="dropdown">
311
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <span class="caret"></span></a>
312
+ <ul class="dropdown-menu" role="menu" id="configuration">
313
+ </ul>
314
+ </li>
315
+ <li class="dropdown">
316
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Section <span class="caret"></span></a>
317
+ <ul class="dropdown-menu" role="menu" id="section">
318
+ </ul>
319
+ </li>
320
+ </ul>
321
+ <p class="navbar-text navbar-right">Developed by <a href="https://github.com/miloyip" class="navbar-link">Milo Yip</a></p>
322
+ </div><!-- /.navbar-collapse -->
323
+ </div><!-- /.container-fluid -->
324
+ </nav>
325
+ <div class="page-header">
326
+ <h1 id="title">unknown_win64_vc2019</h1>
327
+ </div>
328
+ <div id="main"></div>
329
+ <h2>Source CSV</h2>
330
+ <textarea id="textInput" class="form-control" rows="5" readonly>
331
+ Type,Function,Digit,Time(ns)
332
+ randomdigit,doubleconv,1,71.223000
333
+ randomdigit,doubleconv,2,83.739000
334
+ randomdigit,doubleconv,3,87.977000
335
+ randomdigit,doubleconv,4,90.844000
336
+ randomdigit,doubleconv,5,96.071000
337
+ randomdigit,doubleconv,6,100.920000
338
+ randomdigit,doubleconv,7,106.860000
339
+ randomdigit,doubleconv,8,107.243000
340
+ randomdigit,doubleconv,9,107.882000
341
+ randomdigit,doubleconv,10,114.161000
342
+ randomdigit,doubleconv,11,120.089000
343
+ randomdigit,doubleconv,12,124.157000
344
+ randomdigit,doubleconv,13,121.921000
345
+ randomdigit,doubleconv,14,124.308000
346
+ randomdigit,doubleconv,15,127.801000
347
+ randomdigit,doubleconv,16,133.545000
348
+ randomdigit,doubleconv,17,140.764000
349
+ randomdigit,emyg,1,49.488000
350
+ randomdigit,emyg,2,54.384000
351
+ randomdigit,emyg,3,56.676000
352
+ randomdigit,emyg,4,58.776000
353
+ randomdigit,emyg,5,62.045000
354
+ randomdigit,emyg,6,59.798000
355
+ randomdigit,emyg,7,60.171000
356
+ randomdigit,emyg,8,62.302000
357
+ randomdigit,emyg,9,63.449000
358
+ randomdigit,emyg,10,64.685000
359
+ randomdigit,emyg,11,65.412000
360
+ randomdigit,emyg,12,66.872000
361
+ randomdigit,emyg,13,68.013000
362
+ randomdigit,emyg,14,69.450000
363
+ randomdigit,emyg,15,71.172000
364
+ randomdigit,emyg,16,74.847000
365
+ randomdigit,emyg,17,77.391000
366
+ randomdigit,erthink,1,34.692000
367
+ randomdigit,erthink,2,35.652000
368
+ randomdigit,erthink,3,37.090000
369
+ randomdigit,erthink,4,37.854000
370
+ randomdigit,erthink,5,40.699000
371
+ randomdigit,erthink,6,42.624000
372
+ randomdigit,erthink,7,44.213000
373
+ randomdigit,erthink,8,45.829000
374
+ randomdigit,erthink,9,46.268000
375
+ randomdigit,erthink,10,47.757000
376
+ randomdigit,erthink,11,49.229000
377
+ randomdigit,erthink,12,54.313000
378
+ randomdigit,erthink,13,52.171000
379
+ randomdigit,erthink,14,56.760000
380
+ randomdigit,erthink,15,58.601000
381
+ randomdigit,erthink,16,56.738000
382
+ randomdigit,erthink,17,57.844000
383
+ randomdigit,floaxie,1,32.675000
384
+ randomdigit,floaxie,2,38.321000
385
+ randomdigit,floaxie,3,42.846000
386
+ randomdigit,floaxie,4,49.954000
387
+ randomdigit,floaxie,5,56.737000
388
+ randomdigit,floaxie,6,61.745000
389
+ randomdigit,floaxie,7,69.012000
390
+ randomdigit,floaxie,8,77.025000
391
+ randomdigit,floaxie,9,83.648000
392
+ randomdigit,floaxie,10,87.588000
393
+ randomdigit,floaxie,11,92.134000
394
+ randomdigit,floaxie,12,96.296000
395
+ randomdigit,floaxie,13,98.109000
396
+ randomdigit,floaxie,14,99.591000
397
+ randomdigit,floaxie,15,100.592000
398
+ randomdigit,floaxie,16,101.807000
399
+ randomdigit,floaxie,17,101.887000
400
+ randomdigit,fmt,1,53.977000
401
+ randomdigit,fmt,2,57.743000
402
+ randomdigit,fmt,3,58.027000
403
+ randomdigit,fmt,4,57.938000
404
+ randomdigit,fmt,5,57.543000
405
+ randomdigit,fmt,6,58.663000
406
+ randomdigit,fmt,7,58.296000
407
+ randomdigit,fmt,8,59.124000
408
+ randomdigit,fmt,9,62.657000
409
+ randomdigit,fmt,10,63.963000
410
+ randomdigit,fmt,11,63.576000
411
+ randomdigit,fmt,12,64.037000
412
+ randomdigit,fmt,13,61.003000
413
+ randomdigit,fmt,14,60.267000
414
+ randomdigit,fmt,15,61.596000
415
+ randomdigit,fmt,16,64.429000
416
+ randomdigit,fmt,17,64.504000
417
+ randomdigit,grisu2,1,103.766000
418
+ randomdigit,grisu2,2,113.021000
419
+ randomdigit,grisu2,3,112.313000
420
+ randomdigit,grisu2,4,114.278000
421
+ randomdigit,grisu2,5,116.382000
422
+ randomdigit,grisu2,6,118.683000
423
+ randomdigit,grisu2,7,120.528000
424
+ randomdigit,grisu2,8,124.457000
425
+ randomdigit,grisu2,9,126.515000
426
+ randomdigit,grisu2,10,127.444000
427
+ randomdigit,grisu2,11,129.016000
428
+ randomdigit,grisu2,12,131.285000
429
+ randomdigit,grisu2,13,129.324000
430
+ randomdigit,grisu2,14,131.143000
431
+ randomdigit,grisu2,15,133.030000
432
+ randomdigit,grisu2,16,134.716000
433
+ randomdigit,grisu2,17,140.260000
434
+ randomdigit,milo,1,51.258000
435
+ randomdigit,milo,2,54.217000
436
+ randomdigit,milo,3,56.843000
437
+ randomdigit,milo,4,57.965000
438
+ randomdigit,milo,5,60.638000
439
+ randomdigit,milo,6,62.935000
440
+ randomdigit,milo,7,64.241000
441
+ randomdigit,milo,8,66.264000
442
+ randomdigit,milo,9,67.355000
443
+ randomdigit,milo,10,69.715000
444
+ randomdigit,milo,11,72.008000
445
+ randomdigit,milo,12,72.875000
446
+ randomdigit,milo,13,81.763000
447
+ randomdigit,milo,14,80.948000
448
+ randomdigit,milo,15,85.340000
449
+ randomdigit,milo,16,83.437000
450
+ randomdigit,milo,17,96.519000
451
+ randomdigit,ryu,1,54.887000
452
+ randomdigit,ryu,2,55.220000
453
+ randomdigit,ryu,3,54.280000
454
+ randomdigit,ryu,4,52.602000
455
+ randomdigit,ryu,5,51.612000
456
+ randomdigit,ryu,6,50.740000
457
+ randomdigit,ryu,7,49.837000
458
+ randomdigit,ryu,8,48.804000
459
+ randomdigit,ryu,9,46.491000
460
+ randomdigit,ryu,10,48.427000
461
+ randomdigit,ryu,11,46.493000
462
+ randomdigit,ryu,12,44.799000
463
+ randomdigit,ryu,13,43.150000
464
+ randomdigit,ryu,14,42.205000
465
+ randomdigit,ryu,15,40.604000
466
+ randomdigit,ryu,16,39.912000
467
+ randomdigit,ryu,17,39.437000
468
+ randomdigit,dragonbox,1,29.427000
469
+ randomdigit,dragonbox,2,31.778000
470
+ randomdigit,dragonbox,3,30.199000
471
+ randomdigit,dragonbox,4,31.238000
472
+ randomdigit,dragonbox,5,29.360000
473
+ randomdigit,dragonbox,6,30.439000
474
+ randomdigit,dragonbox,7,28.457000
475
+ randomdigit,dragonbox,8,30.089000
476
+ randomdigit,dragonbox,9,29.953000
477
+ randomdigit,dragonbox,10,30.676000
478
+ randomdigit,dragonbox,11,31.074000
479
+ randomdigit,dragonbox,12,30.812000
480
+ randomdigit,dragonbox,13,29.128000
481
+ randomdigit,dragonbox,14,28.778000
482
+ randomdigit,dragonbox,15,30.860000
483
+ randomdigit,dragonbox,16,28.859000
484
+ randomdigit,dragonbox,17,33.514000
485
+ randomdigit,dragonbox_comp,1,33.047000
486
+ randomdigit,dragonbox_comp,2,35.702000
487
+ randomdigit,dragonbox_comp,3,33.917000
488
+ randomdigit,dragonbox_comp,4,36.103000
489
+ randomdigit,dragonbox_comp,5,33.100000
490
+ randomdigit,dragonbox_comp,6,34.315000
491
+ randomdigit,dragonbox_comp,7,34.149000
492
+ randomdigit,dragonbox_comp,8,36.791000
493
+ randomdigit,dragonbox_comp,9,35.710000
494
+ randomdigit,dragonbox_comp,10,36.800000
495
+ randomdigit,dragonbox_comp,11,37.123000
496
+ randomdigit,dragonbox_comp,12,36.863000
497
+ randomdigit,dragonbox_comp,13,35.854000
498
+ randomdigit,dragonbox_comp,14,35.038000
499
+ randomdigit,dragonbox_comp,15,34.857000
500
+ randomdigit,dragonbox_comp,16,34.560000
501
+ randomdigit,dragonbox_comp,17,39.080000
502
+ randomdigit,fmt_full_cache,1,45.122000
503
+ randomdigit,fmt_full_cache,2,45.366000
504
+ randomdigit,fmt_full_cache,3,49.022000
505
+ randomdigit,fmt_full_cache,4,50.854000
506
+ randomdigit,fmt_full_cache,5,51.579000
507
+ randomdigit,fmt_full_cache,6,52.227000
508
+ randomdigit,fmt_full_cache,7,51.044000
509
+ randomdigit,fmt_full_cache,8,50.727000
510
+ randomdigit,fmt_full_cache,9,54.859000
511
+ randomdigit,fmt_full_cache,10,55.533000
512
+ randomdigit,fmt_full_cache,11,53.122000
513
+ randomdigit,fmt_full_cache,12,55.535000
514
+ randomdigit,fmt_full_cache,13,53.757000
515
+ randomdigit,fmt_full_cache,14,54.531000
516
+ randomdigit,fmt_full_cache,15,54.673000
517
+ randomdigit,fmt_full_cache,16,58.299000
518
+ randomdigit,fmt_full_cache,17,60.408000
519
+ </textarea>
520
+ </div>
521
+ <div class="row" id="downloadDD" style="display: none">
522
+ <div class="btn-group pull-right" >
523
+ <button class="btn dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-picture"></span></button>
524
+ <ul class="dropdown-menu">
525
+ <li><a tabindex="-1" href="#" dltype="image/jpeg">JPEG</a></li>
526
+ <li><a tabindex="-1" href="#" dltype="image/png">PNG</a></li>
527
+ <li><a tabindex="-1" href="#" dltype="application/pdf">PDF</a></li>
528
+ <li><a tabindex="-1" href="#" dltype="image/svg+xml">SVG</a></li>
529
+ </ul>
530
+ </div>
531
+ </div>
532
+ <form method="post" action="http://export.highcharts.com/" id="imageGetForm">
533
+ <input type="hidden" name="filename" id="imageFilename" value="" />
534
+ <input type="hidden" name="type" id="imageGetFormTYPE" value="" />
535
+ <input type="hidden" name="width" value="900" />
536
+ <input type="hidden" name="svg" value="" id="imageGetFormSVG" />
537
+ </form>
538
+ </div>
539
+ </body>
540
540
  </html>