找回密码
 欢迎注册
楼主: 无心人

[讨论] B计划之大数的表示

[复制链接]
发表于 2010-7-7 15:48:05 | 显示全部楼层
39# 无心人
还是考虑兼容旧的CPU比较好。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-7-7 15:51:00 | 显示全部楼层


郭老大都进入64位时代了,咱还是跟潮流吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-7-7 15:54:38 | 显示全部楼层
要喜新不厌旧,根据不同的CPU采用不同的进制,呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-2-25 22:05:11 | 显示全部楼层
我的观点如下:
   2.大数表示采用和intel相反的顺序,和书写顺序一致。高位在前,低位在后。这 ...
liangbch 发表于 2008-4-10 19:53


这两天在优化大数加法时,发现采用大尾序很不方便,现郑重决定,将我的大数库的存储方式改为小尾序(和Intel格式一致)
  基于以下原因,采用小尾序的方式优于大尾序
   1.整数的加,减,乘都是以从低到高的顺序计算,采用小尾序表示大整数,对内存的访问是最自然的。
   2.虽然整数的除法和整数的I/O采用从高到低的顺序,但相对不太常用,采用小尾序表示大整数,不影响大数库的最终性能。
   3.SSE2指令可一次处理4个DWORD,访问MMX寄存器的低32bit和低64bit可用movd和movq来实现,但访问最高的DWORD就不得不用移位和pshufd指令了,pshufd是较慢的指令。若大数的存储方式使用小尾序,处理进位比较方便,则大数的存储方式使用大尾序,则不得不使用额外的pshufd指令,从而降低性能。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-2-26 08:27:19 | 显示全部楼层
apfloat 采用的是大尾序,HugeCalc 采用的是小尾序(即楼上推崇的)。
小尾序在数据动态增长时,比如相加,或乘以一个int型时,即便进位也是在高位,有时甚至无需移动数据。
至于第2点,我感觉访问顺序本身对性能不存在降低的可能。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-2-26 10:51:59 | 显示全部楼层
赞同你说的。对于顺序访问和逆序访问的性能,我没有实测,不知道逆序访问对L2的命中率有没有影响。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-3-2 15:24:16 | 显示全部楼层
44# liangbch


欢迎回归主流
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-19 15:03 , Processed in 0.039749 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表