Class BooleanArray
- java.lang.Object
-
- org.apache.sysds.runtime.frame.data.columns.Array<Boolean>
-
- org.apache.sysds.runtime.frame.data.columns.ABooleanArray
-
- org.apache.sysds.runtime.frame.data.columns.BooleanArray
-
- All Implemented Interfaces:
org.apache.hadoop.io.Writable
public class BooleanArray extends ABooleanArray
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.sysds.runtime.frame.data.columns.Array
Array.ArrayIterator
-
-
Constructor Summary
Constructors Constructor Description BooleanArray(boolean[] data)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Pair<Types.ValueType,Boolean>
analyzeValueType(int maxCells)
Analyze the column to figure out if the value type can be refined to a better type.void
append(Boolean value)
Append a value of the same type of the Array.void
append(String value)
Append a string value to the current Array, this should in general be avoided, and appending larger blocks at a time should be preferred.Array<Boolean>
append(Array<Boolean> other)
Append other array, if the other array is fitting in current allocated size use that allocated size, otherwise allocate new array to combine the other with this.Array<Character>
changeTypeCharacter(Array<Character> retA, int l, int u)
ABooleanArray
clone()
Overwrite of the java internal clone function for arrays, return a clone of underlying data that is mutable, (not immutable data.) Immutable data is dependent on the individual allocated arraysboolean
equals(Array<Boolean> other)
Equals operation on arrays.static long
estimateInMemorySize(int nRow)
void
fill(Boolean value)
fill the entire array with specific value.void
fill(String value)
fill the entire array with specific value.boolean[]
get()
Get the underlying array out of the column Group, it is the responsibility of the caller to know what type it is.Boolean
get(int index)
Get the value at a given index.byte[]
getAsByteArray()
Return the current allocated Array as a byte[], this is used to serialize the allocated Arrays out to the PythonAPI.double
getAsDouble(int i)
Get the index's value.long
getExactSerializedSize()
Get the exact serialized size on disk of this array.ArrayFactory.FrameArrayType
getFrameArrayType()
Get the internal FrameArrayType, to specify the encoding of the Types, note there are more Frame Array Types than there is ValueTypes.long
getInMemorySize()
Get in memory size, not counting reference to this object.Types.ValueType
getValueType()
Get the current value type of this array.double
hashDouble(int idx)
Hash the given index of the array.boolean
isAllTrue()
boolean
isEmpty()
Get if this array is empty, aka filled with empty values.boolean
isNotEmpty(int i)
boolean
isShallowSerialize()
analyze if this array can be shallow serialized.static boolean
parseBoolean(String value)
void
readFields(DataInput in)
void
reset(int size)
Reset the Array and set to a different size.ABooleanArray
select(boolean[] select, int nTrue)
Slice out the true indices in the select input and return the sub array.ABooleanArray
select(int[] indices)
Slice out the specified indices and return the sub array.void
set(int index, double value)
Set index to given double value (cast to the correct type of this array)void
set(int rl, int ru, Array<Boolean> value)
Set range to given arrays valuevoid
set(int rl, int ru, Array<Boolean> value, int rlSrc)
Set range to given arrays value with an offset into other arrayvoid
set(int index, Boolean value)
Set index to the given value of same typevoid
set(int index, String value)
Set index to the given value of the string parsed.void
setFromOtherType(int rl, int ru, Array<?> value)
Set range to given arrays valuevoid
setFromOtherTypeNz(int rl, int ru, Array<?> value)
Set non default values in the range from the value array givenvoid
setNullsFromString(int rl, int ru, Array<String> value)
set boolean values in this array depending on null positions in the string array.void
setNz(int rl, int ru, Array<Boolean> value)
Set non default values in the range from the value array givenABooleanArray
slice(int rl, int ru)
Slice out the sub range and return new array with the specified type.ArrayCompressionStatistics
statistics(int nSamples)
Get the compression statistics of this array allocation.String
toString()
void
write(DataOutput out)
-
Methods inherited from class org.apache.sysds.runtime.frame.data.columns.ABooleanArray
possiblyContainsNaN
-
Methods inherited from class org.apache.sysds.runtime.frame.data.columns.Array
analyzeValueType, baseMemoryCost, changeType, changeType, changeType, changeType, changeTypeWithNulls, changeTypeWithNulls, changeTypeWithNulls, containsNull, equals, extractDouble, findEmpty, findEmptyInverse, getAsNaNDouble, getCache, getInternal, getIterator, getMinMaxLength, getNulls, getRecodeMap, minMax, minMax, setCache, setFromOtherTypeNz, setNz, size
-
-
-
-
Method Detail
-
get
public boolean[] get()
Description copied from class:Array
Get the underlying array out of the column Group, it is the responsibility of the caller to know what type it is. Also it is not guaranteed that the underlying data structure does not allocate an appropriate response to the caller. This in practice means that if called there is a possibility that the entire array is allocated again. So the method should only be used for debugging purposes not for performance.
-
get
public Boolean get(int index)
Description copied from class:Array
Get the value at a given index. This method returns objects that have a high overhead in allocation. Therefore it is not as efficient as using the vectorized operations specified in the object.
-
set
public void set(int index, Boolean value)
Description copied from class:Array
Set index to the given value of same type
-
set
public void set(int index, double value)
Description copied from class:Array
Set index to given double value (cast to the correct type of this array)
-
set
public void set(int index, String value)
Description copied from class:Array
Set index to the given value of the string parsed.
-
set
public void set(int rl, int ru, Array<Boolean> value)
Description copied from class:Array
Set range to given arrays value
-
setFromOtherType
public void setFromOtherType(int rl, int ru, Array<?> value)
Description copied from class:Array
Set range to given arrays value- Specified by:
setFromOtherType
in classArray<Boolean>
- Parameters:
rl
- row lowerru
- row upper (inclusive)value
- value array to take values from (other type)
-
set
public void set(int rl, int ru, Array<Boolean> value, int rlSrc)
Description copied from class:Array
Set range to given arrays value with an offset into other array
-
setNz
public void setNz(int rl, int ru, Array<Boolean> value)
Description copied from class:Array
Set non default values in the range from the value array given
-
setFromOtherTypeNz
public void setFromOtherTypeNz(int rl, int ru, Array<?> value)
Description copied from class:Array
Set non default values in the range from the value array given- Specified by:
setFromOtherTypeNz
in classArray<Boolean>
- Parameters:
rl
- row startru
- row end inclusivevalue
- value array of different type
-
append
public void append(String value)
Description copied from class:Array
Append a string value to the current Array, this should in general be avoided, and appending larger blocks at a time should be preferred.
-
append
public void append(Boolean value)
Description copied from class:Array
Append a value of the same type of the Array. This should in general be avoided, and appending larger blocks at a time should be preferred.
-
append
public Array<Boolean> append(Array<Boolean> other)
Description copied from class:Array
Append other array, if the other array is fitting in current allocated size use that allocated size, otherwise allocate new array to combine the other with this. This method should use the set range function, and should be preferred over the append single values.
-
write
public void write(DataOutput out) throws IOException
- Throws:
IOException
-
readFields
public void readFields(DataInput in) throws IOException
- Throws:
IOException
-
clone
public ABooleanArray clone()
Description copied from class:Array
Overwrite of the java internal clone function for arrays, return a clone of underlying data that is mutable, (not immutable data.) Immutable data is dependent on the individual allocated arrays- Specified by:
clone
in classABooleanArray
- Returns:
- A clone
-
slice
public ABooleanArray slice(int rl, int ru)
Description copied from class:Array
Slice out the sub range and return new array with the specified type. If the conversion fails fallback to normal slice.- Specified by:
slice
in classABooleanArray
- Parameters:
rl
- row startru
- row end (not included)- Returns:
- A new array of sub range.
-
reset
public void reset(int size)
Description copied from class:Array
Reset the Array and set to a different size. This method is used to reuse an already allocated Array, without extra allocation. It should only be done in cases where the Array is no longer in use in any FrameBlocks.
-
getAsByteArray
public byte[] getAsByteArray()
Description copied from class:Array
Return the current allocated Array as a byte[], this is used to serialize the allocated Arrays out to the PythonAPI.- Specified by:
getAsByteArray
in classArray<Boolean>
- Returns:
- The array as bytes
-
getValueType
public Types.ValueType getValueType()
Description copied from class:Array
Get the current value type of this array.- Specified by:
getValueType
in classArray<Boolean>
- Returns:
- The current value type.
-
analyzeValueType
public Pair<Types.ValueType,Boolean> analyzeValueType(int maxCells)
Description copied from class:Array
Analyze the column to figure out if the value type can be refined to a better type. The return is in two parts, first the type it can be, second if it contains nulls.- Specified by:
analyzeValueType
in classArray<Boolean>
- Parameters:
maxCells
- maximum number of cells to analyze- Returns:
- A better or equivalent value type to represent the column, including null information.
-
getFrameArrayType
public ArrayFactory.FrameArrayType getFrameArrayType()
Description copied from class:Array
Get the internal FrameArrayType, to specify the encoding of the Types, note there are more Frame Array Types than there is ValueTypes.- Specified by:
getFrameArrayType
in classArray<Boolean>
- Returns:
- The FrameArrayType
-
getInMemorySize
public long getInMemorySize()
Description copied from class:Array
Get in memory size, not counting reference to this object.- Overrides:
getInMemorySize
in classArray<Boolean>
- Returns:
- the size in memory of this object.
-
estimateInMemorySize
public static long estimateInMemorySize(int nRow)
-
getExactSerializedSize
public long getExactSerializedSize()
Description copied from class:Array
Get the exact serialized size on disk of this array.- Specified by:
getExactSerializedSize
in classArray<Boolean>
- Returns:
- The exact size on disk
-
changeTypeCharacter
public Array<Character> changeTypeCharacter(Array<Character> retA, int l, int u)
-
fill
public void fill(String value)
Description copied from class:Array
fill the entire array with specific value.
-
fill
public void fill(Boolean value)
Description copied from class:Array
fill the entire array with specific value.
-
isShallowSerialize
public boolean isShallowSerialize()
Description copied from class:Array
analyze if this array can be shallow serialized. to allow caching without modification.- Specified by:
isShallowSerialize
in classArray<Boolean>
- Returns:
- boolean saying true if shallow serialization is available
-
getAsDouble
public double getAsDouble(int i)
Description copied from class:Array
Get the index's value. returns 0 in case of Null.- Specified by:
getAsDouble
in classArray<Boolean>
- Parameters:
i
- index to get value from- Returns:
- the value
-
isEmpty
public boolean isEmpty()
Description copied from class:Array
Get if this array is empty, aka filled with empty values.
-
isAllTrue
public boolean isAllTrue()
- Specified by:
isAllTrue
in classABooleanArray
-
select
public ABooleanArray select(int[] indices)
Description copied from class:Array
Slice out the specified indices and return the sub array.- Specified by:
select
in classABooleanArray
- Parameters:
indices
- The indices to slice out- Returns:
- the sliced out indices in an array format
-
select
public ABooleanArray select(boolean[] select, int nTrue)
Description copied from class:Array
Slice out the true indices in the select input and return the sub array.- Specified by:
select
in classABooleanArray
- Parameters:
select
- a boolean vector specifying what to selectnTrue
- number of true values inside select- Returns:
- the sliced out indices in an array format
-
isNotEmpty
public final boolean isNotEmpty(int i)
- Specified by:
isNotEmpty
in classArray<Boolean>
-
parseBoolean
public static boolean parseBoolean(String value)
-
hashDouble
public double hashDouble(int idx)
Description copied from class:Array
Hash the given index of the array. It is allowed to return NaN on null elements.- Specified by:
hashDouble
in classArray<Boolean>
- Parameters:
idx
- The index to hash- Returns:
- The hash value of that index.
-
setNullsFromString
public void setNullsFromString(int rl, int ru, Array<String> value)
Description copied from class:ABooleanArray
set boolean values in this array depending on null positions in the string array.- Specified by:
setNullsFromString
in classABooleanArray
- Parameters:
rl
- Inclusive lower boundru
- Exclusive upper boundvalue
- The string array to set from.
-
statistics
public ArrayCompressionStatistics statistics(int nSamples)
Description copied from class:Array
Get the compression statistics of this array allocation.- Overrides:
statistics
in classArray<Boolean>
- Parameters:
nSamples
- The number of sample elements suggested (not forced) to be used.- Returns:
- The compression statistics of this array.
-
equals
public boolean equals(Array<Boolean> other)
Description copied from class:Array
Equals operation on arrays.
-
-