在 Erlang/OTP 27 中,+0.0 将不再完全等于 -0.0
Erlang/OTP 技术委员会宣布,在 Erlang/OTP 27 中,,+0.0 将不再完全等于 -0.0。
在此之前,Erlang 的浮点数0.0
和-0.0
具有不同的内部表示。如果将它们转换为二进制文件,则可以看到:
<<0.0/float>>. <<0,0,0,0,0,0,0,0>> <<-0.0/float>>. <<128,0,0,0,0,0,0,0>>
但是,当它们相互匹配或使用=:=
运算符进行比较时,却会被认为是相等的,0.0 =:= -0.0
会返回 true。
Erlang 团队一直在犹豫是否要花时间和人力去处理这个问题。但最近的一个 Bug 让这个问题变得更严重,Erlang 编译器的优化程序会将此函数中两个子句的代码视为重复代码:
f(_V0, _V0) -> -0.0; f(_, _) -> 0.0.
并自动将其重写为:
f(_, _) -> 0.0.
在 =:= 运算符持续认为 0.0 和 -0.0 是完全相等时,修复此优化会将很麻烦,并且可能会使编译器变慢。编译器中的其他优化也可能会受到影响。
在经过慎重的评判和讨论后,Erlang /OTP 技术委员会决定,在 Erlang/OTP 27 中,将更改 +0.0 =:= -0.0
以使其返回 false
,且正负 0.0
相互匹配也会失败。当用作映射键时, 0.0
和 -0.0
也将被识别为两个不同的键。当然,==
运算符将继续为 0.0 == -0.0
返回 true
。
在 OTP 27 中,当与 0.0
匹配或使用 =:=
运算符与该值进行比较时,将出现新的编译器警告。可以通过匹配 +0.0
而不是 0.0
来抑制警告。Erlang 团队还计划在 OTP 26.1 中引入相同的警告,但默认情况下它将被禁用。如果有人怀疑自己的代码会受到影响,可以在 OTP 26.1 中打开该警告。
有关 Erlang 与浮点数的更多技术细节,可以在该讨论帖子中细阅。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谷歌推出下一代大型语言模型 PaLM 2
谷歌在 2023 年度 I/O 大会上宣布推出了其下一代大型语言模型 PaLM 2,擅长高级推理任务,包括代码和数学、分类和问答、翻译和多语言能力以及自然语言生成。 谷歌声称 PaLM 2 是一种最先进的语言模型,要优于其之前所有的 LLM,包括 PaLM。目前,PaLM 2 已被用于 Med-PaLM 2 和 Sec-PaLM,并为谷歌的生成人工智能功能和工具(如 Bard 和 PaLM API)提供支持。 推理:PaLM 2 可以将复杂的任务分解为更简单的子任务,并且比以前的 LLM(如 PaLM)更善于理解人类语言的细微差别。例如,PaLM 2 擅长理解谜语和成语,这需要理解词语的歧义和比喻意义,而不是字面意义。 多语言翻译:PaLM 2 在一个包含 100 多种语言的语料库上进行了训练,使得 PaLM 2 擅长多语言任务,包括比以前的模型更细微的措辞。 编码:PaLM 2 还可以理解、生成和调试代码,并接受了 20 多种编程语言的预训练。这意味着它擅长使用 Python 和 JavaScript 等流行的编程语言,但也能够使用 Prolog、Fortran 和 Verilog ...
- 下一篇
Orillusion 引擎正式开源!AIGC 时代下的 WebGPU 轻量级 3D 渲染引擎!
开源生态的建设根植于社区,开发者在社区共享、共创、共赢,将会激发出无限的创造力,这就是开源最大的魅力! 选择开源,源于我们坚信,“独行快,众行远”! 1Orillusion 引擎 WebGPU经过六年的时间,终于在2023年4月6日,由Chrome团队发布。5月2号,在Chrome113版本上,WebGPU被默认启动。自此,Web上有望出现3A级渲染的3D应用了! Orillusion团队三年前开始关注WebGPU发展,经过两年多研发,多次框架重构,性能调优后,Orillusoin引擎在今天以开源的形式正式跟大家见面! 我们致力于在浏览器中实现桌面级的渲染效果,支持超大复杂场景的3D呈现,为3D场景爆发时代提供底层引擎基础工具。 Github地址: https://github.com/Orillusion/orillusion 引擎优势 WebGPU是基于Web浏览器的全新现代图形API,使网页能够直接调用GPU执行计算任务,并绘制复杂图像。 Orillusion是一套基于WebGPU图形API的Web3D渲染引擎,能够媲美PC端图形API的渲染能力。Orillusion引擎中使用了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路