Synopsis

module sparse: {
type t = i32
type~ csr [n] [m] = ?[nnz].{col_idx: [nnz]i64, dummy_m: [m](), dummy_n: [n](), row_off: [n]i64, vals: [nnz]i32}
type~ csc [n] [m] = ?[nnz].{col_idx: [nnz]i64, dummy_m: [n](), dummy_n: [m](), row_off: [m]i64, vals: [nnz]i32}
type msr [n] [m] = {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
type msc [n] [m] = {col_idx: [m]i64, dummy_m: [n](), vals: [m]i32}
module csrmodule cscmodule msrmodule msc}
module msr: {
type t = i32
type mat [n] [m] = {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val zero: (n: i64) -> (m: i64) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val eye: (n: i64) -> (m: i64) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val dense [n] [m]: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> [n][m]i32
val scale [n] [m]: (v: i32) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val sparse [nnz0]: (n: i64) -> (m: i64) -> (coo: [nnz0](i64, i64, i32)) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val nnz [n] [m]: (a: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> i64
val coo [n] [m]: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> ?[n₁₂].[n₁₂](i64, i64, i32)
val + [n] [m]: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val - [n] [m]: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val transpose [n] [m]: (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val smvm [n] [m]: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32} -> (v: [m]i32) -> [n]i32
}
val test_msr_eye : (n: i64) -> (m: i64) -> *[n][m]i32
val test_msr_sparse [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> *[n][m]i32
val test_msr_smvm [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> (v: *[m]i32) -> *[n]msr.t
val test_msr_nnz [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> i64
val test_msr_coo [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> ([]i64, []i64, []msr.t)
module msc: {
type t = i32
type mat [n] [m] = {col_idx: [m]i64, dummy_m: [n](), vals: [m]i32}
val zero: (n: i64) -> (m: i64) -> {col_idx: [m]i64, dummy_m: [n](), vals: [m]i32}
val scale [n] [m]: (v: i32) -> (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
val eye: (n: i64) -> (m: i64) -> {col_idx: [m]i64, dummy_m: [n](), vals: [m]i32}
val nnz [n] [m]: (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> i64
val coo [n] [m]: (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> ?[n₄].[n₄](i64, i64, i32)
val sparse [nnz]: (n: i64) -> (m: i64) -> (coo: [nnz](i64, i64, i32)) -> {col_idx: [m]i64, dummy_m: [n](), vals: [m]i32}
val dense [n] [m]: (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> [m][n]i32
val + [n₂] [m₃]: (x: {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}) -> (y: {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}) -> {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}
val - [n₂] [m₃]: (x: {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}) -> (y: {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}) -> {col_idx: [n₂]i64, dummy_m: [m₃](), vals: [n₂]i32}
val transpose [n] [m]: (mat: {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}) -> {col_idx: [n]i64, dummy_m: [m](), vals: [n]i32}
}
val test_msc_eye : (n: i64) -> (m: i64) -> *[n][m]i32
val test_msc_sparse [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> *[n][m]i32
val test_msc_nnz [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> i64
val test_msc_coo [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> ([]i64, []i64, []msc.t)
val test_msr_transpose [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> [][]msc.t
val test_msc_transpose [k] : (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> [][]msr.t

Description

module sparse
module msr
val test_msr_eye: (n: i64) -> (m: i64) -> *[n][m]i32
val test_msr_sparse [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> *[n][m]i32
val test_msr_smvm [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> (v: *[m]i32) -> *[n]msr.t
val test_msr_nnz [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> i64
val test_msr_coo [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> ([]i64, []i64, []msr.t)
module msc
val test_msc_eye: (n: i64) -> (m: i64) -> *[n][m]i32
val test_msc_sparse [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> *[n][m]i32
val test_msc_nnz [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> i64
val test_msc_coo [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> ([]i64, []i64, []msc.t)
val test_msr_transpose [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> [][]msc.t
val test_msc_transpose [k]: (n: i64) -> (m: i64) -> (xs: [k]i64) -> (ys: [k]i64) -> (vs: [k]i32) -> [][]msr.t