Function russell_lab::matrix::mat_norm

source ·
pub fn mat_norm(a: &Matrix, kind: Norm) -> f64
Expand description

(dlange) Computes the matrix norm

Computes one of:

‖a‖_1 = max_j ( Σ_i |aij| )

‖a‖_∞ = max_i ( Σ_j |aij| )

‖a‖_F = sqrt(Σ_i Σ_j |aij|²) == ‖a‖_2

‖a‖_max = max_ij ( |aij| )

See also: https://www.netlib.org/lapack/explore-html/dc/d09/dlange_8f.html

§Examples

use russell_lab::*;

fn main() {
    let a = Matrix::from(&[
        [-2.0,  2.0],
        [ 1.0, -4.0],
    ]);
    approx_eq(mat_norm(&a, Norm::One), 6.0, 1e-15);
    approx_eq(mat_norm(&a, Norm::Inf), 5.0, 1e-15);
    approx_eq(mat_norm(&a, Norm::Fro), 5.0, 1e-15);
    approx_eq(mat_norm(&a, Norm::Max), 4.0, 1e-15);
}