Class DoubleVectorDataSparse

    • Constructor Detail

      • DoubleVectorDataSparse

        public DoubleVectorDataSparse​(double[] vectorSI,
                                      int[] indices,
                                      int size)
        Create a vector with sparse data.
        Parameters:
        vectorSI - double[]; the data to store
        indices - int[]; the index values of the Vector
        size - int; the length of the vector (padded with 0 after highest index in indices)
    • Method Detail

      • 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 DoubleVectorData 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 DoubleVectorDataSparse assign​(DoubleFunction2 doubleFunction,
                                                   DoubleVectorData right)
        Apply a binary operation on a cell by cell basis.
        Specified by:
        assign in class DoubleVectorData
        Parameters:
        doubleFunction - 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
      • instantiate

        public static DoubleVectorDataSparse instantiate​(double[] valuesSI)
        Instantiate a DoubleVectorDataSparse from an array.
        Parameters:
        valuesSI - double[]; the (SI) values to store
        Returns:
        the DoubleVectorDataSparse
      • plus

        public final DoubleVectorData 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 DoubleVectorData 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)
                                      throws ValueRuntimeException
        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
        Throws:
        ValueRuntimeException - if vectors have different lengths