"ListVector" (コンパイルタイプ)
"ListVector" (コンパイルタイプ)
"ListVector"::[type]
指定された要素型を持つ一様のリストを表す.
詳細
- "ListVector"はTypedおよび型を指定する関連した構造で使うことができる.
- "ListVector"オブジェクトは自動的にメモリ管理される.
- "ListVector"の要素は任意のコンパイル型を持つことができる.
- "ListVector"の要素はすべて同じ型を持つ.
- 階数が1より大きい数値テンソルの場合は,"PackedArray"または"NumericArray"を使うことができる.
コンストラクタ
- "ListVector"オブジェクトはコンパイルされたコードでTyped[{…},"ListVector"::[type]]を使って作成することができる. »
- CreateTypeInstance["ListVector"::[type],carr,len]は長さ len の"CArray" carr から"ListVector"を構築する.carr はオプショナルで"Managed"でラップすることができる.
特性
- 型"ListVector"::[type]の list に対するInformation[list,"ContainedType"]は type を与える.
- 型"ListVector"::[type]の list に対するInformation[list,"ElementType"]は type を与える.
変換
- リストのすべての要素が type に変換できる限り,List式は"ListVector"::[type]に変換することも"ListVector"::[type]から変換することもできる.
- "ListVector"オブジェクトは"PackedArray"オブジェクトに変換することも"PackedArray"オブジェクトから変換することもできる.
- "ListVector"オブジェクトは"NumericArray"オブジェクトに変換することも"NumericArray"オブジェクトから変換することもできる.
式
"PackedArray"
"NumericArray"
例題
すべて開く すべて閉じる例 (2)
"ListVector"はCompiledCodeFunctionの入力および出力として使うことができる:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["MachineInteger"]], arg]]cf[{1, 2, 3}]コンパイルされたコードで"ListVector"を作成する:
cf = FunctionCompile[Function[Typed[arg, "MachineInteger"],
Typed[{1, 2, arg}, "ListVector"::["MachineInteger"]]
]]cf[12]スコープ (3)
"ListVector"オブジェクトはコンパイル可能な任意の型を持つオブジェクトを含むことができる:
cf = FunctionCompile[Function[Typed[rules, "ListVector"::["Rule"::["String", "MachineInteger"]]], First[rules]]]cf[{"hello" -> 1, "world" -> 3}]高階の配列は,ネストされた"ListVector"インスタンスで表すことができる:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["ListVector"::["MachineInteger"]]], Catenate[arg]]]cf[{{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10}}]cf = FunctionCompile[Function[Typed[arg, "ListVector"::["Real64"]], Information[arg, "ElementType"]]]cf[{1.2, 4.5, 5.3}]特性と関係 (1)
"PackedArray"は数値配列を表すために使うことができる:
cf = FunctionCompile[Function[Typed[arg, "PackedArray"::["MachineInteger", 1]], First[arg]]]cf[{1, 2, 3, 4, 5}]cf = FunctionCompile[Function[Typed[arg, "PackedArray"::["String", 1]], First[arg]]]これとは対照的に,"ListVector"型は階数1のリストしか表せないが,コンパイル可能な任意の型を持つ要素を含むことができる:
cf = FunctionCompile[Function[Typed[arg, "ListVector"::["String"]], First[arg]]]cf[{"hello", "to", "the", "world"}]テクニカルノート
履歴
2022 で導入 (13.1)