Mathematica Mathematica Experts: Convert Expression to C++ Code

  • Thread starter Thread starter LordV
  • Start date Start date
  • Tags Tags
    Mathematica
Click For Summary
The discussion centers around converting a complex mathematical expression from Mathematica to C++ code. The user seeks a method to automatically transform terms like y[0]^5 into the C++ format pow(y[0],5) without manual intervention due to the expression's size. They mention using CForm to facilitate the conversion but note that it alters the brackets from square to round. The user found a workaround by applying a replacement to the output string after using CForm, but they express a desire for a more elegant solution. The conversation highlights the challenges of translating mathematical notation between programming languages while maintaining the correct syntax.
LordV
Messages
7
Reaction score
0
Hi all,

here is a question for mathematica experts(or not :smile:)

I have an expression of the form:

-6615. y[0] + 282.72 y[0]^3 + 1.3244 y[0]^5 - 0.002624 y[0]^7 -
178.28 y[1] + 152.912 y[0]^2 y[1]-((1309.5 y[0]^3 y[1]^4)/(y[0]^2 + y[1]^2)^4)...

and I want to transfer this expression to my C++ code.

I need a way to transform for example this: y[0]^5(and anything similar) into this pow(y[0],5) to copy and paste in my code(I can't do it manual because the expression is quite large). Is it plausible?

thanks

PS. I tried CForm. It does a good work but it changes [ and ] to ( and ).
 
Physics news on Phys.org
Hmmm, I think I did it(although I am sure there is a more elegant way).
First I used
CForm[expresion] /. Power -> pow

and the I used the output as a string and I used:

StringReplace["output",{"y0" -> "y[0]", "y1" -> "y[1]", "y2" -> "y[2]", "y3" -> "y[3]"}]
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K