Skip to content

Commit

Permalink
Calculation.m: Give derivative calculations slightly better names
Browse files Browse the repository at this point in the history
  • Loading branch information
ianhinder committed Apr 11, 2012
1 parent 6bed8e7 commit 64b4f58
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions Tools/CodeGen/Calculation.m
Expand Up @@ -176,10 +176,14 @@
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];
Expand All @@ -191,7 +195,7 @@
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];
Expand Down

0 comments on commit 64b4f58

Please sign in to comment.