MIRACL用户手册(译).docVIP

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MIRACL用户手册 译:叶道全 yedaoq@126.com 摘要 Miracl库包含100余个例程,涉及多倍精度运算(multiprecision arithmetic)的各个方面。定义了两种新的数据类型——表示大整数的big类型和表示有理数的flash(short for floating-slash)类型。大整数例程基于Knuth算法(在他的著作“The Art of Computer Programming”第四章中提出)。floating-slash(不固定斜杠?)算法基于圆整小数,最初由D.Matula和P.Kornerup提出。所有例程都针对速度和效率进行了全面的优化,同时也是标准的,可移植的C程序。另外,对于某些时间要求非常严格的算法,Miracl也针对流行的Intel 80x86系列处理器提供了汇编语言实现。Miracl还提供了C++接口。 Miracl的所有源代码都包含于此。 第二章 安装 通过Microsft C/C++、Borlands Turbo C/C++、Watcom C以及DJGPP GNU编译器,MIRACL库已经成功安装到VAX11/780,各种UNIX工作站(Sun,SPARC、Next以及IBM RS/6000),IBM PC等机器上。还有ARM机器和Apple Macintosh。最近MIRACL也已经在Itanium和AMD 64位处理器上运行过了。 MIRACL分发包中包含了库中所有模块的完整源代码以及各自的示例程序。大部分是用标准的ANSI C编写的,可用任意规范的ANSI C编译器进行编译。一些模块包含大量的内联汇编代码,用于优化在某些特定编译器/处理器组合上的性能。通过条件编译,它们可以透明地调用,并且不会影响到其它编译器。批处理文件xxdoit.xxx包含在多种编译器上生成库文件和示例程序的命令。请打开并检查与你的配置相关的文件。 分发包包含了部分流行的编译器的预编译库文件:ready-to-run版本,它们可立即使用,为了节省空间,其中并没有包含所有的示例程序。 要生成一个库,必须使用编译器,文本编译器,链接器,库管理实用程序(librarian utility)以及汇编器(assembler,可选),请阅读编译器文档以获取更多细节。mrmuldv.any文件包含了时间关键(time-critical)的例程muldiv,muldvd,muldvd2和muldvm的汇编语言版本,它们可能需要根据配置作一些改动。当编译器不支持一个可用于保存两个单字长整数乘积的双倍长度类型时,这些模块尤为必要。许多现代编译器支持这一点(通常称为long long),在这种情况下,一般使用这些模块的C版本mrmuldv.ccc(直接拷贝到mrmuldv.c)就足够了。更多细节请仔细阅读手册以及mrmuldv.any的注释。 必须指定硬件/编译器规格文件mirdef.h。为了协助此过程,提供了此头文件的五个示例:mirdef.h16(16位处理器)、mirdef.h32(32位处理器)、mirdef.haf(工作在16位模式的32位处理器)以及mirdef.hpc(工作在16位环境中的伪32位)。 请注意完整的32位版本是最快的,但只是在使用一个32位处理器及一个32位编译器的时候如此。在Unix环境中使用gcc和g++时尽量用mirdef.gcc。 config.c用于协助配置过程。在目标处理器上编译和运行它,它会自动生成mirdef.h文件,并给出常规的配置建议。它还生成一个miracl.lst文件,其中包含建立相关库时应包含的MIRACL模块列表。强烈建议尝试此程序。编译它时请务必关掉所有编译器优化选项。 mirdef.h文件包含一些可选定义:当无法满足muldvd,muldvd2和muldvm在mrmuldv.c中的版本时,定义MR NOFULLWIDTH;若要在程序中使用flash变量,定义MR_FLASH;MR_LITTLE_ENDIAN 与 MR_BIG_ENDIAN,必须定义其中之一,config.c会自动决定哪一个适用于你的处理器。 省略MR_FLASH时,big变量可以更大,并且生成的库也更小。定义MR_STRIPPED_DOWN将忽略错误消息,可以进一步节约生成的代码空间,请小心使用! 如果不想要任何汇编器,请定义MR_NOASM。这将以内联的方式生成四个时间关键例程的标准C代码。这稍快一些——节省了函数调用的开销——这也是最优编译器得考虑的一点(原文:and also gives an optimising compiler something to chew on)。 使用Microsoft Visual C++时,msvisual.txt中提供了一些有用的建议。Li

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档