CnD

Screenshot Λογισμικό:
CnD
Στοιχεία Λογισμικού:
Εκδοχή: 2012.1
Ανεβάστε ημερομηνία: 14 Apr 15
Προγραμματιστής: Andreas Kloeckner
Άδεια: Δωρεάν
Δημοτικότητα: 75

Rating: nan/5 (Total Votes: 0)

CND είναι μια πηγή Python-to-πηγή μεταφραστή που κάνει τη χρήση Ν-διαστάσεων πίνακες σε C πιο ευχάριστη & nbsp? Θα μετατρέψει αυτόν τον κώδικα.:
άκυρη sgemm (float * a, float b *, float * c, int n)
{
& Nbsp? Διάσταση "FORTRAN" ένας [n, n]?
& Nbsp? Διάσταση "FORTRAN" b [n, n]?
& Nbsp? Διάσταση c [n, n]?
& Nbsp? For (int i = 1? I <= n? ++ I)
& Nbsp? Για (int j = 1? Ι <= n? ++ Ι)
& Nbsp? {
& Nbsp? Πλωτήρα tmp = 0?
& Nbsp? Για (int k = 1? K <= n? ++ Ια)
& Nbsp? ΜΦΘ + = A [i, k] * B [k, j]?
& Nbsp? C [i-1, j-1] = tmp?
& Nbsp?}
}
σε αυτό:
άκυρη sgemm (float * a, float b *, float * c, int n)
{
& Nbsp? For (int i = 1? I <= n? ++ I)
& Nbsp? Για (int j = 1? Ι <= n? ++ Ι)
& Nbsp? {
& Nbsp? Πλωτήρα tmp = 0?
& Nbsp? Για (int k = 1? K <= n? ++ Ια)
& Nbsp? Tmp + = α [((k - 1) * ((n - 1) + 1)) + (i - 1)] * b [((j - 1) * ((n - 1) + 1) ) + (k - 1)]?
& Nbsp? Γ [((i - 1) n *) + (j - 1)] = tmp?
& Nbsp?}
}
Μπορείτε επίσης να ρίξετε μια ματιά σε μια πιο ολοκληρωμένη παράδειγμα που δείχνει μερικά επιπλέον καμπάνες και σφυρίχτρες.
Το μόνο αποτέλεσμα της δήλωσης διάσταση είναι να τροποποιήσουν την ερμηνεία του διαχειριστή του δείκτη πίνακας (idx). δηλώσεις διάσταση υπακούουν τακτική τους κανόνες εμβέλειας Γ.
Θα ήθελα, επίσης, να σημειωθεί ότι η CND είναι ένα ισχυρό, αναλυτή-based μεταφραστής, δεν λεπιδοειδής εργαλείο αντικατάστασης κειμένου. Κατανοεί το σύνολο των C99, καθώς και πολλές επεκτάσεις GNU.
Κάθε προδιαγραφή άξονα σε μια δήλωση διάσταση έχει την ακόλουθη μορφή:
start: τέλος: διασκελισμό: leading_dimension
αρχή μπορεί να παραλείπεται. τέλος και διασκελισμό μπορούν επίσης να παραλειφθούν, αλλά αν καταχωρήσεων μετά από αυτούς είναι να προσδιοριστούν, άνω και κάτω τελείες πίσω τους πρέπει να παραμείνει στη θέση του. Για παράδειγμα, η προδιαγραφή άξονας: 5 καθορίζει απλώς μια δρασκελιά από 5. Η διασκελισμό απλά λειτουργεί ως πολλαπλασιαστής στο δείκτη. Χωρίς έλεγχο απολύτως αληθοφάνειας γίνεται στη δήλωση διάσταση. Μπορείτε να πυροβολήσει τον εαυτό σας στο πόδι με όποιον τρόπο θέλετε.
Εάν η διάταξη δίδεται ως "c" ή δεν δίνονται καθόλου οι ακόλουθες πράγματα είναι αλήθεια:
- Η σειρά που αναφέρεται στη γραμμή-μεγάλη παραγγελία.
- Το τέλος του δείκτη λαμβάνονται να είναι αποκλειστική, εφόσον αυτά προσδιορίζονται.
- Οι προεπιλογές δείκτης εκκίνησης στο 0.
Αν η διάταξη δίδεται ως «FORTRAN", οι ακόλουθες πράγματα είναι αλήθεια:
- Η σειρά που αναφέρονται στη στήλη-μεγάλη παραγγελία.
- Το τέλος του δείκτη λαμβάνονται να είναι χωρίς αποκλεισμούς, εφόσον αυτά προσδιορίζονται.
- Οι προεπιλογές του δείκτη αρχή μέχρι 1.
(Περισσότερα) από τις γνώσεις που περιλαμβάνονται στη δήλωση διάσταση μπορεί να reobtained μέσω προγραμματισμού, ακολουθώντας τις λειτουργίες:
- Rankof (α)
- Nitemsof (α)
- Lboundof (α, άξονας)
- Uboundof (α, άξονας) (επιστρέφει το άνω όριο καθορίζεται από το χρήστη)
- Puboundof (α, άξονας) (επιστρέφει το δείκτη ακριβώς μετά το τέλος του άξονα)
- Ldimof (α, άξονας)
- Strideof (α, άξονας)
Σε κάθε περίπτωση, ο άξονας θα πρέπει να είναι ένας σταθερός ακέραιος αριθμός (όχι μια σταθερή έκφραση, ένα απλό ακέραιος αριθμός).
Εγκατάσταση / Χρήση
Μπορείτε να αποκτήσετε CND κατεβάζοντας το συμπιεσμένο αρχείο από το δείκτη συσκευασίας, ή από το GitHub:
& Nbsp? Git κλώνος GIT: //github.com/inducer/cnd.git
& Nbsp? CD CND
 git υποενότητα init
& Nbsp? GIT ενημέρωση υποενότητα
Για να χρησιμοποιήσετε CND, απλά προσθέστε τη διανομή-dir / bin στο PATH σας.
Για να ξεκινήσετε, απλά τρέχει (μέσα από τη ρίζα CND):
& Nbsp? Παραδείγματα cd
& Nbsp? ../ Bin / cndcc GCC -std = C99 basic.c
& Nbsp? ./ A.out
Αν θα θέλατε περισσότερες λεπτομερή έλεγχο πάνω στη διαδικασία της μετάφρασης, η εντολή CND εκθέτει μόνο τη μετάφραση πηγή-to-πηγή. Σημειώστε ότι CND αναμένει προεπεξεργασθεί πηγή. Μπορείτε να περάσετε την επιλογή -e να έχουν CND τρέξει το προεπεξεργαστή την πηγή σας για σας. Εκτέλεση:
& Nbsp? CND -h
να πάρετε την πλήρη βοήθεια σχετικά με τη γραμμή εντολών. Μπορείτε να ορίσετε τη μεταβλητή περιβάλλοντος CND_CPP στο προεπεξεργαστή που θέλετε να χρησιμοποιήσετε.

Τι είναι καινούργιο σε αυτήν την έκδοση:

  • Σύνταξη αλλαγή από ένα [i? Ι] σε [i, j] .
  • Ακόμα μεγαλύτερη υποστήριξη αναλυτή για κεφαλίδες πραγματικής ζωής.

Απαιτήσεις :

  • Python

Άλλο λογισμικό του προγραμματιστή Andreas Kloeckner

PuDB
PuDB

20 Feb 15

PyOpenCL
PyOpenCL

28 Sep 15

Σχόλια για CnD

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!