Class DoubleVector

java.lang.Object
weka.core.matrix.DoubleVector
All Implemented Interfaces:
Cloneable, RevisionHandler

public class DoubleVector extends Object implements Cloneable, RevisionHandler
A vector specialized on doubles.
Version:
$Revision: 10203 $
Author:
Yong Wang
  • Constructor Details

    • DoubleVector

      public DoubleVector()
      Constructs a null vector.
    • DoubleVector

      public DoubleVector(int n)
      Constructs an n-vector of zeros.
      Parameters:
      n - length.
    • DoubleVector

      public DoubleVector(int n, double s)
      Constructs a constant n-vector.
      Parameters:
      n - length.
      s - the scalar value used to fill the vector
    • DoubleVector

      public DoubleVector(double[] v)
      Constructs a vector directly from a double array
      Parameters:
      v - the array
  • Method Details

    • set

      public void set(int i, double s)
      Set a single element.
      Parameters:
      i - Index.
      s - a[i].
    • set

      public void set(double s)
      Set all elements to a value
      Parameters:
      s - the value
    • set

      public void set(int i0, int i1, double s)
      Set some elements to a value
      Parameters:
      i0 - the index of the first element
      i1 - the index of the second element
      s - the value
    • set

      public void set(int i0, int i1, double[] v, int j0)
      Set some elements using a 2-D array
      Parameters:
      i0 - the index of the first element
      i1 - the index of the second element
      j0 - the index of the starting element in the 2-D array
      v - the values
    • set

      public void set(DoubleVector v)
      Set the elements using a DoubleVector
      Parameters:
      v - the DoubleVector
    • set

      public void set(int i0, int i1, DoubleVector v, int j0)
      Set some elements using a DoubleVector.
      Parameters:
      i0 - the index of the first element
      i1 - the index of the second element
      v - the DoubleVector
      j0 - the index of the starting element in the DoubleVector
    • getArray

      public double[] getArray()
      Access the internal one-dimensional array.
      Returns:
      Pointer to the one-dimensional array of vector elements.
    • getArrayCopy

      public double[] getArrayCopy()
      Returns a copy of the DoubleVector usng a double array.
      Returns:
      the one-dimensional array.
    • sort

      public void sort()
      Sorts the array in place
    • sortWithIndex

      public IntVector sortWithIndex()
      Sorts the array in place with index returned
    • sortWithIndex

      public void sortWithIndex(int xi, int xj, IntVector index)
      Sorts the array in place with index changed
      Parameters:
      xi - first index
      xj - last index
      index - array that stores all indices
    • size

      public int size()
      Gets the size of the vector.
      Returns:
      the size
    • setSize

      public void setSize(int m)
      Sets the size of the vector
      Parameters:
      m - the size
    • capacity

      public int capacity()
      Gets the capacity of the vector.
      Returns:
      the capacity.
    • setCapacity

      public void setCapacity(int n)
      Sets the capacity of the vector
      Parameters:
      n - the capacity.
    • get

      public double get(int i)
      Gets a single element.
      Parameters:
      i - Index.
      Returns:
      the value of the i-th element
    • setPlus

      public void setPlus(int i, double s)
      Adds a value to an element
      Parameters:
      i - the index of the element
      s - the value
    • setTimes

      public void setTimes(int i, double s)
      Multiplies a value to an element
      Parameters:
      i - the index of the element
      s - the value
    • addElement

      public void addElement(double x)
      Adds an element into the vector
      Parameters:
      x - the value of the new element
    • square

      public DoubleVector square()
      Returns the squared vector
    • sqrt

      public DoubleVector sqrt()
      Returns the square-root of all the elements in the vector
    • copy

      public DoubleVector copy()
      Makes a deep copy of the vector
    • clone

      public Object clone()
      Clones the DoubleVector object.
    • innerProduct

      public double innerProduct(DoubleVector v)
      Returns the inner product of two DoubleVectors
      Parameters:
      v - the second DoubleVector
      Returns:
      the product
    • sign

      public DoubleVector sign()
      Returns the signs of all elements in terms of -1, 0 and +1.
    • sum

      public double sum()
      Returns the sum of all elements in the vector.
    • sum2

      public double sum2()
      Returns the squared sum of all elements in the vector.
    • norm1

      public double norm1()
      Returns the L1-norm of the vector
    • norm2

      public double norm2()
      Returns the L2-norm of the vector
    • sum2

      public double sum2(DoubleVector v)
      Returns ||u-v||^2
      Parameters:
      v - the second vector
    • subvector

      public DoubleVector subvector(int i0, int i1)
      Returns a subvector.
      Parameters:
      i0 - the index of the first element
      i1 - the index of the last element
      Returns:
      v[i0:i1]
    • subvector

      public DoubleVector subvector(IntVector index)
      Returns a subvector.
      Parameters:
      index - stores the indices of the needed elements
      Returns:
      v[index]
    • unpivoting

      public DoubleVector unpivoting(IntVector index, int length)
      Returns a vector from the pivoting indices. Elements not indexed are set to zero.
      Parameters:
      index - stores the pivoting indices
      length - the total number of the potential elements
      Returns:
      the subvector
    • plus

      public DoubleVector plus(double x)
      Adds a value to all the elements
      Parameters:
      x - the value
    • plusEquals

      public DoubleVector plusEquals(double x)
      Adds a value to all the elements in place
      Parameters:
      x - the value
    • plus

      public DoubleVector plus(DoubleVector v)
      Adds another vector element by element
      Parameters:
      v - the second vector
    • plusEquals

      public DoubleVector plusEquals(DoubleVector v)
      Adds another vector in place element by element
      Parameters:
      v - the second vector
    • minus

      public DoubleVector minus(double x)
      Subtracts a value
      Parameters:
      x - the value
    • minusEquals

      public DoubleVector minusEquals(double x)
      Subtracts a value in place
      Parameters:
      x - the value
    • minus

      public DoubleVector minus(DoubleVector v)
      Subtracts another DoubleVector element by element
      Parameters:
      v - the second DoubleVector
    • minusEquals

      public DoubleVector minusEquals(DoubleVector v)
      Subtracts another DoubleVector element by element in place
      Parameters:
      v - the second DoubleVector
    • times

      public DoubleVector times(double s)
      Multiplies a scalar
      Parameters:
      s - scalar
      Returns:
      s * v
    • timesEquals

      public DoubleVector timesEquals(double s)
      Multiply a vector by a scalar in place, u = s * u
      Parameters:
      s - scalar
      Returns:
      replace u by s * u
    • times

      public DoubleVector times(DoubleVector v)
      Multiplies another DoubleVector element by element
      Parameters:
      v - the second DoubleVector
    • timesEquals

      public DoubleVector timesEquals(DoubleVector v)
      Multiplies another DoubleVector element by element in place
      Parameters:
      v - the second DoubleVector
    • dividedBy

      public DoubleVector dividedBy(DoubleVector v)
      Divided by another DoubleVector element by element
      Parameters:
      v - the second DoubleVector
    • dividedByEquals

      public DoubleVector dividedByEquals(DoubleVector v)
      Divided by another DoubleVector element by element in place
      Parameters:
      v - the second DoubleVector
    • isEmpty

      public boolean isEmpty()
      Checks if it is an empty vector
    • cumulate

      public DoubleVector cumulate()
      Returns a vector that stores the cumulated values of the original vector
    • cumulateInPlace

      public DoubleVector cumulateInPlace()
      Cumulates the original vector in place
    • indexOfMax

      public int indexOfMax()
      Returns the index of the maximum.

      If multiple maximums exist, the index of the first is returned.

    • unsorted

      public boolean unsorted()
      Returns true if vector not sorted
    • cat

      public DoubleVector cat(DoubleVector v)
      Combine two vectors together
      Parameters:
      v - the second vector
    • swap

      public void swap(int i, int j)
      Swaps the values stored at i and j
      Parameters:
      i - the index i
      j - the index j
    • max

      public double max()
      Returns the maximum value of all elements
    • map

      public DoubleVector map(String className, String method)
      Applies a method to the vector
      Parameters:
      className - the class name
      method - the method
    • rev

      public DoubleVector rev()
      Returns the reverse vector
    • random

      public static DoubleVector random(int n)
      Returns a random vector of uniform distribution
      Parameters:
      n - the size of the vector
    • toString

      public String toString()
      Convert the DoubleVecor to a string
      Overrides:
      toString in class Object
    • toString

      public String toString(int digits, boolean trailing)
      Convert the DoubleVecor to a string
      Parameters:
      digits - the number of digits after decimal point
      trailing - true if trailing zeros are to be shown
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Returns:
      the revision
    • main

      public static void main(String[] args)