Instance methods
abs(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourceabs(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourceabs(dst : Slice(UInt8), a : Slice(UInt8)) : Nil
Sourceabs(dst : Slice(Int8), a : Slice(Int8)) : Nil
Sourceabs(dst : Slice(UInt16), a : Slice(UInt16)) : Nil
Sourceabs(dst : Slice(Int16), a : Slice(Int16)) : Nil
Sourceabs(dst : Slice(UInt32), a : Slice(UInt32)) : Nil
Sourceabs(dst : Slice(Int32), a : Slice(Int32)) : Nil
Sourceabs(dst : Slice(UInt64), a : Slice(UInt64)) : Nil
Sourceabs(dst : Slice(Int64), a : Slice(Int64)) : Nil
Sourceadd(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32)) : Nil
Sourceadd(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64)) : Nil
Sourceadd(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourceadd(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Arithmetic - same bit operations
Sourceadd(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourceadd(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourceadd(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourceadd(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourceadd(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourceadd(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourceaxpby(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32), alpha : Float32, beta : Float32) : Nil
dst[i] = alpha * a[i] + beta * b[i]
Sourceaxpby(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64), alpha : Float64, beta : Float64) : Nil
Sourcebitwise_and(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcebitwise_and(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Bitwise - same bit operations
Sourcebitwise_and(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcebitwise_and(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcebitwise_and(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcebitwise_and(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcebitwise_and(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcebitwise_and(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourcebitwise_or(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcebitwise_or(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Sourcebitwise_or(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcebitwise_or(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcebitwise_or(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcebitwise_or(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcebitwise_or(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcebitwise_or(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourceblend(dst : Slice(UInt8), t : Slice(UInt8), f : Slice(UInt8), mask : Slice(UInt8)) : Nil
Sourceblend(dst : Slice(Int8), t : Slice(Int8), f : Slice(Int8), mask : Slice(UInt8)) : Nil
Sourcebswap(dst : Slice(UInt64), a : Slice(UInt64)) : Nil
Sourcebswap(dst : Slice(Int64), a : Slice(Int64)) : Nil
Sourcebswap(dst : Slice(UInt32), a : Slice(UInt32)) : Nil
Sourcebswap(dst : Slice(Int32), a : Slice(Int32)) : Nil
Sourcebswap(dst : Slice(UInt16), a : Slice(UInt16)) : Nil
Sourcebswap(dst : Slice(Int16), a : Slice(Int16)) : Nil
Sourceceil(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourceceil(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourceclamp(dst : Slice(Float32), a : Slice(Float32), lo : Float32, hi : Float32) : Nil
dst[i] = clamp(a[i], lo, hi)
Sourceclamp(dst : Slice(Float64), a : Slice(Float64), lo : Float64, hi : Float64) : Nil
Sourceclamp(dst : Slice(UInt64), a : Slice(UInt64), lo : UInt64, hi : UInt64) : Nil
Sourceclamp(dst : Slice(Int64), a : Slice(Int64), lo : Int64, hi : Int64) : Nil
Clamp needs signed comparison - abstract
Sourceclamp(dst : Slice(UInt32), a : Slice(UInt32), lo : UInt32, hi : UInt32) : Nil
Sourceclamp(dst : Slice(Int32), a : Slice(Int32), lo : Int32, hi : Int32) : Nil
Sourceclamp(dst : Slice(UInt16), a : Slice(UInt16), lo : UInt16, hi : UInt16) : Nil
Sourceclamp(dst : Slice(Int16), a : Slice(Int16), lo : Int16, hi : Int16) : Nil
Sourceclamp(dst : Slice(UInt8), a : Slice(UInt8), lo : UInt8, hi : UInt8) : Nil
Sourceclamp(dst : Slice(Int8), a : Slice(Int8), lo : Int8, hi : Int8) : Nil
Sourcecmp_eq(dst_mask : Slice(UInt8), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcecmp_ge(dst_mask : Slice(UInt8), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Float32), b : Slice(Float32)) : Nil
Writes an output mask byte per element: 0xFF if a[i] > b[i], else 0x00
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Float64), b : Slice(Float64)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Int64), b : Slice(Int64)) : Nil
Compare/mask - needs signed comparison
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcecmp_gt_mask(dst_mask : Slice(UInt8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourcecmp_le(dst_mask : Slice(UInt8), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcecmp_lt(dst_mask : Slice(UInt8), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcecmp_ne(dst_mask : Slice(UInt8), a : Slice(T), b : Slice(T)) : Nil forall T
Sourceconvert(dst : Slice(Float32), src : Slice(UInt8), scale : Float32) : Nil
UInt8 -> Float32 with scale
Sourceconvert(dst : Slice(Float32), src : Slice(Int16)) : Nil
Sourceconvert(dst : Slice(Float64), src : Slice(Int32)) : Nil
Sourceconvert(dst : Slice(Float64), src : Slice(Int16)) : Nil
Sourceconvert(dst : Slice(Float64), src : Slice(Float32)) : Nil
Float32 -> Float64 (widening)
Sourceconvert(dst : Slice(Float32), src : Slice(Float64)) : Nil
Float64 -> Float32 (narrowing)
Sourcecopy(dst : Slice(UInt8), src : Slice(UInt8)) : Nil
dst[i] = src[i] (may use wide loads/stores + prefetch)
Sourcediv(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32)) : Nil
Sourcediv(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64)) : Nil
Sourcedot(a : Slice(Float32), b : Slice(Float32)) : Float32
Returns dot(a,b) = sum(a[i] * b[i]) (can use FMA)
Sourcedot(a : Slice(Float64), b : Slice(Float64)) : Float64
Sourcefill(dst : Slice(UInt8), value : UInt8) : Nil
Set all bytes to value (memset-like)
Sourcefir(dst : Slice(Float32), src : Slice(Float32), coeff : Slice(Float32)) : Nil
1D FIR: dst[i] = sum_{k=0..taps-1} coeff[k] * src[i+k]
Sourcefir(dst : Slice(Float64), src : Slice(Float64), coeff : Slice(Float64)) : Nil
Sourcefloor(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourcefloor(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourcefma(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32), c : Slice(Float32)) : Nil
dst[i] = a[i] * b[i] + c[i] (FMA on capable backends)
Sourcefma(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64), c : Slice(Float64)) : Nil
Sourcemax(dst : Slice(T), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcemax(a : Slice(Float32)) : Float32
Sourcemax(a : Slice(Float64)) : Float64
Sourcemax(a : Slice(UInt64)) : UInt64
Sourcemax(a : Slice(Int64)) : Int64
Sourcemax(a : Slice(UInt32)) : UInt32
Sourcemax(a : Slice(Int32)) : Int32
Sourcemax(a : Slice(UInt16)) : UInt16
Sourcemax(a : Slice(Int16)) : Int16
Sourcemax(a : Slice(UInt8)) : UInt8
Sourcemax(a : Slice(Int8)) : Int8
Sourcemin(dst : Slice(T), a : Slice(T), b : Slice(T)) : Nil forall T
Sourcemin(a : Slice(Float32)) : Float32
Sourcemin(a : Slice(Float64)) : Float64
Sourcemin(a : Slice(UInt64)) : UInt64
Sourcemin(a : Slice(Int64)) : Int64
Sourcemin(a : Slice(UInt32)) : UInt32
Sourcemin(a : Slice(Int32)) : Int32
Sourcemin(a : Slice(UInt16)) : UInt16
Sourcemin(a : Slice(Int16)) : Int16
Sourcemin(a : Slice(UInt8)) : UInt8
Sourcemin(a : Slice(Int8)) : Int8
Sourcemul(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32)) : Nil
Sourcemul(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64)) : Nil
Sourcemul(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcemul(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Sourcemul(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcemul(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcemul(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcemul(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcemul(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcemul(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourceneg(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourceneg(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourceneg(dst : Slice(Int8), a : Slice(Int8)) : Nil
Sourceneg(dst : Slice(Int16), a : Slice(Int16)) : Nil
Sourceneg(dst : Slice(Int32), a : Slice(Int32)) : Nil
Sourceneg(dst : Slice(Int64), a : Slice(Int64)) : Nil
Sourcepopcount(a : Slice(UInt8)) : UInt64
popcount returns total bits set across slice
Sourceround(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourceround(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourcersqrt(dst : Slice(Float32), a : Slice(Float32)) : Nil
dst[i] = 1 / sqrt(a[i]) (fast approx on capable backends)
Sourcersqrt(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourcesqrt(dst : Slice(Float32), a : Slice(Float32)) : Nil
Sourcesqrt(dst : Slice(Float64), a : Slice(Float64)) : Nil
Sourcesub(dst : Slice(Float32), a : Slice(Float32), b : Slice(Float32)) : Nil
Sourcesub(dst : Slice(Float64), a : Slice(Float64), b : Slice(Float64)) : Nil
Sourcesub(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcesub(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Sourcesub(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcesub(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcesub(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcesub(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcesub(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcesub(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourcesum(a : Slice(Float32)) : Float32
Sourcesum(a : Slice(Float64)) : Float64
Sourcesum(a : Slice(UInt64)) : UInt64
Sourcesum(a : Slice(Int64)) : Int64
Reductions - sum same bits, max/min need signed comparison
Sourcesum(a : Slice(UInt32)) : UInt32
Sourcesum(a : Slice(Int32)) : Int32
Sourcesum(a : Slice(UInt16)) : UInt16
Sourcesum(a : Slice(Int16)) : Int16
Sourcesum(a : Slice(UInt8)) : UInt8
Sourcesum(a : Slice(Int8)) : Int8
Sourcexor(dst : Slice(UInt64), a : Slice(UInt64), b : Slice(UInt64)) : Nil
Sourcexor(dst : Slice(Int64), a : Slice(Int64), b : Slice(Int64)) : Nil
Sourcexor(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Sourcexor(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Sourcexor(dst : Slice(UInt16), a : Slice(UInt16), b : Slice(UInt16)) : Nil
Sourcexor(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Sourcexor(dst : Slice(UInt8), a : Slice(UInt8), b : Slice(UInt8)) : Nil
Sourcexor(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Sourcexor_block16(dst : Slice(UInt8), src : Slice(UInt8), key16 : StaticArray(UInt8, 16)) : Nil
XOR a stream with a 16-byte repeated block key
Source