CnD

Szoftver screenshot:
CnD
Szoftver adatai:
Változat: 2012.1
Feltöltés dátuma: 14 Apr 15
Fejlesztő: Andreas Kloeckner
Engedély: Ingyenes
Népszerűség: 11

Rating: nan/5 (Total Votes: 0)

CND egy Python forrás-forrású fordító, ami n-dimenziós tömbök C kellemesebb. & Nbsp; Ez pedig a következő kódot:
void sgemm (float * a, float * b, float * c, int n)
{
& Nbsp; dimenzió "Fortran" a [n, n];
& Nbsp; dimenzió "Fortran" b [n, n];
& Nbsp; C méret [N, N];
& Nbsp; for (int i = 1; i <= n; ++ i)
& Nbsp; A (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float 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;}
}
ebbe:
void sgemm (float * a, float * b, float * c, int n)
{
& Nbsp; for (int i = 1; i <= n; ++ i)
& Nbsp; A (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; (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;}
}
Ön is vessünk egy pillantást egy átfogóbb például, amely azt mutatja, néhány extra harangok és a síp.
Az egyetlen hatása a dimenziót nyilatkozat módosítására értelmezése a tömb (idx) index operátor. dimenzió nyilatkozatok engedelmeskednek a rendszeres C felmérő szabályokat.
Én is szeretném megjegyezni, hogy CND egy robusztus, elemző-alapú fordító, nem pelyhes szövegcsere eszköz. Megérti az összes C99, és sok GNU kiterjesztéseket.
Minden tengely specifikáció dimenzióban nyilatkozatot a következő formában:
Kezdete: Vége: léptekkel: leading_dimension
kezdet lehet hagyni. end és előrehaladni mellőzhető akkor is, ha azonban bejegyzések utánuk pontosan meg kell határozni, hogy záró pontosvesszőt a helyén kell maradnia. Például a tengely specifikáció: 5 egyszerűen meghatározza a csúcsra az 5. lépés egyszerűen működik, mint egy szorzót az index. Nem hitelességi ellenőrzése egyáltalán történik a dimenziót nyilatkozatot. Lehet lőni magát a láb, ahogy neked tetszik.
Ha az elrendezés adják "c", vagy nem adjuk meg, a következő dolgok igazak:
- A tömb lefektetett sorban-major érdekében.
- A végén index-nek kell venni exkluzív, ha meg van adva.
- A kezdő index alapértéke 0.
Ha az elrendezés adják "Fortran", a következő dolgok igazak:
- A tömb lefektetett oszlopban-major érdekében.
- A végén index veszi fel inclusive, ha meg van adva.
- A kezdő index alapértelmezés szerint 1.
(Most) a tudás szereplő dimenziót is meg lehet reobtained programozott úton a következő rendelkezés lép funkciók:
- Rankof (a)
- Nitemsof (a)
- Lboundof (a, tengely)
- Uboundof (a, tengely) (visszaadja a felhasználó által megadott felső határa)
- Puboundof (a, tengely) (visszaadja az index csak múlt a végén tengely)
- Ldimof (a, tengely)
- Strideof (a, tengely)
Minden esetben, tengely kell, hogy legyen egy konstans egész szám (nem a konstans kifejezés, a sima egész szám).
Telepítés / Használat
Lehet szerezni CND letölti a tar a csomagot index, illetve a GitHub:
& Nbsp; git clone git: //github.com/inducer/cnd.git
& Nbsp; cd CND
 git részmodult init
& Nbsp; git részmodult frissítést
Ahhoz, hogy használni CND, egyszerűen csak hozzá elosztó-dir / bin a PATH.
A kezdéshez egyszerűen fuss (belülről CND root):
& Nbsp; cd példák
& Nbsp; ../ bin / cndcc gcc -std = C99 basic.c
& Nbsp; ./ a.out
Ha szeretné, sokkal finomabb felett a fordítási folyamat, a CND parancsot kiteszi csak a forrás és a forrás fordítását. Ne feledje, hogy CND számít előfeldoigozott forrása. Lehet adni a lehetőséget, -E, hogy CND futtatni a preprocessor be a forrást az Ön számára. Fuss:
& Nbsp; CND -h
hogy teljes segítséget a parancssori felület. Be lehet állítani a CND_CPP környezeti változót a preprocessor használni kívánt.

Mi az új ebben a kiadásban:

  • Syntax változás a [i, j] a [i, j] .
  • Még elemző támogatja a valós életben fejléceket.

követelmények :

  • Python

Más szoftver fejlesztő Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

Hozzászólások a CnD

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!