Fork me on GitHub

src/arraymancer/laser/primitives/matrix_multiplication/gemm_utils

  Source Edit

Types

MatrixView[T] = object
  buffer*: ptr UncheckedArray[T]
  rowStride*, colStride*: int
  Source Edit

Procs

func `+`(p: ptr; offset: int): type(p) {.inline.}
Pointer increment   Source Edit
func stride[T](view: MatrixView[T]; row, col: Natural): MatrixView[T] {.inline.}
Returns a new view offset by the row and column stride   Source Edit
func toMatrixView[T](data: ptr T; rowStride, colStride: int): MatrixView[T] {.
    inline.}
  Source Edit

Templates

template `[]`[T](view: MatrixView[T]; row, col: Natural): T
Access like a 2D matrix   Source Edit
template `[]=`[T](view: MatrixView[T]; row, col: Natural; value: T)
Access like a 2D matrix   Source Edit
template to_ptr(AB: typed; MR, NR: static int; T: typedesc): untyped
  Source Edit
Arraymancer Technical reference Tutorial Spellbook (How-To's) Under the hood