解決済み

MathematicaのCFormについて

  • 困ってます
  • 質問No.974384
  • 閲覧数224
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 13% (48/367)

MathematicaのCFormを使うと、
べき乗はPower、複素数はComplexといった感じで出力されますが、
私のCの環境ではPowerはpow、Complexはcomplex<double>に直さないと動きません。
CFormの出力がpowやcomplex<double>になるようにするにはどのような設定or操作をすればよいでしょうか?

現在、応急処置として
CForm[expr]/. {Power -> pow, ArcTan -> atan2, Sin -> sin, Cos -> cos}
としていますが、
このような操作でも正しい式が出力されているのでしょうか?
また、上記の操作ではComplexだけはなぜか書き換えできませんでした。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1

StringReplace[ToString[CForm[expr]], "Complex" -> "complex<double>"]

では流石に乱暴すぎでしょうか。

Power等は、mdefs.h(mathematica同梱)をインクルードすると使えます。
ただし、Complexは含まれていません。

ちなみに、私はmdefs.hを使わずに、自前のマクロで置き換えています。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