From 64b4f58d0f6a4a57cf8e07a41386bb224ed9ca4a Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Wed, 11 Apr 2012 09:02:42 +0200 Subject: Calculation.m: Give derivative calculations slightly better names --- Tools/CodeGen/Calculation.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Tools/CodeGen') 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]; -- cgit v1.2.3