koblas

F64SparseVector

@Serializable
@SerialName(value = "F64SparseVector")
class F64SparseVector : F64VectorView(source)

Indices are strictly ascending and in range, validated by the constructor; of sorts and sums instead.

Use copyIndices or com.eignex.koblas.forEachStored for safe structural access. indices is a live zero-copy escape hatch for specialized kernels and requires UnsafeKoblasApi; mutating it can invalidate the sparse structure. values remains live so coefficients can be updated without changing the sparse pattern.

Types

Link copied to clipboard
object Companion

Factories for sparse vectors.

Properties

indices

size

open override val size: Int(source)

values

Functions

copyIndices

A copy of the stored positions, in strictly ascending order.

equals

open operator override fun equals(other: Any?): Boolean(source)

get

open operator override fun get(i: Int): Double(source)

The stored value at (i), or 0.0 where nothing is stored.

hashCode

open override fun hashCode(): Int(source)

toDoubleArray

open override fun toDoubleArray(): DoubleArray(source)

Materialise into a fresh dense DoubleArray, independent of the internal storage.

toString

open override fun toString(): String(source)
Link copied to clipboard

Sum of absolute values (BLAS dasum). Sparse vectors sum over stored entries only.

Link copied to clipboard

aT * b. Any sparse operand goes through F64SparseKernels, walking the stored entries only.

Link copied to clipboard
inline fun F64VectorLike.forEachStored(block: (i: Int, v: Double) -> Unit)

Visit each stored entry as (index, value), in ascending index order for any storage. A F64SparseVector may present numerical zeros as stored, and any other F64VectorLike has every index visited.

Link copied to clipboard

Index of the entry with maximal absolute value (BLAS idamax), -1 for a zero-length vector. Ties resolve to the lowest index, and a vector with no stored entries returns 0.

Link copied to clipboard

Euclidean norm (BLAS dnrm2). Rescales when the sum of squares would overflow or underflow, so any finite input gives the correct norm.