Class Vector1D.Unit

    • Field Detail

      • PLUS

        public static final Vector1D.Unit PLUS
        Unit vector (coordinates: 1).
      • MINUS

        public static final Vector1D.Unit MINUS
        Negation of unit vector (coordinates: -1).
    • Constructor Detail

      • Unit

        private Unit​(double x)
        Simple constructor. Callers are responsible for ensuring that the given values represent a normalized vector.
        Parameters:
        x - abscissa (first coordinate value)
    • Method Detail

      • norm

        public double norm()
        Get the L2 norm (commonly known as the Euclidean norm) for the vector. This corresponds to the common notion of vector magnitude or length and is defined as the square root of the sum of the squares of all vector components.
        Specified by:
        norm in interface Vector<Vector1D>
        Overrides:
        norm in class Vector1D
        Returns:
        L2 norm for the vector
        See Also:
        L2 Norm
      • normSq

        public double normSq()
        Get the square of the L2 norm (also known as the Euclidean norm) for the vector. This is equal to the sum of the squares of all vector components.
        Specified by:
        normSq in interface Vector<Vector1D>
        Overrides:
        normSq in class Vector1D
        Returns:
        square of the L2 norm for the vector
        See Also:
        Vector.norm()
      • normalizeOrNull

        public Vector1D.Unit normalizeOrNull()
        Attempt to compute a normalized vector aligned with the instance, returning null if such a vector cannot be computed. This method is equivalent to Vector.normalize() but returns null instead of throwing an exception on failure.
        Specified by:
        normalizeOrNull in interface Vector<Vector1D>
        Overrides:
        normalizeOrNull in class Vector1D
        Returns:
        normalized vector or null if such a vector cannot be computed, i.e. if the norm is zero, NaN, or infinite
        See Also:
        Vector.normalize()
      • withNorm

        public Vector1D withNorm​(double mag)
        Returns a vector with the same direction but with the given norm. This is equivalent to calling vec.normalize().scalarMultiply(mag) but without the intermediate vector.
        Specified by:
        withNorm in interface Vector<Vector1D>
        Overrides:
        withNorm in class Vector1D
        Parameters:
        mag - The vector norm
        Returns:
        a vector with the same direction as the current instance but the given norm
      • negate

        public Vector1D negate()
        Get the negation of the instance.
        Specified by:
        negate in interface Vector<Vector1D>
        Overrides:
        negate in class Vector1D
        Returns:
        a new vector which is the negation of the instance
      • from

        public static Vector1D.Unit from​(double x)
        Create a normalized vector.
        Parameters:
        x - Vector coordinate.
        Returns:
        a vector whose norm is 1.
        Throws:
        java.lang.IllegalArgumentException - if the norm of the given value is zero, NaN, or infinite
      • from

        public static Vector1D.Unit from​(Vector1D v)
        Create a normalized vector.
        Parameters:
        v - Vector.
        Returns:
        a vector whose norm is 1.
        Throws:
        java.lang.IllegalArgumentException - if the norm of the given value is zero, NaN, or infinite
      • tryCreateNormalized

        private static Vector1D.Unit tryCreateNormalized​(double x,
                                                         boolean throwOnFailure)
        Attempt to create a normalized vector from the given coordinate values. If throwOnFailure is true, an exception is thrown if a normalized vector cannot be created. Otherwise, null is returned.
        Parameters:
        x - x coordinate
        throwOnFailure - if true, an exception will be thrown if a normalized vector cannot be created
        Returns:
        normalized vector or null if one cannot be created and throwOnFailure is false
        Throws:
        java.lang.IllegalArgumentException - if the computed norm is zero, NaN, or infinite