PDL :: Internals.

PDL :: Internals ist ein Perl-Modul, das eine Beschreibung einiger Aspekte der aktuellen Internalen enthält.
Jetzt downloaden

PDL :: Internals. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Tuomas J. Lukka
  • Website des Verlags:
  • http://search.cpan.org/~lukka/WeakRef-0.01/WeakRef.pm

PDL :: Internals. Stichworte


PDL :: Internals. Beschreibung

PDL :: Internals ist ein Perl-Modul, das eine Beschreibung einiger Aspekte der aktuellen Einbauten enthält. PDL :: Internals ist ein Perl-Modul, das eine Beschreibung einiger Aspekte der aktuellen Internalanlagen enthält.Introthis-Dokument wird verschiedene Aspekte der aktuellen Implementierung von PDL erklärt. Wenn Sie nur PDL für etwas verwenden möchten, müssen Sie dies definitiv nicht lesen. Selbst wenn Sie Ihre C-Routinen an PDL anlegen möchten oder neue PDL-Funktionen erstellen, müssen Sie diese Man-Seite nicht lesen (obwohl er informativ sein kann). Dieses Dokument ist in erster Linie für Personen gedacht, die daran interessiert sind, die Internalen von PDL zu debuggen oder zu ändern. Um dies zu lesen, ist ein gutes Verständnis der C-Sprache und Programmier- und Datenstrukturen im Allgemeinen sowie ein anderes Perl-Verständnis erforderlich. Wenn Sie dieses Dokument durchlaufen und alles verstehen und zeigen können, was jeder Teil dieses Dokuments auf sich in den PDL-Kernquellen bezieht und zusätzlich den Titel "PDL Guru" vergeben wird, erhalten Sie den Titel "PDL Guru" ( Natürlich ist die aktuelle Version dieses Dokuments so unvollständig, dass dies neben diesen Notizen nicht möglich ist. jach.hawaii.edu). Dies kann gut passieren Alternativ kann es eine Hash-Referenz mit dem PDL-Feld sein, das die Skalarreferenz enthält (dadurch, dass die Überlastung von PIDDles EASY, siehe PDL :: Objekte). Sie können auf der Perl-Ebene leicht herausfinden, mit welcher Art von Piddle, mit dem Sie sich befassen. Der folgenden Beispielcode zeigt, wie Sie es tun # ist es ein Skalarref oder ein Hash-Ref? if (Universal :: ISA ($ PDL, "Hash")) {Die "nicht ein gültiges PDL", es sei denn, es gibt $ PDL -> {PDL} Universal :: ISA ($ PDL -> {PDL}, 'PDL'); drucken "Dies ist eine Hash-Referenz", ", das PDL-Feld enthält den SCALAR-REFN"; } else {drucken "Dies ist ein Skalar, der nach $$ PDL in der MEMORENN adressiert ist." } Die Skalarreferenz zeigt auf die numerische Adresse einer C-Struktur des Typs PDL, die in PDL.H definiert ist. Die Abbildung zwischen dem Objekt auf der Perl-Ebene und der C-Struktur, die die tatsächlichen Daten und das strukturelle Daten enthält, das eine PIDLE-Datei ausmacht, erfolgt durch die PDL-TypeMAP. Die in der PDL-TypeMAP verwendeten Funktionen werden oben in der Datei pdlcore.h ziemlich definiert. Wie sieht die Struktur aus: Struktur PDL {unsignierter langer Magicno; / * Speichert immer PDL_Magicno als Sanity-Check * / / * Dies ist zunächst, so dass die meisten Zeigerzugriffe auf einen falschen Typ zu einem falschen Typ erwischt werden. * / Int staat; / * Was ist in diesem PDL * / pdl_trans * trans; / * Undurchsichtiger Zeiger auf Transformationsteilung von Eltern * / PDL_Vaffin * Vafftrans; void * sv; / * (optionaler) Zeiger zurück zum Original SV. Prüfen Sie immer auf Nicht-Null vor der Verwendung. Wir können nicht auf diesem einsetzen, oder wir würden niemals zerstört werden * / void * datasv; / * Zeiger auf SV-enthaltene Daten. Refcnt Inced * / void * Daten; / * Null: Für diesen ein * / int-nvals zugewiesene Daten; / * Wie viele Werte zugeteilt * / int Datentyp; Pdl_long * dims; / * Anordnung der Datenabmessungen * / pdl_long * dimincs; / * Array von Daten in Inkrementen * / kurze NDIMs; / * Anzahl der Datenabmessungen * / unsigniert char * ThreadIDs; / * Startindex des Thread-Index-Satzes N * / UNTERNEHLER CHAR NTHREADIDS; PDL * Vorläufer; / * Ich bin in einer mutierten Familie. make_physical_now muss mich in die neue Generation kopieren. * / pdl * future_me; / * Ich bin das "dann" PDL, und das ist meine "jetzt" (oder mehr moderne Version, ashtway * / pdl_children-Kinder; kurze living_for; / * perl-Seite nicht referenziert; löschen Sie mich, wenn * / pdl_long def_dims ; / * Vorrazierter Raum für Effizienz * / pdl_long def_diminincs ; / * Vorabragter Raum für Effizienz * / unsigniert char def_threadids ; struct pdl_magic * magic; void * HDRSV; / * "Header", einstellbar von außen * /} Dies ist eine ziemlich große Struktur, um nur ein paar Daten zu speichern - was los ist? Anforderungen: · Perl.


PDL :: Internals. Zugehörige Software