CnD

Screenshot Software:
CnD
Detalii soft:
Versiune: 2012.1
Incarca data: 14 Apr 15
Producător: Andreas Kloeckner
Licenţă: Gratuit
Popularitate: 11

Rating: nan/5 (Total Votes: 0)

CND este o Python traducător sursă-a-source care face utilizând baterii n-dimensionale în C mai plăcut & nbsp; Se va transforma acest cod.:
sgemm void (float * o, float * b, float * c, int n)
{
& Nbsp; dimensiune "Fortran" o [n, n];
& Nbsp; dimensiune "Fortran" b [n, n];
& Nbsp; dimensiune c [n, n];
& Nbsp; pentru (int i = 1; i <= n; ++ i)
& Nbsp; pentru (int j = 1; j <= n j ++)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; pentru (int k = 1; k <= n; ++ k)
& Nbsp; tmp + = a [i, k] * b [k, j];
& Nbsp; c [i-1, j-1] = tmp;
& Nbsp;}
}
în acest:
sgemm void (float * o, float * b, float * c, int n)
{
& Nbsp; pentru (int i = 1; i <= n; ++ i)
& Nbsp; pentru (int j = 1; j <= n j ++)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; pentru (int k = 1; k <= n; ++ k)
& Nbsp; tmp + = un [((k - 1) * ((n - 1) + 1)) + (i - 1)] * b [((j - 1) * ((n - 1) + 1) ) + (k - 1)];
& Nbsp; c [((i - 1) * n) + (j - 1)] = tmp;
& Nbsp;}
}
Puteți lua, de asemenea, o privire la un exemplu mai cuprinzător, care prezinta cateva clopote suplimentare și fluierele.
Singurul efect al unei declarații dimensiune este de a modifica interpretarea operatorului indice matrice (idx). Declarații dimensiune asculta regulate reguli definire C.
Aș dori, de asemenea, să se constate că CND este o, pe baza de parser translator robust, nu un instrument de schimb de text fulg. Acesta înțelege toate C99, plus multe extensii GNU.
Fiecare specificație axă într-o declarație dimensiune are urmatoarea forma:
începe: sfârșit: pas: leading_dimension
pornire poate fi omisă. scop și pas poate fi, de asemenea, omise, dar în cazul în care intrările de la ele trebuie să fie specificate, doua puncte lor rămase în urmă trebuie să rămână în vigoare. De exemplu, specificația axa: 5 simpla specifică un pas de 5. pasul acționează pur și simplu ca un multiplicator asupra indicelui. Nu verificarea orice plauzibilitate se face pe declarația dimensiune. Puteti te trage in picior orice mod doriți.
În cazul în care aspectul este dat ca "c" sau nu dat deloc, următoarele lucruri sunt adevărate:
- Matrice este stabilită în scopul de-rând majore.
- Indicele final este considerată a fi exclusive, dacă este specificat.
- Indicele de start implicit la 0.
În cazul în care aspectul este dat ca "Fortran", următoarele lucruri sunt adevărate:
- Matrice este stabilită în scopul de-coloană majore.
- Indicele final este considerată a fi inclusiv, dacă este specificat.
- Indicele de start implicit la 1.
(Cea mai mare) a cunoștințelor cuprinse în declarația de dimensiune poate fi reobtained programatic de funcțiile follwing:
- Rankof (a)
- Nitemsof (a)
- Lboundof (a, axă)
- Uboundof (a, axă) (returnează specificate de utilizator marginea superioară)
- Puboundof (a, axă) (returnează indicele doar dribleze pe la sfârșitul lui axei)
- Ldimof (a, axă)
- Strideof (a, axă)
In fiecare caz, axă trebuie să fie un număr întreg constant (nu o expresie constantă, un întreg simplu).
Instalare / Utilizare
Poți obține CND prin descărcarea arhiva din indicele ambalaj, sau de la github:
& Nbsp; git clone git: //github.com/inducer/cnd.git
& Nbsp; cd CND
 git init submodule
& Nbsp; git modificare submodule
Pentru a utiliza CND, pur și simplu adăugați distributie-dir / bin pentru PATH.
Pentru a începe, pur și simplu rulați (din cadrul rădăcina CND):
& nbsp; exemple cd
& Nbsp; ../ bin / cndcc gcc -std = c99 basic.c
& Nbsp; ./ a.out
Dacă doriți un control mai fin asupra procesului de traducere, comanda CND expune doar traducerea sursă-to-source. Rețineți că CND așteaptă sursă preprocesată. Veti putea trece -E opțiune pentru a avea CND rula preprocesorul de sursa pentru tine. Rulați:
& Nbsp; CND -h
pentru a obține ajutor deplin pe interfață linie de comandă. Puteți seta variabila de mediu CND_CPP la preprocesorul doriți să utilizați.

Ce este nou în această versiune:

  • Sintaxă schimbare de la o [i, j] pentru un [i, j] .
  • Still mai mult sprijin parser de antete din viața reală.

Cerințe :

  • Python

Alte software-uri de dezvoltator Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

Comentarii la CnD

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!