CnD

Screenshot Software:
CnD
Mga detalye ng Software:
Bersyon: 2012.1
I-upload ang petsa: 14 Apr 15
Nag-develop: Andreas Kloeckner
Lisensya: Libre
Katanyagan: 11

Rating: nan/5 (Total Votes: 0)

CnD ay isang tagasalin Python pinagmulan-to-source na gumagawa ng paggamit n-dimensional array sa C nang higit pa maayang & nbsp; Ito ay i code na ito.:
walang bisa sgemm (float * ng, magpalutang b *, float * c, int n)
{
& Nbsp; dimensyon "fortran" isang [n, n];
& Nbsp; dimensyon "fortran" b [n, n];
& Nbsp; dimensyon c [n, n];
& Nbsp; para sa (int i = 1; i <= n; ++ i)
& Nbsp; para sa (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; para sa (int k = 1; k <= n; ++ k)
& Nbsp; tmp + = isang [i, k] * b [k, j];
& Nbsp; c [i-1, j-1] = tmp;
& Nbsp;}
}
sa ito:
walang bisa sgemm (float * ng, magpalutang b *, float * c, int n)
{
& Nbsp; para sa (int i = 1; i <= n; ++ i)
& Nbsp; para sa (int j = 1; j <= n; ++ j)
& Nbsp; {
& Nbsp; float tmp = 0;
& Nbsp; para sa (int k = 1; k <= n; ++ k)
& Nbsp; tmp + = isang [((k - 1) * ((n - 1) + 1)) + (i - 1)] * b [((j - 1) * ((n - 1) + 1) ) + (k - 1)];
& Nbsp; c [((i - 1) * n) + (j - 1)] = tmp;
& Nbsp;}
}
Maaari mo ring tingnan ang isang mas malawak halimbawa na nagpapakita ng ilang dagdag na bells at mga pito.
Ang tanging epekto ng isang deklarasyon na dimensyon ay upang baguhin ang pagpapakahulugan ng array (idx) subscript operator. sukat ng mga pagpapahayag na sundin ng mga regular na panuntunan C scoping.
Gusto ko rin na tandaan na ang CnD ay isang matatag, pang-parse-based tagasalin, hindi isang patumpik-tumpik na teksto kapalit na tool. Naiintindihan nito ang lahat ng C99, kasama ang maraming GNU extension.
Ang bawat detalye ng axis sa isang deklarasyon dimensyon ay ang sumusunod na form:
magsimula: pagtatapos: mahabang hakbang: leading_dimension
pagsisimula ay maaaring nakaligtaan. pagtatapos at lumakad nang mahahaba ang hakbang ay maaari ring inalis, ngunit kung entry pagkatapos ang mga ito ay dapat na tinukoy, ang kanilang mga kasunod na colon ay dapat manatili sa lugar. Halimbawa, ang detalye ng axis: 5 tinutukoy lamang ng isang mahabang hakbang ng mahabang hakbang 5. Ang gumaganap lamang bilang isang multiplier sa index. Walang pagkatotoo kung ano pa man pagsuri tapos na sa pagpapahayag dimensyon. Maaari mong kunan ng larawan ang iyong sarili sa paanan anumang paraan na nais mo.
Kung ang layout ay ibinigay bilang "c" o hindi ibinibigay sa lahat, ang mga sumusunod na bagay ay totoo:
- Ang array ay inilatag nang sunud-sunod sa mga pangunahing-order.
- Ang katapusan ng index ay ituturing na eksklusibo, kung tinukoy.
- Ang simula index ng mga default sa 0.
Kung ang layout ay ibinigay bilang "fortran", ang mga sumusunod na bagay ay totoo:
- Ang array ay inilatag nang upang haligi-major.
- Ang katapusan ng index ay ituturing na inclusive, kung tinukoy.
- Ang simula index ang mga default upang 1.
(Karamihan) na nagbibigay-kaalaman na nilalaman ng pagpapahayag dimensyon ay maaaring reobtained sa programa sa pamamagitan ng sumusunod na pagpapaandar:
- Rankof (a)
- Nitemsof (a)
- Lboundof (a, axis)
- Uboundof (a, axis) (nagbalik ang upper bound na tinukoy ng gumagamit)
- Puboundof (a, axis) (ibinabalik ng index lamang nakaraang pagtatapos ng axis)
- Ldimof (a, axis)
- Strideof (a, axis)
Sa bawat kaso, axis ay dapat na isang pare-pareho ang integer (hindi isang pare-pareho ang expression, isang simpleng integer).
Pag-install / Paggamit
Maaari kang makakuha CnD sa pamamagitan ng pag-download ng tarball mula sa index ng pakete, o mula sa github:
& Nbsp; Git clone ng Git: //github.com/inducer/cnd.git
& Nbsp; cd cnd
 Git submodule init
& Nbsp; i-update submodule Git
Upang gamitin ang CnD, idagdag lamang pamamahagi-dir / bin sa iyong PATH.
Upang makapagsimula, patakbuhin lamang (mula sa loob ng cnd ​​ugat):
& Nbsp; cd halimbawa
& Nbsp; ../ bin / cndcc GCC -std = c99 basic.c
& Nbsp; ./ a.out
Kung nais mo ng higit pang pinino kontrol sa proseso ng pagsasalin, ang command cnd naglalantad lamang ang pagsasalin pinagmulan-ng-pinagmulan. Tandaan inaasahan na cnd preprocessed pinagmulan. Maaari mong ipasa ang opsyon -E na magkaroon cnd patakbuhin ang preprocessor sa iyong mapagkukunan para sa iyo. Patakbuhin:
& Nbsp; cnd -h
upang makakuha ng ganap na tulong sa interface command line. Maaari mong itakda ang CND_CPP environment variable sa preprocessor nais mong gamitin.

Ano ang bagong sa paglabas:

  • Syntax pagbabago mula sa isang [i; j] sa isang [i, j] .
  • Hindi pa rin higit pang-parse ng suporta para sa mga header ng tunay na buhay.

Mga Kinakailangan :

  • Python

Iba pang mga software developer ng Andreas Kloeckner

PuDB
PuDB

20 Feb 15

PyOpenCL
PyOpenCL

28 Sep 15

Mga komento sa CnD

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!