Cast
詳細
- Castはコンパイルされたコードにおいてのみ使用できる.
- Cast[val,type,method]の method の可能な値には以下がある.
-
"BitCast" val を表すビットを type 型として再解釈する. "CCast" Cにおける型変換の動作をエミュレートする "ConversionCast" val を type 型に変換する - デフォルトの変換メソッドは"ConversionCast"である.
- Cast[val,type,"BitCast"]は,あたかも val がメモリに書き込まれていて type として読み戻されるかのように動作する.bitcastの入力型は出力型と同じメモリサイズでなければならない.
- Cast[val,type,"CCast"]は数型しかサポートしない.
- Cast[val,type,"ConversionCast"]は,エラーとなって失敗する.
例題
すべて開く すべて閉じる例 (2)
コンパイルされた関数で"Integer64"の型を"Real64"に変換する:
cf = FunctionCompile[Function[Typed[arg, "Integer64"],
Cast[arg, "Real64"]
]]cf[2]他のコンパイルされた関数での使用に適するように式をパックアレーに型変換する:
cf = FunctionCompile[Function[Typed[arg, "InertExpression"],
Reverse[Cast[arg, "PackedArray"::["Real64", 1]]]
]]cf[{1, 2, 3}]cf["test"]スコープ (2)
cf = FunctionCompile[Function[{},
Module[{ptr, res},
ptr = LibraryFunction["malloc"][Typed[1, "UnsignedInteger64"]];
res = Cast[ptr, "UnsignedInteger64", "BitCast"];
LibraryFunction["free"][ptr];
res
]
]]cf[]cf = FunctionCompile[Function[Typed[arg, "Integer64"], Cast[arg, "Integer32", "CCast"]]]cf[100]Cにおけるように,"CCast"法は数値オーバーフローをチェックしない:
cf[2 ^ 32]考えられる問題 (1)
デフォルトの型変換法である"ConversionCast"は大きい型から小さい型への変換は今のところサポートしていない:
cf = FunctionCompile[Function[Typed[arg, "Integer64"], Cast[arg, "Integer32"]]]cf = FunctionCompile[Function[Typed[arg, "Integer64"], Cast[arg, "Integer32", "CCast"]]]しかし,"CCast"は数値オーバーフローはチェックしない:
cf[2 ^ 32]テキスト
Wolfram Research (2022), Cast, Wolfram言語関数, https://reference.wolfram.com/language/ref/Cast.html.
CMS
Wolfram Language. 2022. "Cast." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Cast.html.
APA
Wolfram Language. (2022). Cast. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Cast.html
BibTeX
@misc{reference.wolfram_2026_cast, author="Wolfram Research", title="{Cast}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/Cast.html}", note=[Accessed: 12-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cast, organization={Wolfram Research}, title={Cast}, year={2022}, url={https://reference.wolfram.com/language/ref/Cast.html}, note=[Accessed: 12-September-2026]}