gpuZipWith (Function)
Signature: gpuZipWith(a: GpuBuffer<int8> | GpuBuffer<int16> | GpuBuffer<int32> | GpuBuffer<int> | GpuBuffer<uint8> | GpuBuffer<uint16> | GpuBuffer<uint32> | GpuBuffer<float16> | GpuBuffer<float32> | GpuBuffer<float> | GpuBuffer<bool>, b: GpuBuffer<t1>, kernel: (t0, t1) -> t2) -> Result<GpuBuffer<t2>, Error>
Description: Combines two buffers elementwise with a pure binary kernel. The result takes the shorter operand's length. Allocation, dispatch or synchronization failure returns Error with its reason.
Parameters
- a (
GpuBuffer<int8> | GpuBuffer<int16> | GpuBuffer<int32> | GpuBuffer<int> | GpuBuffer<uint8> | GpuBuffer<uint16> | GpuBuffer<uint32> | GpuBuffer<float16> | GpuBuffer<float32> | GpuBuffer<float> | GpuBuffer<bool>): The left buffer - b (
GpuBuffer<t1>): The right buffer - kernel (
(t0, t1) -> t2): The pure (a, b) element function
Returns: Result<GpuBuffer<t2>, Error>
Example
match toGpu([2, 3]) {
Success { value } => { let a = value
match toGpu([4, 5]) {
Success { value } => { let b = value
match gpuZipWith(a, b, wrapMul) {
Success { value } => match gpuGet(value, 1) {
Success { value } => print(value)
Error { message } => print(message)
}
Error { message } => print(message)
}
}
Error { message } => print(message)
}
}
Error { message } => print(message)
}