gpt4 book ai didi

64-bit - Lua数字和64位整数的并行实现策略

转载 作者:行者123 更新时间:2023-12-02 19:54:17 26 4
gpt4 key购买 nike

Lua默认使用 double 浮点(double)类型作为其唯一的数字类型。这很好而且很有用。然而,我正在开发期望看到 64 位整数的软件,为此我无法以某种方式使用实际的 64 位整数。

整数类型与文件大小相关。虽然我并不真正期望看到文件大小超出 Lua 使用 double 可以表示的完整“整数”精度,但我想做好准备。

当并行使用 64 位整数类型和 Lua 的默认数值类型时,您可以推荐什么策略?我真的不想放弃默认实现(而且我并不担心它与整数算术相比的性能),但我需要某种方法来表示 64 位整数达到其完整精度,而不会有太多的性能损失。

我的问题是我不确定在哪里修改行为。我应该修改语法并扩展解析器(想到带有附加 LL 或 ULL 的数字,据我所知,默认 Lua 中不存在)或者我应该编写自己的 C 模块并定义代表 64 位的用户数据类型整数以及能够操作这些值的库函数? ...

注意:是的,我嵌入了 Lua,所以我可以以我喜欢的方式自由扩展它。

最佳答案

作为 LuaJIT 移植到 ARM CPU(浮点性能通常很差)的一部分,LuaJIT 实现了“双数 VM”,这使得它可以根据需要在整数和 float 之间动态切换。您可以自己使用它,只需在 64 位整数和 double 之间切换,而不是 32 位整数和 float 。

它目前正在构建中,因此您可能需要考虑使用 LuaJIT 作为您的 Lua“解释器”。或者您可以使用它作为学习如何做此类事情的一种方式。

但是,我确实同意马塞洛的观点; 53 位尾数应该足够了。在大约 10 年左右的时间里,您不应该真的需要这个。

关于64-bit - Lua数字和64位整数的并行实现策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com