CnD

軟件截圖:
CnD
軟件詳細信息:
版本: 2012.1
上傳日期: 14 Apr 15
許可: 免費
人氣: 75

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

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

意見 CnD

評論沒有發現
添加評論
打開圖片!