首页
社区
课程
招聘
[原创]大数软件包bgn_linux_v1.0.0
发表于: 2009-7-29 12:52 3814

[原创]大数软件包bgn_linux_v1.0.0

2009-7-29 12:52
3814
bgn_linux_v1.0.0相关说明:

1。 本版本是RELEASE版。如果在使用的过程中发现问题,请与我联系:bgnvendor@gmail.com。
2。 本版本基本调试开关为打开状态。
3。 本版本能处理的大整数比特长度不限。
4。 本版本适用于Linux平台。
5。 本版本提供对Z环,即整数环的支持
6。 本版本提供对Z_{2}环的支持
7。 本版本提供对Z_{n}环的支持
8。 本版本提供对F_{p}域的支持
09。本版本提供对F_{2^n}域的支持
10。本版本提供对EC(F_{2^n}),即F_{2^n}上的EC的支持。
11。本版本提供对EC(F_{p}),即F_{p}上的EC的支持。
12。本版本提供对ECC(F_{2^n}),即F_{2^n}上的ECC的支持。
13。本版本提供对ECC(F_{p}),即F_{p}上的ECC的支持。
14。本版本提供对POLY(Z_{2}),即Z_{2}上的多项式的支持。
15。本版本提供对POLY(Z_{n}),即Z_{n}上的多项式的支持。
16。本版本提供对POLY(F_{p}),即F_{p}上的多项式的支持。
17。本版本提供对POLY(F_{2^n}),即F_{2^n}上的多项式的支持。
18。本版本对各子软件包的支持已完全模块化。
19。本版本提供了对ECC的用户自定义随机数生成器和哈希散列接口的支持。
20。本版本提供了对内存的弹性管理以及内存呼吸功能。
21。本版本提供了对整个软件包的X-ray功能,提高了软件包的稳定性,容错性,错误重现和错误定位能力。
22。本版本提供了二进制,十进制和十六进制与大整数之间的相互转换
23。本版本提供了一个脚本解释器,用户可编写自己的脚本。目前脚本系统只支持Z环。

脚本系统目前支持循环,判断,函数调用,以及文件包含。我把test.009文件内容解释一下:
# test.009
use test.009.01
use test.009.02

bgn a;
bgn b;
bgn sum;
bgn pro;

#a = 987654321;
a = 1;

sum = sum_def(a, a + 10 );
pro = pro_def(a, a + 10 );

print("a = ", a);
print("sum = ", sum);
print("pro = ", pro);

print("pro1 = ", pro_def(100, 200));
print("sum1 = ", sum_def(100, 200));

解释:
1. 文件包含用use,目前只支持包含当前目录的文件,文件名中须含字符"."
2. 申明变量用bgn,或者my也成。变量遵循先申明后使用的原则
3. 注释行用#开头
4. 打印输出的语法为print(MSG, EXPR)。 MSG是一个字符串,EXPR是一个变量或者表达式。功能有限,不支持格式化输出。
    注意:表达式的值太大时,print会比较慢,呵呵,主要是转换函数没做过优化。

demo的用法: ./demo <file name>
比如:./demo test.009

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
升级脚本解释器到v0.9.6,支持短符号整数,浮点数计算,增加builtin函数支持浮点计算。

长符号整数类型名:bgn
短符号整数类型名:int
浮点数类型名:real

builtin函数列表:

real tan (real a);
real sinh(real a);
real cosh(real a);
real tanh(real a);
real ceil(real a);
real floor(real a);
real fabs(real a);
real log(real a);
real log10(real a);
real sqrt(real a);
real pow(real a, real b);
real fmod(real a, real b);
real atan2(real a, real b);

使用方式参考前贴。
内有一组test.xxx脚本示例供参考。
上传的附件:
2009-7-31 20:31
0
游客
登录 | 注册 方可回帖
返回
//