Vector Norms and Normalization

This package provides functions for evaluating vector norms and normalizing vectors.

Vector Norm Evaluation

Synopsis

vnorm(x, p)             # compute L-p norm of vec(x)
vnorm(x, p, dim)        # compute L-p norm of x along dimension dim
vnorm!(r, x, p, dim)    # compute L-p norm along specific dimension and
                        # write results to r

vnormdiff(x, y, p)             # compute L-p norm of vec(x - y)
vnormdiff(x, y, p, dim)        # compute L-p norm of x - y along dim
vnormdiff!(r, x, y, p, dim)    # compute L-p norm of x - y along dim and write to r

Notes:

  • For vnormdiff and vnormdiff!, x or y can be either an array or a scalar.
  • When p is 1, 2, or Inf, specialized fast routines are used.

Examples

vnorm(x, 2)          # compute L-2 norm of x
vnorm(x, 2, 1)       # compute L-2 norm of each column of x
vnorm(x, Inf, 2)     # compute L-inf norm of each row of x
vnorm!(r, x, 2, 1)   # compute L-2 norm of each column, and write results to r

vnormdiff(x, 2.5, 2)    # compute L-2 norm of x - 2.5
vnormdiff(x, y, 1, 2)   # compute L-1 norm of x - y for each column

Normalization

Normalizing a vector w.r.t L-p norm means to scale a vector such that the L-p norm of the vector becomes 1.

Synopsis

normalize(x, p)         # returns a normalized vector w.r.t. L-p norm
normalize!(x, p)        # normalize x w.r.t. L-p norm inplace
normalize!(r, x, p)     # write the normalized vector to a pre-allocated array r

normalize(x, p, dim)       # returns an array comprised of normalized vectors along dim
normalize!(x, p, dim)      # normalize vectors of x along dim inplace w.r.t. L-p norm
normalize!(r, x, p, dim)   # write the normalized vectors along dim to r