also I have a coroutines/threading question, what ...
# getting-started
b
also I have a coroutines/threading question, what would be the approach here if I wanted to parallelize:
Copy code
fun MatrixStore<Double>.kroneckerProduct(x: MatrixStore<Double>, y: MatrixStore<Double>): MatrixStore<Double> { 
    val iMax = x.countRows()
    val kMax = y.countRows()
    val jMax = x.countColumns()
    val lMax = y.countColumns()

    val newRows = iMax * kMax
    val newCols = jMax * lMax

    val store = MatrixStore.PRIMITIVE.makeZero(newRows.toInt(), newCols.toInt()).copy()
    var count:Long = 0

    (0 until iMax).forEach { i ->
        (0 until kMax).forEach { k ->
            (0 until jMax).forEach { j ->
                val xij = x.get(i,j)
                (0 until lMax).forEach { l ->
                    store[count] = xij*y.get(k,l)
                    count++
                }
            }
        }
    }

    return store.transpose()
}