PDL::PP-Inlinep - Online in de cloud

Dit is de opdracht PDL::PP-Inlinep die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


Inline::Pdlpp - Schrijf PDL-subroutines inline met PDL::PP

PRODUCTBESCHRIJVING


"Inline::Pdlpp" is een module waarmee u PDL-subroutines in de PDL::PP-stijl kunt schrijven.
Het grote voordeel vergeleken met gewoon "PDL::PP" is dat u deze definities inline kunt schrijven
in elk oud perl-script (zonder het normale gedoe van het maken van Makefiles, bouwen, enz.).
Sinds versie 0.30 ondersteunt de Inline-module meerdere programmeertalen en elk
taal heeft zijn eigen ondersteuningsmodule. In dit document wordt beschreven hoe u Inline with kunt gebruiken
PDL::PP (of beter gezegd, dit zal gebeuren zodra deze documenten compleet zijn ";)".

Voor meer informatie over Inline in het algemeen, zie Inline.

Enkele voorbeeldscripts die het gebruik van "Inline::Pdlpp" demonstreren, zijn te vinden in de
Voorbeeld/InlinePdlpp directory.

"Inline::Pdlpp" is grotendeels een schaamteloze rip-off van "Inline::C". De meeste complimenten gaan naar Brian I.

Gebruik


U gebruikt "Inline::Pdlpp" nooit rechtstreeks. Het is slechts een ondersteuningsmodule voor gebruik
"Inline.pm" met "PDL::PP". Het gebruik is dus altijd:

gebruik Inline Pdlpp => ...;

or

bind Inline Pdlpp => ...;

Voorbeelden


In afwachting van de beschikbaarheid van volledige documenten enkele korte voorbeelden die typisch gebruik illustreren.

A simpel voorbeeld
# voorbeeldscript inlpp.pl
gebruik PDL; # moet worden aangeroepen vóór (!) 'use Inline Pdlpp'-aanroepen

gebruik Inline Pdlpp; # de daadwerkelijke code staat in het onderstaande __Pdlpp__-blok

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

__GEGEVENS__

__Pdlpp__

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

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

Als u dit script aanroept, zou het uitvoer moeten genereren die vergelijkbaar is met deze:

prompt> perl inlpp.pl
Inline draaiende PDL::PP versie 2.2...
[1 2 3 4 5 6 7 8 9 10]
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800]

Het gebruik van "Inline::Pdlpp" is over het algemeen vergelijkbaar met "Inline::C". Bij gebrek aan vol
docs voor "Inline::Pdlpp" wilt u misschien Inline::C vergelijken.

Code dat toepassingen extern bibliotheken, etc
Het onderstaande script is iets ingewikkelder omdat het code van een extern script gebruikt
bibliotheek (hier van Numerieke Recepten). Alle relevante informatie over onder meer
bestanden, bibliotheken en opstartcode worden gespecificeerd in een configuratieaanroep naar "Inline". Voor meer
Voor ervaren Perl-hackers kan het handig zijn om te weten dat het formaat hierop lijkt
gebruikt met ExtUtils::MakeMaker. De trefwoorden komen grotendeels overeen met de trefwoorden die worden gebruikt bij
"Inline::C". Zie hieronder voor meer informatie over het gebruik van "INC", "LIBS",
"AUTO_INCLUDE" en "BOOT".

gebruik PDL; # dit moet worden aangeroepen vóór (!) 'use Inline Pdlpp'-aanroepen

gebruik Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# code die moet worden opgenomen in de gegenereerde XS
AUTO_INCLUDE => <<'EOINC',
# omvatten
#include "nr.h" /* voor poidev */
#include "nrutil.h" /* voor err_handler */

statische leegte nr_barf(char *err_txt)
{
fprintf(stderr,"Nu roept kwaak...\n");
croak("NR runtimefout: %s",err_txt);
}
EOINC
# installeer onze fouthandler bij het laden van de Inline::Pdlpp-code
BOOT => 'set_nr_err_handler(nr_barf);';

