"MachineInteger" (コンパイルタイプ)
"MachineInteger"
機械サイズの符号付き整数原子型指定子を表す.
詳細
- "MachineInteger"はTypedおよび型を指定する関連した構造で使うことができる.
- 64ビットプラットフォームでは"MachineInteger"は"Integer64"である.
- 32ビットプラットフォームでは"MachineInteger"は"Integer32"である.
- "MachineInteger"は"PackedArray"型で使うのに便利である.
変換
- 適切な大きさのInteger式は,"MachineInteger"型のコンパイルコード要素に変換することができる.
- "MachineInteger"コンパイル要素はInteger式に変換することができる.
- "MachineInteger"コンパイル要素は,二項算術演算で結合されると,自動的に実数要素あるいは複素数要素に昇格する.
- "MachineInteger"より小さい型のコンパイル要素は,二項算術演算で結合されると,自動的に"MachineInteger"に昇格する.
- "MachineInteger"コンパイル要素は,二項算術演算で結合されると,自動的に"UnsignedMachineInteger"要素に昇格する.
式から
式へ
算術演算
例題
例 (4)
"MachineInteger"はCompiledCodeFunctionの入力および出力として使うことができる:
cf = FunctionCompile[Function[Typed[arg, "MachineInteger"], arg]]cf[ 100]"MachineInteger"のサイズは$SystemWordLengthと同じである:
$SystemWordLength関数を実行している間に,オーバーフローによりエラーが生じる.計算は終了され,メッセージが出力される.結果を計算するためにWolfram Engineが使われる:
cf = FunctionCompile[Function[Typed[arg, "MachineInteger"], arg ^ arg]];
cf[2^5]"MachineInteger"引数は,実数と組み合されると自動的に昇格する:
cf = FunctionCompile[Function[{Typed[arg1, "MachineInteger"], Typed[arg2, "Real64"]}, arg1 + arg2]];
Information[cf, "Signature"]"MachineInteger"引数がストレージサイズの小さい整数と組み合されると,小さい方の型は自動的に昇格する:
cf = FunctionCompile[Function[{Typed[arg1, "MachineInteger"], Typed[arg2, "Integer8"]}, arg1 + arg2]];
Information[cf, "Signature"]"MachineInteger"引数は同じストレージサイズの符号なしの整数と組み合されると, 自動的に昇格する:
cf = FunctionCompile[Function[{Typed[arg1, "MachineInteger"], Typed[arg2, "UnsignedMachineInteger"]}, arg1 + arg2]];
Information[cf, "Signature"]"MachineInteger"はアーキテクチャにとってネイティブのサイズの整数を取るので,"PackedArray"で使うのに便利である:
cf = FunctionCompile[Function[Typed[arg, TypeSpecifier["PackedArray"]["MachineInteger", 1]], arg]]cf[{1, 2, 3}]テクニカルノート
履歴
2019 で導入 (12.0)