All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.org.danilopianini.symmetricmatrix.MutableUByteSymmetricMatrix.kt Maven / Gradle / Ivy

The newest version!
package org.danilopianini.symmetricmatrix

/**
 * A mutable symmetric matrix of unsigned bytes.
 */
class MutableUByteSymmetricMatrix(
    override val size: Int,
) : AbstractSymmetricMatrix(),
    MutableSymmetricMatrix {
    @OptIn(ExperimentalUnsignedTypes::class)
    private val data: UByteArray = UByteArray(size * (size + 1) / 2)

    @OptIn(ExperimentalUnsignedTypes::class)
    override operator fun get(
        i: Int,
        j: Int,
    ): UByte = data[indexOf(i, j)]

    @OptIn(ExperimentalUnsignedTypes::class)
    override operator fun set(
        i: Int,
        j: Int,
        value: UByte,
    ) {
        data[indexOf(i, j)] = value
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy