Interface Vector<S extends Space>

  • Type Parameters:
    S - Type of the space.
    All Superinterfaces:
    Point<S>, Serializable
    All Known Implementing Classes:
    Vector1D, Vector2D, Vector3D

    public interface Vector<S extends Space>
    extends Point<S>
    This interface represents a generic vector in a vectorial space or a point in an affine space.
    See Also:
    Space, Point
    • Method Detail

      • getZero

        Vector<S> getZero()
        Get the null vector of the vectorial space or origin point of the affine space.
        Returns:
        null vector of the vectorial space or origin point of the affine space
      • getNorm1

        double getNorm1()
        Get the L1 norm for the vector.
        Returns:
        L1 norm for the vector
      • getNorm

        double getNorm()
        Get the L2 norm for the vector.
        Returns:
        Euclidean norm for the vector
      • getNormSq

        double getNormSq()
        Get the square of the norm for the vector.
        Returns:
        square of the Euclidean norm for the vector
      • getNormInf

        double getNormInf()
        Get the L norm for the vector.
        Returns:
        L norm for the vector
      • add

        Vector<S> add​(Vector<S> v)
        Add a vector to the instance.
        Parameters:
        v - vector to add
        Returns:
        a new vector
      • add

        Vector<S> add​(double factor,
                      Vector<S> v)
        Add a scaled vector to the instance.
        Parameters:
        factor - scale factor to apply to v before adding it
        v - vector to add
        Returns:
        a new vector
      • subtract

        Vector<S> subtract​(Vector<S> v)
        Subtract a vector from the instance.
        Parameters:
        v - vector to subtract
        Returns:
        a new vector
      • subtract

        Vector<S> subtract​(double factor,
                           Vector<S> v)
        Subtract a scaled vector from the instance.
        Parameters:
        factor - scale factor to apply to v before subtracting it
        v - vector to subtract
        Returns:
        a new vector
      • negate

        Vector<S> negate()
        Get the opposite of the instance.
        Returns:
        a new vector which is opposite to the instance
      • scalarMultiply

        Vector<S> scalarMultiply​(double a)
        Multiply the instance by a scalar.
        Parameters:
        a - scalar
        Returns:
        a new vector
      • isInfinite

        boolean isInfinite()
        Returns true if any coordinate of this vector is infinite and none are NaN; false otherwise
        Returns:
        true if any coordinate of this vector is infinite and none are NaN; false otherwise
      • distance1

        double distance1​(Vector<S> v)
        Compute the distance between the instance and another vector according to the L1 norm.

        Calling this method is equivalent to calling: q.subtract(p).getNorm1() except that no intermediate vector is built

        Parameters:
        v - second vector
        Returns:
        the distance between the instance and p according to the L1 norm
      • distanceInf

        double distanceInf​(Vector<S> v)
        Compute the distance between the instance and another vector according to the L norm.

        Calling this method is equivalent to calling: q.subtract(p).getNormInf() except that no intermediate vector is built

        Parameters:
        v - second vector
        Returns:
        the distance between the instance and p according to the L norm
      • distanceSq

        double distanceSq​(Vector<S> v)
        Compute the square of the distance between the instance and another vector.

        Calling this method is equivalent to calling: q.subtract(p).getNormSq() except that no intermediate vector is built

        Parameters:
        v - second vector
        Returns:
        the square of the distance between the instance and p
      • dotProduct

        double dotProduct​(Vector<S> v)
        Compute the dot-product of the instance and another vector.
        Parameters:
        v - second vector
        Returns:
        the dot product this.v
      • toString

        String toString​(NumberFormat format)
        Get a string representation of this vector.
        Parameters:
        format - the custom format for components
        Returns:
        a string representation of this vector