balance {expm}  R Documentation 
Balance a Square Matrix via LAPACK's DGEBAL
Description
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 ...).
Usage
balance(A, job = c("B", "N", "P", "S"))
## Deprecated now:
## dgebal(A, job = c("B", "N", "P", "S"))
Arguments
A 
a square ( 
job 
a oneletter string specifying the ‘job’ for DGEBAL.

Details
An excerpt of the LAPACK documentation about DGEBAL(), describing the result
 i1 ("ILO")
(output) integer
 i2 ("IHI")
(output) integer
i1
andi2
are set to integers such that on exitz[i,j] = 0
ifi > j
andj = 1,...,i11
ori = i2+1,...,n
.If
job = 'N'
or'S'
,i1 = 1
andi2 = n
. scale
(output) numeric vector of length
n
. Details of the permutations and scaling factors applied toA
. IfP[j]
is the index of the row and column interchanged with row and columnj
andD[j]
is the scaling factor applied to row and column j, thenscale[j] = P[j]
forj = 1,...,i11
= D[j]
forj = i1,...,i2
,
= P[j]
forj = i2+1,...,n
.The order in which the interchanges are made is
n
toi2+1
, then1
toi11
.
Look at the LAPACK documentation for more details.
Value
A list with components
z 
the transformation of matrix 
scale 
numeric vector of length 
i1 , i2 
integers (length 1) in 
Author(s)
Martin Maechler
References
LAPACK Reference Manual
See Also
Examples
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 : 
if(expm:::doExtras()) withAutoprint({
sessionInfo()
packageDescription("Matrix")
"expm installed at"
dirname(attr(packageDescription("expm"), "file"))
})
demo(balanceTst) # also defines the balanceTst() function
# which in its tests ``defines'' what
# the return value means, notably (i1,i2,scale)