Skip to content

Conversation

@nomissbowling
Copy link

…s and inv etc for general (symmetry and asymmetry) Matrix

neo/cla.nim
neo/clasolve.nim
neo/private/clacommon.nim
neo/private/clareim.nim
tests/tcla.nim
tests/cla/cbase.nim
tests/cla/cpauli.nim
tests/cla/chermitian.nim
tests/cla/cdet.nim
tests/cla/cinv.nim
tests/cla/csolve.nim
tests/cla/ceig.nim

use [c|z]axpy [c|z]dotu [c|z]dotc [c|z]gemv [c|z]gemm [c|z]scal (nimblas) use [c|z]geev [c|z]gesv overload with macro(czfortran) (nimlapack) include nimlapack instead of import nimlapack to use private types template czelColMajor, czelRowMajor for cast[ptr Complex[T]] unary operator -
template compareApprox[T](x, y: complex.Complex[T]): bool

proc all*[T](v: Vector[Complex[T]];
pred: proc(i: int, x: complex.Complex[T]): bool {.closure.}): bool
proc all*[T](a: Matrix[Complex[T]];
pred: proc(i, j: int, x: complex.Complex[T]): bool {.closure.}): bool

template !=~[T](x, y: complex.Complex[T]): bool template !=~[T](v, w: Vector[Complex[T]]): bool template !=~*[T](a, b: Matrix[Complex[T]]): bool

scal for operator *='*[T](v: var Vector[Complex[T]]; c: complex.Complex[T]) scal for operator ='[T](a: var Matrix[Complex[T]]; c: complex.Complex[T])

dotu dotc[Vector[Complex[T]]] Hermitian Inner Product trace and tr and dotc[Matrix[Complex[T]]] Hilbert-Schmidt Inner Product

TODO: support and check for sparse matrix
TODO: support and check for cuda cudadense cudasparse

…s and inv etc for general (symmetry and asymmetry) Matrix

  neo/cla.nim
  neo/clasolve.nim
  neo/private/clacommon.nim
  neo/private/clareim.nim
  tests/tcla.nim
  tests/cla/cbase.nim
  tests/cla/cpauli.nim
  tests/cla/chermitian.nim
  tests/cla/cdet.nim
  tests/cla/cinv.nim
  tests/cla/csolve.nim
  tests/cla/ceig.nim

use [c|z]axpy [c|z]dotu [c|z]dotc [c|z]gemv [c|z]gemm [c|z]scal (nimblas)
use [c|z]geev [c|z]gesv overload with macro(czfortran) (nimlapack)
include nimlapack instead of import nimlapack to use private types
template czelColMajor, czelRowMajor for cast[ptr Complex[T]]
unary operator `-`
template compareApprox[T](x, y: complex.Complex[T]): bool

proc all*[T](v: Vector[Complex[T]];
  pred: proc(i: int, x: complex.Complex[T]): bool {.closure.}): bool
proc all*[T](a: Matrix[Complex[T]];
  pred: proc(i, j: int, x: complex.Complex[T]): bool {.closure.}): bool

template `!=~`*[T](x, y: complex.Complex[T]): bool
template `!=~`*[T](v, w: Vector[Complex[T]]): bool
template `!=~`*[T](a, b: Matrix[Complex[T]]): bool

scal for operator `*='*[T](v: var Vector[Complex[T]]; c: complex.Complex[T])
scal for operator `*='*[T](a: var Matrix[Complex[T]]; c: complex.Complex[T])

dotu dotc[Vector[Complex[T]]] Hermitian Inner Product
trace and tr and dotc[Matrix[Complex[T]]] Hilbert-Schmidt Inner Product

TODO: support and check for sparse matrix
TODO: support and check for cuda cudadense cudasparse
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant