Function russell_lab::complex_matrix_norm
source · [−]pub fn complex_matrix_norm(a: &ComplexMatrix, kind: NormMat) -> f64
Expand description
Computes the matrix norm (complex version)
Computes one of:
One: 1-norm
‖a‖_1 = max_j ( Σ_i |aᵢⱼ| )
Inf: inf-norm
‖a‖_∞ = max_i ( Σ_j |aᵢⱼ| )
Fro: Frobenius-norm (2-norm)
‖a‖_F = sqrt(Σ_i Σ_j |aij|²) == ‖a‖_2
Max: max-norm
‖a‖_max = max_ij ( |aᵢⱼ| )
Example
use russell_lab::{complex_matrix_norm, ComplexMatrix, NormMat};
use russell_chk::assert_approx_eq;
fn main() {
let a = ComplexMatrix::from(&[
[-2.0, 2.0],
[ 1.0, -4.0],
]);
assert_approx_eq!(complex_matrix_norm(&a, NormMat::One), 6.0, 1e-15);
assert_approx_eq!(complex_matrix_norm(&a, NormMat::Inf), 5.0, 1e-15);
assert_approx_eq!(complex_matrix_norm(&a, NormMat::Fro), 5.0, 1e-15);
assert_approx_eq!(complex_matrix_norm(&a, NormMat::Max), 4.0, 1e-15);
}