Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new branch ComplexLA_develop to solve complex eigenvalues eigenvector… #48

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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.

None yet

1 participant