Balance a Square Matrix via LAPACK's DGEBAL
Balance a square matrix via LAPACK's DGEBAL
.
This is an R interface, mainly used for experimentation.
This LAPACK routine is used internally for Eigenvalue decompositions, but also, in Ward(1977)'s algorithm for the matrix exponential.
The name balance()
is preferred nowadays, and “dgebal()”
has been deprecated (finally, after 9 years ...).
balance(A, job = c("B", "N", "P", "S")) ## Deprecated now: ## dgebal(A, job = c("B", "N", "P", "S"))
A |
a square (n x n) numeric matrix. |
job |
a one-letter string specifying the ‘job’ for DGEBAL.
|
An excerpt of the LAPACK documentation about DGEBAL(), describing the result
(output) integer
(output) integeri1
and i2
are set to integers such that on exit
z[i,j] = 0
if i > j and j = 1,...,i1-1 or i = i2+1,...,n.
If job = 'N'
or 'S'
, i1 = 1
and i2 = n
.
(output) numeric vector of length n
.
Details of the permutations and scaling factors applied to
A
. If P[j]
is the index of the row and column interchanged
with row and column j
and D[j]
is the scaling factor
applied to row and column j, then
scale[j] = P[j]
for j = 1,...,i1-1 = D[j]
for j = i1,...,i2, = P[j]
for j = i2+1,...,n.
The order in which the interchanges are made is n
to i2+1
,
then 1
to i1-1
.
Look at the LAPACK documentation for more details.
A list with components
z |
the transformation of matrix |
scale |
numeric vector of length n, containing the permutation and/or scale vectors applied. |
i1,i2 |
integers (length 1) in \{1,2,…,n\}, denoted by
|
Martin Maechler
LAPACK Reference Manual
m4 <- rbind(c(-1,-1, 0, 0), c( 0, 0,10,10), c( 0, 0,10, 0), c( 0,10, 0, 0)) (b4 <- balance(m4)) ## --- for testing and didactical reasons : ---- demo(balanceTst) # also defines the balanceTst() function # which in its tests ``defines'' what # the return value means, notably (i1,i2,scale)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.