CnD

软件截图:
CnD
软件详细信息:
版本: 2012.1
上传日期: 14 Apr 15
许可: 免费
人气: 11

Rating: nan/5 (Total Votes: 0)

来电显示是一个Python源到源转换,使得使用n维数组在C中更愉快 它会变成这样的代码:
无效SGEMM(浮点*一,浮动* B,浮* C中,int n)的
{
 尺寸“FORTRAN”一[N,N];
 尺寸“FORTRAN”B [N,N];
 维C [N,N];
&NBSP;的for(int i = 1; I <= N; ++ I)
&NBSP;对于(INT J = 1;Ĵ<= N; ++ j)条
&NBSP; {
&NBSP;浮法TMP = 0;
&NBSP;对于(INT K = 1; k <= N; ++ K)
&NBSP; TMP + = A [I,K] * B [K,J]。
&NBSP; C [I-1,J-1] = TMP;
&NBSP;}
}
到这一点:
无效SGEMM(浮点*一,浮动* B,浮* C中,int n)的
{
&NBSP;的for(int i = 1; I <= N; ++ I)
&NBSP;对于(INT J = 1;Ĵ<= N; ++ j)条
&NBSP; {
&NBSP;浮法TMP = 0;
&NBSP;对于(INT K = 1; k <= N; ++ K)
&NBSP; TMP + =一[((K - 1)*((N - 1)+ 1))+(I - 1)] * B [((J - 1)*((N - 1)+ 1)的)+(K - 1)];
&NBSP; C [((I - 1)* N)+(J - 1)] = TMP;
&NBSP;}
}
您还可以看看一个更全面的例子,显示了一些额外的花俏。
一个维度声明的唯一作用是修改阵列(IDX)下标运算符的解释。维度声明遵守常规的C作用域规则。
我还想指出,CND是一个强大的,解析器为基础的翻译,而不是片状文本替换工具。它理解所有的C99,以及许多GNU扩展。
在一个维度声明中的每个轴的规格有以下形式:
开始:结束:大步:leading_dimension
开始可被省略。端和步幅也可以省略,但是,如果要被指定之后他们的条目,其尾随冒号必须留在原地。例如,轴规格:5只是指定5.一个箭步跨距只是作为对指数乘数。没有合理性检查任何完成的维度声明。你可能搬起石头砸自己的脚如你所愿。
如果布局被给定为“c”或根本不给出下面的事情,则:
- 阵列是奠定在行优先顺序排列。
- 最终索引取为独占的,如果指定。
- 开始的索引默认为0。
如果布局是作为“FORTRAN”,下面的事情是真实的:
- 阵列是奠定在列主顺序。
- 最终索引取为包容性,如果指定。
- 开始的索引默认为1。
中所含的维声明的知识(最多)可被编程reobtained由follwing功能:
- rankof(一)
- nitemsof(一)
- lboundof(A,轴)
- uboundof(一,轴)(返回用户指定的上限)
- puboundof(A,轴)(返回指数刚刚过去轴的末端)
- ldimof(A,轴)
- strideof(A,轴)
在每一种情况下,轴必须是一个常数整数(不是常量表达式,一个普通的整数)。
安装/使用
您可能获得CND通过下载压缩包,从包索引,或者从github上:
&NBSP;混帐混帐克隆://github.com/inducer/cnd.git
&NBSP; CD CND
 git的子模块初始化
&NBSP;混帐子模块更新
要使用来电显示,只需添加分布-DIR / bin添加到您的PATH。
上手,简单(从CND根内)运行:
&NBSP; CD例子
&NBSP; ../斌/ cndcc的gcc -std = C99 basic.c
&NBSP; ./ a.out的
如果您想了解更多的细粒度控制,在翻译过程中,来电显示的命令刚刚暴露源到源转换。需要注意的是CND预计预处理源。您可以通过选项-E有来电显示在你的源代码在运行预处理器。运行:
&NBSP;来电显示-h
得到命令行界面上充分的帮助。您可以将CND_CPP环境变量设置为你希望使用的预处理。

什么是此版本中的新

  • 从语法的变化[I,J]到[I,J] 。

  • 对于现实生活中的标题
  • 还有更多的解析器的支持。

要求

  • 在Python中

显影剂的其他软件 Andreas Kloeckner

PuDB
PuDB

20 Feb 15

PyOpenCL
PyOpenCL

28 Sep 15

意见 CnD

评论没有发现
添加评论
打开图片!