gebruik Inline Pdlpp; # de daadwerkelijke code staat in het onderstaande __Pdlpp__-blok

$ een = nullen(10) + 30;;
print $a->poidev(5),"\n";

__GEGEVENS__

__Pdlpp__

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

Pdlpp Configuratie Opties


Zie Inline voor informatie over het opgeven van Inline-configuratieopties. Deze sectie
beschrijft elk van de configuratieopties die beschikbaar zijn voor Pdlpp. De meeste opties
komen overeen met MakeMaker- of XS-opties met dezelfde naam. Zie ExtUtils::MakeMaker en
perlxs.

AUTO_INCLUDE
Specificeert dat extra instructies automatisch moeten worden opgenomen. Ze worden toegevoegd aan de
standaardinstellingen. Er wordt automatisch een newline-char toegevoegd. Doet in wezen hetzelfde als bellen
naar "pp_addhdr". Voor korte stukjes code is "AUTO_INCLUDE" waarschijnlijk syntactisch mooier.

gebruik Inline Pdlpp => Config => AUTO_INCLUDE => '#include "uwheader.h"';

ZEGENEN
Hetzelfde als de opdracht "pp_bless". Specificeert het pakket (dat wil zeggen klasse) waarnaar uw nieuwe pp_defed
methoden zullen worden toegevoegd. Standaard ingesteld op "PDL" indien weggelaten.

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

BOOT
Specificeert C-code die moet worden uitgevoerd in de XS BOOT-sectie. Komt overeen met de XS-parameter.
Doet hetzelfde als de opdracht "pp_add_boot". Vaak gebruikt om code slechts één keer uit te voeren tijdens het laden
tijd van de module, bijvoorbeeld een bibliotheekinitialisatieoproep.

CC
Geef op welke compiler u wilt gebruiken.

CCFLAGS
Geef extra compilervlaggen op.

INC
Specificeert een include-pad dat moet worden gebruikt. Komt overeen met de MakeMaker-parameter.

gebruik Inline Pdlpp => Config => INC => '-I/inc/pad';

LD
Geef op welke linker u wilt gebruiken.

LDDLFLAGS
Geef op welke linkervlaggen u wilt gebruiken.

OPMERKING: Deze vlaggen zullen de bestaande vlaggen volledig overschrijven, in plaats van er alleen maar aan toe te voegen
hen. Dus als u deze ook moet gebruiken, moet u ze hier opnieuw opgeven.

LIBS
Specificeert externe bibliotheken die aan uw code moeten worden gekoppeld. Komt overeen met de
MakeMaker-parameter.

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

or

gebruik Inline Pdlpp => Config => LIBS => '-L/uw/pad -lyourlib';

MAAK
Geef de naam op van het 'make'-hulpprogramma dat u wilt gebruiken.

MIJNEXTLIB
Specificeert een door de gebruiker gecompileerd object dat moet worden gekoppeld. Komt overeen met MakeMaker
parameter.

gebruik Inline Pdlpp => Config => MYEXTLIB => '/uw/pad/uwmodule.so';

OPTIMALISEREN
Hiermee regelt u de MakeMaker OPTIMIZE-instelling. Door deze waarde op '-g' te zetten, kun je draaien
over ondersteuning voor foutopsporing voor uw inline-extensies. Hierdoor kun je instellen
breekpunten in uw C-code met behulp van een debugger zoals gdb.

TYPEKAARTEN
Specificeert extra typemap-bestanden die moeten worden gebruikt. Komt overeen met de MakeMaker-parameter.

gebruik Inline Pdlpp => Config => TYPEMAPS => '/uw/pad/typemap';

LUIDRUCHTIG
Toon de output van eventuele compilaties die achter de schermen plaatsvinden. Gebruikt "tee", wat zo moet zijn
beschikbaar op uw computer. Standaard is uitgeschakeld.

Gebruik PDL::PP-Inlinep online met behulp van onworks.net-services



Nieuwste Linux & Windows online programma's