def test_np_bool_handling(ctx_factory): import pymbolic.primitives as p from loopy.symbolic import parse ctx = ctx_factory() queue = cl.CommandQueue(ctx) knl = lp.make_kernel( "{:}", [lp.Assignment(parse("y"), p.LogicalNot(np.bool_(False)))], [lp.GlobalArg("y", dtype=np.bool_, shape=lp.auto)]) evt, (out, ) = knl(queue) assert out.get().item() is True
def parse_prefix(self, pstate, min_precedence=0): from pymbolic.parser import _PREC_UNARY import pymbolic.primitives as primitives pstate.expect_not_end() if pstate.is_next(_not): pstate.advance() return primitives.LogicalNot( self.parse_expression(pstate, _PREC_UNARY)) else: return ExpressionParserBase.parse_prefix(self, pstate)
def _expression_logicalnot(expr, ctx): return p.LogicalNot(tuple([expression(c, ctx) for c in expr.children]))