## Uses of Class
org.apache.sysds.runtime.compress.colgroup.dictionary.ADictionary

- Packages that use ADictionary
  Package | Description
  --- | ---
  org.apache.sysds.runtime.compress.colgroup |
  org.apache.sysds.runtime.compress.colgroup.dictionary |
  org.apache.sysds.runtime.compress.colgroup.mapping |

- - ### Uses of ADictionary in org.apache.sysds.runtime.compress.colgroup

    Methods in org.apache.sysds.runtime.compress.colgroup that return ADictionary
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADictionary` | AColGroupValue.`getDictionary()` |
    `ADictionary` | ColGroupSDC.`getDictionary()` |
    `ADictionary` | ColGroupSDCSingle.`getDictionary()` |
    `ADictionary` | APreAgg.`preAggregateThatIndexStructure​(APreAgg that)` | Pre aggregate into a dictionary.

    Methods in org.apache.sysds.runtime.compress.colgroup with parameters of type ADictionary
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AColGroup` | ColGroupConst.`create​(int numCols, ADictionary dict)` | Generate a constant column group.
    `static AColGroup` | ColGroupDeltaDDC.`create​(int[] colIndices, int numRows, ADictionary dict, AMapToData data, int[] cachedCounts)` |

  - ### Uses of ADictionary in org.apache.sysds.runtime.compress.colgroup.dictionary

    Subclasses of ADictionary in org.apache.sysds.runtime.compress.colgroup.dictionary
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DeltaDictionary` | This dictionary class is a specialization for the DeltaDDCColgroup.
    `class` | `Dictionary` | This dictionary class aims to encapsulate the storage and operations over unique floating point values of a column group.
    `class` | `MatrixBlockDictionary` |
    `class` | `QDictionary` | This dictionary class aims to encapsulate the storage and operations over unique floating point values of a column group.

    Methods in org.apache.sysds.runtime.compress.colgroup.dictionary that return ADictionary
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract ADictionary` | ADictionary.`applyScalarOp​(ScalarOperator op)` | Allocate a new dictionary and applies the scalar operation on each cell of the to then return the new dictionary.
    `ADictionary` | MatrixBlockDictionary.`applyScalarOp​(ScalarOperator op)` |
    `abstract ADictionary` | ADictionary.`applyScalarOpWithReference​(ScalarOperator op, double[] reference, double[] newReference)` | Allocate a new dictionary and apply the scalar operation on each cell to then return a new dictionary.
    `ADictionary` | MatrixBlockDictionary.`applyScalarOpWithReference​(ScalarOperator op, double[] reference, double[] newReference)` |
    `ADictionary` | QDictionary.`applyScalarOpWithReference​(ScalarOperator op, double[] reference, double[] newReference)` |
    `abstract ADictionary` | ADictionary.`applyUnaryOp​(UnaryOperator op)` | Allocate a new dictionary and apply the unary operator on each cell.
    `ADictionary` | MatrixBlockDictionary.`applyUnaryOp​(UnaryOperator op)` |
    `ADictionary` | QDictionary.`applyUnaryOp​(UnaryOperator op)` |
    `abstract ADictionary` | ADictionary.`applyUnaryOpWithReference​(UnaryOperator op, double[] reference, double[] newReference)` | Allocate a new dictionary and apply the scalar operation on each cell to then return a new dictionary.
    `ADictionary` | Dictionary.`applyUnaryOpWithReference​(UnaryOperator op, double[] reference, double[] newReference)` |
    `ADictionary` | MatrixBlockDictionary.`applyUnaryOpWithReference​(UnaryOperator op, double[] reference, double[] newReference)` |
    `ADictionary` | QDictionary.`applyUnaryOpWithReference​(UnaryOperator op, double[] reference, double[] newReference)` |
    `abstract ADictionary` | ADictionary.`binOpLeft​(BinaryOperator op, double[] v, int[] colIndexes)` | Apply binary row operation on the left side in place
    `ADictionary` | MatrixBlockDictionary.`binOpLeft​(BinaryOperator op, double[] v, int[] colIndexes)` |
    `ADictionary` | QDictionary.`binOpLeft​(BinaryOperator op, double[] v, int[] colIndexes)` |
    `abstract ADictionary` | ADictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, int[] colIndexes, double[] reference, double[] newReference)` | Apply the binary operator such that each value is offset by the reference before application.
    `ADictionary` | QDictionary.`binOpLeftWithReference​(BinaryOperator op, double[] v, int[] colIndexes, double[] reference, double[] newReference)` |
    `abstract ADictionary` | ADictionary.`binOpRight​(BinaryOperator op, double[] v)` | Apply binary row operation on the right side.
    `abstract ADictionary` | ADictionary.`binOpRight​(BinaryOperator op, double[] v, int[] colIndexes)` | Apply binary row operation on the right side.
    `ADictionary` | QDictionary.`binOpRight​(BinaryOperator op, double[] v)` |
    `ADictionary` | QDictionary.`binOpRight​(BinaryOperator op, double[] v, int[] colIndexes)` |
    `abstract ADictionary` | ADictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, int[] colIndexes, double[] reference, double[] newReference)` | Apply the binary operator such that each value is offset by the reference before application.
    `ADictionary` | QDictionary.`binOpRightWithReference​(BinaryOperator op, double[] v, int[] colIndexes, double[] reference, double[] newReference)` |
    `abstract ADictionary` | ADictionary.`clone()` | Returns a deep clone of the dictionary.
    `ADictionary` | MatrixBlockDictionary.`clone()` |
    `static ADictionary` | DictionaryFactory.`create​(ABitmap ubm)` |
    `static ADictionary` | DictionaryFactory.`create​(ABitmap ubm, double sparsity)` |
    `static ADictionary` | DictionaryFactory.`create​(ABitmap ubm, double sparsity, boolean withZeroTuple)` |
    `static ADictionary` | DictionaryFactory.`create​(ABitmap ubm, int defaultIndex, double[] defaultTuple, double sparsity, boolean addZero)` |
    `static ADictionary` | DictionaryFactory.`create​(DblArrayCountHashMap map, int nCols, boolean addZeroTuple, double sparsity)` |
    `static ADictionary` | DictionaryFactory.`create​(DoubleCountHashMap map)` |
    `static ADictionary` | DictionaryFactory.`createWithAppendedZeroTuple​(ABitmap ubm, double sparsity)` |
    `abstract ADictionary` | ADictionary.`inplaceScalarOp​(ScalarOperator op)` | Applies the scalar operation on the dictionary.
    `ADictionary` | MatrixBlockDictionary.`inplaceScalarOp​(ScalarOperator op)` |
    `abstract ADictionary` | ADictionary.`preaggValuesFromDense​(int numVals, int[] colIndexes, int[] aggregateColumns, double[] b, int cut)` | Pre Aggregate values for Right Matrix Multiplication.
    `ADictionary` | QDictionary.`preaggValuesFromDense​(int numVals, int[] colIndexes, int[] aggregateColumns, double[] b, int cut)` |
    `static ADictionary` | DictionaryFactory.`read​(DataInput in)` |
    `abstract ADictionary` | ADictionary.`replace​(double pattern, double replace, int nCol)` | Make a copy of the values, and replace all values that match pattern with replacement value.
    `ADictionary` | Dictionary.`replace​(double pattern, double replace, int nCol)` |
    `ADictionary` | MatrixBlockDictionary.`replace​(double pattern, double replace, int nCol)` |
    `ADictionary` | QDictionary.`replace​(double pattern, double replace, int nCol)` |
    `abstract ADictionary` | ADictionary.`replaceWithReference​(double pattern, double replace, double[] reference)` | Make a copy of the values, and replace all values that match pattern with replacement value.
    `ADictionary` | Dictionary.`replaceWithReference​(double pattern, double replace, double[] reference)` |
    `ADictionary` | MatrixBlockDictionary.`replaceWithReference​(double pattern, double replace, double[] reference)` |
    `ADictionary` | QDictionary.`replaceWithReference​(double pattern, double replace, double[] reference)` |
    `abstract ADictionary` | ADictionary.`rexpandCols​(int max, boolean ignore, boolean cast, int nCol)` | Rexpand the dictionary (one hot encode)
    `ADictionary` | Dictionary.`rexpandCols​(int max, boolean ignore, boolean cast, int nCol)` |
    `ADictionary` | MatrixBlockDictionary.`rexpandCols​(int max, boolean ignore, boolean cast, int nCol)` |
    `ADictionary` | QDictionary.`rexpandCols​(int max, boolean ignore, boolean cast, int nCol)` |
    `abstract ADictionary` | ADictionary.`rexpandColsWithReference​(int max, boolean ignore, boolean cast, double reference)` | Rexpand the dictionary (one hot encode)
    `ADictionary` | Dictionary.`rexpandColsWithReference​(int max, boolean ignore, boolean cast, double reference)` |
    `ADictionary` | MatrixBlockDictionary.`rexpandColsWithReference​(int max, boolean ignore, boolean cast, double reference)` |
    `ADictionary` | QDictionary.`rexpandColsWithReference​(int max, boolean ignore, boolean cast, double reference)` |
    `abstract ADictionary` | ADictionary.`scaleTuples​(int[] scaling, int nCol)` | Scale all tuples contained in the dictionary by the scaling factor given in the int list.
    `ADictionary` | Dictionary.`scaleTuples​(int[] scaling, int nCol)` |
    `ADictionary` | MatrixBlockDictionary.`scaleTuples​(int[] scaling, int nCol)` |
    `ADictionary` | QDictionary.`scaleTuples​(int[] scaling, int nCol)` |
    `abstract ADictionary` | ADictionary.`sliceOutColumnRange​(int idxStart, int idxEnd, int previousNumberOfColumns)` | Modify the dictionary by removing columns not within the index range.
    `ADictionary` | Dictionary.`sliceOutColumnRange​(int idxStart, int idxEnd, int previousNumberOfColumns)` |
    `ADictionary` | MatrixBlockDictionary.`sliceOutColumnRange​(int idxStart, int idxEnd, int previousNumberOfColumns)` |
    `ADictionary` | QDictionary.`sliceOutColumnRange​(int idxStart, int idxEnd, int previousNumberOfColumns)` |
    `abstract ADictionary` | ADictionary.`subtractTuple​(double[] tuple)` | Allocate a new dictionary where the tuple given is subtracted from all tuples in the previous dictionary.
    `ADictionary` | Dictionary.`subtractTuple​(double[] tuple)` |
    `ADictionary` | MatrixBlockDictionary.`subtractTuple​(double[] tuple)` |
    `ADictionary` | QDictionary.`subtractTuple​(double[] tuple)` |

    Methods in org.apache.sysds.runtime.compress.colgroup.dictionary with parameters of type ADictionary
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | DictLibMatrixMult.`MMDicts​(ADictionary left, ADictionary right, int[] rowsLeft, int[] colsRight, MatrixBlock result)` | Matrix Multiply the two dictionaries, note that the left side is considered transposed but not allocated transposed making the multiplication a: t(left) %*% right
    `static void` | DictLibMatrixMult.`MMDictsWithScaling​(ADictionary left, ADictionary right, int[] leftRows, int[] rightColumns, MatrixBlock result, int[] counts)` | Matrix multiply with scaling (left side transposed)
    `static void` | DictLibMatrixMult.`TSMMDictionaryWithScaling​(ADictionary dict, int[] counts, int[] rows, int[] cols, MatrixBlock ret)` | Perform the full tsmm with the dictionary (allocating into the entire output matrix.)
    `static void` | DictLibMatrixMult.`TSMMToUpperTriangle​(ADictionary left, ADictionary right, int[] rowsLeft, int[] colsRight, MatrixBlock result)` | Does two matrix multiplications in one go but only add to the upper triangle.
    `static void` | DictLibMatrixMult.`TSMMToUpperTriangleScaling​(ADictionary left, ADictionary right, int[] rowsLeft, int[] colsRight, int[] scale, MatrixBlock result)` | Does two matrix multiplications in one go but only add to the upper triangle with scaling.

  - ### Uses of ADictionary in org.apache.sysds.runtime.compress.colgroup.mapping

    Methods in org.apache.sysds.runtime.compress.colgroup.mapping with parameters of type ADictionary
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AMapToData.`preAggregateDDC_DDC​(AMapToData tm, ADictionary td, Dictionary ret, int nCol)` | PreAggregate into dictionary with two sides of DDC.
    `void` | MapToBit.`preAggregateDDC_DDCMultiCol​(AMapToData tm, ADictionary td, double[] v, int nCol)` |
    `void` | MapToZero.`preAggregateDDC_DDCMultiCol​(AMapToData tm, ADictionary td, double[] v, int nCol)` |
    `void` | AMapToData.`preAggregateDDC_SDCZ​(AMapToData tm, ADictionary td, AOffset tof, Dictionary ret, int nCol)` | PreAggregate into SDCZero dictionary from DDC dictionary.
    `void` | AMapToData.`preAggregateDDC_SDCZMultiCol​(AMapToData tm, ADictionary td, AOffset tof, double[] v, int nCol)` |
    `void` | AMapToData.`preAggregateSDCZ_DDC​(AMapToData tm, ADictionary td, AOffset of, Dictionary ret, int nCol)` | PreAggregate into DDC dictionary from SDCZero dictionary.
    `void` | AMapToData.`preAggregateSDCZ_SDCZ​(AMapToData tm, ADictionary td, AOffset tof, AOffset of, Dictionary ret, int nCol)` |