Skip to content

Commit

Permalink
Calculation.m: Make SplitCalculation handle splitting over groups of …
Browse files Browse the repository at this point in the history
…variables
  • Loading branch information
ianhinder committed Apr 3, 2012
1 parent e11f056 commit 72a9875
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions Tools/CodeGen/Calculation.m
Expand Up @@ -127,14 +127,21 @@
DefFn[
SplitCalculation[calc_] :=
Module[
{splitBy = lookup[calc,SplitBy, {}]},
{splitBy = lookup[calc,SplitBy, {}],
oldName = lookup[calc,Name]},
If[splitBy === {},
{calc},
Table[partialCalculation[calc,
"_"<>StringReplace[ToString[var],{"["->"","]"->"",","->""}],
{},
{var}]~Join~{CachedVariables -> {(* var[[1]] *)}}, (* This is not general *)
{var, splitBy}]]]];
MapIndexed[
Function[
{var,i},
Module[
{nameSuffix, splitVars},
nameSuffix = If[ListQ[var],
ToString[i],
StringReplace[ToString[var],{"["->"","]"->"",","->""}]];
splitVars = If[ListQ[var], var, {var}];
partialCalculation[calc, "_"<>nameSuffix, {}, splitVars]]],
splitBy]]]];

End[];

Expand Down

0 comments on commit 72a9875

Please sign in to comment.