@@ -1111,6 +1111,23 @@ end
11111111/ (u:: AdjointAbsVec , D:: Diagonal ) = (D' \ u' )'
11121112/ (u:: TransposeAbsVec , D:: Diagonal ) = transpose (transpose (D) \ transpose (u))
11131113
1114+ # norm
1115+ function generic_normMinusInf (D:: Diagonal )
1116+ norm_diag = norm (D. diag, - Inf )
1117+ min (norm_diag, zero (norm_diag))
1118+ end
1119+ generic_normInf (D:: Diagonal ) = norm (D. diag, Inf )
1120+ generic_norm1 (D:: Diagonal ) = norm (D. diag, 1 )
1121+ generic_norm2 (D:: Diagonal ) = norm (D. diag)
1122+ function generic_normp (D:: Diagonal , p)
1123+ v = norm (D. diag, p)
1124+ if size (D,1 ) > 1 && p < 0
1125+ v = norm (zero (v), p)
1126+ end
1127+ return v
1128+ end
1129+ norm_x_minus_y (D1:: Diagonal , D2:: Diagonal ) = norm_x_minus_y (D1. diag, D2. diag)
1130+
11141131_opnorm1 (A:: Diagonal ) = maximum (norm (x) for x in A. diag)
11151132_opnormInf (A:: Diagonal ) = maximum (norm (x) for x in A. diag)
11161133_opnorm12Inf (A:: Diagonal , p) = maximum (opnorm (x, p) for x in A. diag)
@@ -1246,20 +1263,3 @@ function fillband!(D::Diagonal, x, l, u)
12461263 end
12471264 return D
12481265end
1249-
1250- # norm
1251- function generic_normMinusInf (D:: Diagonal )
1252- norm_diag = norm (D. diag, - Inf )
1253- min (norm_diag, zero (norm_diag))
1254- end
1255- generic_normInf (D:: Diagonal ) = norm (D. diag, Inf )
1256- generic_norm1 (D:: Diagonal ) = norm (D. diag, 1 )
1257- generic_norm2 (D:: Diagonal ) = norm (D. diag)
1258- function generic_normp (D:: Diagonal , p)
1259- v = norm (D. diag, p)
1260- if size (D,1 ) > 1 && p < 0
1261- v = norm (zero (v), p)
1262- end
1263- return v
1264- end
1265- norm_x_minus_y (D1:: Diagonal , D2:: Diagonal ) = norm_x_minus_y (D1. diag, D2. diag)
0 commit comments