Multik 0.3.0 Help

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

initial

R

Starting accumulator value.

operation

(acc: R, T) -> R

Combines the accumulator with each element.

operation

(index: Int, acc: R, T) -> R

With flat index (1D arrays only).

operation

(index: IntArray, acc: R, T) -> R

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