问题标签 [long-double]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 目标 C:创建 Long Double 使用 Decimal 方法
如何创建以下方法?
- 我曾尝试使用 modf(n, 1) 或 modf(n, 2) 但它们都返回错误“传递 modf 的参数 2 使指针从整数而不进行强制转换。
方法如下:
ruby - 红宝石中的128位长双打?
在我的 ruby 代码中,我正在与一个服务器对话,该服务器以二进制格式的字符串形式响应 128 位长双精度(“128 位长双精度”、“binary128”或“四倍精度浮点”)。
有没有办法解压缩这些字符串以在 ruby 中使用?根据String.unpack上的文档,最大精度似乎是两倍。是否有可能在 ruby 中表示这些 128 位浮点数?
c++ - 检测嵌入式系统上的长双溢出
我将在嵌入式系统上的 C++ 代码中使用大数字。幸运的是,编译器可以识别长双精度数。
我不能使用标准库、boost库、gnu数学库等。而且系统没有内置float math cpu。
现在如何检测长双溢出?
gdb - 执行期间的疯狂行为
我一直在用 gcc 做一些内联汇编。一切都几乎正常工作,直到一些让我感到困惑的行为。我正在评估一个有理多项式,但需要使用 80 位常量。生成的代码似乎很完美,但在执行时,80 位系数之一在加载到 fpu 时加载为 0,即使在内存中字节值不为零(我认为它是有效的 80 -bit 实数,当使用 masm 生成的代码运行时,完全相同的常量加载正常)。这是 gdb 会话的输出:
所以请注意:在 stepi 之前,我们即将执行“fldt 0x4046e6”,并且 0x4046e6 处的内存转储清楚地表明它不为零。然而,“fldt 0x4046e6”导致将零加载到 st0。之前的所有 fldt 指令都运行良好;常量很好(masm 中具有相同常量的相同代码可以完美运行)。对于那些感兴趣的人,这里是常量的来源:
这是 poly4 函数的来源:
这是无效负载之前 FPU 的状态:
我想知道上面状态字中“C1”标志的含义是什么——我找不到这方面的文档。这是失败的 fldt 之后的状态(由 stepi 执行):
好的,我现在修改了代码,使 0x00402db5 和 0x00402dbf 处的指令相同。第一个成功,第二个失败。这是一个显示反汇编代码的 gdb 会话,以及在执行两条相同指令之前的 fpu 状态。状态中唯一显着的区别是在执行第二条 fldt 指令之前的状态中存在 C1 标志:
c - 长双数学库实现?
expl
C99 长双精度数学库函数( 、cosl
、logl
等)有哪些可用的可移植实现(如果有)?我查看了 fdlibm(基于 Sun)、NetBSD(基于 UCB)等来源,但没有看到它们。
c++ - 支持长双打的最爱/最佳 AX=B 求解器?
我希望反复敲击 X=B(A^-1) 的问题。也就是说,求解一个线性系统。对于 C++,哪些数值求解器支持 128 位长双精度(四边形)?
使用 C 样式数组是一个主要优点,因为我所有的 2D 数据都存储为单个 std::vector。
我希望使用 GCC 或 ICC 在 linux 上编译代码。
c++ - “long double”有一个单词的名字吗?
许多新的 C++ 数据类型名称都有一个单词名称,例如:
- int16_t 而不是带符号的 short int
- int64_t 而不是有符号的 long long int
- ...
“long double”有一个单词的名字吗?
.net - 在 .NET 中转换 long double
我必须将一些 C 代码(在 Linux 机器上运行)转换为 .Net,并发现一些带有 long double 的操作。它们不是特殊运算,只是一些以很多小数结尾的乘法和除法,似乎只是因为它的大小而使用了该类型。
为了转换代码,你会做什么?我正在考虑将值相乘并在最后除以查看它是否有帮助,因为代码无论如何都会在最后返回短值,而且我不知道原始二进制文件是否确实使用了所有长double 可以提供,或者如果它只是在引擎盖下使用一个常见的 64 位双精度。
如果您认为这不是一个好主意,您是否知道任何可用于包装和模拟 long double 的类或结构?在 C/C++ 中制作包装器并从 .Net 中调用它是“不可能的”。
c++ - 微软为何放弃 long double 数据类型?
前段时间我写了一个程序,它使用了一些阶乘函数。我使用 long double 数据类型来支持“相对”大数字。
现在,我从代码块更改为 Visualstudio 2010,我想知道为什么我的程序不再工作,直到经过一些研究后我意识到 MS 已经放弃了 long double 数据类型。这有什么特别的原因吗?对我来说,这看起来像是技术方面的倒退。
有什么替代品可以使用吗?(我也会对 boost 库中的替代方案感到满意)。
c++ - 应该使用哪个函数将字符串转换为长双精度?
请注意,一般来说,double
与 不同long double
。
strtod
将字符串转换为double
,但应该使用哪个函数将字符串转换为 long double?