[Mathematica] : Method to import C-Code to Expressions

In summary, the individual is looking for a way to import an old, complex C code generated from Mathematica back into Mathematica automatically. They have attempted to do so manually with the StringReplace function but have encountered issues. They are wondering if there is a package or method that can help with this task and if Mathematica is able to import or convert C code. They have also shared a potential solution using the ToExpression function and replacing "pow" with "Power."
  • #1
Hepth
Gold Member
464
40
I have some ugly c-code that was generated from Mathematica in years past with CForm, and looks like :

Code:
(PolyLog (2,(-1 + t)*pow (-1 + q2h,-1))*pow (q2h - t,-1)*pow (-1 + \
t,-1)*
     (-8*pow (q2h,3)*pow (t,2) + pow (q2h,4)*(1 + pow (t,2)) - 
       8*q2h*pow (t,3)*(-3 + 8*t - 5*pow (t,2) + pow (t,3)) + 
       pow (q2h,2)*pow (t,2)*(-13 + 40*t - 16*pow (t,2) + pow (t,4)) + 
       pow (t,4)*(-10 + 24*t - 13*pow (t,2) + pow (t,4)))*
     pow (q2h - pow (t,2),-3))/8. - 
  (PolyLog (2,-((q2h - t)*(q2h + (-1 + 2*ctf)*t)*pow (ctf,-1)*pow \
(t,-2))/2.)*
     pow (q2h - t,-1)*pow (-1 + t,-1)*
     (-8*pow (q2h,3)*pow (t,2) + pow (q2h,4)*(1 + pow (t,2)) - 
       8*q2h*pow (t,3)*(-3 + 8*t - 5*pow (t,2) + pow (t,3)) + 
       pow (q2h,2)*pow (t,2)*(-13 + 40*t - 16*pow (t,2) + pow (t,4)) + 
       pow (t,4)*(-10 + 24*t - 13*pow (t,2) + pow (t,4)))*
     pow (q2h - pow (t,2),-3))/8.

I would like to import this back into Mathematica in an automatic way, as the true expressions are many pages long.

I tried by hand with things like : StringReplace[%, {"pow(t," ~~ Shortest[b__] ~~ ")" :> "Power[t," ~~ b ~~ "]"}];

but it gets ugly, and sometimes makes mistakes.

Is there a package or method that exists that would let me do this? Can Mathematica import C code at all, or convert it if its simple (like this)?

Thanks!
-Hepth
 
Physics news on Phys.org
  • #2
Your string has issues; check out for backslashes (and maybe dots, if you don't want inexact numerics), for example

Once done, try this:

ToExpression[string, TraditionalForm, HoldComplete] /. pow -> Power

Worked OK for me.
 

Related to [Mathematica] : Method to import C-Code to Expressions

1. How can I import C-Code into Mathematica?

To import C-Code into Mathematica, you can use the Import function and specify the file path to the C-Code file. You can also use ImportString to directly paste the C-Code into Mathematica.

2. Can I convert C-Code into Mathematica expressions?

Yes, you can convert C-Code into Mathematica expressions using the ToExpression function. However, note that this method may not work for all C-Code and may require some manual modifications.

3. Is there a specific format for the C-Code that can be imported into Mathematica?

Yes, the C-Code must be in a valid Mathematica syntax format for it to be successfully imported. This means that it must be written using Mathematica functions and operators, rather than C syntax.

4. Can I use C-Code imported into Mathematica for calculations?

Yes, you can use C-Code imported into Mathematica for calculations by converting it into Mathematica expressions. However, note that the performance may not be as efficient as using built-in Mathematica functions.

5. Are there any limitations in importing C-Code into Mathematica?

Yes, there are some limitations when importing C-Code into Mathematica. For example, certain C-Code features or functions may not be supported by Mathematica, or the import may not be successful if the C-Code is too complex or not in a valid Mathematica syntax format.

Similar threads

  • Special and General Relativity
Replies
11
Views
321
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
331
  • Programming and Computer Science
Replies
1
Views
670
  • Programming and Computer Science
Replies
4
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
Replies
10
Views
1K
  • Programming and Computer Science
Replies
8
Views
3K
  • Programming and Computer Science
Replies
1
Views
1K
  • Programming and Computer Science
Replies
5
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
0
Views
2K
Back
Top