diff --git a/Auxiliary/Cactus/SourceFiles/Kranc.hh b/Auxiliary/Cactus/SourceFiles/Kranc.hh index cd8421d7..5410f588 100644 --- a/Auxiliary/Cactus/SourceFiles/Kranc.hh +++ b/Auxiliary/Cactus/SourceFiles/Kranc.hh @@ -130,6 +130,15 @@ void AssertGroupStorage(cGH const * restrict const cctkGH, #define VanLeer(x, y) ((x) * (y) < 0 ? 0 : (Min3(2*fabs(x),2*fabs(y),0.5*(fabs(x)+fabs(y)))*Sign((x)+(y)))) #define StepFunction(x) ((x)>0) + +/********************************************************************* + * Macros used in Chemora expressions + *********************************************************************/ + +#define ChemoraOpEqual(a,b) ((a)==(b)) +#define ChemoraOpNotEqual(a,b) ((a)!=(b)) + + /********************************************************************* * Numerical constants not defined in C++ *********************************************************************/ diff --git a/Tools/CodeGen/Kranc.m b/Tools/CodeGen/Kranc.m index aecf8e99..b5da38a9 100644 --- a/Tools/CodeGen/Kranc.m +++ b/Tools/CodeGen/Kranc.m @@ -42,7 +42,6 @@ {GridFunctions, Shorthands, Equations, t, DeclarationIncludes, LoopPreIncludes, GroupImplementations, PartialDerivatives, NoSimplify, Boundary, Interior, InteriorNoSync, Where, AddToStencilWidth, -ChemoraContents, Everywhere, normal1, normal2, normal3, INV, SQR, CUB, QAD, dot, pow, exp, t, cctkOriginSpace1, cctkOriginSpace2, cctkOriginSpace3, dt, dx, dy, dz, idx, idy, idz, cctkLbnd1, cctkLbnd2, cctkLbnd3, @@ -168,11 +167,14 @@ CArray; ConditionExpression; -(* Chemora Symobls *) +(* Chemora Symbols *) -chemoraQuote; +{ ChemoraContents, -ChemoraNOffset; + ChemoraOpEqual, ChemoraOpNotEqual, + + chemoraQuote, + ChemoraNOffset }; EndPackage[]; diff --git a/Tools/CodeGen/KrancScript.m b/Tools/CodeGen/KrancScript.m index 07f11d02..4a09ce5b 100644 --- a/Tools/CodeGen/KrancScript.m +++ b/Tools/CodeGen/KrancScript.m @@ -246,9 +246,9 @@ process["coexpr"[v1_, "cmpop"[cmpop_], v2_]] := Module[ - { opMap = { "<" -> Less, "<=" -> LessEqual, - "==" -> Equal, "!=" -> Unequal, - ">=" -> GreaterEqual, ">" -> Greater }, + { opMap = { "<" -> Less, "<=" -> LessEqual, + "==" -> ChemoraOpEqual, "!=" -> ChemoraOpNotEqual, + ">=" -> GreaterEqual, ">" -> Greater }, mappedOp }, mappedOp = cmpop /. opMap; If[ StringQ[mappedOp],