diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-24 21:34:50 -0600 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-24 21:34:50 -0600 |
commit | 190a3c40cfb25a5926110c02fb072ed8e61f7616 (patch) | |
tree | 3edfc67150331979ce4dba6b7b9a194d1438ae09 /Tools/CodeGen | |
parent | f7e29b649efedae4e5693a70ce9e2322b5099ab1 (diff) |
Call CreateCalculationFunction for CaKernel source files
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r-- | Tools/CodeGen/CaKernel.m | 21 | ||||
-rw-r--r-- | Tools/CodeGen/KrancThorn.m | 2 |
2 files changed, 14 insertions, 9 deletions
diff --git a/Tools/CodeGen/CaKernel.m b/Tools/CodeGen/CaKernel.m index f33cf60..bc3456b 100644 --- a/Tools/CodeGen/CaKernel.m +++ b/Tools/CodeGen/CaKernel.m @@ -19,7 +19,7 @@ *) BeginPackage["CaKernel`", {"Errors`", "Helpers`", "Kranc`", "CodeGenCactus`", "MapLookup`", - "Calculation`", "CodeGen`"}]; + "Calculation`", "CodeGen`", "CalculationFunction`"}]; CaKernelCCL; CaKernelCode; @@ -71,15 +71,20 @@ DefFn[codeBlock[macro_String, contents:CodeGenBlock] := IndentBlock[{contents,"\n"}], macro<>"_End_s","\n"}]]; -DefFn[CaKernelCode[calc_List] := +DefFn[CaKernelCode[calc_List,opts___] := Module[ - {kernel = "CAKERNEL_"<>GetCalculationName[calc]}, - codeBlock[ - kernel, + {kernel = "CAKERNEL_"<>GetCalculationName[calc], calc2}, + + calc2 = Join[calc, {BodyFunction -> (codeBlock[kernel, #] &), + CallerFunction -> False, + LoopFunction -> (codeBlock[kernel<>"_Computations", #] &)}]; + + CreateCalculationFunction[calc2,opts]]]; + + (* codeBlock[ *) + (* kernel<>"_Computations", *) + (* Map[makeEquation[calc, #] &, GetEquations[calc]]]] *) - codeBlock[ - kernel<>"_Computations", - Map[makeEquation[calc, #] &, GetEquations[calc]]]]]]; DefFn[ makeEquation[calc_List, eq_Rule] := diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m index b287e68..24ff171 100644 --- a/Tools/CodeGen/KrancThorn.m +++ b/Tools/CodeGen/KrancThorn.m @@ -285,7 +285,7 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts:OptionsPattern[ calcSources = Map[CreateSetterSource[{#}, False, {}, opts] &, calcs]; calcFilenames = Map[lookup[#, Name] <> ext &, calcs], (* else *) - calcSources = Map[CaKernelCode, calcs]; + calcSources = Map[CaKernelCode[#,opts] &, calcs]; calcFilenames = Map[lookup[#, Name] <> ".code" &, calcs]]; (* Makefile *) |