PDL::PP-Inlinep - クラウドでオンライン

これはコマンド PDL::PP-Inlinep で、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できます。

プログラム:

NAME


Inline::Pdlpp - PDL::PP を使用して PDL サブルーチンをインラインで作成する

DESCRIPTION


「Inline::Pdlpp」は、PDL::PP形式でPDLサブルーチンを記述できるモジュールです。
プレーンな「PDL::PP」と比較した大きな利点は、これらの定義をインラインで記述できることです。
古い Perl スクリプトで実行できます (Makefile の作成やビルドなどの通常の手間はかかりません)。
バージョン 0.30 以降、Inline モジュールは複数のプログラミング言語をサポートしており、
言語には独自のサポート モジュールがあります。 このドキュメントでは、Inline を使用する方法について説明します。
PDL::PP (というよりは、これらのドキュメントが完了すると実行されます ";)"。

インライン全般の詳細については、「インライン」を参照してください。

「Inline::Pdlpp」の使用法を示すいくつかのサンプル スクリプトは、次の場所にあります。
例/InlinePdlpp ディレクトリにあります。

「Inline::Pdlpp」はほとんどが「Inline::C」の恥知らずなパクリです。 最も称賛されるのはブライアン I です。

使用法


実際に「Inline::Pdlpp」を直接使用することはありません。 使用するための単なるサポートモジュールです
「Inline.pm」と「PDL::PP」。 したがって、使用法は常に次のようになります。

インライン Pdlpp を使用 => ...;

or

バインドインライン Pdlpp => ...;


一般的な使用法を示すいくつかの簡単な例を含む完全なドキュメントは入手可能になるまで保留されています。

A シンプルな
# lpp.pl のサンプルスクリプト
PDL を使用します。 # 「インライン Pdlpp を使用する」呼び出しの前に (!) 呼び出す必要があります

インライン Pdlpp を使用します。 # 実際のコードは以下の __Pdlpp__ ブロックにあります

$a = シーケンス 10;
print $a->inc,"\n";
print $a->inc->dummy(1,10)->tcumul,"\n";

__データ__

__Pdlpp__

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

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
コード => '$mul() = 1;
ループ(n) %{
$mul() *= $in();
%}'、
);
# サンプルスクリプトを終了

このスクリプトを呼び出すと、次のような出力が生成されるはずです。

プロンプト> perl inlpp.pl
インライン実行 PDL::PP バージョン 2.2...
[1 2 3 4 5 6 7 8 9]
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800]

「Inline::Pdlpp」の一般的な使用法は「Inline::C」と似ています。 満員でない場合
「Inline::Pdlpp」のドキュメントを参照して、Inline::C と比較してください。

Code それ 使用されます 外部 ライブラリ、
以下のスクリプトは、外部からのコードを使用するため、多少複雑です。
ライブラリ(ここではNumerical Recipesから)。 に関するすべての関連情報には次のものが含まれます。
ファイル、ライブラリ、およびブート コードは、「Inline」への構成呼び出しで指定されます。 多くのための
経験豊富な Perl ハッカーは、この形式がそれに似ていることを知っておくと役立つかもしれません。
ExtUtils::MakeMaker で使用されます。 キーワードは、次で使用されるものとほぼ同等です。
「インライン::C」。 「INC」、「LIBS」、「LIBS」の使用方法の詳細については、以下を参照してください。
「AUTO_INCLUDE」と「BOOT」。

PDL を使用します。 # これは (!) 'use Inline Pdlpp' 呼び出しの前に呼び出す必要があります

インライン Pdlpp を使用 => 構成 =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# 生成された XS に含まれるコード
AUTO_INCLUDE => <<'EOINC',
#include
#include "nr.h" /* ポイデブ用 */
#include "nrutil.h" /* err_handler 用 */

static void nr_barf(char *err_txt)
{
fprintf(stderr,"現在 croak を呼び出しています...\n");
croak("NR ランタイム エラー: %s",err_txt);
}
EOINC
# Inline::Pdlpp コードをロードするときにエラー ハンドラーをインストールします
ブート => 'set_nr_err_handler(nr_barf);';

