luisquintanilla commented on issue #375:
URL: https://github.com/apache/arrow-dotnet/issues/375#issuecomment-4775374301

   ## Roadmap: incremental compute kernels
   
   A concrete, incremental plan so these land in small, reviewable slices 
instead of one large change.
   
   **Slice 1 (open as #379): aggregation kernels.** `Sum`/`Min`/`Max`/`Mean` 
over `PrimitiveArray<T>`:
   
   - Generic `INumber<T>` surface on net8.0+ that dispatches to 
`System.Numerics.Tensors` (`TensorPrimitives`) on the null-free fast path, with 
a validity-aware scalar loop when nulls are present.
   - Per-type scalar fallback 
(`Int32Array`/`Int64Array`/`FloatArray`/`DoubleArray`) on 
netstandard2.0/net462, so the package multi-targets 
`netstandard2.0;net8.0;net462` like `Apache.Arrow`.
   - LINQ-style null semantics; BenchmarkDotNet coverage (SIMD `Sum` ~6-7x a 
naive loop at 1M elements, zero allocation).
   
   **Possible follow-on slices (each its own focused PR):**
   
   1. **Extend the aggregation surface** - `ArgMin`/`ArgMax`, `IArrowArray` 
overloads, and an explicit null-handling option (skip vs. propagate). These 
ideas come from @mobiusklein's work in #254 / #257 and would be credited 
accordingly.
   2. **Elementwise kernels** - `Add`/`Subtract`/`Multiply`/`Divide` producing 
a new `PrimitiveArray<T>`, same fast-path/fallback split.
   3. **`Tensor<T>` / `TensorSpan<T>` interop** - a thin wrapper exposing an 
Arrow numeric buffer as a `TensorSpan<T>` on net8.0+ without copying where 
layout allows.
   
   The broader operations surface (selection/filter/take, comparison, casting, 
formatting) is already being explored by @mobiusklein in #254 and #257 and is 
complementary to these kernels. On naming, a dedicated `Apache.Arrow.Compute` 
project (mirroring `arrow::compute` / `pyarrow.compute`) keeps these separate 
from the existing `Apache.Arrow.Operations` project, which currently holds the 
Arrow Variant binary-format codecs.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to