sparse

Types

SparseVector[A] = ref object
  N*: int32
  indices*: seq[int32]
  vals*: seq[A]
  Source Edit
SparseMatrixKind = enum
  CSR, CSC, COO
  Source Edit
SparseMatrixObj[A] = object
  kind*: SparseMatrixKind
  M*, N*, nnz*: int32
  rows*, cols*: seq[int32]
  vals*: seq[A]
  Source Edit
SparseMatrix[A] = ref SparseMatrixObj[A]
  Source Edit

Procs

proc len(v: SparseVector): int {...}{.inline.}
  Source Edit
proc nnz(v: SparseVector): int32 {...}{.inline.}
  Source Edit
proc rowLen(m: SparseMatrix): int32
  Source Edit
proc colLen(m: SparseMatrix): int32
  Source Edit
proc sparseVector[A](N: int32; indices: seq[int32]; vals: seq[A]): SparseVector[A]
  Source Edit
proc sparseMatrix[A: Scalar](kind: SparseMatrixKind; M, N, nnz: int32;
                           rows, cols: seq[int32]; vals: seq[A]): SparseMatrix[A]
  Source Edit
proc csr[A: Scalar](rows, cols: seq[int32]; vals: seq[A]; numCols: int32): SparseMatrix[A]
  Source Edit
proc csc[A: Scalar](rows, cols: seq[int32]; vals: seq[A]; numRows: int32): SparseMatrix[A]
  Source Edit
proc coo[A: Scalar](rows, cols: seq[int32]; vals: seq[A]; numRows, numCols: int32): SparseMatrix[
    A]
  Source Edit
proc dense[A](v: SparseVector[A]): Vector[A]
  Source Edit
proc dense[A](m: SparseMatrix[A]; order = colMajor): Matrix[A]
  Source Edit
proc `==`[A](v, w: SparseVector[A]): bool
  Source Edit
proc `==`[A](m, n: SparseMatrix[A]): bool
  Source Edit
proc `$`[A](v: SparseVector[A]): string
  Source Edit
proc `$`[A](m: SparseMatrix[A]): string
  Source Edit

Iterators

iterator items[A](v: SparseVector[A]): A
  Source Edit
iterator pairs[A](v: SparseVector[A]): tuple[key: int32, val: A]
  Source Edit
iterator nonzero[A](v: SparseVector[A]): tuple[key: int32, val: A]
  Source Edit
iterator items[A](m: SparseMatrix[A]): A
  Source Edit
iterator pairs[A](m: SparseMatrix[A]): tuple[key: (int32, int32), val: A]
  Source Edit
iterator nonzero[A](m: SparseMatrix[A]): tuple[key: (int32, int32), val: A]
  Source Edit