Interface Vector<S extends Space,​V extends Vector<S,​V>>

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      V add​(double factor, Vector<S,​V> v)
      Add a scaled vector to the instance.
      V add​(Vector<S,​V> v)
      Add a vector to the instance.
      default V blendArithmeticallyWith​(Vector<S,​V> other, double blendingValue)
      Blend arithmetically this instance with another one.
      double distance1​(Vector<S,​V> v)
      Compute the distance between the instance and another vector according to the L1 norm.
      double distanceInf​(Vector<S,​V> v)
      Compute the distance between the instance and another vector according to the L norm.
      double distanceSq​(Vector<S,​V> v)
      Compute the square of the distance between the instance and another vector.
      double dotProduct​(Vector<S,​V> v)
      Compute the dot-product of the instance and another vector.
      double getNorm()
      Get the L2 norm for the vector.
      double getNorm1()
      Get the L1 norm for the vector.
      double getNormInf()
      Get the L norm for the vector.
      double getNormSq()
      Get the square of the norm for the vector.
      V getZero()
      Get the null vector of the vectorial space or origin point of the affine space.
      boolean isInfinite()
      Returns true if any coordinate of this vector is infinite and none are NaN; false otherwise
      V negate()
      Get the opposite of the instance.
      default V normalize()
      Get a normalized vector aligned with the instance.
      V scalarMultiply​(double a)
      Multiply the instance by a scalar.
      V subtract​(double factor, Vector<S,​V> v)
      Subtract a scaled vector from the instance.
      V subtract​(Vector<S,​V> v)
      Subtract a vector from the instance.
      String toString​(NumberFormat format)
      Get a string representation of this vector.
    • Method Detail

      • getZero

        V 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

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

        V add​(double factor,
              Vector<S,​V> 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

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

        V subtract​(double factor,
                   Vector<S,​V> 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

        V negate()
        Get the opposite of the instance.
        Returns:
        a new vector which is opposite to the instance
      • scalarMultiply

        V 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> 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> 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> 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> 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
      • blendArithmeticallyWith

        default V blendArithmeticallyWith​(Vector<S,​V> other,
                                          double blendingValue)
                                   throws MathIllegalArgumentException
        Blend arithmetically this instance with another one.
        Specified by:
        blendArithmeticallyWith in interface Blendable<S extends Space>
        Parameters:
        other - other instance to blend arithmetically with
        blendingValue - value from smoothstep function B(x). It is expected to be between [0:1] and will throw an exception otherwise.
        Returns:
        this * (1 - B(x)) + other * B(x)
        Throws:
        MathIllegalArgumentException - if blending value is not within [0:1]