rtable - rtable の作成
使い方
rtable(indfcns, dims, init, opts)
パラメータ
indfcns - いくつかの手続き (オプション); 添字関数
dims - いくつかの整数区間 (オプション); 次元
init - Maple 手続き、関数、テーブル、配列、リスト、rtable、方程式の集合、型 algebraic を持つ式 (オプション); rtable の初期値
opts - keyword = value という形のいくつかの等式 (オプション); rtable に追加する性質を指定。
|
説明
|
|
•
|
rtable(..) 関数は Maple が Array, Matrix や Vector を構成する際に利用する低レベルのルーチンです。ユーザレベルでこのようなオブジェクトを構成するためのコマンドはそれぞれ Array(..), Matrix(..), Vector(..) です。詳しい情報はヘルプページを参照して下さい。
|
•
|
呼び出し手順のパラメータはいずれもオプションです。パラメータが 1 つもないときは、空の 0 次元 Array が返されます。
|
|
dims と init が指定されていないか、init に対してスカラー値だけが指定されていると、要素を 1 つだけ含む 0 次元 Array が作成されます。
|
•
|
以下のセクションでは、パラメータを呼び出しの引数として与えたときに許される値について説明します。
|
添字関数
|
添字関数は、値の検索、格納ができるように rtable に添字を付けるために使われます。rtable は添字関数を持たなくても、複数持ってもかまいません。それはその rtable が構成されるときに名前で指定されます。添字関数の名前は常に "index/indfcn" という形をしています。呼び出し手順の引数として添字関数 indfcn を指定すると、その名前の indfcn の部分だけを指定したことになります。
|
|
注意: 初期化子 (以下を参照) が既存の rtable ならば、その添字関数は継承されません。
|
|
添字関数は組み込み関数でもユーザが定義した関数でも構いません。添字関数に関する詳しい情報については、rtable_indexfcn を参照して下さい。
|
次元
|
1 つの rtable の次元の個数は 0 から 63 までです。呼び出しの引数の中の次元 dims のいずれも 1 つの整数区間でなければなりません。
|
初期化子 (Initializer)
|
init パラメータは rtable の初期値を次のいずれかの形式で指定します。
|
|
* 値のリスト (複数次元の rtable の場合は、入れ子のリストが使われます)
|
|
* (indices) = value の形の等式の集合
|
random( range, density )
格納された各要素の対して、0にならない確率 density の下で
指定した区間内の整数値をランダムに生成します。
(0 が指定した区間内にあれば、0になる要素の確率は増加します。)
frandom( range, density )
格納された各要素の対して、0にならない確率 density の下で
指定した区間内の浮動小数点値をランダムに生成します。
(0 が指定した区間内にあれば、0になる要素の確率は増加します。)
注意: これらの関数は rtable コンストラクタとだけ利用可能です。
Array, Matrix や Vector のコンストラクタ・コマンドとは利用できません。
|
初期値が値のリストまたは既存の rtable で与えられたときは、その初期値の次元の個数は (もし指定されていれば) その制限に適合しなければなりません。
|
|
初期値が手続き、テーブル、方程式の集合、または random() や frandom() で与えられたときは、次元を指定する必要があります。初期化子がテーブルや方程式の集合ならば、その初期化子の添字はそれらの次元の範囲に収まる必要があります。
|
|
関数が指定されているときは、その関数は添字関数で決定された添字の集合の各要素に対して呼ばれます。その関数はその rtable の指定した要素に対して値を返す必要があります。
|
|
各初期値は任意の Maple 式でかまいませんが、この式を評価するとその rtable の datatype 型の値にならなければなりません (下のオプションを参照)。ハードウェア浮動小数点 rtable に対しては、これはハードウェア浮動小数点数であるか、無定義やプラスマイナス無限大 (+-infinity) を表す特別な式の 1 つでなければなりません。ハードウェア浮動小数点 rtables に対しては、その式を評価するとハードウェア整数にならなければなりません。評価結果が datatype にならなかったときは、event が生成されることになります。
|
|
2 次元以上の rtable に対する初期化子のリスト形式は、transpose オプション (以下を参照) が指定されていなければ、行優先の順序で指定します。
|
|
その制限が初期化子のリスト形式から決定されるならば、各次元の制限はその次元の中の最初のオブジェクトから決定されます。たとえば、2 次元の rtable に対しては、行の個数は主リストの中の部分リストの個数によって決定されます。さらに次元の高い rtable に対しても同様です。transpose オプションが指定されているときは、次元の決定は最後の次元から行われます (つまり、まず列の個数が主リストの部分リストの個数によって決定されます)。
|
|
次元に関する初期化子の値が少なすぎると、その次元の残りは rtable の型に対するデフォルト値 (適当な 0、fill オプション (以下を参照) で指定した値、または、添字関数によって決定された値) によって適当に補われます。初期化子の値が多すぎると、例外が発生します。
|
|
0 次元の rtable はリテラル値 (すなわち、リストの 0-レベルの入れ子) によって初期化されます。たとえば、rtable(2) は 2 という 1 つの要素を含む 0 次元の rtable を生成します。この形式は、その値の型が初期化子の他の形式と混同することのないときにだけ利用できます。より複雑な型で 0 次元の rtable を初期化する必要があるときは、fill オプションか方程式の集合の形式を使うべきです (たとえば、rtable(fill=[2,3]) は [2,3] という 1 つの値を含む 0 次元の rtable を生成するでしょう。)
|
|
スカラー を格納する rtable (次のオプション 参照) は通常の方法で初期化されます。どんな形式の初期化子でも機能しますが、1 つの方程式を含む集合か、fill パラメータを使う方法が最も効果的でしょう。
|
オプション
|
opts パラメータは rtable の性質を追加するときに指定するものです。呼び出し手順に性質を含める場合、それは keyword = value という形をしていなければなりません。 許される性質については以下の節で説明します。
|
datatype=value
|
rtable の要素のデータ型を指定するもので、integer[n], float[n], complex[n] や(type() や :: が受け付けてくれるような)どんな Maple の型指定でもできます。
|
|
integer[n] に関しては、 n は 1, 2, 4, 8 のいずれかで、整数ごとのバイト数を与えます。float[n] と complex[n] に関しては、現在のところ、n の値として 8 だけが許されています。 デフォルトのデータ型は Maple 型の anything です。
|
|
注意: 初期化子が既存の rtable にあり、datatype = value が指定されていないときは、そのデータ型はその初期化子から継承されます。
|
subtype=value
|
構成された rtable オブジェクトの型を指定します。その値として許されているのは Array, Matrix, Vector[row], Vector[column] だけです。
|
|
デフォルトの subtype は Array です。
|
|
注意: 初期化子が既存の rtable で、subtype=value が指定されていないときは、その subtype は初期化子から継承されます。
|
storage=value
|
rtable の格納形式を指定します。値として許されているのは以下の通りです:
|
sparse
sparse[upper]
sparse[lower]
empty
scalar
diagonal
band[b1,b2]
rectangular
triangular[upper]
triangular[upper,strict]
Hessenberg[upper]
triangular[lower]
triangluar[lower,strict]
Hessenberg[lower]
|
storage のデフォルト値は指定されている最後の添字関数によって決定されます。初期化子が rtable で、格納形式のオプションが呼び出し手順に含まれていない場合、初期化子が sparse 形式のいずれかを持っていれば生成される rtable の格納形式は sparse に、そうでなければ矩形 (rectangular) になります。
|
order=value
|
構造の内部順序を指定します。値として許されているのは C_order と Fortran_order だけです。デフォルトの順序は Fortran_order です。
|
|
注意: 初期化子が既存の rtable で、順序が指定されていないときは、その順序は初期化子から継承されます。
|
readonly=value
|
rtable が変更可能かどうかを指定します。値として許されているのは true と false だけです。呼び出し手順の中に readonly=true (readonly のみでも同じ) が含まれていると、その rtable は変更不可能になり、rtable の要素を変更しようとすると、例外が発生するようになります。
|
|
注意: 初期化子が既存の rtable でも、readonly はその初期化子から継承されません。なぜなら、変更不可能な rtable のコピーを作るときでも、書き込み可能にしたものを生成するのが普通だからです。
|
attributes=[value(s)]
|
rtable を生成するときに属性を指定します。setattribute に正しい引数として渡せるものはすべてこの属性の値として使うことができます。属性なしがデフォルトです。
|
|
注意: 初期化子が既存の rtable で、属性が指定されていないときは、属性はその初期化子から継承されます。
|
transpose=value
|
呼び出しの引数の中に transpose または transpose=true が含まれていると、その rtable を埋める (もしくは、次元が指定されていなければ、その次元を決定する) 前に、初期化子は転置されます。言い換えると、その初期化子は列優先の順序になります。
|
fill=expr
|
rtable の未指定の要素を埋めるデフォルト値を指定します。この値は初期化子の値が評価される方法と適合するものでなければなりません。
|
|
注意: fill の値は、添字関数があるにもかかわらず、指定されないままになっている rtable の要素を埋めるためだけに使われます。たとえば、上三角行列のした三角を埋めるためには使われません。sparse 形式の rtable に対しては、fill の値は常に無視されます。
|
|
Note: transpose と fill オプションは単にコンストラクタオプションです。これらは op(4,...) の呼び出しの結果の一部としては返されません。
|
•
|
Maple では、小さな rtables だけがインラインで表示されます。ここで、小さな rtable とは 1 次元または 2 次元のオブジェクトで、その寸法が 1..25 (Maple の TTY 版) または 1..10 (Maple の GUI 版) の範囲にあるもののことです。寸法がこれよりも大きい rtable はプレースフォルダを使って表示されます。プレースフォルダの内容を見る方法については、structuredview を参照して下さい。
|
|
Maple が常に rtable をインラインで表示するように環境を変えたければ、Maple の初期化ファイルの中に interface(rtablesize=infinity) コマンドを入れておきましょう (maple 参照)。
|
|
|
例
|
|
>
|
rtable(1..3, subtype=Vector[column], readonly);
|
| (2.1) |
>
|
rtable(1..2, 1..2, frandom(100..200, .5));
|
| (2.2) |
|
|
参照
|
|
Array, array, interface, list, maple, Matrix, procedure, set, structuredview, table, type[algebraic], Vector, rtable_dims, rtable_elems, rtable_eval, rtable_indfns, rtable_num_dims, rtable_num_elems, rtable_options, rtable_scanblock
|
|