PDL::PP-Inlinep - Online nel cloud

Questo è il comando PDL::PP-Inlinep che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


Inline::Pdlpp - Scrivi subroutine PDL in linea con PDL::PP

DESCRIZIONE


"Inline::Pdlpp" è un modulo che consente di scrivere subroutine PDL nello stile PDL::PP.
Il grande vantaggio rispetto al semplice "PDL::PP" è che puoi scrivere queste definizioni in linea
in qualsiasi vecchio script perl (senza la normale seccatura di creare Makefile, costruire, ecc.).
Dalla versione 0.30 il modulo Inline supporta più linguaggi di programmazione e ciascuno
language ha il proprio modulo di supporto. Questo documento descrive come utilizzare Inline con
PDL::PP (o meglio, lo farà una volta completati questi documenti ";)".

Per ulteriori informazioni su Inline in generale, vedere Inline.

Alcuni script di esempio che dimostrano l'utilizzo di "Inline::Pdlpp" possono essere trovati in
Esempio/InlinePdlpp directory.

"Inline::Pdlpp" è principalmente una spudorata fregatura di "Inline::C". La maggior parte dei complimenti va a Brian I.

Impiego


Non usi mai "Inline::Pdlpp" direttamente. È solo un modulo di supporto per l'utilizzo
"Inline.pm" con "PDL::PP". Quindi l'utilizzo è sempre:

usa Pdlpp in linea => ...;

or

bind Inline Pdlpp => ...;

Esempi


In attesa della disponibilità dei documenti completi, alcuni rapidi esempi che illustrano l'utilizzo tipico.

A semplice esempio
# script di esempio inlpp.pl
utilizzare PDL; # deve essere chiamato prima delle chiamate (!) 'use Inline Pdlpp'

utilizzare Pdlpp in linea; # il codice effettivo è nel blocco __Pdlpp__ sottostante

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

__DATA__

__Pdlpp__

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

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
Codice => '$mul() = 1;
ciclo(n) %{
$mul() *= $in();
%}',
);
# end esempio script

Se chiami questo script dovrebbe generare un output simile a questo:

prompt> perl inlpp.pl
Esecuzione in linea di PDL::PP versione 2.2...
[1 2 3 4 5 6 7 8 9 10]
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800]

L'utilizzo di "Inline::Pdlpp" in generale è simile a "Inline::C". In assenza di pieno
docs per "Inline::Pdlpp" potresti voler confrontare Inline::C.

Code che usa esterno biblioteche, eccetera
Lo script seguente è un po' più complicato in quanto utilizza il codice da un esterno
libreria (qui da Numerical Recipes). Tutte le informazioni rilevanti riguardanti includono
file, librerie e codice di avvio è specificato in una chiamata di configurazione a "Inline". Per più
hacker esperti di Perl potrebbe essere utile sapere che il formato è simile a quello
utilizzato con ExtUtils::MakeMaker. Le parole chiave sono in gran parte equivalenti a quelle utilizzate con
"In linea::C". Si prega di vedere sotto per ulteriori dettagli sull'uso di "INC", "LIBS",
"AUTO_INCLUDE" e "BOOT".

utilizzare PDL; # questo deve essere chiamato prima delle chiamate (!) 'use Inline Pdlpp'

usa Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# codice da includere nell'XS generato
AUTO_INCLUDE => <<'EOINC',
#includere
#include "nr.h" /* per poidev */
#include "nrutil.h" /* for err_handler */

void statico nr_barf(char *err_txt)
{
fprintf(stderr,"Ora chiamo croak...\n");
croak("Errore runtime NR: %s",err_txt);
}
EOINC
# installa il nostro gestore di errori durante il caricamento del codice Inline::Pdlpp
BOOT => 'set_nr_err_handler(nr_barf);';

utilizzare Pdlpp in linea; # il codice effettivo è nel blocco __Pdlpp__ sottostante

$un = zero(10) + 30;;
stampa $a->poiev(5),"\n";

__DATA__

__Pdlpp__

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

Pdlpp Configurazione Opzioni


Per informazioni su come specificare le opzioni di configurazione Inline, vedere Inline. Questa sezione
descrive ciascuna delle opzioni di configurazione disponibili per Pdlpp. La maggior parte delle opzioni
corrispondono alle opzioni MakeMaker o XS con lo stesso nome. Vedere ExtUtils::MakeMaker e
perlx.

AUTO_INCLUDE
Specifica istruzioni aggiuntive da includere automaticamente. Verranno aggiunti al
predefiniti. Verrà aggiunto automaticamente un carattere di nuova riga. Fa essenzialmente la stessa cosa di una chiamata
a "pp_addhdr". Per brevi frammenti di codice "AUTO_INCLUDE" è probabilmente sintatticamente migliore.

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

BENEDIZIONE
Uguale al comando "pp_bless". Specifica il pacchetto (cioè la classe) a cui il tuo nuovo pp_defed
verranno aggiunti i metodi. Il valore predefinito è "PDL" se omesso.

usa Inline Pdlpp => Config => BLESS => 'PDL::Complesso';

BOOT
Specifica il codice C da eseguire nella sezione XS BOOT. Corrisponde al parametro XS.
Fa lo stesso del comando "pp_add_boot". Spesso utilizzato per eseguire il codice solo una volta al caricamento
tempo del modulo, ad esempio una chiamata di inizializzazione della libreria.

CC
Specifica quale compilatore utilizzare.

CCFLAG
Specifica i flag aggiuntivi del compilatore.

INC
Specifica un percorso di inclusione da utilizzare. Corrisponde al parametro MakeMaker.

usa Inline Pdlpp => Config => INC => '-I/inc/percorso';

LD
Specifica quale linker utilizzare.

LDDLFLAG
Specificare i flag del linker da utilizzare.

NOTA: questi flag sovrascriveranno completamente i flag esistenti, invece di aggiungerli semplicemente a
loro. Quindi, se è necessario utilizzare anche quelli, è necessario specificarli nuovamente qui.

LIBS
Specifica le librerie esterne che devono essere collegate al codice. Corrisponde a
parametro MakeMaker.

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

or

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

FARE
Specificare il nome dell'utilità 'make' da utilizzare.

MYEXTLIB
Specifica un oggetto compilato dall'utente che dovrebbe essere collegato. Corrisponde a MakeMaker
parametro.

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

OTTIMIZZARE
Controlla l'impostazione OTTIMIZZA di MakeMaker. Impostando questo valore su '-g', puoi trasformare
sul supporto di debug per le tue estensioni Inline. Questo ti permetterà di essere in grado di impostare
breakpoint nel codice C utilizzando un debugger come gdb.

MAPPE TIPO
Specifica i file typemap aggiuntivi da usare. Corrisponde al parametro MakeMaker.

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

RUMOROSO
Mostra l'output di tutte le compilation in corso dietro le quinte. Usa "tee" che deve essere
disponibile sul tuo computer. L'impostazione predefinita è disattivata.

Usa PDL::PP-Inlinep online utilizzando i servizi onworks.net



Gli ultimi programmi online per Linux e Windows