关于使用SCALE函数进行乘除计算
FORTRAN里的SCALE函数,原意是更改浮点数的指数部分,如SCALE(d,1)意为将浮点数d的指数部分加1,即d=d*2。也就是说,SCALE可以将浮点数与2的幂次的乘法操作转化为整型数的加减操作。
原以为整型数的加减操作会比浮点数的剩法快些,因此想到用SCALE函数来加速诸如X*2,X/2之类的操作。没想到事与愿违,使用了SCALE函数后计算速度反而变慢了20倍还多。
结论,SCALE函数不能对浮点数的乘除法产生任何加速作用。那么,为什么看似复杂的浮点运算为什么比看似简单的整数运算更快呢,我想原因大概就是浮点运算单元FPU太过强大的缘故吧。