- 注册时间
- 2010-7-23
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 851
- 在线时间
- 小时
|
楼主 |
发表于 2010-10-25 21:03:16
|
显示全部楼层
要不大家练练手?
两个例子:
1、在1#的例子:- //用C++代码描述为:
- s=0.0;
- for(x=0.0;x<=1.0;x=x+0.0011)
- {
- for(y=1.0;y<=2.0;y=y+0.0009)
- {
- s=s+cos(1-sin(1.2*x^(y/2)+cos(1-sin(1.2*y^(x/2)))));
- }
- }
复制代码 2、矩阵乘
matlab代码:- tic
- a = rand(1000,1000);
- b = rand(1000,1000);
- k = a*b;
- k(1:3,5:9)
- toc
复制代码 Forcal代码:- !using["math","sys"];
- (:a,b,k,t0)=
- t0=clock(),
- oo{
- a=rand[1000,1000], b=rand[1000,1000],
- k=a*b, //矩阵乘
- k[1,3:5,9].outm()
- },
- [clock()-t0]/1000;
复制代码 无论用什么方法,只要速度快就行。例子1要超过C/C++的速度,例子2超过matlab的速度似乎较难,先超过Forcal的速度即可(这也是C/C++的速度)。
如果各位不愿给出源代码,生成exe文件比较一下即可(只要知道大家可以得到更高的速度就心满意足了,呵呵)。
Forcal程序可下载OpenFC(绿色免安装,2M)演示:http://www.forcal.net/xiazai/forcal9/openfc32w.rar |
|