CnD

Software screenshot:
CnD
Software ətraflı:
Version: 2012.1
Tarixi Upload: 14 Apr 15
Geliştirici: Andreas Kloeckner
Lisenziya: Pulsuz
Məşhurluq: 11

Rating: nan/5 (Total Votes: 0)

.

CND C daha xoş & nbsp n-ölçülü Diziler istifadə edir ki, Python mənbə-to-mənbə tərcüməçi, bu kodu çevriləcək:
etibarsız sgemm (float * a, float * b, float * c, int n)
{
& Nbsp; ölçüsü "fortran" a [n, n];
& Nbsp; ölçüsü "fortran" b [n, n];
& Nbsp; ölçüsü c [n, n];
& Nbsp; üçün (i = n & Nbsp; üçün (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; üçün (int k = 1; k <= N, ++ k)
& Nbsp; tmp + = a [i, k] * b [k, j];
& Nbsp; [i-1, j-1] tmp = c;
& Nbsp;}
}
Bu daxil:
etibarsız sgemm (float * a, float * b, float * c, int n)
{
& Nbsp; üçün (i = n & Nbsp; üçün (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; üçün (int k = 1; k <= N, ++ k)
& Nbsp; tmp + = a [((k - 1) (* (n - 1) + 1)) + (i - 1)] * b [((j - 1) (* (n - 1) + 1) ) + (k - 1)];
& Nbsp; c [((i - 1) * n) + (j - 1)] tmp =;
& Nbsp;}
}
Siz həmçinin əlavə Bells və whistles bir neçə göstərir daha əhatəli misal nəzər bilər.
bir ölçüsü elan yalnız təsiri array (idx) subscript operator şərh dəyişdirmək üçün. ölçüsü bəyanatlar müntəzəm C həcminin müəyyənləşdirilməsi qaydalarına riayət.
Mən də CND sağlam, parser-based tərcüməçi deyil, laylı mətn əvəz vasitədir ki, qeyd etmək istərdim. Bu C99, plus bir çox GNU uzantıları bütün anlayır.
Ölçüsü bəyannaməsində hər bir ox dəqiqləşdirilməsi aşağıdakı formadadır:
başlamaq: sonu: adım: leading_dimension
Başlanğıc əks oluna bilər. sonu və adım da əks oluna bilər, lakin onlardan sonra entries müəyyən edilir, onların arxada colons yerində qalmalıdır. Məsələn, ox dəqiqləşdirilməsi: 5 sadəcə adım sadəcə index bir sürət kimi çıxış 5 bir adım göstərir. Heç yoxlanılması No plausibility ölçüsü elan edilir. Siz ayaq istədiyiniz hər hansı bir şəkildə özünüzü vurmaq bilər.
Layout bütün verilmiş "c" və ya kimi verilsə, aşağıdakılar həqiqət var:
- Array sətir-sətir üçün tərtib olunur.
- Müəyyən əgər son index, xüsusi olması qəbul edilir.
- 0 start index yetirilməməsi.
Layout "Fortran" verilir, aşağıdakı şeyi doğru:
- Array sütun-mayor qaydada tərtib olunur.
- Müəyyən əgər son index, daxil olmaq üçün qəbul edilir.
- 1 start index yetirilməməsi.
Ölçüsü bəyannaməsində olan bilik (Ən) follwing funksiyaları ilə proqram reobtained bilər:
- Rankof (a)
- Nitemsof (a)
- Lboundof (a, ox)
- Uboundof (a, ox) (istifadəçi müəyyən yuxarı bound qaytarır)
- Puboundof (a, ox) (yalnız ox sonunda keçmiş indeksi qaytarır)
- Ldimof (a, ox)
- Strideof (a, ox)
Hər bir halda, ox sabit tam (bir sabit ifadə, düz tam) olmalıdır.
Quraşdırma / istifadə
Siz paketi indeksi, və ya github olan tarball indirerek CND əldə edə bilərlər:
& Nbsp; git klon git: //github.com/inducer/cnd.git
& Nbsp; cd CND
 git submodulunun init
& Nbsp; git submodulunun yeniləmə
CND istifadə etmək üçün, sadəcə PATH paylama-dir / bin əlavə edin.
Başlamaq üçün, sadəcə (CND kök ərzində) çalıştırın:
& Nbsp; cd nümunələri
& Nbsp; ../ bin / cndcc gcc -std = C99 basic.c
& Nbsp; ./ a.out
Siz tərcümə prosesi daha çox xırdadənəli nəzarət istəyirsinizsə, CND komanda yalnız mənbə-to-mənbə tərcümə ifşa. Ki, CND preprocessed mənbə gözləyir unutmayın. Siz CND var sizin üçün mənbə preprocessor run seçimi E keçə bilər. Run:
& Nbsp; CND h
command line interface tam yardım almaq üçün. Siz istifadə etmək istədiyiniz preprocessor üçün CND_CPP mühit dəyişən müəyyən edə bilər.

Bu azad Yeni nədir:

  • bir olan Sintaksis dəyişdirilməsi; a [i j] [i, j] .

  • Real həyat başlıqlarını üçün
  • Hələ daha parser dəstək.

tələblər

  • Python

Geliştirici digər proqram Andreas Kloeckner

PuDB
PuDB

20 Feb 15

PyOpenCL
PyOpenCL

28 Sep 15

Şərh CnD

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!