toNDArray
From Iterable (1D)
inline fun <reified T : Number> Iterable<T>.toNDArray(): D1Array<T>
inline fun <reified T : Complex> Iterable<T>.toNDArray(): D1Array<T>
val a = listOf(1, 2, 3).toNDArray() // D1Array<Int>
val b = setOf(1.0, 2.0).toNDArray() // D1Array<Double>
From nested Lists (2D–4D)
inline fun <reified T : Number> List<List<T>>.toNDArray(): D2Array<T>
inline fun <reified T : Complex> List<List<T>>.toNDArray(): D2Array<T>
inline fun <reified T : Number> List<List<List<T>>>.toNDArray(): D3Array<T>
inline fun <reified T : Complex> List<List<List<T>>>.toNDArray(): D3Array<T>
inline fun <reified T : Number> List<List<List<List<T>>>>.toNDArray(): D4Array<T>
inline fun <reified T : Complex> List<List<List<List<T>>>>.toNDArray(): D4Array<T>
val m = listOf(listOf(1, 2), listOf(3, 4)).toNDArray() // D2Array<Int>
From Array of primitive arrays (2D)
fun Array<ByteArray>.toNDArray(): D2Array<Byte>
fun Array<ShortArray>.toNDArray(): D2Array<Short>
fun Array<IntArray>.toNDArray(): D2Array<Int>
fun Array<LongArray>.toNDArray(): D2Array<Long>
fun Array<FloatArray>.toNDArray(): D2Array<Float>
fun Array<DoubleArray>.toNDArray(): D2Array<Double>
val m = arrayOf(intArrayOf(1, 2), intArrayOf(3, 4)).toNDArray() // D2Array<Int>
28 February 2026