Module Uop.O
a + b is alu_binary with Ops.t.Add.
a * b is alu_binary with Ops.t.Mul.
a - b is alu_binary with Ops.t.Sub.
a / b is alu_binary with Ops.t.Fdiv, matching tinygrad's true-division shorthand.
a // b is alu_binary with Ops.t.Floordiv, matching tinygrad's floor-division shorthand.
a mod b is alu_binary with Ops.t.Floormod.
a < b is alu_binary with Ops.t.Cmplt.
cdiv a b is alu_binary with Ops.t.Cdiv, the truncating C-style division op.
cmod a b is alu_binary with Ops.t.Cmod, the truncating C-style remainder op.
floordiv a b is alu_binary with Ops.t.Floordiv.
floormod a b is alu_binary with Ops.t.Floormod.
ne a b is alu_binary with Ops.t.Cmpne.
where c t e is alu_ternary with Ops.t.Where.
not_ a is ne a (const_bool true), matching tinygrad's logical-not UOp form after boolean casting.
cast dt a is Uop.cast with ~src:a ~dtype:dt; argument order is swapped for point-free use.
val int_ : int -> tint_ n is Uop.const_int.
val float_ : float -> tfloat_ x is Uop.const_float.
val bool_ : bool -> tbool_ b is Uop.const_bool.