The OpenD Programming Language

mir.lapack

Low level ndslice wrapper for LAPACK.

Attention: LAPACK and this module has column major API. ndslice rows correspond to LAPACK columns.

Functions with *_wq suffix are wrappers for workspace queries.

Members

Aliases

lapackint (from lapack)
alias lapackint = int via public import lapack : lapackint;

Functions

gebak
size_t gebak(char job, char side, lapackint ilo, lapackint ihi, Slice!(realT*) scale, Slice!(T*, 2, Canonical) v)
gebal
size_t gebal(char job, Slice!(T*, 2, Canonical) a, lapackint ilo, lapackint ihi, Slice!(realT*) scale)
geev
size_t geev(char jobvl, char jobvr, Slice!(T*, 2, Canonical) a, Slice!(T*) w, Slice!(T*, 2, Canonical) vl, Slice!(T*, 2, Canonical) vr, Slice!(T*) work, Slice!(realT*) rwork)
geev
size_t geev(char jobvl, char jobvr, Slice!(T*, 2, Canonical) a, Slice!(T*) wr, Slice!(T*) wi, Slice!(T*, 2, Canonical) vl, Slice!(T*, 2, Canonical) vr, Slice!(T*) work)
gehrd
size_t gehrd(Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*) work, lapackint ilo, lapackint ihi)
gelsd
size_t gelsd(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, Slice!(T*) s, T rcond, size_t rank, Slice!(T*) work, Slice!(lapackint*) iwork)
size_t gelsd(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, Slice!(realType!T*) s, realType!T rcond, size_t rank, Slice!(T*) work, Slice!(realType!T*) rwork, Slice!(lapackint*) iwork)
gelsd_wq
size_t gelsd_wq(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, size_t liwork)
size_t gelsd_wq(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, size_t lrwork, size_t liwork)

gelsd work space query.

geqrf
size_t geqrf(Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*) work)
geqrs
size_t geqrs(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, Slice!(T*) tau, Slice!(T*) work)
gesdd
size_t gesdd(char jobz, Slice!(T*, 2, Canonical) a, Slice!(T*) s, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt, Slice!(T*) work, Slice!(lapackint*) iwork)
size_t gesdd(char jobz, Slice!(T*, 2, Canonical) a, Slice!(realType!T*) s, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt, Slice!(T*) work, Slice!(realType!T*) rwork, Slice!(lapackint*) iwork)
gesdd_wq
size_t gesdd_wq(char jobz, Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt)

gesdd work space query

gesv
size_t gesv(Slice!(T*, 2, Canonical) a, Slice!(lapackint*) ipiv, Slice!(T*, 2, Canonical) b)
gesvd
size_t gesvd(char jobu, char jobvt, Slice!(T*, 2, Canonical) a, Slice!(T*) s, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt, Slice!(T*) work)
size_t gesvd(char jobu, char jobvt, Slice!(T*, 2, Canonical) a, Slice!(realType!T*) s, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt, Slice!(T*) work, Slice!(realType!T*) rwork)
gesvd_wq
size_t gesvd_wq(char jobu, char jobvt, Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) u, Slice!(T*, 2, Canonical) vt)

gesvd work space query

getrf
size_t getrf(Slice!(T*, 2, Canonical) a, Slice!(lapackint*) ipiv)
getri
size_t getri(Slice!(T*, 2, Canonical) a, Slice!(lapackint*) ipiv, Slice!(T*) work)
getri_wq
size_t getri_wq(Slice!(T*, 2, Canonical) a)

getri work space query.

