#[non_exhaustive]#[repr(u16)]pub enum BinaryCmpKind {
Eq = 0,
Ne = 1,
Gt = 2,
Ge = 3,
Lt = 4,
Le = 5,
}Expand description
Binary comparison op discriminant.
Stored as u16 in crate::KernelSku::op when
category == OpCategory::BinaryElementwise and the SKU is from the
comparison family — distinguished from BinaryKind because
the output dtype is fixed to u8 (PyTorch / NumPy convention: bool
stored as 1 byte, 0 = false, 1 = true) regardless of the input
element type.
Today only Self::Eq on f32 is wired — the Phase 3 comparison
trailblazer. The other variants are reserved discriminants for the
fanout sessions.
Why a separate enum (rather than reusing BinaryKind): the
dispatch shape differs — these ops produce a different dtype than
they consume, so they need their own Plan type
(BinaryCmpPlan<T, N> with TensorMut<u8> output) instead of
BinaryPlan<T, N> with TensorMut<T> output. The reserved Eq /
Ne / Gt / Ge / Lt / Le slots in BinaryKind are vestigial — they
will never be wired into the same-dtype binary path.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Eq = 0
y = (a == b) — elementwise equality. Trailblazer SKU.
Ne = 1
y = (a != b).
Gt = 2
y = (a > b).
Ge = 3
y = (a >= b).
Lt = 4
y = (a < b).
Le = 5
y = (a <= b).
Trait Implementations§
Source§impl Clone for BinaryCmpKind
impl Clone for BinaryCmpKind
Source§fn clone(&self) -> BinaryCmpKind
fn clone(&self) -> BinaryCmpKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BinaryCmpKind
Source§impl Debug for BinaryCmpKind
impl Debug for BinaryCmpKind
impl Eq for BinaryCmpKind
Source§impl Hash for BinaryCmpKind
impl Hash for BinaryCmpKind
Source§impl PartialEq for BinaryCmpKind
impl PartialEq for BinaryCmpKind
Source§fn eq(&self, other: &BinaryCmpKind) -> bool
fn eq(&self, other: &BinaryCmpKind) -> bool
self and other values to be equal, and is used by ==.