CSharp へのコード変換に関する注意事項
|
説明
|
|
•
|
CodeGeneration/Details ヘルプページに記載されている関数の他に、次の Maple 関数が CodeGeneration[CSharp]: cat, ceil, floor および if (演算子)により認識されます。
|
•
|
通常、CodeGeneration[CSharp] が認識した数学関数は、System.Math ライブラリの関数に変換されます。さらに、Maple 定数 Pi は、System.Math の定数 Math.PI に変換されます。
|
•
|
CodeGeneration[CSharp] に与えるパラメータがプロシージャの場合、出力は他の CSharp プログラムで簡単に利用できるよう、クラス CodeGenerationClass に埋め込まれます。
|
•
|
双曲線三角関数については、System.Math に相当する関数がないため、CodeGeneration[CSharp] では指数関数を使って表わします。
|
•
|
CSharpには sign と signum に相当するものがないため、CodeGeneration[CSharp] では条件演算子を用いた表現に変換します。
|
•
|
mod、modp、mods の各関数は、全て CSharp の剰余記号 % を用いた表現に変換されます。
|
|
注意: 引数の値によっては、これらの関数の動作は % の動作と一致しない場合があります。
|
•
|
2 を超える指数を含む Maple 式は Math.Pow 関数に変換されるので、自動型推定システムは適切な型を推定できない場合もあります。
|
•
|
CodeGeneration[CSharp] は printf 文を Console.WriteLine 文に変換しますが、その際 printf の書式文字列に対して限られた解析しか行いません。従って、変換時に一部の書式命令(例えば、浮動小数の精度)は無視されます。
|
•
|
単精度と倍精度の浮動小数間の変換は行われません。precision=single のオプションを指定した場合、CodeGeneration[CSharp] により生成される System.Math コールの計算結果にはキャストを行う必要があります。
|
•
|
Maple の配列や rtable の範囲は、変換先の CSharp 配列の添え字が 0 から開始となるように調節されます。
|
•
|
Maple モジュールは CSharp クラスに変換され、モジュールのメンバーは静的なクラスメンバーに対応させられます。モジュールのエクスポートは CSharp クラスのパブリックメソッドやパブリックフィールドに変換され、モジュールの局所的な変数はプライベートメソッドやプライベートフィールドに変換されます。クラスメンバーは全て静的メンバーとなります。
|
タイプは全て System タイプ(例えば string ではなく System.String)で表されます。
|
|
Download Help Document
Was this information helpful?