extended-precision相关内容
当唯一允许使用的浮点指令是 387 时,几乎不可能 (*) 以合理的成本提供严格的 IEEE 754 语义.当希望保持 FPU 在完整的 64 位有效位上工作以便 long double 类型可用于扩展精度时,尤其困难.通常的“解决方案"是以唯一可用的精度进行中间计算,并在或多或少定义明确的情况下转换为较低的精度. 最新版本的 GCC 根据 Joseph S. Myers 在 2008 年发
..
我目前正在查看执行多精度浮动的 代码点算术.为了正常工作,该代码需要在明确定义的点处将值减少到它们的最终精度.因此,即使将中间结果计算到 80 位扩展精度 浮点寄存器,在某些时候它也必须被四舍五入到 64 位双精度 以供后续操作. 代码使用宏INEXACT来描述这个需求,但没有完美的定义.gcc 手册 提到 -fexcess-precision=standard 作为强制转换和赋值操作定义明
..
我想得到在 c 中添加两个无符号 64 位整数的进位位.如果需要,我可以使用 x86-64 asm.代码: #include typedef unsigned long long llu;int main(void){llu a = -1, b = -1;int进位=/*a+b进位*/;llu res = a+b;printf("a+b = %llu (因为加法溢出), 进位位 = %d\n",
..
我什至在启动问题的解决方案时遇到了问题.我曾尝试考虑乘法是重复加法算法,但无论我考虑什么算法,我似乎都专注于一个问题——8086 中的最大寄存器大小是 16 位. 数据段编号 1 dw 0102h,0304h,0506h,0708hnum2 dw 0102h,0304hres dw ?,?,?,?,?,?数据结束代码段假设 CS:CODE, DS:DATA开始:移动斧头,数据mov DS,ax
..
我正在尝试编写一个程序来获取两个 6 位十进制数并显示它们的相加,但是在 16 位 8086我将数字定义为双字并将 LO 放在字 1 中,将 HO 放在字 2 中.类似于下面的代码但我不知道接下来要做什么,有人可以建议我下一步操作的算法吗?谢谢 x dd(?)next_no:mov cl,2mov ch,4二位:获取sub al,30hmov bl,10倍数mov di,ax添加单词 ptr x
..
假设我想在汇编中将一个大数乘以另一个(可能是小)数.大数(被乘数)保存在DX:AX中,乘数保存在BX中.MUL 指令只对 AX 进行操作.那么如何处理DX? 例如,数字是 0001:0000H (65536),我想乘以 2. 编号 dw 0000h, 0001h...mov ax, [数字]mov dx, [数字+2]mov bx, 2mul bx ;它是 ax*2 或 0000*2 因
..
我的印象肯定不是,但也许有一个聪明的伎俩?谢谢. 解决方案 不是直接的,但是有 64 位算术运算,可以很容易地组合以执行 128 位(或更高)的精度.
..
在MSVC win32/win64中从扩展精度浮点数(80位值,在某些编译器中也称为long double)到双精度(64位)转换的最可移植,最“正确"的方法是什么? /p> MSVC当前(截至2010年)假定long double是double的同义词. 我可能可以在内联汇编中编写fld/fstp汇编程序对,但是内联汇编不适用于MSVC中的win64代码.我是否需要将此汇编代码移动到单独
..
SSE/AVX寄存器可以视为整数或浮点数BigNum.也就是说,可以忽略根本存在车道.是否存在一种简单的方法来利用这种观点并将这些寄存器单独或组合用作BigNum?我之所以问是因为,从我对BigNum库的了解很少,它们几乎都在数组上而不是在SSE/AVX寄存器上进行通用存储和算术运算.可移植性? 示例: 假设您将SSE寄存器的内容作为键存储在std::set中,则可以将这些内容作为Bi
..
标准的Haskell的 Double 使用: data Double 双精度浮点数。希望这种类型至少在IEEE双精度类型的范围和精度上是相同的。 GHC / Haskell是否提供某处还有一些扩展精度(80位)浮点数,也许使用一些外部库? 解决方案 正如chuff指出的那样,你可能想看一看数字包裹上。你可以用 cabal install numbers 来安装它。这里是一个例子
..
我目前正在查看执行多精度浮动的代码点算术。为了正确地工作,该代码需要将值在精确定义的点处降低到其最终精度。因此,即使中间结果计算为 80位扩展精度浮点寄存器,在某些时候它也必须则舍入为 64位double 用于后续操作。 代码使用宏 INEXACT 描述此要求,但没有完美的定义。 gcc手动提及 -fexcess-precision = standard 作为强制转换和赋值操作的精确定义的精
..
下面是插值两种实现方法。参数 U1 总是介于0。和 1 。 的#include<&stdio.h中GT;双interpol_64(双U1,U2双,双U3) { 返回U2 *(1.0 - U1)+ U1 * U3; }双interpol_80(双U1,U2双,双U3) { 返回U2 *(1.0 - (长双)U1)+ U1 *(长双)U3; }诠释的main() { 双Y64
..
这几乎是不可能的(*),以合理的成本的时候才会浮点指令之一是允许用于提供严格的IEEE 754语义是387人。这是当一个人希望保持FPU的完整的64位有效数字的工作,使长双类型可用于扩展precision特别难。通常的“溶液”,是在唯一可用precision做中间计算,并转换为较低precision在或多或少明确的场合。 GCC的最新版本根据约瑟夫·迈尔斯在的 2008年后,以海湾合作委员会的邮
..