インライン Pdlpp を使用します。 # 実際のコードは以下の __Pdlpp__ ブロックにあります

$a = ゼロ(10) + 30;;
$aを印刷->ポイデフ(5)、「\n」;

__データ__

__Pdlpp__

pp_def('ポイデフ',
Pars => 'xm(); [o] pd()'、
GenericTypes => [L,F,D],
OtherPars => '長いアイドル',
コード => '$pd() = poidev((float) $xm(), &$COMP(idum));',
);

Pdlpp   オプション


インライン構成オプションを指定する方法については、「インライン」を参照してください。 このセクション
では、Pdlpp で使用できる各設定オプションについて説明します。 ほとんどのオプションは
同じ名前の MakeMaker または XS オプションのいずれかに対応します。 ExtUtils::MakeMaker および
perlxs。

AUTO_INCLUDE
自動的に含める追加のステートメントを指定します。 それらは
デフォルト。 改行文字は自動的に追加されます。 基本的には通話と同じです
「pp_addhdr」に。 コードが短い場合は、「AUTO_INCLUDE」の方が構文的に優れていると思われます。

インライン Pdlpp を使用 => Config => AUTO_INCLUDE => '#include "yourheader.h"';

ブレス
「pp_bless」コマンドと同じです。 新しいものを適用するパッケージ (つまりクラス) を指定します。 pp_defed
メソッドが追加されます。 省略した場合のデフォルトは「PDL」です。

インライン Pdlpp => Config => BLESS => 'PDL::Complex' を使用します。

BOOT
XS BOOT セクションで実行される C コードを指定します。 XSパラメータに対応します。
「pp_add_boot」コマンドと同じことを行います。 ロード時にコードを XNUMX 回だけ実行するためによく使用されます
モジュールの時間 (ライブラリ初期化呼び出しなど)。

CC
使用するコンパイラを指定します。

CCFLAGS
追加のコンパイラ フラグを指定します。

INC
使用するインクルード パスを指定します。 MakeMaker パラメータに対応します。

インライン Pdlpp => Config => INC => '-I/inc/path' を使用します。

LD
使用するリンカーを指定します。

LDDFLAGS
使用するリンカー フラグを指定します。

注: これらのフラグは、既存のフラグを単に追加するのではなく、完全にオーバーライドします。
彼ら。 したがって、それらも使用する必要がある場合は、ここで再指定する必要があります。

LIBS(レーザー誘起分光法)
コードにリンクする必要がある外部ライブラリを指定します。 に対応します
MakeMaker パラメータ。

インライン Pdlpp => Config => LIBS => '-lyourlib' を使用します。

or

インライン Pdlpp => Config => LIBS => '-L/your/path -lyourlib' を使用します。

MAKE
使用する「make」ユーティリティの名前を指定します。

MYEXTLIB
リンクする必要があるユーザーがコンパイルしたオブジェクトを指定します。MakeMaker に対応します。
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。

インライン Pdlpp => Config => MYEXTLIB => '/your/path/yourmodule.so' を使用します。

最適化
これは MakeMaker OPTIMIZE 設定を制御します。 この値を「-g」に設定すると、
インライン拡張機能のデバッグ サポートについて。 これにより、設定できるようになります
gdb などのデバッガを使用して C コードにブレークポイントを追加します。

タイプマップ
使用する追加のタイプマップ ファイルを指定します。 MakeMaker パラメータに対応します。

インライン Pdlpp => Config => TYPEMAPS => '/your/path/typemap' を使用します。

騒々しい
舞台裏で行われているコンパイルの出力を表示します。 「ティー」を使用します。
コンピュータで利用できます。 デフォルトはオフです。

onworks.net サービスを使用してオンラインで PDL::PP-Inlinep を使用する



最新のLinuxおよびWindowsオンラインプログラム