[−][src]Module rulinalg::norm
The norm module
This module contains implementations of various linear algebra norms.
The implementations are contained within the VectorNorm and
MatrixNorm traits. This module also contains VectorMetric and
MatrixMetric traits which are used to compute the metric distance.
These traits can be used directly by importing implementors from
this module. In most cases it will be easier to use the norm and
metric functions which exist for both vectors and matrices. These
functions take generic arguments for the norm to be used.
In general you should use the least generic norm that fits your purpose.
For example you would choose to use a Euclidean norm instead of an
Lp(2.0) norm - despite them being mathematically equivalent.
Defining your own norm
Note that these traits enforce no requirements on the norm. It is up to the user to ensure that they define a norm correctly.
To define your own norm you need to implement the MatrixNorm
and/or the VectorNorm on your own struct. When you have defined
a norm you get the induced metric for free. This means that any
object which implements the VectorNorm or MatrixNorm will
automatically implement the VectorMetric and MatrixMetric traits
respectively. This induced metric will compute the norm of the
difference between the vectors or matrices.
Structs
| Euclidean | The Euclidean norm |
Enums
| Lp | The Lp norm |
Traits
| MatrixMetric | Trait for matrix metrics. |
| MatrixNorm | Trait for matrix norms. |
| VectorMetric | Trait for vector metrics. |
| VectorNorm | Trait for vector norms |