Rust语言添加了代数浮点法。
新的代数方法允许利用实数的代数属性来优化浮点加法,减法,乘法,分法等操作。
版权:Natalya Duryagina/ Shutterstock
Rust团队发布了Rust 1.98.0,这是介绍浮点操作代数方法的语言更新。
通过生锈安装了之前版本的 Rust 的开发者可以通过运行生锈更新稳定来更新到 1.98.0.
8月20日介绍 Rust 1.98.0 带来了添加,减法,乘法,分法等代数方法,剩余为浮点类型f32和f64. 代数方法允许使用实数的代数特性来优化这些操作。 这些优化没有被指定,但可能类似于其他语言的-fast-math选项所看到的优化类型,Rust团队说。
“例如,浮点加法不是关联性的,因此,像一个+b +c +d 的金额必须按其分析的左相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 “如果写出与代数 add调用链相同的总和,那么编译器可以自由地重新排序,也许像(a + b) + (c + d) 同时评价部分总和。 使用这些代数方法也往往能够实现更广泛的循环控制。”
这些方法是非决定性的,因为编译器可以自由地选择不同的优化,但它们永远不会引起未定义的行为,Rust团队说。
Rust 1.98.0还引入了缓冲整数格式。 所有原始整数类型现在都有一个取取 & mut NumBuffer < self> 参数的格式 into方法,这个参数是一个缓冲器大到可以持有该类型任意值的小数格式。 格式 into 方法返回从缓冲器借入的终生格式 & str, 并绕过缓冲写的许多动态发送 ! 格式化,提高性能。
(原文共 8 张图片,此处展示前 3 张,更多图片请前往原文查看)
(编译自 InfoWorld;原文 https://www.infoworld.com/article/4215422/rust-language-adds-algebraic-floating-point-methods.html,编译转述,非原文转载)



本文系本站对该英文资讯的编译与转述,非全文翻译;版权归原作者所有。
每天 5 分钟,看懂世界在发生什么
订阅「牛金金天天译站」,每日精选海外科技/AI/文化资讯编译送到你邮箱。非经营性、无广告、可随时退订。
评论