第207章 数学组的烦恼(2/2)

投票推荐 加入书签 留言反馈

【畅读更新加载慢,有广告,章节不完整,请退出畅读后阅读!】

,数学组只负责写逻辑,不亲自碰穿孔机。



    这套组合拳打下来,编程效率提升了十倍不止。



    以前要写三天的程序,现在半天就能搞定。



    以前动辄查三天的bUg,现在三岗制一卡,大部分都能在穿孔前发现。



    数学组的人都觉得,最难的日子已经过去了。



    直到他们遇到了“负数”问题。



    ??????



    “华老,您看看这个。”



    苏步云把那张打印纸推到华老面前。



    华老还在草稿纸上验算着什么,他放下钢笔,接过打印纸,只看了一眼,眉头就立刻皱成了一个疙瘩。



    “-32768?”



    “对。”苏步云有点不好意思,“我一开始也以为是程序写错了,或者纸带穿错了。”



    “可我查了三遍程序,三岗制也过了两遍,却没有发现任何问题。”



    “emm......小苏,这是不是中间结果膨胀了?”



    华教授一眼就点出了问题的结症,苏步云也立刻反应了过来,懊恼道:“哎呀!我用的是雅可比迭代。”



    华老拿起草稿纸,在上面写了几笔。



    “雅可比迭代的中间矩阵,本来就会比最终结果大一个量级。”



    “你按最终结果选比例因子,中间不溢出才怪。”



    苏步云有点不好意思。



    这个失误,说大不大,说小不小。



    溢出这个问题,从机器设计之初他们就知道,16位定点数,最大正数32767,超过这个数值就会溢出,从而导致符号位翻转的问题。



    林远也提前提醒过,让他们用比例因子法。



    可苏步云却犯了个错误:他只算了最终结果的范围,却没算中间结果。



    毕竟大坝应力的最终结果是几千公斤/平方厘米,除以1000之后变成几个单位,怎么都不会溢出。



    但迭代过程中的中间矩阵,元素值会膨胀到几万甚至几十万。



    比例因子没留够余量,中间结果直接就爆炸了。



    这个问题,比之前所有的问题都要棘手。



    之前的问题,是工具的问题,只要肯想办法,总能解决。



    可溢出不一样。



    这是机器本身的物理限制。



    16位就是16位,符号位就是符号位,你改不了。



    就好比一个量筒,最多能量32767毫升的水,你非要往里倒40000毫升,它只能溢出来。



    “小苏,这不怪你。”华老忽然开口。



    苏步云抬起头。



    “当初定16位字长的时候,我就该坚持做24位。”华老看着草稿纸上的数字,“24位的话,最大正数能到800多万,大坝应力这点数,怎么都不会溢出。”



    “可当时硬件组说,16位已经用了1000多个电子管,再扩到24位,已经严重偏离了既定目标。”



    “林远同志也说,验证机先跑通架构,字长可以后面再加。”



    “我想着,定点数加比例因子,应该够用了。”



    他顿了顿,苦笑了一声。



    “我当时再坚持一下就好了。”



    苏步云此刻显得有些内疚,因为这不是“不知道”的错误,而是“算错了”的错误,这本是可以避免的。



    溢出的原理他们都懂,比例因子法林远也给了方向,可中间结果会膨胀这么多,谁也没料到。



    不过现在说这些都没用了。



    得想办法找补才行。



    

章节目录