Package org.apache.sysds.runtime.matrix.data.sketch.countdistinctapprox

## Class KMVSketch

- java.lang.Object
- - org.apache.sysds.runtime.matrix.data.sketch.countdistinctapprox.KMVSketch

All Implemented Interfaces:
  `MatrixSketch<Integer>`

    public class KMVSketch
    extends Object

KMV synopsis(for k minimum values) Distinct-Value Estimation Kevin S. Beyer, Peter J. Haas, Berthold Reinwald, Yannis Sismanis, Rainer Gemulla: On synopses for distinct‐value estimation under multiset operations. SIGMOD 2007 TODO: Add multi-threaded version

### Constructor Summary

Constructors
`KMVSketch​(Operator op)`

### Method Summary

All Methods Instance Methods Concrete Methods
`CorrMatrixBlock` `create​(MatrixBlock blkIn)` Create a initial sketch of a given block.
`MatrixBlock` `getMatrixValue​(CorrMatrixBlock arg0)` Obtain matrix distinct count value from estimation Used for estimating distinct in rows or columns.
`Integer` `getScalarValue​(MatrixBlock in)` Get scalar distinct count from a input matrix block.
`CorrMatrixBlock` `intersection​(CorrMatrixBlock arg0, CorrMatrixBlock arg1)` Intersect two sketches
`CorrMatrixBlock` `union​(CorrMatrixBlock arg0, CorrMatrixBlock arg1)` Union two sketches together to from a combined sketch.
`void` `unionSketchByIndex​(CorrMatrixBlock arg0, CorrMatrixBlock arg1, int idx, CorrMatrixBlock blkOut)`

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

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### KMVSketch

    public KMVSketch​(Operator op)

### Method Detail

#### getScalarValue

    public Integer getScalarValue​(MatrixBlock in)

Description copied from interface: `MatrixSketch`
Get scalar distinct count from a input matrix block.

Parameters:
  `in` - A input block to estimate the number of distinct values in
Returns:
  The distinct count estimate

#### getMatrixValue

    public MatrixBlock getMatrixValue​(CorrMatrixBlock arg0)

Description copied from interface: `MatrixSketch`
Obtain matrix distinct count value from estimation Used for estimating distinct in rows or columns.

Parameters:
  `arg0` - The sketch block to extract the count from
Returns:
  The result matrix block

#### create

    public CorrMatrixBlock create​(MatrixBlock blkIn)

Description copied from interface: `MatrixSketch`
Create a initial sketch of a given block.

Parameters:
  `blkIn` - A block to process
Returns:
  A sketch

#### union

    public CorrMatrixBlock union​(CorrMatrixBlock arg0,
                                 CorrMatrixBlock arg1)

Description copied from interface: `MatrixSketch`
Union two sketches together to from a combined sketch.

Parameters:
  `arg0` - Sketch one
  `arg1` - Sketch two
Returns:
  The combined sketch

#### unionSketchByIndex

    public void unionSketchByIndex​(CorrMatrixBlock arg0,
                                   CorrMatrixBlock arg1,
                                   int idx,
                                   CorrMatrixBlock blkOut)

#### intersection

    public CorrMatrixBlock intersection​(CorrMatrixBlock arg0,
                                        CorrMatrixBlock arg1)

Description copied from interface: `MatrixSketch`
Intersect two sketches

Parameters:
  `arg0` - Sketch one
  `arg1` - Sketch two
Returns:
  The intersected sketch