Matrix Operations#

COO Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_coomv

Perform event-driven COO sparse matrix-vector multiplication.

binary_coomv_p

Low-level XLA custom-kernel primitive for binary_coomv.

binary_coomm

Perform event-driven COO sparse matrix-matrix multiplication.

binary_coomm_p

Low-level XLA custom-kernel primitive for binary_coomm.

Float matrix-vector / matrix-matrix multiplication.

coomv

Perform COO sparse matrix-vector multiplication.

coomv_p

Low-level XLA custom-kernel primitive for coomv.

coomm

Perform COO sparse matrix-matrix multiplication.

coomm_p

Low-level XLA custom-kernel primitive for coomm.

Plasticity operations.

update_coo_on_binary_pre

Update synaptic weights in COO format driven by presynaptic spike events.

update_coo_on_binary_post

Update synaptic weights in COO format driven by postsynaptic spike events.

update_coo_on_binary_pre_p

Low-level XLA custom-kernel primitive for update_coo_on_binary_pre.

update_coo_on_binary_post_p

Low-level XLA custom-kernel primitive for update_coo_on_binary_post.

CSR Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_csrmv

Product of a CSR sparse matrix and a dense vector using event-driven (binary) computation.

binary_csrmv_p

Low-level XLA custom-kernel primitive for binary_csrmv.

binary_csrmm

Product of a CSR sparse matrix and a dense matrix using event-driven (binary) computation.

binary_csrmm_p

Low-level XLA custom-kernel primitive for binary_csrmm.

Float matrix-vector / matrix-matrix multiplication.

csrmv

Product of a CSR sparse matrix and a dense vector.

csrmv_p

Low-level XLA custom-kernel primitive for csrmv.

csrmm

Product of a CSR sparse matrix and a dense matrix.

csrmm_p

Low-level XLA custom-kernel primitive for csrmm.

csrmv_yw2y

Element-wise product of a vector and CSR weights, indexed by CSR structure.

csrmv_yw2y_p

Low-level XLA custom-kernel primitive for csrmv_yw2y.

Plasticity operations.

update_csr_on_binary_pre

Update CSR synaptic weights triggered by presynaptic binary spike events.

update_csr_on_binary_pre_p

Low-level XLA custom-kernel primitive for update_csr_on_binary_pre.

update_csr_on_binary_post

Update CSR synaptic weights triggered by postsynaptic binary spike events.

update_csr_on_binary_post_p

Low-level XLA custom-kernel primitive for update_csr_on_binary_post.

Sparse linear solver.

Row slicing.

csr_slice_rows

Extract selected rows from a CSR matrix as a dense submatrix.

csr_slice_rows_p

Low-level XLA custom-kernel primitive for csr_slice_rows.

Dense Operations#

Dense-matrix @ binary-vector / binary-matrix.

binary_densemv

Perform event-driven dense matrix-vector multiplication with binary spikes.

binary_densemv_p

Low-level XLA custom-kernel primitive for binary_densemv.

binary_densemm

Perform event-driven dense matrix-matrix multiplication with binary spikes.

binary_densemm_p

Low-level XLA custom-kernel primitive for binary_densemm.

Indexed binary operations.

Plasticity operations.

update_dense_on_binary_pre

Update synaptic weights based on presynaptic spike events and postsynaptic traces.

update_dense_on_binary_pre_p

Low-level XLA custom-kernel primitive for update_dense_on_binary_pre.

update_dense_on_binary_post

Update synaptic weights based on postsynaptic spike events and presynaptic traces.

update_dense_on_binary_post_p

Low-level XLA custom-kernel primitive for update_dense_on_binary_post.

JITC Scalar Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_jitsmv

Perform the \(y=M@v\) or \(y=M.T@v\) operation, where \(M\) is just-in-time randomly generated with a scalar weight at each position.

binary_jitsmv_p

Low-level XLA custom-kernel primitive for binary_jitsmv.

binary_jitsmm

Perform the \(y=M@B\) or \(y=M.T@B\) operation, where \(M\) is just-in-time randomly generated with a scalar weight at each position.

binary_jitsmm_p

Low-level XLA custom-kernel primitive for binary_jitsmm.

Float matrix-vector / matrix-matrix multiplication.

jits

Generate a homogeneous sparse random matrix on-the-fly.

jits_p

Low-level XLA custom-kernel primitive for jits.

jitsmv

Perform the \(y=M@v\) or \(y=M.T@v\) operation, where \(M\) is just-in-time randomly generated with a scalar weight at each position.

jitsmv_p

Low-level XLA custom-kernel primitive for jitsmv.

jitsmm

Perform the \(y=M@B\) or \(y=M.T@B\) operation, where \(M\) is just-in-time randomly generated with a scalar weight at each position.

jitsmm_p

Low-level XLA custom-kernel primitive for jitsmm.

JITC Normal Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_jitnmv

Event-driven matrix-vector multiplication with a JIT normal-distributed connectivity matrix.

binary_jitnmv_p

Low-level XLA custom-kernel primitive for binary_jitnmv.

binary_jitnmm(w_loc, w_scale, prob, B[, ...])

Event-driven matrix-matrix multiplication with a JIT normal-distributed connectivity matrix.

binary_jitnmm_p

Low-level XLA custom-kernel primitive for binary_jitnmm.

Float matrix-vector / matrix-matrix multiplication.

jitn

Materialise a JIT normally-distributed random connectivity matrix.

jitn_p

Low-level XLA custom-kernel primitive for jitn.

jitnmv

JIT normally-distributed matrix-vector product.

jitnmv_p

Low-level XLA custom-kernel primitive for jitnmv.

jitnmm

JIT normally-distributed matrix-matrix product.

jitnmm_p

Low-level XLA custom-kernel primitive for jitnmm.

JITC Uniform Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_jitumv

Event-driven matrix-vector product with a JIT uniform connectivity matrix.

binary_jitumv_p

Low-level XLA custom-kernel primitive for binary_jitumv.

binary_jitumm

Event-driven matrix-matrix product with a JIT uniform connectivity matrix.

binary_jitumm_p

Low-level XLA custom-kernel primitive for binary_jitumm.

Float matrix-vector / matrix-matrix multiplication.

jitu

Materialize a JIT uniform connectivity matrix as a dense array.

jitu_p

Low-level XLA custom-kernel primitive for jitu.

jitumv

Float matrix-vector product with a JIT uniform connectivity matrix.

jitumv_p

Low-level XLA custom-kernel primitive for jitumv.

jitumm

Float matrix-matrix product with a JIT uniform connectivity matrix.

jitumm_p

Low-level XLA custom-kernel primitive for jitumm.

Fixed Connectivity Operations#

Binary matrix-vector / matrix-matrix multiplication.

binary_fcnmv

Event-driven sparse matrix--vector product with fixed connection number.

binary_fcnmv_p

Low-level XLA custom-kernel primitive for binary_fcnmv.

binary_fcnmm

Event-driven sparse matrix--matrix product with fixed connection number.

binary_fcnmm_p

Low-level XLA custom-kernel primitive for binary_fcnmm.

Float matrix-vector / matrix-matrix multiplication.

fcnmv

Sparse matrix--vector product with fixed connection number.

fcnmm

Sparse matrix--matrix product with fixed connection number.