ToInert - 不活性表現への変換
FromInert - 不活性表現からの変換
使い方
ToInert( expr )
FromInert( inert_expr )
パラメータ
expr - 数式
inert_expr - 有効な不活性表現
|
説明
|
|
•
|
評価中に形が変化する Maple の数式の中には、操作が難しいものがあります。そこで、活性な数式の形を、評価の心配をすることなく自由に編集することが可能な不活性形式に変換することが有用となります。変更が行われても、その数式を活性形式に戻す変換を行うことが可能です。
|
•
|
ToInert ルーチンは、Maple の数式を不活性形式に変換します。FromInert ルーチンは、有効な不活性表現を、Maple の活性なオブジェクトに戻します。
|
•
|
不活性形式は、Maple の内部 DAG データ構造表現へ、詳細に反映されます。例えば、数式 x^y は、変数 x および変数 y のベキ乗として内部的に保存されます。不活性表現は、与えられた数式の構造を記述する"_Inert_XXX" という変数を用いた、埋め込み関数呼び出しの列となります。内部的な表現と不活性表現にはいくつか異なる点があります。主として和および積の場合、内部表現は、便利なプログラミング的操作とは反対の、高速の多項式算法を用いてデザインされます。正確な内部表現については、 dismantle を参照して下さい。
|
|
Maple の DAG の種類を表すリストについては、Maple Advanced Programming Guide 内にある "Appendix A: Internal Representation and Manipulation" を参照して下さい。
|
|
|
例
|
|
5*x の構造を調べます。
| (2.1) |
手続きの中で、属性を持たない大域変数全てを検索します。
>
|
f := proc(x) ASSERT(type(x,integer)); ifactor(x) end;
|
| (2.2) |
>
|
globals_f := indets(op(5,ToInert(eval(f,1))), '_Inert_NAME(anything)');
|
| (2.3) |
局所変数 i の名称を j に変更します。
>
|
g := proc() local i; end;
|
| (2.4) |
>
|
inert_g := ToInert(eval(g,1));
|
| (2.5) |
>
|
new_g := FromInert( subsop(2=subs("i"="j", op(2,inert_g)), inert_g));
|
| (2.6) |
|
|
参考文献
|
|
|
Maple Advanced Programming Guide
|
|
|
Download Help Document
Was this information helpful?