AdamNiederer / faster

SIMD for humans
Mozilla Public License 2.0
1.56k stars 51 forks source link

Indexing into an array / lookup table (lut)? #70

Open fzyzcjy opened 3 years ago

fzyzcjy commented 3 years ago

Hi thanks for the lib! My usage needs to index into an array based on a value. Shortly speaking, it is doing something like:

for x in 0..width {
  let a = array_one[x+42] - array_one[x-42]; //???
  let b = ...some arthi op on `a` which I know faster can do...
  let c = array_two[b]; //???
}

Question: How can I parallalize the array indexing operation? There do exist SIMD intrinsics for such lut(lookup table) operations. I have used OpenCV's universal intrinsics in C++, and it did provide one: https://docs.opencv.org/4.5.3/df/d91/group__core__hal__intrin.html#ga37fe7c336a68ae5f48967a066473a4ff