Class AccessCol

java.lang.Object
mklab.JGNN.core.Tensor
mklab.JGNN.core.matrix.AccessCol
All Implemented Interfaces:
Iterable<Long>

public class AccessCol extends Tensor
Accesses a column of a Matrix as if it were a dense Tensor. Prefer using Matrix.accessCol(long), which wraps usage of this class. Instances of this class share elements with the matrix which they access and do not allocate new memory.
Author:
Emmanouil Krasanakis
See Also:
  • Constructor Details

    • AccessCol

      public AccessCol(Matrix matrix, long col)
      Instantiates a see-through access of a matrix column.
      Parameters:
      matrix - The base matrix.
      col - Which column to access.
  • Method Details

    • estimateNumNonZeroElements

      public long estimateNumNonZeroElements()
      Description copied from class: Tensor
      Provides an estimation for the non-zero number of elements stored in the tensor, where this number is equal to the size for dense tensors, but equal to the actual number of non-zero elements for sparse tensors. Basically, this quantity is proportional to the allocated memory.
      Overrides:
      estimateNumNonZeroElements in class Tensor
      Returns:
      A long number equal to or less to the tensor size.
      See Also:
    • allocate

      protected void allocate(long size)
      Specified by:
      allocate in class Tensor
    • put

      public Tensor put(long pos, double value)
      Description copied from class: Tensor
      Assign a value to a tensor element. All tensor operations use this function to wrap element assignments.
      Specified by:
      put in class Tensor
      Parameters:
      pos - The position of the tensor element.
      value - The value to assign.
      Returns:
      this Tensor instance.
      See Also:
    • get

      public double get(long pos)
      Description copied from class: Tensor
      Retrieves the value of a tensor element at a given position. All tensor operations use this function to wrap element retrieval.
      Specified by:
      get in class Tensor
      Parameters:
      pos - The position of the tensor element
      Returns:
      The value of the tensor element
    • zeroCopy

      public Tensor zeroCopy(long size)
      Description copied from class: Tensor
      Creates a tensor of the same class with a given size and all element set to zero.
      Specified by:
      zeroCopy in class Tensor
      Parameters:
      size - The size of the new tensor.
      Returns:
      A new tensor.
      See Also:
    • traverseNonZeroElements

      public Iterator<Long> traverseNonZeroElements()
      Description copied from class: Tensor
      Retrieves positions within the tensor that may hold non-zero elements. This guarantees that all non-zero elements positions are traversed but some of the returned positions could hold zero elements. For example, DenseTensor traverses all of its elements this way, whereas SparseTensor indeed traverses only non-zero elements.
      Specified by:
      traverseNonZeroElements in class Tensor
      Returns:
      An iterator that traverses positions within the tensor.
    • release

      public void release()
      Description copied from class: Tensor
      If the subclassed tensor allows it, release all memory it takes up so that the garbage collector will eventually clean it up. This memory will be released anyway by Java once there are no more references to the object.
      Specified by:
      release in class Tensor
      See Also:
    • persist

      public void persist()
      Description copied from class: Tensor
      If supported by the subclassed tensor, invalidates calls to Tensor.release() so that memory is de-allocated only when object references expire.
      Specified by:
      persist in class Tensor
      See Also: