CnD

Software screenshot:
CnD
Podrobnosti Software:
Verze: 2012.1
Datum uploadu: 14 Apr 15
Licence: Volný
Popularita: 11

Rating: nan/5 (Total Votes: 0)

CND je Python source-to-source překladač, který umožňuje použití n-dimenzionální pole v C zpříjemnit & nbsp; to bude zase tento kód.:
void sgemm (float *, float * b, float * c, int n)
{
& Nbsp; rozměr "Fortran" [n, n];
& Nbsp; rozměr "Fortran" b [n, n];
& Nbsp; rozměr c [n, n];
& Nbsp; for (int i = 1; i <= n, i ++)
& Nbsp; for (int j = 1; j <= n ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; for (int k = 1; k <= n, ++ k)
& Nbsp; tmp + = [i, k] * b [k, j];
& Nbsp; c [i-1, j-1] = tmp;
& Nbsp;}
}
do toho:
void sgemm (float *, float * b, float * c, int n)
{
& Nbsp; for (int i = 1; i <= n, i ++)
& Nbsp; for (int j = 1; j <= n ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; for (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;}
}
Můžete se také podívat na více komplexní příklad, který ukazuje pár dalších zvonky a píšťalky.
Jediným účinkem prohlášení o rozměru je změnit výklad pole (idx) operátor index. prohlášení rozměr dodržujte pravidelný pravidla Stanovení rozsahu C.
Také bych chtěl poznamenat, že CND je robustní, parser na bázi překladatel, ne potrhlý ​​nahrazování textu nástroj. To chápe všechny C99, plus mnoho GNU rozšíření.
Každá specifikace osa v prohlášení o rozměru má následující podobu:
začátek: konec: krok: leading_dimension
Start může být vynechán. end a krok lze rovněž vynechat, ale pokud položky po nich bude upřesněno, musí jejich koncové dvojtečky zůstanou na svém místě. Například, specifikace osa: 5 potom určuje krok ve 5. krok potom působí jako multiplikátor na indexu. Kontrola vůbec žádné věrohodnost se provádí na prohlášení o rozměru. Můžete střílet do nohy nějaký způsob, jak se vám líbí.
Pokud je rozložení, stejně jako "C" nebo není uvedena vůbec, tyto věci jsou pravdivé:
- Pole je stanoven v řádku-dur objednávku.
- Konec index se považuje exkluzivní, pokud je specifikováno.
- Zahájení index výchozí 0.
Pokud je rozložení, stejně jako "Fortran", tyto věci jsou pravdivé:
- Pole je stanoven ve sloupci-dur objednávku.
- Konec index se považuje včetně, pokud je specifikováno.
- Zahájení index výchozí 1.
(Most) znalostí obsažených v prohlášení o rozměru může být reobtained programově follwing funkcemi:
- Rankof (a)
- Nitemsof (a)
- Lboundof (, osa)
- Uboundof (, osa) (vrací uživatelem zadané horní hranice)
- Puboundof (, osa) (vrátí index těsně za koncem osy)
- Ldimof (, osa)
- Strideof (, osa)
V každém případě, musí být osa konstantní celé číslo (není konstantní výraz, prostý celé číslo).
Instalace / Použití
Můžete získat CND stažením archiv z indexu balíčku, nebo z GitHub:
& Nbsp; git clone git: //github.com/inducer/cnd.git
& Nbsp; CD CND
 git submodul init
& Nbsp; git aktualizace submodul
Chcete-li použít CND, stačí přidat distribuce, dir / bin do PATH.
Chcete-li začít, stačí spustit (přímo z kořene CND):
& nbsp; příklady cd
& Nbsp; ../ bin / gcc cndcc -std = C99 basic.c
& Nbsp; ./ a.out
Pokud byste chtěli více přesnou kontrolu nad procesem překladu, příkaz CND vystavuje jen překlad source-to-zdroje. Všimněte si, že CND očekává předzpracovat zdroj. Můžete předat volbu -E mít CND spuštění preprocesoru na zdroj pro vás. Spustit:
& Nbsp; CND -h
získat plnou pomoc na rozhraní příkazového řádku. Můžete nastavit proměnnou CND_CPP prostředí k preprocesoru, který chcete použít.

Co je nového v této verzi:

  • Syntax změna z [i, j] až [i, j] .
  • Stále větší podporu parser pro real-život záhlaví.

Požadavky na :

  • Python

Ostatní software developer Andreas Kloeckner

PuDB
PuDB

20 Feb 15

PyOpenCL
PyOpenCL

28 Sep 15

Komentáře k CnD

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!