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);
}