PDL::PP-Inlinep – Online in der Cloud

Dies ist der Befehl PDL::PP-Inlinep, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


Inline::Pdlpp – Schreiben Sie PDL-Unterroutinen inline mit PDL::PP

BESCHREIBUNG


„Inline::Pdlpp“ ist ein Modul, mit dem Sie PDL-Unterroutinen im PDL::PP-Stil schreiben können.
Der große Vorteil im Vergleich zum einfachen „PDL::PP“ besteht darin, dass Sie diese Definitionen inline schreiben können
in jedem alten Perl-Skript (ohne den normalen Aufwand, Makefiles zu erstellen, zu bauen usw.).
Seit Version 0.30 unterstützt das Inline-Modul mehrere Programmiersprachen und jede
Die Sprache verfügt über ein eigenes Supportmodul. In diesem Dokument wird die Verwendung von Inline mit beschrieben
PDL::PP (oder besser gesagt, es wird, sobald diese Dokumente vollständig sind „;)“.

Weitere Informationen zu Inline im Allgemeinen finden Sie unter Inline.

Einige Beispielskripte, die die Verwendung von „Inline::Pdlpp“ demonstrieren, finden Sie im
Beispiel/InlinePdlpp Verzeichnis.

„Inline::Pdlpp“ ist größtenteils eine schamlose Abzocke von „Inline::C“. Das meiste Lob geht an Brian I.

Anwendungsbereich


Sie verwenden „Inline::Pdlpp“ nie direkt. Es handelt sich lediglich um ein Unterstützungsmodul für die Verwendung
„Inline.pm“ mit „PDL::PP“. Die Verwendung ist also immer:

use Inline Pdlpp => ...;

or

bind Inline Pdlpp => ...;

Beispiele


Bis zur Verfügbarkeit vollständiger Dokumente ein paar kurze Beispiele, die die typische Verwendung veranschaulichen.

A einfach Beispiel
# Beispielskript inlpp.pl
PDL verwenden; # muss vor (!) Aufrufen von „use Inline Pdlpp“ aufgerufen werden

Verwenden Sie Inline-Pdlpp. # Der eigentliche Code befindet sich im __Pdlpp__-Block unten

$a = Sequenz 10;
print $a->inc,"\n";
print $a->inc->dummy(1,10)->tcumul,"\n";

__DATEN__

__Pdlpp__

pp_def('inc',
Pars => 'i();[o] o()',
Code => '$o() = $i() + 1;',
);

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
Code => '$mul() = 1;
Schleife(n) %{
$mul() *= $in();
%}',
);
# Beispielskript beenden

Wenn Sie dieses Skript aufrufen, sollte eine Ausgabe ähnlich der folgenden generiert werden:

Eingabeaufforderung> perl inlpp.pl
Inline-Ausführung von PDL::PP Version 2.2 ...
[1 2 3 4 5 6 7 8 9 10]
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800]

Die Verwendung von „Inline::Pdlpp“ ähnelt im Allgemeinen der von „Inline::C“. In Ermangelung einer vollständigen
Dokumente für „Inline::Pdlpp“ möchten Sie vielleicht mit Inline::C vergleichen.

Code zur Verbesserung der Gesundheitsgerechtigkeit verwendet extern Bibliotheken, etc
Das folgende Skript ist etwas komplizierter, da es Code von extern verwendet
Bibliothek (hier von Numerical Recipes). Alle relevanten Informationen bzgl. enthalten
Dateien, Bibliotheken und Bootcode werden in einem Konfigurationsaufruf an „Inline“ angegeben. Für mehr
Für erfahrene Perl-Hacker könnte es hilfreich sein zu wissen, dass das Format diesem ähnelt
Wird mit ExtUtils::MakeMaker verwendet. Die Schlüsselwörter entsprechen weitgehend denen, die bei verwendet werden
„Inline::C“. Weitere Einzelheiten zur Verwendung von „INC“, „LIBS“ finden Sie weiter unten.
„AUTO_INCLUDE“ und „BOOT“.

PDL verwenden; # Dies muss vor (!) Aufrufen von „use Inline Pdlpp“ aufgerufen werden

Verwenden Sie Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# Code, der in das generierte XS aufgenommen werden soll
AUTO_INCLUDE => <<'EOINC',
#einschließen
#include "nr.h" /* für poidev */
#include "nrutil.h" /* für err_handler */

static void nr_barf(char *err_txt)
{
fprintf(stderr,"Jetzt ruft croak...\n");
croak("NR-Laufzeitfehler: %s",err_txt);
}
EOINC
# Installieren Sie unseren Fehlerhandler beim Laden des Inline::Pdlpp-Codes
BOOT => 'set_nr_err_handler(nr_barf);';

