Kotlin / multik

Multidimensional array library for Kotlin
https://kotlin.github.io/multik/
Apache License 2.0
632 stars 39 forks source link

add `pad` function #125

Closed devcrocod closed 1 year ago

devcrocod commented 1 year ago

example for d2array:

fun createLong2DArray(data: List<List<Int>>, paddingIdx: Int = 0): MultiArray<Long, D2> {
        require(data.isNotEmpty())

        val paddingIdxLong = paddingIdx.toLong()
        val maxLength = data.maxOf { it.size }

        val paddedData = LongArray(data.size * maxLength) { idx ->
            val sequenceIdx = idx / maxLength
            val elementIdx = idx % maxLength

            if (elementIdx < data[sequenceIdx].size) {
                data[sequenceIdx][elementIdx].toLong()
            } else {
                paddingIdxLong
            }
        }
        return Multik.ndarray(paddedData, data.size, maxLength)
}