hanzo-ml 0.10.2

Minimalist ML framework.
Documentation
#version 450
// Elementwise compare -> u32 {0,1}. op: 0=Eq 1=Ne 2=Le 3=Ge 4=Lt 5=Gt (hanzo-ml CmpOp order).
layout(local_size_x = 64) in;
layout(set = 0, binding = 0) readonly  buffer A   { float a[]; };
layout(set = 0, binding = 1) readonly  buffer B   { float b[]; };
layout(set = 0, binding = 2) writeonly buffer Out { uint o[]; };
layout(push_constant) uniform Pc { uint n; uint op; };
void main() {
    uint i = gl_GlobalInvocationID.x;
    if (i >= n) { return; }
    float x = a[i];
    float y = b[i];
    bool r;
    if      (op == 0u) { r = x == y; }
    else if (op == 1u) { r = x != y; }
    else if (op == 2u) { r = x <= y; }
    else if (op == 3u) { r = x >= y; }
    else if (op == 4u) { r = x <  y; }
    else               { r = x >  y; }
    o[i] = r ? 1u : 0u;
}