norm = function (A, p = 2) { A <- as.matrix(A) if (min(dim(A)) == 1) A <- t(A) if (p == 1) return(as.matrix(max(colSums(abs(A))))) else if (p == 2) { A.sv <- La.svd(A)$d return(as.matrix(max(A.sv))) } else if (p > 1e+09) return(as.matrix(max(rowSums(abs(A))))) else stop("Unknown norm") }