aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2012-04-20 20:16:08 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2012-04-20 20:46:49 +0200
commit964e3fdecc4b32b2009aaf2a3c3d3aa6d2e55d66 (patch)
tree5bd735b0b6843be6102938920f00505023e18930 /Tools
parent12e066d5c56949f8eec876afcd0b70264721b8c3 (diff)
ScriptOutput.m: Align equations on '=' signs
Diffstat (limited to 'Tools')
-rw-r--r--Tools/CodeGen/ScriptOutput.m13
1 files changed, 9 insertions, 4 deletions
diff --git a/Tools/CodeGen/ScriptOutput.m b/Tools/CodeGen/ScriptOutput.m
index a20ca70..f4b9468 100644
--- a/Tools/CodeGen/ScriptOutput.m
+++ b/Tools/CodeGen/ScriptOutput.m
@@ -62,11 +62,17 @@ DefFn[
DefFn[
writeCalculation[calc_List] :=
beginEndBlock["calculation", lookup[calc, Name],
- Riffle[Map[writeExpression, lookup[calc, Equations]],"\n"],
+ writeExpression[lookup[calc, Equations]],
Indent -> True]];
-writeExpression[lhs_ -> rhs_] :=
- {writeExpression[lhs], " = ", writeExpression[rhs]};
+writeExpression[eqs:List[___Rule]] :=
+ Module[
+ {lhss = FlattenBlock/@writeExpression/@First/@eqs,
+ rhss = FlattenBlock/@writeExpression/@Last/@eqs,
+ maxlhs,lhss2},
+ maxlhs = Max[StringLength /@ lhss];
+ lhss2 = Map[#<>StringJoin[ConstantArray[" ",maxlhs-StringLength[#]]]<>" = "&, lhss];
+ Riffle[Thread[{lhss2,rhss}],"\n"]];
writeExpression[Tensor[T_, inds___]] :=
{ToString[T], writeExpression[{inds}]};
@@ -148,7 +154,6 @@ writeExpression[MatrixInverse[Tensor[t_,i_,j_]]] :=
* Minimise parentheses
* Wrap long lines
- * Align '=' signs
*)