Repository navigation
Add list_transform - #10454
Add list_transform#10454mhk197 wants to merge 2 commits into
list_transform#10454Conversation
Merging this PR will degrade performance by 3.27%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | threshold_neon[80] |
5.1 µs | 8.2 µs | -38.31% |
| ❌ | WallTime | threshold_neon[64] |
4.5 µs | 6.1 µs | -26.19% |
| ❌ | WallTime | threshold_neon[8] |
3.8 µs | 4.4 µs | -14.77% |
| ❌ | Simulation | sum_v2_i64 |
194.6 µs | 224.8 µs | -13.44% |
| ❌ | Simulation | sum_i64 |
194.8 µs | 224.7 µs | -13.31% |
| ❌ | WallTime | starts_with_avx512[8, VarBin] |
40.8 µs | 46.2 µs | -11.75% |
| ❌ | WallTime | filter_neon[64] |
3.1 µs | 3.5 µs | -10.57% |
| ⚡ |
Simulation | decode_primitives[i64, (1000, 32)] |
38.6 µs | 24 µs | +60.63% |
| ⚡ | WallTime | threshold_avx2[8] |
2.4 µs | 1.9 µs | +23% |
| ⚡ |
Simulation | random_i128[0.01] |
7.3 µs | 6.2 µs | +17.58% |
| ⚡ | WallTime | threshold_avx2[64] |
3.4 µs | 3 µs | +12.83% |
| ⚡ | WallTime | threshold_avx2[80] |
3.7 µs | 3.3 µs | +11.31% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing mk/list-transform-fn (1d13ace) with mk/lambda-expressions (78ce193)1
Footnotes
ed39ac3 to
c96744d
Compare
c96744d to
1320f65
Compare
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
1320f65 to
1d13ace
Compare
Summary
list_transform(list, (x[, i]) -> body)applies a lambda to every element of aList,ListVieworFixedSizeList, keeping each list's length and validity.iis the element's zero-basedu64index within its list.ListTransformis the first higher-order function. Itslambda_paramsgives the element and, optionally, its index, and its options hold the bound lambda.takeover aPiecewiseSequenceof parent rows, and evaluates the lambda over the elements. A body that can fail skips elements hidden under null lists.ListstaysList,FixedSizeListkeeps its width, andListViewis rebuilt so it is zero-copyable toList.Testing
cargo clippy -p vortex-array --all-targets --all-features -- -D warningscargo nextest run -p vortex-arraycargo test --doc -p vortex-arraycargo +nightly-2026-09-10 fmt -p vortex-array