Class DoubleVectorDataDense

All Implemented Interfaces:
Serializable, Cloneable

public class DoubleVectorDataDense
extends DoubleVectorData
Stores dense data for a DoubleVector and carries out basic operations.

Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
Serialized Form
  • Constructor Details

    • DoubleVectorDataDense

      public DoubleVectorDataDense​(double[] vectorSI)
      Create a vector with dense data.
      Parameters:
      vectorSI - double[]; the data to store
  • Method Details

    • cardinality

      public final int cardinality()
      Compute and return the number of non-zero cells in this indexed value.
      Specified by:
      cardinality in class AbstractStorage<DoubleVectorData>
      Returns:
      int; the number of non-zero cells
    • assign

      public final DoubleVectorDataDense assign​(DoubleFunction doubleFunction)
      Apply an operation to each cell.
      Specified by:
      assign in class DoubleVectorData
      Parameters:
      doubleFunction - DoubleFunction; the operation to apply
      Returns:
      DoubleVectorData; this (modified) double vector data object
    • assign

      public final DoubleVectorDataDense assign​(DoubleFunction2 doubleFunction2, DoubleVectorData right)
      Apply a binary operation on a cell by cell basis.
      Specified by:
      assign in class DoubleVectorData
      Parameters:
      doubleFunction2 - DoubleFunction2; the binary operation to apply
      right - DoubleVectorData; the right operand for the binary operation
      Returns:
      DoubleVectorData; this (modified) double vector data object
    • toDense

      public final DoubleVectorDataDense toDense()
      Return the densely stored equivalent of this data.
      Specified by:
      toDense in class DoubleVectorData
      Returns:
      DoubleVectorDataDense; the dense transformation of this data
    • toSparse

      public final DoubleVectorDataSparse toSparse()
      Return the sparsely stored equivalent of this data.
      Specified by:
      toSparse in class DoubleVectorData
      Returns:
      DoubleVectorDataSparse; the sparse transformation of this data
    • size

      public final int size()
      Retrieve the size of the vector.
      Specified by:
      size in class DoubleVectorData
      Returns:
      int; the size of the vector
    • getSI

      public final double getSI​(int index)
      Retrieve the SI value of one element of this data.
      Specified by:
      getSI in class DoubleVectorData
      Parameters:
      index - int; the index to get the value for
      Returns:
      double; the value at the index
    • setSI

      public final void setSI​(int index, double valueSI)
      Sets a value at the index in the vector.
      Specified by:
      setSI in class DoubleVectorData
      Parameters:
      index - int; the index to set the value for
      valueSI - double; the value at the index
    • getDenseVectorSI

      public final double[] getDenseVectorSI()
      Create and return a dense copy of the data.
      Specified by:
      getDenseVectorSI in class DoubleVectorData
      Returns:
      double[]; a safe copy of VectorSI
    • copy

      public final DoubleVectorDataDense copy()
      Create and return a deep copy of the data.
      Specified by:
      copy in class AbstractStorage<DoubleVectorData>
      Returns:
      T; a deep copy of the data
    • plus

      public final DoubleVectorDataDense plus​(DoubleVectorData right)
      Add two vectors on a cell-by-cell basis. If both vectors are sparse, a sparse vector is returned, otherwise a dense vector is returned. Neither of the two objects is changed.
      Specified by:
      plus in class DoubleVectorData
      Parameters:
      right - DoubleVectorData; the other data object to add
      Returns:
      DoubleVectorData; the sum of this data object and the other data object as a new data object
    • minus

      public final DoubleVectorDataDense minus​(DoubleVectorData right)
      Subtract two vectors on a cell-by-cell basis. If both vectors are sparse, a sparse vector is returned, otherwise a dense vector is returned. Neither of the two objects is changed.
      Specified by:
      minus in class DoubleVectorData
      Parameters:
      right - DoubleVectorData; the other data object to subtract
      Returns:
      DoubleVectorData; the difference of this data object and the other data object as a new data object
    • times

      public final DoubleVectorData times​(DoubleVectorData right)
      Multiply two vectors on a cell-by-cell basis. If both vectors are dense, a dense vector is returned, otherwise a sparse vector is returned.
      Specified by:
      times in class DoubleVectorData
      Parameters:
      right - DoubleVectorData; the other data object to multiply with
      Returns:
      DoubleVectorData; a new double vector data store holding the result of the multiplications
    • divide

      public final DoubleVectorData divide​(DoubleVectorData right)
      Divide two vectors on a cell-by-cell basis. If this vector is sparse and right is dense, a sparse vector is returned, otherwise a dense vector is returned.
      Specified by:
      divide in class DoubleVectorData
      Parameters:
      right - DoubleVectorData; the other data object to divide by
      Returns:
      DoubleVectorData; the ratios of the values of this data object and the other data object