getrs
size_t getrs(char trans, Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, Slice!(lapackint*) ipiv)
gtsv
size_t gtsv(Slice!(T*) dl, Slice!(T*) d, Slice!(T*) du, Slice!(T*, 2, Canonical) b)
hseqr
size_t hseqr(char job, char compz, Slice!(T*, 2, Canonical) h, Slice!(T*) w, Slice!(T*, 2, Canonical) z, Slice!(T*) work, lapackint ilo, lapackint ihi)
hseqr
size_t hseqr(char job, char compz, Slice!(T*, 2, Canonical) h, Slice!(T*) wr, Slice!(T*) wi, Slice!(T*, 2, Canonical) z, Slice!(T*) work, lapackint ilo, lapackint ihi)
ilaenv
lapackint ilaenv(lapackint ispec, const(char)* name, const(char)* opts, lapackint n1, lapackint n2, lapackint n3, lapackint n4)
ilaenv2stage
lapackint ilaenv2stage(lapackint ispec, const(char)* name, const(char)* opts, lapackint n1, lapackint n2, lapackint n3, lapackint n4)
orgqr
size_t orgqr(Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*) work)
ormqr
size_t ormqr(char side, char trans, Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*, 2, Canonical) c, Slice!(T*) work)
potrf
size_t potrf(char uplo, Slice!(T*, 2, Canonical) a)
potri
size_t potri(char uplo, Slice!(T*, 2, Canonical) a)
potrs
size_t potrs(char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b)
pptrf
size_t pptrf(char uplo, Slice!(T*, 2, Canonical) ap)
steqr
size_t steqr(char compz, Slice!(realT*) d, Slice!(realT*) e, Slice!(T*, 2, Canonical) z, Slice!(realT*) work)
syev
size_t syev(char jobz, char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*) w, Slice!(T*) work)
syev_2stage
size_t syev_2stage(char jobz, char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*) w, Slice!(T*) work)
syev_2stage_wk
size_t syev_2stage_wk(char jobz, char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*) w)
syev_wk
size_t syev_wk(char jobz, char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*) w)
sysv_rook
size_t sysv_rook(char uplo, Slice!(T*, 2, Canonical) a, Slice!(lapackint*) ipiv, Slice!(T*, 2, Canonical) b, Slice!(T*) work)
sysv_rook_wk
size_t sysv_rook_wk(char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b)
sytrf
size_t sytrf(char uplo, Slice!(T*, 2, Canonical) a, Slice!(lapackint*) ipiv, Slice!(T*) work)
sytrf_rk
size_t sytrf_rk(char uplo, Slice!(T*, 2, Canonical) a, Slice!(T*) e, Slice!(lapackint*) ipiv, Slice!(T*) work)
sytrf_rk_wk
size_t sytrf_rk_wk(char uplo, Slice!(T*, 2, Canonical) a)
sytrf_wk
size_t sytrf_wk(char uplo, Slice!(T*, 2, Canonical) a)
sytrs2
size_t sytrs2(Slice!(T*, 2, Canonical) a, Slice!(T*, 2, Canonical) b, Slice!(lapackint*) ipiv, Slice!(T*) work, char uplo)
sytrs_3
size_t sytrs_3(char uplo, Slice!(const(T)*, 2, Canonical) a, Slice!(const(T)*) e, Slice!(const(lapackint)*) ipiv, Slice!(T*, 2, Canonical) b)
trevc
size_t trevc(char side, char howmany, lapackint select, Slice!(T*, 2, Canonical) t, Slice!(T*, 2, Canonical) vl, Slice!(T*, 2, Canonical) vr, lapackint m, Slice!(T*) work)
trtri
size_t trtri(char uplo, char diag, Slice!(T*, 2, Canonical) a)
trtrs
size_t trtrs(char uplo, char diag, char trans, Slice!(const(T)*, 2, Canonical) a, Slice!(T*, 2, Canonical) b)
unghr
size_t unghr(Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*) work)
ungqr
size_t ungqr(Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*) work)
unmhr
size_t unmhr(char side, char trans, Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*, 2, Canonical) c, Slice!(T*) work, lapackint ilo, lapackint ihi)
unmqr
size_t unmqr(char side, char trans, Slice!(T*, 2, Canonical) a, Slice!(T*) tau, Slice!(T*, 2, Canonical) c, Slice!(T*) work)

Templates

posv
template posv(T)
posvx
template posvx(T)
pptri
template pptri(T)
spev
template spev(T)
sptrf
template sptrf(T)
sptri
template sptri(T)
tptri
template tptri(T)

Meta

Authors

Ilya Yaroshenko