Class MapToByte
- java.lang.Object
-
- org.apache.sysds.runtime.compress.colgroup.mapping.AMapToData
-
- org.apache.sysds.runtime.compress.colgroup.mapping.MapToByte
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
MapToUByte
public class MapToByte extends AMapToData
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MapToByte(int unique, int size)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AMapToData
append(AMapToData t)
AMapToData
appendN(IMapToDataGroup[] d)
void
copyBit(BitSet d)
void
copyInt(int[] d)
Copy the values of the given array into this.int
countRuns()
Count the number of runs inside the map.void
decompressToRange(double[] c, int rl, int ru, int offR, double[] values)
void
decompressToRangeNoOff(double[] c, int rl, int ru, double[] values)
void
decompressToRangeOff(double[] c, int rl, int ru, int offR, double[] values)
boolean
equals(AMapToData e)
Indicate if the given encoding is equivalent to this encodingvoid
fill(int v)
Fill the map with a given value.int[]
getCounts(int[] ret)
Get the number of counts of each unique value contained in this map.long
getExactSizeOnDisk()
Get the size of this Mapping object on disk.int
getIndex(int n)
Get the given index back as a integerlong
getInMemorySize()
Get the in memory size of this Mapping object.static long
getInMemorySize(int dataLength)
int
getMaxPossible()
Get the maximum possible value to encode in this encoding.MapToFactory.MAP_TYPE
getType()
int
getUpperBoundValue()
Get the maximum value that is possible to allocate inside this map.void
lmSparseMatrixRow(SparseBlock sb, int r, DenseBlock db, IColIndex colIndexes, IDictionary dict)
void
replace(int v, int r)
Replace v with r for all entries, NOTE! It is assumed that you call this correctly: - with two distinct values that is representable inside the given AMapToData.AMapToData
resize(int unique)
Reallocate the map, to a smaller instance if applicable.void
set(int n, int v)
Set the index to the value.int
setAndGet(int n, int v)
Set the index to the value and get the contained value after.int
size()
The size of the Mapping object, signaling how many value cells are stored in this mapping object.AMapToData
slice(int l, int u)
Slice out the range from lower to upper from this map toData.void
write(DataOutput out)
Serialize this object to the DataOutput given.-
Methods inherited from class org.apache.sysds.runtime.compress.colgroup.mapping.AMapToData
copy, countRuns, equals, getCounts, getMax, getUnique, preAggregateDDC_DDC, preAggregateDDC_RLE, preAggregateDDC_SDCZ, preAggregateDDC_SDCZMultiCol, preAggregateDDC_SDCZSingleCol, preAggregateDense, preAggregateDense, preAggregateRLE_DDC, preAggregateSDCZ_DDC, preAggregateSDCZ_SDCZ, preAggregateSparse, preAggregateSparse, set, setUnique, toString, verify
-
-
-
-
Method Detail
-
getType
public MapToFactory.MAP_TYPE getType()
- Specified by:
getType
in classAMapToData
-
getIndex
public int getIndex(int n)
Description copied from class:AMapToData
Get the given index back as a integer- Specified by:
getIndex
in classAMapToData
- Parameters:
n
- the index to get- Returns:
- the value represented in that cell as integer
-
fill
public void fill(int v)
Description copied from class:AMapToData
Fill the map with a given value. NOTE! The value should be representable inside the map. This requirement is not checked.- Specified by:
fill
in classAMapToData
- Parameters:
v
- the value to fill
-
getInMemorySize
public long getInMemorySize()
Description copied from class:AMapToData
Get the in memory size of this Mapping object.- Specified by:
getInMemorySize
in classAMapToData
- Returns:
- The size in Bytes.
-
getInMemorySize
public static long getInMemorySize(int dataLength)
-
getExactSizeOnDisk
public long getExactSizeOnDisk()
Description copied from class:AMapToData
Get the size of this Mapping object on disk.- Specified by:
getExactSizeOnDisk
in classAMapToData
- Returns:
- The on disk size in Bytes.
-
set
public void set(int n, int v)
Description copied from class:AMapToData
Set the index to the value. NOTE! The value should be representable inside the map. This requirement is not checked.- Specified by:
set
in classAMapToData
- Parameters:
n
- index to set.v
- the value to set it to.
-
setAndGet
public int setAndGet(int n, int v)
Description copied from class:AMapToData
Set the index to the value and get the contained value after.- Specified by:
setAndGet
in classAMapToData
- Parameters:
n
- index to set.v
- the value to set it to.- Returns:
- v as encoded, note this value can be different that the one put in if the map is not able to represent the value
-
size
public int size()
Description copied from class:AMapToData
The size of the Mapping object, signaling how many value cells are stored in this mapping object.- Specified by:
size
in classAMapToData
- Returns:
- The length of the mapping object.
-
write
public void write(DataOutput out) throws IOException
Description copied from class:AMapToData
Serialize this object to the DataOutput given.- Specified by:
write
in classAMapToData
- Parameters:
out
- The object to serialize this object into.- Throws:
IOException
- An IO exception if the Serialization fails.
-
replace
public void replace(int v, int r)
Description copied from class:AMapToData
Replace v with r for all entries, NOTE! It is assumed that you call this correctly: - with two distinct values that is representable inside the given AMapToData.- Specified by:
replace
in classAMapToData
- Parameters:
v
- The value to replacer
- The value to put instead
-
copyInt
public void copyInt(int[] d)
Description copied from class:AMapToData
Copy the values of the given array into this. Note that this operation stops at the length of this AMapToData Therefore the given d length can not be longer than this size.- Specified by:
copyInt
in classAMapToData
- Parameters:
d
- The array to copy
-
copyBit
public void copyBit(BitSet d)
- Specified by:
copyBit
in classAMapToData
-
getCounts
public int[] getCounts(int[] ret)
Description copied from class:AMapToData
Get the number of counts of each unique value contained in this map. Note that in the case the mapping is shorter than number of rows the counts sum to the number of mapped values not the number of rows.- Specified by:
getCounts
in classAMapToData
- Parameters:
ret
- The object to return.- Returns:
- The counts
-
getUpperBoundValue
public int getUpperBoundValue()
Description copied from class:AMapToData
Get the maximum value that is possible to allocate inside this map.- Specified by:
getUpperBoundValue
in classAMapToData
- Returns:
- The maximum value.
-
countRuns
public int countRuns()
Description copied from class:AMapToData
Count the number of runs inside the map.- Specified by:
countRuns
in classAMapToData
- Returns:
- The number of runs
-
resize
public AMapToData resize(int unique)
Description copied from class:AMapToData
Reallocate the map, to a smaller instance if applicable. Note it does not change the length of the array, just the datatype. Note that it returns the input if the input is the smallest representation that fits, otherwise it will return something that is smaller.- Specified by:
resize
in classAMapToData
- Parameters:
unique
- The number of tuples that should be supported in the resulting map- Returns:
- The returned hopefully reduced map.
-
slice
public AMapToData slice(int l, int u)
Description copied from class:AMapToData
Slice out the range from lower to upper from this map toData.- Specified by:
slice
in classAMapToData
- Parameters:
l
- Low value to slice fromu
- high value to slice to (not inclusive)- Returns:
- A new map containing only the values from the range.
-
append
public AMapToData append(AMapToData t)
- Specified by:
append
in classAMapToData
-
appendN
public AMapToData appendN(IMapToDataGroup[] d)
- Specified by:
appendN
in classAMapToData
-
getMaxPossible
public int getMaxPossible()
Description copied from class:AMapToData
Get the maximum possible value to encode in this encoding. For instance in a bit you can encode 2 values- Specified by:
getMaxPossible
in classAMapToData
- Returns:
- The maximum number of distinct values to encode
-
lmSparseMatrixRow
public void lmSparseMatrixRow(SparseBlock sb, int r, DenseBlock db, IColIndex colIndexes, IDictionary dict)
- Overrides:
lmSparseMatrixRow
in classAMapToData
-
equals
public boolean equals(AMapToData e)
Description copied from class:AMapToData
Indicate if the given encoding is equivalent to this encoding- Specified by:
equals
in classAMapToData
- Parameters:
e
- The other encoding to be compared with this- Returns:
- If the encoding is equivalent
-
decompressToRange
public void decompressToRange(double[] c, int rl, int ru, int offR, double[] values)
- Overrides:
decompressToRange
in classAMapToData
-
decompressToRangeOff
public void decompressToRangeOff(double[] c, int rl, int ru, int offR, double[] values)
- Overrides:
decompressToRangeOff
in classAMapToData
-
decompressToRangeNoOff
public void decompressToRangeNoOff(double[] c, int rl, int ru, double[] values)
- Overrides:
decompressToRangeNoOff
in classAMapToData
-
-