aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-09-07 00:37:27 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-09-07 00:37:27 +0200
commitf217f44ed4571c741c020202b32a52b842dc02d4 (patch)
treeb6fc8bcb67537fc0be00fd09a28b274f3800da39
parentcb8e4c9039a14e9580305150c10a71094b92006a (diff)
KrancThorn.m: Process OpenCL differencing header in OpenCL.m
-rw-r--r--Tools/CodeGen/KrancThorn.m10
-rw-r--r--Tools/CodeGen/OpenCL.m8
2 files changed, 12 insertions, 6 deletions
diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m
index e42f904..d5c3697 100644
--- a/Tools/CodeGen/KrancThorn.m
+++ b/Tools/CodeGen/KrancThorn.m
@@ -29,7 +29,8 @@ BeginPackage["KrancThorn`", {"CodeGen`", "Thorn`",
"MapLookup`", "KrancGroups`", "Differencing`",
"CalculationFunction`", "Errors`", "Helpers`", "CactusBoundary`",
"KrancTensor`", "Param`", "Schedule`", "Interface`", "Kranc`", "Jacobian`",
- "ConservationCalculation`", "CaKernel`", "Calculation`", "ParamCheck`"}];
+ "ConservationCalculation`", "CaKernel`", "Calculation`", "ParamCheck`",
+ "OpenCL`"}];
CreateKrancThorn::usage = "Construct a Kranc thorn";
@@ -309,11 +310,8 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts:OptionsPattern[
"\n"},
{}],
diffHeader];
- diffHeader = If[OptionValue[UseOpenCL],
- "static const char* const differencing =\n" <>
- Stringify[diffHeader] <>
- ";\n",
- diffHeader];
+
+ If[OptionValue[UseOpenCL], diffHeader = OpenCLProcessDifferencingHeader[diffHeader]];
(* Add the predefinitions into the calcs *)
calcs = Map[Join[#, {PreDefinitions -> pDefs}] &, calcs];
diff --git a/Tools/CodeGen/OpenCL.m b/Tools/CodeGen/OpenCL.m
index 528228f..b7cf3c5 100644
--- a/Tools/CodeGen/OpenCL.m
+++ b/Tools/CodeGen/OpenCL.m
@@ -26,6 +26,7 @@ OpenCLEpilogue;
OpenCLProcessKernel;
OpenCLIncludeFiles;
OpenCLConfigurationCCL;
+OpenCLProcessDifferencingHeader;
Begin["`Private`"];
@@ -73,6 +74,13 @@ DefFn[
OpenCLConfigurationCCL[] :=
"REQUIRES OpenCL OpenCLRunTime\n"];
+DefFn[
+ OpenCLProcessDifferencingHeader[diffHeader_] :=
+ "static const char* const differencing =\n" <>
+ Stringify[diffHeader] <>
+ ";\n"];
+
+
End[];
EndPackage[];