提交 0601a868 authored 作者: James Bergstra's avatar James Bergstra

added c implementations for scalar logical comparisons

上级 567ef16c
...@@ -378,6 +378,8 @@ class LT(LogicalComparison): ...@@ -378,6 +378,8 @@ class LT(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x < y return x < y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s < %(y)s);" % locals()
lt = LT() lt = LT()
class GT(LogicalComparison): class GT(LogicalComparison):
...@@ -386,6 +388,8 @@ class GT(LogicalComparison): ...@@ -386,6 +388,8 @@ class GT(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x > y return x > y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s > %(y)s);" % locals()
gt = GT() gt = GT()
class LE(LogicalComparison): class LE(LogicalComparison):
...@@ -394,6 +398,8 @@ class LE(LogicalComparison): ...@@ -394,6 +398,8 @@ class LE(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x <= y return x <= y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s <= %(y)s);" % locals()
le = LE() le = LE()
class GE(LogicalComparison): class GE(LogicalComparison):
...@@ -402,6 +408,8 @@ class GE(LogicalComparison): ...@@ -402,6 +408,8 @@ class GE(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x >= y return x >= y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s >= %(y)s);" % locals()
ge = GE() ge = GE()
class EQ(LogicalComparison): class EQ(LogicalComparison):
...@@ -410,6 +418,8 @@ class EQ(LogicalComparison): ...@@ -410,6 +418,8 @@ class EQ(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x == y return x == y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s == %(y)s);" % locals()
eq = EQ() eq = EQ()
class NEQ(LogicalComparison): class NEQ(LogicalComparison):
...@@ -418,6 +428,8 @@ class NEQ(LogicalComparison): ...@@ -418,6 +428,8 @@ class NEQ(LogicalComparison):
associative = False associative = False
def impl(self, x, y): def impl(self, x, y):
return x != y return x != y
def c_code(self, node, name, (x, y), (z, ), sub):
return "%(z)s = (%(x)s != %(y)s);" % locals()
neq = NEQ() neq = NEQ()
class InRange(LogicalComparison): class InRange(LogicalComparison):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论