Package org.apache.sysds.runtime.compress.colgroup.indexes

# Class AColIndex

java.lang.Object
org.apache.sysds.runtime.compress.colgroup.indexes.AColIndex

All Implemented Interfaces:
  `IColIndex`

Direct Known Subclasses:
  `ArrayIndex`, `CombinedIndex`, `RangeIndex`, `SingleIndex`, `TwoIndex`, `TwoRangesIndex`

public abstract class AColIndex extends Object implements IColIndex

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.apache.sysds.runtime.compress.colgroup.indexes.IColIndex

`IColIndex.ColIndexType, IColIndex.SliceResult`

## Constructor Summary

Constructors
Constructor
Description
`AColIndex()`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`contains(IColIndex a, IColIndex b)`
This contains method is not strict since it only verifies one element is contained from each a and b.
`boolean`
`containsAny(IColIndex idx)`
Analyze if this column group contain any of the given column Ids.
`boolean`
`containsStrict(IColIndex a, IColIndex b)`
This contains both a and b ...
`void`
`decompressToDenseFromSparse(SparseBlock sb, int vr, int off, double[] c)`
Decompress this column index into the dense c array.
`void`
`decompressVec(int nCol, double[] c, int off, double[] values, int rowIdx)`
Decompress into c using the values provided.
`boolean`
`equals(Object other)`
`int`
`hashCode()`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.sysds.runtime.compress.colgroup.indexes.IColIndex

`avgOfIndex, combine, contains, equals, estimateInMemorySize, findIndex, get, getExactSizeOnDisk, getReorderingIndex, isContiguous, isSorted, iterator, shift, size, slice, sort, write`

## Constructor Details

### AColIndex

public AColIndex()

## Method Details

### hashCode

public int hashCode()

Specified by:
  `hashCode` in interface `IColIndex`
Overrides:
  `hashCode` in class `Object`

### equals

public boolean equals(Object other)

Specified by:
  `equals` in interface `IColIndex`
Overrides:
  `equals` in class `Object`

### contains

public boolean contains(IColIndex a, IColIndex b)
Description copied from interface: `IColIndex`
This contains method is not strict since it only verifies one element is contained from each a and b.

Specified by:
  `contains` in interface `IColIndex`
Parameters:
  `a` - one array to contain at least one value from
  `b` - another array to contain at least one value from
Returns:
  if the other arrays contain values from this array

### containsStrict

public boolean containsStrict(IColIndex a, IColIndex b)
Description copied from interface: `IColIndex`
This contains both a and b ... it is strict because it verifies all cells. Note it returns false if there are more elements in this than the sum of a and b.

Specified by:
  `containsStrict` in interface `IColIndex`
Parameters:
  `a` - one other array to contain
  `b` - another array to contain
Returns:
  if this array contains both a and b

### containsAny

public boolean containsAny(IColIndex idx)
Description copied from interface: `IColIndex`
Analyze if this column group contain any of the given column Ids.

Specified by:
  `containsAny` in interface `IColIndex`
Parameters:
  `idx` - A List of indexes
Returns:
  If it is contained

### decompressToDenseFromSparse

public void decompressToDenseFromSparse(SparseBlock sb, int vr, int off, double[] c)
Description copied from interface: `IColIndex`
Decompress this column index into the dense c array.

Specified by:
  `decompressToDenseFromSparse` in interface `IColIndex`
Parameters:
  `sb` - A sparse block to extract values out of and insert into c
  `vr` - The row to extract from the sparse block
  `off` - The offset that the row starts at in c.
  `c` - The dense output to decompress into

### decompressVec

public void decompressVec(int nCol, double[] c, int off, double[] values, int rowIdx)
Description copied from interface: `IColIndex`
Decompress into c using the values provided. The offset to start into c is off and then row index is similarly the offset of values. nCol specify the number of values to add over.

Specified by:
  `decompressVec` in interface `IColIndex`
Parameters:
  `nCol` - The number of columns to copy.
  `c` - The output to add into
  `off` - The offset to start in c
  `values` - the values to copy from
  `rowIdx` - The offset to start in values