diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-11 09:02:42 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-11 09:02:42 +0200 |
commit | 64b4f58d0f6a4a57cf8e07a41386bb224ed9ca4a (patch) | |
tree | 0009eb7da3ad630dc9a4ff838c866cc0189ac3cf /Tools/CodeGen | |
parent | 6bed8e74aac5bd1e76f2e7a4d8efcf166a60c6e6 (diff) |
Calculation.m: Give derivative calculations slightly better names
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r-- | Tools/CodeGen/Calculation.m | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Tools/CodeGen/Calculation.m b/Tools/CodeGen/Calculation.m index ef8625b..669e476 100644 --- a/Tools/CodeGen/Calculation.m +++ b/Tools/CodeGen/Calculation.m @@ -176,10 +176,14 @@ separateDerivativesInCalculation[calc_] := ThrowError["Separating derivatives in an automatically scheduled function is not supported"]]; Module[ - {derivGFName, derivs, sepDerivs, calc2, replaceSymmetric}, + {derivGFName, derivGFName2, derivs, sepDerivs, calc2, replaceSymmetric}, derivGFName[pd_[var_,inds___]] := Symbol["Global`D"<>ToString[pd]<>ToString[var]<>Apply[StringJoin,Map[ToString,{inds}]]]; + derivGFName2[pd_[var_,inds___]] := + "D"<>ToString[pd]<>ToString[var]<>"_"<>Apply[StringJoin,Map[ToString,{inds}]]; + + replaceSymmetric = pd_[var_,i_,j_] /; i > j :> pd[var,j,i]; derivs = DeleteDuplicates[GetDerivatives[calc] /. replaceSymmetric]; sepDerivs = Flatten[Map[Cases[derivs, #] &, sepPat],1]; @@ -191,7 +195,7 @@ separateDerivativesInCalculation[calc_] := Equations, {derivName -> sepDeriv}]; calc1 = mapReplace[calc1, Schedule, Map[#<>" before "<>lookup[calc,Name] &, lookup[calc,Schedule]]]; - calc1 = mapReplace[calc1, Name, lookup[calc,Name]<>"_"<>ToString@derivName]; + calc1 = mapReplace[calc1, Name, lookup[calc,Name]<>"_"<>derivGFName2[sepDeriv]]; currentGroups = lookup[calc, LocalGroups, {}]; localGroups = Append[currentGroups, {ToString@derivName<>"_group", {derivName}}]; calc1 = mapReplaceAdd[calc1, LocalGroups, localGroups]; |