文件名称:matlab终止以下代码-Grisu-Exact:C++中Grisu-Exact的参考实现
文件大小:2.28MB
文件格式:ZIP
更新时间:2024-06-10 04:16:15
系统开源
matlab终止以下代码这里有一个更好的算法:。 请看一看。 格里苏-精确 该库是C ++中Grisu-Exact的参考实现。 Grisu-Exact是的变体。 与Grisu不同,Grisu-Exact总是产生最短且正确舍入的输出。 该算法的开发受到了启发。 (请注意,Grisu确实已经提供了往返保证,因此它确实已经是“正确”的算法。但是Grisu-Exact提供了更多的保证;请参阅下文。) 介绍 Grisu-Exact从浮点数生成一对整数:输入浮点数的十进制有效位数和十进制指数。 然后,这些整数可用于生成输入浮点数的十进制表示形式的字符串,该过程通常称为ftoa或dtoa 。 该算法保证三件事: 具有往返保证; 也就是说,正确的解析器会将生成的输出字符串解释为原始输入浮点数。 输出的长度最短; 也就是说,没有任何其他解释为输入数字的输出字符串包含的有效位数可以少于Grisu-Exact的输出。 输出正确舍入:在最小位数的可能输出中,Grisu-Exact生成的数字最接近输入数字的实际值。 如何使用 尽管Grisu-Exact用于浮点数到字符串的转换例程,但是实际的字符串生成并不是该算
【文件预览】:
Grisu-Exact-master
----other_files()
--------unknown_win64_vc2019_randomdigit_time.png(18KB)
--------milo_benchmark.png(93KB)
--------unknown_win64_vc2019.html(17KB)
--------Grisu-Exact.pdf(1.04MB)
----fp_to_chars()
--------LICENSE-Apache2(11KB)
--------LICENSE-Boost(1KB)
--------fp_to_chars.cpp(8KB)
----.gitattributes(84B)
----test_results()
--------binary32_negative_k.csv(600B)
--------binary32_negative_k.pdf(19KB)
--------binary64_negative_k.csv(7KB)
--------binary64_negative_k.pdf(27KB)
--------binary64_generated_cache.txt(27KB)
--------binary64_positive_k.pdf(26KB)
--------binary32_positive_k.pdf(18KB)
--------binary32_generated_cache.txt(2KB)
--------binary64_positive_k.csv(9KB)
--------binary32_positive_k.csv(1KB)
----LICENSE-Boost(1KB)
----fp_to_chars.h(3KB)
----grisu_exact.h(97KB)
----benchmark()
--------grisu_exact_wo_correct_rounding.cpp(1KB)
--------ryu.cpp(813B)
--------benchmark.h(4KB)
--------ryu()
--------benchmark.cpp(4KB)
--------grisu_exact.cpp(1KB)
----LICENSE-Apache2-LLVM(12KB)
----vc2019()
--------grisu_exact.sln(1KB)
--------grisu_exact.vcxproj.user(1KB)
--------grisu_exact.vcxproj(10KB)
--------grisu_exact.vcxproj.filters(4KB)
----README.md(12KB)
----benchmark_results()
--------plot_uniform_benchmark.m(3KB)
--------plot_digit_benchmark.m(3KB)
--------digits_benchmark_binary32.png(76KB)
--------uniform_benchmark_binary64.png(115KB)
--------shaded_plots()
--------uniform_benchmark_binary32.png(108KB)
--------digits_benchmark_binary64.png(90KB)
--------digits_benchmark_binary32.pdf(32KB)
--------uniform_benchmark_binary64.pdf(274KB)
--------plot_benchmarks.m(936B)
--------uniform_benchmark_binary32.pdf(245KB)
--------digits_benchmark_binary64.pdf(52KB)
----tests()
--------random_float.h(6KB)
--------verify_cache_length.cpp(12KB)
--------verify_log_computation.cpp(5KB)
--------verify_delta_computation.cpp(2KB)
--------generate_cache.cpp(8KB)
--------misc_test.cpp(727B)
--------bigint.h(26KB)
--------main.cpp(5KB)
--------verify_incorrect_rounding_removal.cpp(7KB)
--------verify_correct_rounding_bound.cpp(4KB)
--------live_test.cpp(3KB)
--------uniform_random_test.cpp(2KB)
--------uniform_random_perf_test.cpp(2KB)
----.gitignore(2KB)