Package it.unimi.dsi.sux4j.mph
Class GV3CompressedFunction.Builder<T>
java.lang.Object
it.unimi.dsi.sux4j.mph.GV3CompressedFunction.Builder<T>
- Enclosing class:
- GV3CompressedFunction<T>
-
Field Summary
Modifier and TypeFieldDescriptionprotected BucketedHashStore<T>
protected boolean
Whetherbuild()
has already been called.protected Codec
protected boolean
protected boolean
protected File
protected TransformationStrategy<? super T>
protected LongIterable
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Builds a new function.Specifies a codec that will be used to encode the function output values.indirect()
Specifies the keys of the function; if you have specified aBucketedHashStore
, it can benull
.peeled()
Specifies to use peeling rather than lazy Gaussian elimination; the resulting structure uses +12% space, but it can be constructed much more quickly.store
(BucketedHashStore<T> bucketedHashStore) Specifies a bucketed hash store containing the keys.Specifies a temporary directory for theBucketedHashStore
.transform
(TransformationStrategy<? super T> transform) Specifies the transformation strategy for the keys of the function; the strategy can be raw.values
(LongIterable values) Specifies the values assigned to the keys; the output width of the function will be the minimum width needed to represent all values.
-
Field Details
-
keys
-
transform
-
tempDir
-
bucketedHashStore
-
values
-
indirect
protected boolean indirect -
built
protected boolean builtWhetherbuild()
has already been called. -
codec
-
peeled
protected boolean peeled
-
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
keys
Specifies the keys of the function; if you have specified aBucketedHashStore
, it can benull
.- Parameters:
keys
- the keys of the function.- Returns:
- this builder.
-
transform
Specifies the transformation strategy for the keys of the function; the strategy can be raw.- Parameters:
transform
- a transformation strategy for the keys of the function.- Returns:
- this builder.
-
tempDir
Specifies a temporary directory for theBucketedHashStore
.- Parameters:
tempDir
- a temporary directory for theBucketedHashStore
files, ornull
for the standard temporary directory.- Returns:
- this builder.
-
store
Specifies a bucketed hash store containing the keys.Note that if you specify a store, it is your responsibility that it conforms to the rest of the data: it must contain ranks if you do not specify values or if you use the indirect feature, values otherwise.
- Parameters:
bucketedHashStore
- a bucketed hash store containing the keys associated with their values and counting value frequencies, ornull
; the store can be unchecked, but in this case you must specify keys and a transform (otherwise, in case of a hash collision in the store anIllegalStateException
will be thrown).- Returns:
- this builder.
-
values
Specifies the values assigned to the keys; the output width of the function will be the minimum width needed to represent all values.- Parameters:
values
- values to be assigned to each element, in the same order of the keys.- Returns:
- this builder.
-
indirect
Specifies that the function construction must be indirect: a provided store contains indices that must be used to access the values.If you specify this option, the provided values must be a
LongList
or aLongBigList
.- Returns:
- this builder.
-
codec
Specifies a codec that will be used to encode the function output values. The default is a Codec.Huffman codec with default parameters.- Parameters:
codec
- a codec that will be used to encode the function output values- Returns:
- this builder.
-
peeled
Specifies to use peeling rather than lazy Gaussian elimination; the resulting structure uses +12% space, but it can be constructed much more quickly.- Returns:
- this builder.
-
build
Builds a new function.- Returns:
- a
GOV3Function
instance with the specified parameters. - Throws:
IllegalStateException
- if called more than once.IOException
-