52得票2回答
有没有一份描述Clang如何处理浮点数精度超出范围的文档?

使用仅允许使用387指令集的情况下,以合理的成本提供严格的IEEE 754语义几乎是不可能的(*). 特别是当希望保持FPU在完整的64位有效数字上工作,以便扩展精度long double类型可用时,这更难。通常的“解决方案”是在仅有可用精度的中间计算,并在更或多或少定义良好的情况下转换为较低...

45得票1回答
OCaml中的80位扩展精度浮点数

是否有一个OCaml库可以利用IA-32和x86-64架构上的80位扩展精度浮点类型? 我知道关于MPFR绑定,但是我理想的库应该更加轻量级。利用历史浮点指令将是理想的。

42得票4回答
Long double (GCC 特有) 和 __float128

我正在寻找有关GCC / x86中long double和__float128的详细信息(更多是出于好奇而不是因为实际问题需要)。 可能很少有人会需要这些内容(我刚刚真正需要一个double),但我认为了解您的工具箱中有什么以及它们的作用仍然是值得的(并且有趣的)。 在这种情况下,请原谅我...

24得票7回答
三个无符号整数的平均值的高效计算(避免溢出)

这里有一个现有问题, 是关于高效计算三个有符号整数平均值的。 但是,使用无符号整数可以实现一些额外的优化,而这些优化不适用于前一个问题的场景。这个问题是关于高效计算三个无符号整数平均值的,其中平均值向零舍入,即在数学上我想计算⌊ (a + b + c) / 3 ⌋。 一种直接计算此平均值的...

24得票2回答
gcc在amd64上支持128位整数吗?

gcc是否支持在amd64上的128位整数? 如何定义它? 如何使用scanf/printf来读写它?

17得票5回答
什么是针对大数字的最快的x86-64汇编除法算法?

我正在使用x86-64汇编语言编写一个代码库,为 s0128, s0256, s0512, s1024 有符号整数类型和f0128, f0256, f0512, f1024 浮点类型提供所有传统的按位、移位、逻辑、比较、算术和数学函数。目前我正在处理有符号整数类型,因为浮点函数可能会调用一些为...

17得票3回答
实用的大数AVX/SSE可能吗?

SSE/AVX寄存器可视为整数或浮点BigNum。也就是说,可以忽略存在通道的事实。是否存在一种简单的方法来利用这种观点,并将这些寄存器作为单个或组合的BigNum使用?我之所以问,是因为我很少看到BigNum库,它们几乎普遍存储和对数组进行算术运算,而不是在SSE/AVX寄存器上。可移植性呢...

16得票5回答
80位扩展精度数据类型的应用/好处是什么?

是的,我想说的是80位。那不是打字错误... 我的浮点变量经验总是涉及4字节的倍数,比如单精度(32位)、双精度(64位)和长双精度(我见过的称为96位或128位)。这就是为什么当我在编写一些代码来读写AIFF(音频交换文件格式)文件时,遇到一个80位扩展精度数据类型时有点困惑:选择了扩展精...

16得票2回答
哪些gcc版本支持__int128内置类型?

在gcc文档中,128位整数是这样定义的: 作为扩展,支持整数标量类型__int128,用于具有足够宽的整数模式以容纳128位的目标。 只需编写__int128来表示带符号的128位整数,或者unsigned __int128表示无符号的128位整数。 对于long lon...

15得票1回答
在GHC/Haskell中是否可以使用扩展精度(80位)浮点算术?

标准Haskell使用standard double-precision arithmetic Double: data Double 双精度浮点数。希望此类型至少在范围和精度上与IEEE双精度类型相等。 GHC / Haskell是否还提供扩展精度(80位)浮点数,可能使用某些外...