scan
Returns an array of successive accumulation values starting from the initial value, applying the operation to each element from left to right. The result contains the initial value followed by all intermediate accumulated values.
Signatures
inline fun <T, D : Dimension, reified R : Any> MultiArray<T, D>.scan(
initial: R,
operation: (acc: R, T) -> R
): NDArray<R, D>
inline fun <T, reified R : Any> MultiArray<T, D1>.scanIndexed(
initial: R,
operation: (index: Int, acc: R, T) -> R
): D1Array<R>
inline fun <T, D : Dimension, reified R : Any> MultiArray<T, D>.scanMultiIndexed(
initial: R,
operation: (index: IntArray, acc: R, T) -> R
): NDArray<R, D>
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Starting accumulator value. |
|
| Combines the accumulator with each element. |
|
| With flat index (1D arrays only). |
|
| With multi-dimensional index. |
Returns: NDArray<R, D> containing successive accumulation values.
Example
val a = mk.ndarray(mk[1, 2, 3, 4])
a.scan(0) { acc, v -> acc + v }
// [0, 1, 3, 6, 10] — cumulative sum with initial 0
28 February 2026