我正在尝试实现Newton-Raphson分区算法Wikipedia entry,以便在没有硬件分割单元的处理器上实现IEEE-754 32位浮点除法。
我的内存位置是32位二进制补码字,我已经实现了浮点加法,减法和乘法,所以我可以重用代码来实现Newton-Raphson算法。我想在Matlab中首先实现这一切。
在此步骤:
X_0 = 48/17 - 32/17 * D
如算法详细信息中所述,如何将D正确地移位到0.5和1之间?
答案 0 :(得分:1)
您可以查看compiler-rt运行时库(LLVM的一部分),它具有自由许可,并为缺少硬件支持的处理器实现浮点运算。
你也可以看看libgcc,虽然我认为这是GPL,这对你来说可能是也可能不是。
事实上,不要只看它们。使用其中一个(或另一个软浮动库)。没有必要重新发明轮子。