diff --git a/Auxiliary/Grammars/kranc2.peg b/Auxiliary/Grammars/kranc2.peg index 706fa474..7c0ea401 100644 --- a/Auxiliary/Grammars/kranc2.peg +++ b/Auxiliary/Grammars/kranc2.peg @@ -27,7 +27,7 @@ fname = (a?sinh?|a?cosh?|a?tanh?|pow|exp|log|min|max|copysign|abs) func = {fname} \( ({expr}( , {expr})*|) \) neg = - value = {neg}?({rawc}|{rawmath}|{func}|{dtensor}|{tensor}|{number}|{ifexpr}|\( {expr} \)) -pow = {value}( \*\* {value}|) +pow = {neg}?{value}( \*\* {value}|) mulop = [*/%] mulimp = [ \t]*(?!-) mul = {pow}( {mulop} {pow}|{mulimp}{pow})* diff --git a/Tools/CodeGen/CodeGenSchedule.m b/Tools/CodeGen/CodeGenSchedule.m index f365cc8f..a4ee3412 100644 --- a/Tools/CodeGen/CodeGenSchedule.m +++ b/Tools/CodeGen/CodeGenSchedule.m @@ -106,6 +106,8 @@ "TAGS: " <> lookup[spec, Tags] <> "\n", ""], + (* BoundaryWithGhosts *) + (* InteriorBoundaryGhosts -> 7 options *) translateRegion[r_] := Switch[r, Everywhere, "Everywhere", Interior, "Interior", diff --git a/Tools/CodeGen/KrancScript.m b/Tools/CodeGen/KrancScript.m index 62c29272..33cee1b5 100644 --- a/Tools/CodeGen/KrancScript.m +++ b/Tools/CodeGen/KrancScript.m @@ -292,6 +292,8 @@ process["mul"[cs___, a_, "mulop"["/"], b_]] := process["mul"[cs,a]] / process[b]; process["mexpr"["expr"[ex1_],"expr"[ex2_]]] := ThrowError[ToString[InputForm[ex1]]<> " :: "<>ToString[InputForm[ex2]]]; +process["pow"["neg"[_],a_,b_]] := -process[a]^process[b]; +process["pow"["neg"[_],a_]] := -process[a]; process["pow"[a_,b_]] := process[a]^process[b]; process["pow"[a_]] := process[a];