Describe the enhancement requested
Currently, calling the Take and Filter functions on a fixed-size list of primitive types will use the following algorithm:
- generate an array of child indices into the values array (for example, taking indices [1, 2] on a
fixed_size_list<T, 3> array will generate child indices [3, 4, 5, 6, 7, 8])
- call Take on the values array and the child indices
But, when the fixed-size list's value type is a fixed-width primitive type such as numbers or even fixed-size binary (example : a fixed-shape tensor), then we could simply Take or Filter directly on the values array, using the appropriate byte width. For example, filtering a fixed_size_list<int32, 3> can use the same algorithm as filtering a fixed_size_binary<12>. This should be much faster.
Component(s)
C++