swh:1:snp:81eadaa089e8253d8469bcef66aa332632c6c669
Tip revision: fdf16693b000f3e309c56091892c61f0ec9fd670 authored by Hans W. Borchers on 21 November 2017, 16:15:00 UTC
version 2.1.1
version 2.1.1
Tip revision: fdf1669
cond.R
##
## c o n d . R Matrix Condition
##
cond <- function(M, p = 2) {
if (length(M) == 0)
return(0)
if (!is.numeric(M))
stop("Argument 'M' must be a numeric matrix.")
if (is.vector(M))
M <- matrix(c(M), nrow = length(M), ncol = 1)
if (length(M) == 0) return(c())
if (ncol(M) != nrow(M) && p != 2)
stop("Matrix 'M' must be square if p = 2.")
if (p == 2) {
s <- svd(M)$d
cnd <- if (any(s == 0)) Inf else max(s) / min(s)
} else {
stop("At the moment, p-norms other than p = 2 are not implemented.")
#cnd <- norm(M, p) * norm(inv(M), p)
}
return(cnd)
}