I'm trying to use Mathematica for building complex derivatives for my Fortran code. Therefore I have to do some wild string replacements to make that work. Anyway, I got quite far already but now it would come in handy if I could automatically overwrite let's say the Power method.
What I want is that Mathematica should replace e.g. x^(1/4) with x**z14 on FortranForm. What does work is this:
i=1; j=4; Unprotect[Power]; Power /: Format[Power[x_, i/j], FortranForm]:=x^ToExpression["z" <> ToString[i] <> ToString[j]] Protect[Power]; ToString[Power[x, i/j], FortranForm] This will give x**z14 as expected.
If I try to automate the process for more fractions
Unprotect[Power]; For[i = 1, i <= 9, i++, For[j = 1, j <= 9, j++, If[j > 1 && j != i && Mod[i, j] != 0, Power /: Format[Power[x_, i/j], FortranForm]:=x^ToExpression["z"<> ToString[i] <> ToString[j]]; ,Null ] ] ] Protect[Power]; ToString[Power[x, i/j], FortranForm] I get x**z1010 instead?
Can anyone help me and tell me what I'm doing wrong? Or is this even possible?
Thanks!