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.
proc `*`[T: SomeNumber](a, b: Tensor[T]): Tensor[T] {.noinit.}
proc gemm[T: SomeFloat | Complex](alpha: T; A, B: Tensor[T]; beta: T; C: var Tensor[T]) {.inline.}
proc gemm[T: SomeInteger](alpha: T; A, B: Tensor[T]; beta: T; C: var Tensor[T]) {. inline.}
proc gemm[T: SomeNumber](A, B: Tensor[T]; C: var Tensor[T]) {. ...deprecated: "Use explicit gemm(1, A, B, 0, C) instead".}
proc gemv[T: SomeFloat | Complex](alpha: T; A: Tensor[T]; x: Tensor[T]; beta: T; y: var Tensor[T]) {.inline.}
proc gemv[T: SomeInteger](alpha: T; A: Tensor[T]; x: Tensor[T]; beta: T; y: var Tensor[T]) {.inline.}