import "gonum.org/v1/gonum/lapack/testlapack"
Package testlapack implements a set of testing routines for Lapack functions.
dbdsqr.go dcombssq.go dgebak.go dgebal.go dgebd2.go dgebrd.go dgecon.go dgeev.go dgeev_bench.go dgehd2.go dgehrd.go dgelq2.go dgelqf.go dgels.go dgeql2.go dgeqp3.go dgeqr2.go dgeqrf.go dgerq2.go dgerqf.go dgesvd.go dgetf2.go dgetrf.go dgetri.go dgetrs.go dggsvd3.go dggsvp3.go dgtsv.go dhseqr.go dlabrd.go dlacn2.go dlacpy.go dlae2.go dlaev2.go dlaexc.go dlags2.go dlagtm.go dlahqr.go dlahr2.go dlaln2.go dlange.go dlangt.go dlansb.go dlanst.go dlansy.go dlantb.go dlantb_bench.go dlantr.go dlanv2.go dlapll.go dlapmt.go dlapy2.go dlaqp2.go dlaqps.go dlaqr04.go dlaqr1.go dlaqr23.go dlaqr5.go dlarf.go dlarfb.go dlarfg.go dlarft.go dlarfx.go dlartg.go dlas2.go dlascl.go dlaset.go dlasq1.go dlasq2.go dlasr.go dlasrt.go dlassq.go dlasv2.go dlaswp.go dlasy2.go dlatbs.go dlatrd.go dlatrs.go dlauu2.go dlauum.go doc.go dorg2l.go dorg2r.go dorgbr.go dorghr.go dorgl2.go dorglq.go dorgql.go dorgqr.go dorgtr.go dorm2r.go dormbr.go dormhr.go dorml2.go dormlq.go dormqr.go dormr2.go dpbcon.go dpbtf2.go dpbtrf.go dpbtrs.go dpocon.go dpotf2.go dpotrf.go dpotri.go dpotrs.go drscl.go dsteqr.go dsterf.go dsyev.go dsytd2.go dsytrd.go dtbtrs.go dtgsja.go dtrcon.go dtrevc3.go dtrexc.go dtrti2.go dtrtri.go dtrtrs.go fortran.go general.go iladlc.go iladlr.go locallapack.go matgen.go test_matrices.go
func DcombssqTest(t *testing.T, impl Dcombssqer)
Dlagge generates a real general m×n matrix A, by pre- and post-multiplying a real diagonal matrix D with random orthogonal matrices:
A = U*D*V.
d must have length min(m,n), and work must have length m+n, otherwise Dlagge will panic.
The parameters ku and kl are unused but they must satisfy
0 <= kl <= m-1, 0 <= ku <= n-1.
Dlagsy generates an n×n symmetric matrix A, by pre- and post- multiplying a real diagonal matrix D with a random orthogonal matrix:
A = U * D * Uᵀ.
work must have length at least 2*n, otherwise Dlagsy will panic.
The parameter k is unused but it must satisfy
0 <= k <= n-1.
DlatbsTest tests Dlatbs by generating a random triangular band system and checking that a residual for the computed solution is small.
Dlatm1 computes the entries of dst as specified by mode, cond and rsign.
mode describes how dst will be computed:
|mode| == 1: dst[0] = 1 and dst[1:n] = 1/cond |mode| == 2: dst[:n-1] = 1/cond and dst[n-1] = 1 |mode| == 3: dst[i] = cond^{-i/(n-1)}, i=0,...,n-1 |mode| == 4: dst[i] = 1 - i*(1-1/cond)/(n-1) |mode| == 5: dst[i] = random number in the range (1/cond, 1) such that their logarithms are uniformly distributed |mode| == 6: dst[i] = random number from the distribution given by dist
If mode is negative, the order of the elements of dst will be reversed. For other values of mode Dlatm1 will panic.
If rsign is true and mode is not ±6, each entry of dst will be multiplied by 1 or -1 with probability 0.5
dist specifies the type of distribution to be used when mode == ±6:
dist == 1: Uniform[0,1) dist == 2: Uniform[-1,1) dist == 3: Normal(0,1)
For other values of dist Dlatm1 will panic.
rnd is used as a source of random numbers.
DpbconTest tests Dpbcon by generating a random symmetric band matrix A and checking that the estimated condition number is not too different from the condition number computed via the explicit inverse of A.
Dpbtf2Test tests Dpbtf2 on random symmetric positive definite band matrices by checking that the Cholesky factors multiply back to the original matrix.
DpbtrfTest tests a band Cholesky factorization on random symmetric positive definite band matrices by checking that the Cholesky factors multiply back to the original matrix.
DpbtrsTest tests Dpbtrs by comparing the computed and known, generated solutions of a linear system with a random symmetric positive definite band matrix.
type A123 struct{}
A123 is the non-symmetric singular matrix
[ 1 2 3 ] A = [ 4 5 6 ] [ 7 8 9 ]
It has three distinct real eigenvalues.
func (A123) Eigenvalues() []complex128
type AntisymRandom struct {
// contains filtered or unexported fields
}
AntisymRandom is a anti-symmetric random matrix. All its eigenvalues are imaginary with one zero if the order is odd.
func NewAntisymRandom(n int, rnd *rand.Rand) AntisymRandom
func (AntisymRandom) Eigenvalues() []complex128
func (a AntisymRandom) Matrix() blas64.General
Circulant is a generally non-symmetric matrix given by
A[i,j] = 1 + (j-i+n)%n.
For example, for n=5,
[ 1 2 3 4 5 ] [ 5 1 2 3 4 ] A = [ 4 5 1 2 3 ] [ 3 4 5 1 2 ] [ 2 3 4 5 1 ]
It has real and complex eigenvalues, some possibly repeated.
func (c Circulant) Eigenvalues() []complex128
Clement is a generally non-symmetric matrix given by
A[i,j] = i+1 if j == i+1, = n-i if j == i-1, = 0 otherwise.
For example, for n=5,
[ . 1 . . . ] [ 4 . 2 . . ] A = [ . 3 . 3 . ] [ . . 2 . 4 ] [ . . . 1 . ]
It has n distinct real eigenvalues.
func (c Clement) Eigenvalues() []complex128
Creation is a singular non-symmetric matrix given by
A[i,j] = i if j == i-1, = 0 otherwise.
For example, for n=5,
[ . . . . . ] [ 1 . . . . ] A = [ . 2 . . . ] [ . . 3 . . ] [ . . . 4 . ]
Zero is its only eigenvalue.
func (c Creation) Eigenvalues() []complex128
type Dbdsqrer interface { Dbdsqr(uplo blas.Uplo, n, ncvt, nru, ncc int, d, e, vt []float64, ldvt int, u []float64, ldu int, c []float64, ldc int, work []float64) (ok bool) }
type Dgebaker interface { Dgebak(job lapack.BalanceJob, side lapack.EVSide, n, ilo, ihi int, scale []float64, m int, v []float64, ldv int) }
type Dgebaler interface { Dgebal(job lapack.BalanceJob, n int, a []float64, lda int, scale []float64) (int, int) }
type Dgebd2er interface { Dgebd2(m, n int, a []float64, lda int, d, e, tauq, taup, work []float64) }
type Dgebrder interface { Dgebrd(m, n int, a []float64, lda int, d, e, tauQ, tauP, work []float64, lwork int) Dgebd2er }
type Dgeconer interface { Dgecon(norm lapack.MatrixNorm, n int, a []float64, lda int, anorm float64, work []float64, iwork []int) float64 Dgetrier Dlanger }
type Dgeever interface { Dgeev(jobvl lapack.LeftEVJob, jobvr lapack.RightEVJob, n int, a []float64, lda int, wr, wi []float64, vl []float64, ldvl int, vr []float64, ldvr int, work []float64, lwork int) int }
type Dgehrder interface { Dgehrd(n, ilo, ihi int, a []float64, lda int, tau, work []float64, lwork int) Dorgqr(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) }
type Dgelqfer interface { Dgelq2er Dgelqf(m, n int, a []float64, lda int, tau, work []float64, lwork int) }
type Dgelser interface { Dgels(trans blas.Transpose, m, n, nrhs int, a []float64, lda int, b []float64, ldb int, work []float64, lwork int) bool }
type Dgeqp3er interface { Dlapmter Dgeqp3(m, n int, a []float64, lda int, jpvt []int, tau, work []float64, lwork int) }
type Dgeqrfer interface { Dgeqr2er Dgeqrf(m, n int, a []float64, lda int, tau, work []float64, lwork int) }
type Dgesvder interface { Dgesvd(jobU, jobVT lapack.SVDJob, m, n int, a []float64, lda int, s, u []float64, ldu int, vt []float64, ldvt int, work []float64, lwork int) (ok bool) }
type Dgetrier interface { Dgetrfer Dgetri(n int, a []float64, lda int, ipiv []int, work []float64, lwork int) bool }
type Dgetrser interface { Dgetrfer Dgetrs(trans blas.Transpose, n, nrhs int, a []float64, lda int, ipiv []int, b []float64, ldb int) }
type Dggsvd3er interface { Dggsvd3(jobU, jobV, jobQ lapack.GSVDJob, m, n, p int, a []float64, lda int, b []float64, ldb int, alpha, beta, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int, work []float64, lwork int, iwork []int) (k, l int, ok bool) }
type Dggsvp3er interface { Dlanger Dggsvp3(jobU, jobV, jobQ lapack.GSVDJob, m, p, n int, a []float64, lda int, b []float64, ldb int, tola, tolb float64, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int, iwork []int, tau, work []float64, lwork int) (k, l int) }
type Dhseqrer interface { Dhseqr(job lapack.SchurJob, compz lapack.SchurComp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, z []float64, ldz int, work []float64, lwork int) int }
Diagonal is a diagonal matrix given by
A[i,j] = i+1 if i == j, = 0 otherwise.
For example, for n=5,
[ 1 . . . . ] [ . 2 . . . ] A = [ . . 3 . . ] [ . . . 4 . ] [ . . . . 5 ]
It has n real eigenvalues {1,...,n}.
func (d Diagonal) Eigenvalues() []complex128
type Dlabrder interface { Dlabrd(m, n, nb int, a []float64, lda int, d, e, tauq, taup, x []float64, ldx int, y []float64, ldy int) }
type Dlacn2er interface { Dlacn2(n int, v, x []float64, isgn []int, est float64, kase int, isave *[3]int) (float64, int) }
type Dlacpyer interface { Dlacpy(uplo blas.Uplo, m, n int, a []float64, lda int, b []float64, ldb int) }
type Dlaexcer interface { Dlaexc(wantq bool, n int, t []float64, ldt int, q []float64, ldq int, j1, n1, n2 int, work []float64) bool }
type Dlags2er interface { Dlags2(upper bool, a1, a2, a3, b1, b2, b3 float64) (csu, snu, csv, snv, csq, snq float64) }
type Dlagtmer interface { Dlagtm(trans blas.Transpose, m, n int, alpha float64, dl, d, du []float64, b []float64, ldb int, beta float64, c []float64, ldc int) }
type Dlahqrer interface { Dlahqr(wantt, wantz bool, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, iloz, ihiz int, z []float64, ldz int) int }
type Dlahr2er interface { Dlahr2(n, k, nb int, a []float64, lda int, tau, t []float64, ldt int, y []float64, ldy int) }
type Dlaln2er interface { Dlaln2(trans bool, na, nw int, smin, ca float64, a []float64, lda int, d1, d2 float64, b []float64, ldb int, wr, wi float64, x []float64, ldx int) (scale, xnorm float64, ok bool) }
type Dlanger interface { Dlange(norm lapack.MatrixNorm, m, n int, a []float64, lda int, work []float64) float64 }
type Dlansber interface { Dlansb(norm lapack.MatrixNorm, uplo blas.Uplo, n, kd int, ab []float64, ldab int, work []float64) float64 }
type Dlansyer interface { Dlanger Dlansy(norm lapack.MatrixNorm, uplo blas.Uplo, n int, a []float64, lda int, work []float64) float64 }
type Dlantber interface { Dlantb(norm lapack.MatrixNorm, uplo blas.Uplo, diag blas.Diag, n, k int, a []float64, lda int, work []float64) float64 }
type Dlantrer interface { Dlanger Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag blas.Diag, m, n int, a []float64, lda int, work []float64) float64 }
type Dlanv2er interface { Dlanv2(a, b, c, d float64) (aa, bb, cc, dd float64, rt1r, rt1i, rt2r, rt2i float64, cs, sn float64) }
type Dlapller interface { Dgesvder Dlapll(n int, x []float64, incX int, y []float64, incY int) float64 }
type Dlaqp2er interface { Dlapmter Dlaqp2(m, n, offset int, a []float64, lda int, jpvt []int, tau, vn1, vn2, work []float64) }
type Dlaqpser interface { Dlapmter Dlaqps(m, n, offset, nb int, a []float64, lda int, jpvt []int, tau, vn1, vn2, auxv, f []float64, ldf int) (kb int) }
type Dlaqr04er interface { Dlaqr04(wantt, wantz bool, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, iloz, ihiz int, z []float64, ldz int, work []float64, lwork int, recur int) int Dlahqrer }
type Dlaqr1er interface { Dlaqr1(n int, h []float64, ldh int, sr1, si1, sr2, si2 float64, v []float64) }
type Dlaqr23er interface { Dlaqr23(wantt, wantz bool, n, ktop, kbot, nw int, h []float64, ldh int, iloz, ihiz int, z []float64, ldz int, sr, si []float64, v []float64, ldv int, nh int, t []float64, ldt int, nv int, wv []float64, ldwv int, work []float64, lwork int, recur int) (ns, nd int) }
type Dlaqr5er interface { Dlaqr5(wantt, wantz bool, kacc22 int, n, ktop, kbot, nshfts int, sr, si []float64, h []float64, ldh int, iloz, ihiz int, z []float64, ldz int, v []float64, ldv int, u []float64, ldu int, nh int, wh []float64, ldwh int, nv int, wv []float64, ldwv int) }
type Dlarfber interface { Dlarfter Dlarfb(side blas.Side, trans blas.Transpose, direct lapack.Direct, store lapack.StoreV, m, n, k int, v []float64, ldv int, t []float64, ldt int, c []float64, ldc int, work []float64, ldwork int) }
type Dlarfer interface { Dlarf(side blas.Side, m, n int, v []float64, incv int, tau float64, c []float64, ldc int, work []float64) }
type Dlarfger interface { Dlarfg(n int, alpha float64, x []float64, incX int) (beta, tau float64) }
type Dlarfter interface { Dgeqr2er Dlarft(direct lapack.Direct, store lapack.StoreV, n, k int, v []float64, ldv int, tau []float64, t []float64, ldt int) }
type Dlarfxer interface { Dlarfx(side blas.Side, m, n int, v []float64, tau float64, c []float64, ldc int, work []float64) }
type Dlascler interface { Dlascl(kind lapack.MatrixType, kl, ku int, cfrom, cto float64, m, n int, a []float64, lda int) }
type Dlaseter interface { Dlaset(uplo blas.Uplo, m, n int, alpha, beta float64, a []float64, lda int) }
type Dlasq1er interface { Dlasq1(n int, d, e, work []float64) int Dgebrd(m, n int, a []float64, lda int, d, e, tauQ, tauP, work []float64, lwork int) }
type Dlasq2er interface { Dlasq2(n int, z []float64) (info int) Dsyev(jobz lapack.EVJob, uplo blas.Uplo, n int, a []float64, lda int, w, work []float64, lwork int) (ok bool) }
type Dlasrer interface { Dlasr(side blas.Side, pivot lapack.Pivot, direct lapack.Direct, m, n int, c, s, a []float64, lda int) }
type Dlassqer interface { Dlassq(n int, x []float64, incx int, scale, ssq float64) (float64, float64) }
type Dlasy2er interface { Dlasy2(tranl, tranr bool, isgn, n1, n2 int, tl []float64, ldtl int, tr []float64, ldtr int, b []float64, ldb int, x []float64, ldx int) (scale, xnorm float64, ok bool) }
type Dlatbser interface { Dlatbs(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, normin bool, n, kd int, ab []float64, ldab int, x []float64, cnorm []float64) float64 }
type Dlatrder interface { Dlatrd(uplo blas.Uplo, n, nb int, a []float64, lda int, e, tau, w []float64, ldw int) }
type Dlatrser interface { Dlatrs(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, normin bool, n int, a []float64, lda int, x []float64, cnorm []float64) (scale float64) }
type Dorg2ler interface { Dorg2l(m, n, k int, a []float64, lda int, tau, work []float64) Dgeql2er }
type Dorg2rer interface { Dgeqrfer Dorg2r(m, n, k int, a []float64, lda int, tau []float64, work []float64) }
type Dorgbrer interface { Dorgbr(vect lapack.GenOrtho, m, n, k int, a []float64, lda int, tau, work []float64, lwork int) Dgebrder }
type Dorghrer interface { Dorghr(n, ilo, ihi int, a []float64, lda int, tau, work []float64, lwork int) Dgehrder }
type Dorgl2er interface { Dgelqfer Dorgl2(m, n, k int, a []float64, lda int, tau []float64, work []float64) }
type Dorglqer interface { Dorgl2er Dorglq(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) }
type Dorgqler interface { Dorgql(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) Dlarfger }
type Dorgqrer interface { Dorg2rer Dorgqr(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) }
type Dorgtrer interface { Dorgtr(uplo blas.Uplo, n int, a []float64, lda int, tau, work []float64, lwork int) Dsytrder }
type Dorm2rer interface { Dgeqrfer Dorm2r(side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64) }
type Dormbrer interface { Dormbr(vect lapack.ApplyOrtho, side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64, lwork int) Dgebrder }
type Dormhrer interface { Dormhr(side blas.Side, trans blas.Transpose, m, n, ilo, ihi int, a []float64, lda int, tau, c []float64, ldc int, work []float64, lwork int) Dgehrder }
type Dorml2er interface { Dgelqfer Dorml2(side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64) }
type Dormlqer interface { Dorml2er Dormlq(side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64, lwork int) }
type Dormqrer interface { Dorm2rer Dormqr(side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64, lwork int) }
type Dormr2er interface { Dgerqf(m, n int, a []float64, lda int, tau, work []float64, lwork int) Dormr2(side blas.Side, trans blas.Transpose, m, n, k int, a []float64, lda int, tau, c []float64, ldc int, work []float64) }
Downshift is a non-singular upper Hessenberg matrix given by
A[i,j] = 1 if (i-j+n)%n == 1, = 0 otherwise.
For example, for n=5,
[ . . . . 1 ] [ 1 . . . . ] A = [ . 1 . . . ] [ . . 1 . . ] [ . . . 1 . ]
Its eigenvalues are the complex roots of unity.
func (d Downshift) Eigenvalues() []complex128
type Dpbconer interface { Dpbcon(uplo blas.Uplo, n, kd int, ab []float64, ldab int, anorm float64, work []float64, iwork []int) float64 Dpbtrser }
type Dpbtrser interface { Dpbtrs(uplo blas.Uplo, n, kd, nrhs int, ab []float64, ldab int, b []float64, ldb int) Dpbtrfer }
type Dpoconer interface { Dpotrfer Dgeconer Dlansy(norm lapack.MatrixNorm, uplo blas.Uplo, n int, a []float64, lda int, work []float64) float64 Dpocon(uplo blas.Uplo, n int, a []float64, lda int, anorm float64, work []float64, iwork []int) float64 }
type Dpotrier interface { Dpotri(uplo blas.Uplo, n int, a []float64, lda int) bool Dpotrf(uplo blas.Uplo, n int, a []float64, lda int) bool }
type Dpotrser interface { Dpotrs(uplo blas.Uplo, n, nrhs int, a []float64, lda int, b []float64, ldb int) Dpotrf(uplo blas.Uplo, n int, a []float64, lda int) bool }
type Dsteqrer interface { Dsteqr(compz lapack.EVComp, n int, d, e, z []float64, ldz int, work []float64) (ok bool) Dorgtrer }
type Dsyever interface { Dsyev(jobz lapack.EVJob, uplo blas.Uplo, n int, a []float64, lda int, w, work []float64, lwork int) (ok bool) }
type Dsytd2er interface { Dsytd2(uplo blas.Uplo, n int, a []float64, lda int, d, e, tau []float64) }
type Dsytrder interface { Dsytrd(uplo blas.Uplo, n int, a []float64, lda int, d, e, tau, work []float64, lwork int) Dorgqr(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) Dorgql(m, n, k int, a []float64, lda int, tau, work []float64, lwork int) }
type Dtbtrser interface { Dtbtrs(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, n, kd, nrhs int, a []float64, lda int, b []float64, ldb int) bool }
type Dtgsjaer interface { Dlanger Dtgsja(jobU, jobV, jobQ lapack.GSVDJob, m, p, n, k, l int, a []float64, lda int, b []float64, ldb int, tola, tolb float64, alpha, beta, u []float64, ldu int, v []float64, ldv int, q []float64, ldq int, work []float64) (cycles int, ok bool) }
type Dtrconer interface { Dtrcon(norm lapack.MatrixNorm, uplo blas.Uplo, diag blas.Diag, n int, a []float64, lda int, work []float64, iwork []int) float64 Dtrtri(uplo blas.Uplo, diag blas.Diag, n int, a []float64, lda int) bool Dlantr(norm lapack.MatrixNorm, uplo blas.Uplo, diag blas.Diag, m, n int, a []float64, lda int, work []float64) float64 }
type Dtrevc3er interface { Dtrevc3(side lapack.EVSide, howmny lapack.EVHowMany, selected []bool, n int, t []float64, ldt int, vl []float64, ldvl int, vr []float64, ldvr int, mm int, work []float64, lwork int) int }
type Dtrexcer interface { Dtrexc(compq lapack.UpdateSchurComp, n int, t []float64, ldt int, q []float64, ldq int, ifst, ilst int, work []float64) (ifstOut, ilstOut int, ok bool) }
type Dtrtrier interface { Dtrtri(uplo blas.Uplo, diag blas.Diag, n int, a []float64, lda int) bool }
type Dtrtrser interface { Dtrtrs(uplo blas.Uplo, trans blas.Transpose, diag blas.Diag, n, nrhs int, a []float64, lda int, b []float64, ldb int) bool }
Fibonacci is an upper Hessenberg matrix with 3 distinct real eigenvalues. For example, for n=5,
[ . 1 . . . ] [ 1 1 . . . ] A = [ . 1 1 . . ] [ . . 1 1 . ] [ . . . 1 1 ]
func (f Fibonacci) Eigenvalues() []complex128
Gear is a singular non-symmetric matrix with real eigenvalues. For example, for n=5,
[ . 1 . . 1 ] [ 1 . 1 . . ] A = [ . 1 . 1 . ] [ . . 1 . 1 ] [-1 . . 1 . ]
func (g Gear) Eigenvalues() []complex128
Grcar is an upper Hessenberg matrix given by
A[i,j] = -1 if i == j+1, = 1 if i <= j and j <= i+k, = 0 otherwise.
For example, for n=5 and k=2,
[ 1 1 1 . . ] [ -1 1 1 1 . ] A = [ . -1 1 1 1 ] [ . . -1 1 1 ] [ . . . -1 1 ]
The matrix has sensitive eigenvalues but they are not given explicitly.
func (Grcar) Eigenvalues() []complex128
Hanowa is a non-symmetric non-singular matrix of even order given by
A[i,j] = alpha if i == j, = -i-1 if i < n/2 and j == i + n/2, = i+1-n/2 if i >= n/2 and j == i - n/2, = 0 otherwise.
The matrix has complex eigenvalues.
func (h Hanowa) Eigenvalues() []complex128
Lesp is a tridiagonal, generally non-symmetric matrix given by
A[i,j] = -2*i-5 if i == j, = 1/(i+1) if i == j-1, = j+1 if i == j+1.
For example, for n=5,
[ -5 2 . . . ] [ 1/2 -7 3 . . ] A = [ . 1/3 -9 4 . ] [ . . 1/4 -11 5 ] [ . . . 1/5 -13 ].
The matrix has sensitive eigenvalues but they are not given explicitly.
func (Lesp) Eigenvalues() []complex128
type Rutis struct{}
Rutis is the 4×4 non-symmetric matrix
[ 4 -5 0 3 ] A = [ 0 4 -3 -5 ] [ 5 -3 4 0 ] [ 3 0 5 4 ]
It has two distinct real eigenvalues and a pair of complex eigenvalues.
func (Rutis) Eigenvalues() []complex128
Tris is a tridiagonal matrix given by
A[i,j] = x if i == j-1, = y if i == j, = z if i == j+1.
If x*z is negative, the matrix has complex eigenvalues.
func (t Tris) Eigenvalues() []complex128
type Wilk12 struct{}
Wilk12 is a 12×12 lower Hessenberg matrix with 12 distinct real eigenvalues.
func (Wilk12) Eigenvalues() []complex128
Wilk20 is a 20×20 lower Hessenberg matrix. If the parameter is 0, the matrix has 20 distinct real eigenvalues. If the parameter is 1e-10, the matrix has 6 real eigenvalues and 7 pairs of complex eigenvalues.
func (w Wilk20) Eigenvalues() []complex128
type Wilk4 struct{}
Wilk4 is a 4×4 lower triangular matrix with 4 distinct real eigenvalues.
func (Wilk4) Eigenvalues() []complex128
Zero is a matrix with all elements equal to zero.
func (z Zero) Eigenvalues() []complex128
Package testlapack imports 15 packages (graph) and is imported by 2 packages. Updated 2020-11-11. Refresh now. Tools for package owners.