chaoge
发表于 2008-9-5 22:33:57
EBGNZ模块发布了,支持无限比特的有符号大整数:victory:
老地方:www.bgnvendor.com
chaoge
发表于 2009-7-19 16:22:52
61# chaoge
大家好!最近给软件包做了一个解释器,能支持循环,判断,函数调用,以及文件包含。Linux版本,目前只支持EBGNZ模块。还很简陋,bug不少,见笑了!
把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
来玩玩吧,哈!
chaoge
发表于 2009-7-27 21:36:56
62# chaoge
哈,解释器现在可以支持浮点数和短符号整数了。有机会再发布。
无心人
发表于 2009-7-28 08:33:44
哦,楼主很辛苦啊
赞一下
争取超过PARI/GP
chaoge
发表于 2009-7-31 14:05:12
64# 无心人
升级脚本解释器到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脚本示例供参考。
chaoge
发表于 2009-8-9 22:22:19
65# chaoge
升级解释器到v0.9.7。主要是增加了内存回收,降低用户内存资源消耗。另外,增加了对函数递归的支持。比如test.018
int fibonacci(int n)
{
if( n < 2 )
{
return 1;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
int n;
for(n = 0; n < 20; n ++ )
{
print(n);
print("var_e = ", fibonacci(n));
}
题外话: 这是迄今为止次艰难的一个包,虽然还不是很满意,但我的目标已达到。内存的回收如此之难,在于对解释器技术的理解,所分配内存作用域的界定,以及内存的追踪上。做完内存的回收,大概能理解一二为什么第一个编译器Fortran耗费了十七年。虽然今天我们已经站在巨人的肩膀上,但是还是耗费了一个多礼拜才搞定这么一个看似简单的问题。对解释器、编译器技术感兴趣的朋友们可要谨慎研究细节。
chaoge
发表于 2009-9-5 22:23:56
bgn_linux_v1.5.6相关说明:
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。本版本提供对MATRIX(R),即R上矩阵的支持。
19。本版本对各子软件包的支持已完全模块化。
20。本版本提供了对ECC的用户自定义随机数生成器和哈希散列接口的支持。
21。本版本提供了对内存的弹性管理以及内存呼吸功能。
22。本版本提供了对整个软件包的X-ray功能,提高了软件包的稳定性,容错性,错误重现和错误定位能力。
23。本版本提供了二进制,十进制和十六进制与大整数之间的相互转换。
注:
1. MATRIX(R)是指实数域上的矩阵,由于目前用double类型表示实数,因此只是在零点附近的局部实数区域。由于计算机对实数计算存在一定的精度误差,因此有时候结果存在一定的误差。
2. 本次提供的是静态库文件哟~~~,玩玩吧!
chaoge
发表于 2009-11-16 21:58:38
高精度浮点计算模块EBGNR已基本成型。有需要的招呼一声,我来发布。目前支持的运算功能有加减乘除逆,平方,开方,对数ln(x),指数(e^x, x^y)。其它运算功能有功夫再扩展。
email: bgnvendor@gmail.com
pphu
发表于 2011-12-14 12:33:03
开源就支持一个