PDL::PP-Inlinep - En ligne dans le Cloud

Il s'agit de la commande PDL::PP-Inlinep qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


Inline::Pdlpp - Écrire des sous-programmes PDL en ligne avec PDL::PP

DESCRIPTION


"Inline::Pdlpp" est un module qui vous permet d'écrire des sous-programmes PDL dans le style PDL::PP.
Le gros avantage par rapport au simple "PDL::PP" est que vous pouvez écrire ces définitions en ligne
dans n'importe quel ancien script perl (sans les tracas normaux de création de Makefiles, de construction, etc.).
Depuis la version 0.30, le module Inline prend en charge plusieurs langages de programmation et chacun
language a son propre module de support. Ce document décrit comment utiliser Inline avec
PDL::PP (ou plutôt, il le fera une fois ces docs complètes ";)".

Pour plus d'informations sur Inline en général, voir Inline.

Quelques exemples de scripts démontrant l'utilisation de "Inline::Pdlpp" peuvent être trouvés dans le
Exemple/InlinePdlpp répertoire.

"Inline::Pdlpp" est principalement une arnaque éhontée de "Inline::C". La plupart des félicitations vont à Brian I.

Utilisation


En fait, vous n'utilisez jamais directement "Inline::Pdlpp". C'est juste un module de support pour l'utilisation
"Inline.pm" avec "PDL::PP". L'utilisation est donc toujours :

utiliser Inline Pdlpp => ...;

or

lier Inline Pdlpp => ...;

Exemples


En attendant la disponibilité de la documentation complète, quelques exemples rapides illustrant une utilisation typique.

A simple exemple
# exemple de script inlpp.pl
utiliser PDL ; # doit être appelé avant (!) les appels 'utiliser Inline Pdlpp'

utiliser Inline Pdlpp; # le code réel est dans le bloc __Pdlpp__ ci-dessous

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

__DATA__

__Pdlpp__

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

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
Code => '$mul() = 1;
boucle(n) %{
$mul() *= $in();
%}',
);
# fin de l'exemple de script

Si vous appelez ce script, il devrait générer une sortie similaire à celle-ci :

invite> perl inlpp.pl
Inline exécutant 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]

L'utilisation de "Inline::Pdlpp" en général est similaire à "Inline::C". En l'absence de plein
docs pour "Inline::Pdlpp", vous pouvez comparer Inline::C.

Code qui Usages externe bibliothèques, etc
Le script ci-dessous est un peu plus compliqué dans la mesure où il utilise le code d'un
bibliothèque (ici de Numerical Recipes). Toutes les informations pertinentes concernant comprennent
les fichiers, les bibliothèques et le code de démarrage sont spécifiés dans un appel de configuration à "Inline". Pour plus
aux pirates Perl expérimentés, il peut être utile de savoir que le format est similaire à celui
utilisé avec ExtUtils::MakeMaker. Les mots-clés sont largement équivalents à ceux utilisés avec
"En ligne::C". Veuillez voir ci-dessous pour plus de détails sur l'utilisation de "INC", "LIBS",
"AUTO_INCLUDE" et "BOOT".

utiliser PDL ; # cela doit être appelé avant (!) les appels 'use Inline Pdlpp'

utiliser Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# code à inclure dans le XS généré
AUTO_INCLUDE => <<'EOINC',
#comprendre
#include "nr.h" /* pour poidev */
#include "nrutil.h" /* pour err_handler */

vide statique nr_barf(char *err_txt)
{
fprintf(stderr,"Appel maintenant croak...\n");
croak("Erreur d'exécution NR : %s",err_txt);
}
EOINC
# installer notre gestionnaire d'erreurs lors du chargement du code Inline::Pdlpp
BOOT => 'set_nr_err_handler(nr_barf);';

utiliser Inline Pdlpp; # le code réel est dans le bloc __Pdlpp__ ci-dessous

$une = zéros(10) + 30 ;;
imprimer $a->poidev(5),"\n";

__DATA__

__Pdlpp__

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

Pdlpp Configuration Options


Pour plus d'informations sur la façon de spécifier les options de configuration Inline, consultez Inline. Cette section
décrit chacune des options de configuration disponibles pour Pdlpp. La plupart des options
correspondent soit aux options MakeMaker ou XS du même nom. Voir ExtUtils::MakeMaker et
perlxs.

AUTO_INCLUDE
Spécifie des instructions supplémentaires à inclure automatiquement. Ils seront ajoutés au
par défaut. Un caractère de nouvelle ligne sera automatiquement ajouté. Fait essentiellement la même chose qu'un appel
à "pp_addhdr". Pour de courts morceaux de code, "AUTO_INCLUDE" est probablement syntaxiquement plus agréable.

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

BÉNIR
Identique à la commande "pp_bless". Spécifie le package (c'est-à-dire la classe) auquel votre nouveau pp_defed
des méthodes seront ajoutées. La valeur par défaut est "PDL" si omis.

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

BOOT
Spécifie le code C à exécuter dans la section XS BOOT. Correspond au paramètre XS.
Fait la même chose que la commande "pp_add_boot". Souvent utilisé pour exécuter le code une seule fois au chargement
l'heure du module, par exemple un appel d'initialisation de la bibliothèque.

CC
Spécifiez le compilateur à utiliser.

CCFLAG
Spécifiez des indicateurs de compilateur supplémentaires.

INC
Spécifie un chemin d'inclusion à utiliser. Correspond au paramètre MakeMaker.

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

LD
Spécifiez l'éditeur de liens à utiliser.

LDDLFLAG
Spécifiez les indicateurs d'éditeur de liens à utiliser.

REMARQUE : ces indicateurs remplaceront complètement les indicateurs existants, au lieu de simplement s'ajouter à
eux. Donc, si vous devez également les utiliser, vous devez les re-spécifier ici.

LIBS
Spécifie les bibliothèques externes qui doivent être liées à votre code. Correspond au
Paramètre MakeMaker.

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

or

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

FAITES
Spécifiez le nom de l'utilitaire 'make' à utiliser.

MAEXTLIB
Spécifie un objet compilé par l'utilisateur qui doit être lié. Correspond au MakeMaker
paramètre.

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

OPTIMISER
Cela contrôle le paramètre OPTIMISER MakeMaker. En définissant cette valeur sur '-g', vous pouvez activer
sur la prise en charge du débogage pour vos extensions Inline. Cela vous permettra de définir
points d'arrêt dans votre code C en utilisant un débogueur comme gdb.

CARTES DE TYPE
Spécifie des fichiers de typemap supplémentaires à utiliser. Correspond au paramètre MakeMaker.

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

BRUYANT
Affichez la sortie de toutes les compilations en cours dans les coulisses. Utilise « tee » qui doit être
disponible sur votre ordinateur. La valeur par défaut est désactivée.

Utilisez PDL::PP-Inlinep en ligne en utilisant les services onworks.net



Derniers programmes en ligne Linux et Windows