norm method

num norm([
  1. Norm normType = Norm.frobenius
])

Implementation

num norm([Norm normType = Norm.frobenius]) {
  switch (normType) {
    case Norm.manhattan:
      return _l1Norm();
    case Norm.frobenius:
      return _l2Norm();
    case Norm.chebyshev:
      return _infinityNorm();
    case Norm.spectral:
      return _spectralNorm();
    case Norm.trace:
      return _traceNorm();
    // The below norms need more context to implement.
    case Norm.mahalanobis:
      throw UnimplementedError('Mahalanobis norm is not implemented');
    case Norm.hamming:
    case Norm.cosine:
    default:
      throw Exception('Invalid norm type');
  }
}