Verwenden Sie Inline-Pdlpp. # Der eigentliche Code befindet sich im __Pdlpp__-Block unten

$a = Nullen(10) + 30;;
$a-> druckenpoidev(5),"\n";

__DATEN__

__Pdlpp__

pp_def('poidev',
Pars => 'xm(); [o] pd()',
GenericTypes => [L,F,D],
OtherPars => 'long idum',
Code => '$pd() = poidev((float) $xm(), &$COMP(idum));',
);

Pdlpp Konfiguration Optionen


Informationen zum Festlegen von Inline-Konfigurationsoptionen finden Sie unter Inline. Diese Abteilung
beschreibt alle für Pdlpp verfügbaren Konfigurationsoptionen. Die meisten Optionen
entsprechen entweder MakeMaker- oder XS-Optionen mit demselben Namen. Siehe ExtUtils::MakeMaker und
perlxs.

AUTO_INCLUDE
Gibt zusätzliche Anweisungen an, die automatisch eingeschlossen werden sollen. Sie werden dem hinzugefügt
Standardwerte. Ein Zeilenumbruchzeichen wird automatisch hinzugefügt. Funktioniert im Wesentlichen wie ein Anruf
zu „pp_addhdr“. Für kurze Codeteile ist „AUTO_INCLUDE“ wahrscheinlich syntaktisch besser.

use Inline Pdlpp => Config => AUTO_INCLUDE => '#include "yourheader.h"';

SEGNEN
Identisch mit dem Befehl „pp_bless“. Gibt das Paket (dh die Klasse) an, zu dem Ihr neues Paket gehört pp_defed
Methoden werden hinzugefügt. Der Standardwert ist „PDL“, wenn er weggelassen wird.

use Inline Pdlpp => Config => BLESS => 'PDL::Complex';

BOOT
Gibt C-Code an, der im XS BOOT-Abschnitt ausgeführt werden soll. Entspricht dem XS-Parameter.
Funktioniert genauso wie der Befehl „pp_add_boot“. Wird oft verwendet, um Code beim Laden nur einmal auszuführen
Zeitpunkt des Moduls, z. B. ein Bibliotheksinitialisierungsaufruf.

CC
Geben Sie an, welcher Compiler verwendet werden soll.

CCFLAGS
Geben Sie zusätzliche Compiler-Flags an.

INC
Gibt einen zu verwendenden Include-Pfad an. Entspricht dem MakeMaker-Parameter.

use Inline Pdlpp => Config => INC => '-I/inc/path';

LD
Geben Sie an, welcher Linker verwendet werden soll.

LDDFLAGS
Geben Sie an, welche Linker-Flags verwendet werden sollen.

HINWEIS: Diese Flags überschreiben die vorhandenen Flags vollständig, anstatt sie nur zu ergänzen
ihnen. Wenn Sie diese also auch verwenden müssen, müssen Sie sie hier erneut angeben.

LIBS
Gibt externe Bibliotheken an, die in Ihren Code eingebunden werden sollen. Entspricht dem
MakeMaker-Parameter.

use Inline Pdlpp => Config => LIBS => '-lyourlib';

or

use Inline Pdlpp => Config => LIBS => '-L/your/path -lyourlib';

MACHEN
Geben Sie den Namen des zu verwendenden Dienstprogramms „make“ an.

MYEXTLIB
Gibt ein vom Benutzer kompiliertes Objekt an, das eingebunden werden soll. Entspricht dem MakeMaker
Parameters.

use Inline Pdlpp => Config => MYEXTLIB => '/your/path/yourmodule.so';

OPTIMIEREN
Dies steuert die MakeMaker OPTIMIZE-Einstellung. Indem Sie diesen Wert auf „-g“ setzen, können Sie drehen
zur Debugging-Unterstützung für Ihre Inline-Erweiterungen. Dies ermöglicht Ihnen die Einstellung
Haltepunkte in Ihrem C-Code mithilfe eines Debuggers wie gdb.

TYPKARTEN
Gibt zusätzliche zu verwendende Typemap-Dateien an. Entspricht dem MakeMaker-Parameter.

use Inline Pdlpp => Config => TYPEMAPS => '/your/path/typemap';

LAUT
Zeigen Sie die Ausgabe aller Zusammenstellungen, die hinter den Kulissen stattfinden. Verwendet „tee“, was sein muss
auf Ihrem Computer verfügbar. Die Standardeinstellung ist deaktiviert.

Verwenden Sie PDL::PP-Inlinep online über die Dienste von onworks.net



Neueste Linux- und Windows-Online-Programme