Fork me on GitHub

src/arraymancer/tensor/operators_blas_l2l3

  Source Edit

Procs

proc `*`[T: Complex[float32] or Complex[float64]](a, b: Tensor[T]): Tensor[T] {.
    noinit.}

Matrix multiplication (Matrix-Matrix and Matrix-Vector)

Float and complex operations use optimized BLAS like OpenBLAS, Intel MKL or BLIS.

  Source Edit
proc `*`[T: SomeNumber](a, b: Tensor[T]): Tensor[T] {.noinit.}

Matrix multiplication (Matrix-Matrix and Matrix-Vector)

Float and complex operations use optimized BLAS like OpenBLAS, Intel MKL or BLIS.

  Source Edit
proc gemm[T: SomeFloat | Complex](alpha: T; A, B: Tensor[T]; beta: T;
                                  C: var Tensor[T]) {.inline.}
  Source Edit
proc gemm[T: SomeInteger](alpha: T; A, B: Tensor[T]; beta: T; C: var Tensor[T]) {.
    inline.}
  Source Edit
proc gemm[T: SomeNumber](A, B: Tensor[T]; C: var Tensor[T]) {.
    ...deprecated: "Use explicit gemm(1, A, B, 0, C) instead".}
Deprecated: Use explicit gemm(1, A, B, 0, C) instead
  Source Edit
proc gemv[T: SomeFloat | Complex](alpha: T; A: Tensor[T]; x: Tensor[T]; beta: T;
                                  y: var Tensor[T]) {.inline.}
General Matrix-Vector multiplication: y <- alpha * A * x + beta * y   Source Edit
proc gemv[T: SomeInteger](alpha: T; A: Tensor[T]; x: Tensor[T]; beta: T;
                          y: var Tensor[T]) {.inline.}
General Matrix-Vector multiplication: y <- alpha * A * x + beta * y   Source Edit
Arraymancer Technical reference Tutorial Spellbook (How-To's) Under the hood