liangbch 发表于 2010-7-7 15:48:05

39# 无心人
还是考虑兼容旧的CPU比较好。

无心人 发表于 2010-7-7 15:51:00

:o

郭老大都进入64位时代了,咱还是跟潮流吧

qianyb 发表于 2010-7-7 15:54:38

要喜新不厌旧,根据不同的CPU采用不同的进制,呵呵

liangbch 发表于 2013-2-25 22:05:11

我的观点如下:
   2.大数表示采用和intel相反的顺序,和书写顺序一致。高位在前,低位在后。这 ...
liangbch 发表于 2008-4-10 19:53 http://bbs.emath.ac.cn/images/common/back.gif

这两天在优化大数加法时,发现采用大尾序很不方便,现郑重决定,将我的大数库的存储方式改为小尾序(和Intel格式一致)。
基于以下原因,采用小尾序的方式优于大尾序
   1.整数的加,减,乘都是以从低到高的顺序计算,采用小尾序表示大整数,对内存的访问是最自然的。
   2.虽然整数的除法和整数的I/O采用从高到低的顺序,但相对不太常用,采用小尾序表示大整数,不影响大数库的最终性能。
   3.SSE2指令可一次处理4个DWORD,访问MMX寄存器的低32bit和低64bit可用movd和movq来实现,但访问最高的DWORD就不得不用移位和pshufd指令了,pshufd是较慢的指令。若大数的存储方式使用小尾序,处理进位比较方便,则大数的存储方式使用大尾序,则不得不使用额外的pshufd指令,从而降低性能。

gxqcn 发表于 2013-2-26 08:27:19

apfloat 采用的是大尾序,HugeCalc 采用的是小尾序(即楼上推崇的)。
小尾序在数据动态增长时,比如相加,或乘以一个int型时,即便进位也是在高位,有时甚至无需移动数据。
至于第2点,我感觉访问顺序本身对性能不存在降低的可能。

liangbch 发表于 2013-2-26 10:51:59

赞同你说的。对于顺序访问和逆序访问的性能,我没有实测,不知道逆序访问对L2的命中率有没有影响。

无心人 发表于 2013-3-2 15:24:16

44# liangbch


欢迎回归主流
页: 1 2 3 4 [5]
查看完整版本: B计划之大数的表示