Class VectorNorm

java.lang.Object
imagingbook.common.math.VectorNorm
Direct Known Subclasses:
VectorNorm.L1, VectorNorm.L2, VectorNorm.Linf

public abstract class VectorNorm extends Object
This class defines various vector norms for calculating the magnitude of a vector and the distance between vectors.
Version:
2022/09/11
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Implementation of the L1 vector norm (Manhattan norm/distance).
    static class 
    Implementation of the L2 vector norm (Euclidean norm/distance).
    static class 
    Implementation of the L-infinity vector norm (maximum norm/distance).
    static enum 
    Enumeration type for VectorNorm to be used as parameter choice.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract double
    distance(double[] a, double[] b)
    Returns the distance between two double[] vectors under this norm.
    abstract double
    distance(float[] a, float[] b)
    Returns the distance between two float[] vectors under this norm.
    abstract double
    distance(int[] a, int[] b)
    Returns the distance between two int[] vectors under this norm.
    abstract double
    distance2(double[] a, double[] b)
    Returns the squared distance between two double[] vectors under this norm.
    abstract double
    distance2(float[] a, float[] b)
    Returns the squared distance between two float[] vectors under this norm.
    abstract double
    distance2(int[] a, int[] b)
    Returns the squared distance between two int[] vectors under this norm.
    abstract double
    getScale(int n)
    Returns a factor to scale magnitude and distance values to the range of the vector components of dimensionality n.
    abstract double
    magnitude(double[] a)
    Returns the magnitude of the specified double[] vector under this norm.
    abstract double
    magnitude(float[] a)
    Returns the magnitude of the specified float[] vector under this norm.
    abstract double
    magnitude(int[] a)
    Returns the magnitude of the specified int[] vector under this norm.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • magnitude

      public abstract double magnitude(double[] a)
      Returns the magnitude of the specified double[] vector under this norm.
      Parameters:
      a - a vector
      Returns:
      the magnitude of the vector
    • magnitude

      public abstract double magnitude(float[] a)
      Returns the magnitude of the specified float[] vector under this norm.
      Parameters:
      a - a vector
      Returns:
      the magnitude of the vector
    • magnitude

      public abstract double magnitude(int[] a)
      Returns the magnitude of the specified int[] vector under this norm.
      Parameters:
      a - a vector
      Returns:
      the magnitude of the vector
    • distance

      public abstract double distance(double[] a, double[] b)
      Returns the distance between two double[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • distance

      public abstract double distance(float[] a, float[] b)
      Returns the distance between two float[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • distance

      public abstract double distance(int[] a, int[] b)
      Returns the distance between two int[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • distance2

      public abstract double distance2(double[] a, double[] b)
      Returns the squared distance between two double[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • distance2

      public abstract double distance2(float[] a, float[] b)
      Returns the squared distance between two float[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • distance2

      public abstract double distance2(int[] a, int[] b)
      Returns the squared distance between two int[] vectors under this norm.
      Parameters:
      a - first vector
      b - second vector
      Returns:
      the distance between vectors a and b
    • getScale

      public abstract double getScale(int n)
      Returns a factor to scale magnitude and distance values to the range of the vector components of dimensionality n. This is prim. used for scaling color distances (n = 3). E.g., if components are distributed in [0,255], the distances multiplied by this factor should again be in [0,255].
      Parameters:
      n - dimensionality
      Returns:
      scale factor