diagU2N Transform Triangular Matrices from Unit Triangular to General Triangular and Back
 Description
Transform a triangular matrix x, i.e., of class "triangularMatrix", from (internally!) unit triangular (“unitriangular”) to “general” triangular (diagU2N(x)) or back (diagN2U(x)). Note that the latter, diagN2U(x), also sets the diagonal to one in cases where diag(x) was not all one. 
.diagU2N(x) assumes but does not check that x is a triangularMatrix with diag slot "U", and should hence be used with care. 
Usage
diagN2U(x, cl = getClassDef(class(x)), checkDense = FALSE) diagU2N(x, cl = getClassDef(class(x)), checkDense = FALSE) .diagU2N(x, cl, checkDense = FALSE)
Arguments
| x | a  | 
| cl | (optional, for speedup only:) class (definition) of  | 
| checkDense | logical indicating if dense (see  | 
Details
The concept of unit triangular matrices with a diag slot of "U" stems from LAPACK. 
Value
a triangular matrix of the same class but with a different diag slot. For diagU2N (semantically) with identical entries as x, whereas in diagN2U(x), the off-diagonal entries are unchanged and the diagonal is set to all 1 even if it was not previously. 
Note
Such internal storage details should rarely be of relevance to the user. Hence, these functions really are rather internal utilities.
See Also
"triangularMatrix", "dtCMatrix". 
Examples
(T <- Diagonal(7) + triu(Matrix(rpois(49, 1/4), 7,7), k = 1))
(uT <- diagN2U(T)) # "unitriangular"
(t.u <- diagN2U(10*T))# changes the diagonal!
stopifnot(all(T == uT), diag(t.u) == 1,
          identical(T, diagU2N(uT)))
T[upper.tri(T)] <- 5
T <- diagN2U(as(T,"triangularMatrix"))
stopifnot(T@diag == "U")
dT <- as(T, "denseMatrix")
dt. <- diagN2U(dT)
dtU <- diagN2U(dT, checkDense=TRUE)
stopifnot(is(dtU, "denseMatrix"), is(dt., "sparseMatrix"),
          all(dT == dt.), all(dT == dtU),
          dt.@diag == "U", dtU@diag == "U")
    Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.