public class SparseIntegerVector extends AbstractNumberVector implements SparseNumberVector
int[]
for storing the values, and
int[]
for storing the indexes, approximately 8 bytes per non-zero
integer value.Modifier and Type | Class and Description |
---|---|
static class |
SparseIntegerVector.Factory
Factory class.
|
static class |
SparseIntegerVector.VariableSerializer
Serialization class using VarInt encodings.
|
Modifier and Type | Field and Description |
---|---|
private int |
dimensionality
The dimensionality of this feature vector.
|
static SparseIntegerVector.Factory |
FACTORY
Static instance.
|
private int[] |
indexes
Indexes of values.
|
private int[] |
values
Stored values.
|
static ByteBufferSerializer<SparseIntegerVector> |
VARIABLE_SERIALIZER
Serializer using varint encoding.
|
ATTRIBUTE_SEPARATOR
Constructor and Description |
---|
SparseIntegerVector(int[] values)
Create a SparseIntegerVector consisting of double values according to the
specified mapping of indices and values.
|
SparseIntegerVector(int[] indexes,
int[] values,
int dimensionality)
Direct constructor.
|
SparseIntegerVector(gnu.trove.map.TIntDoubleMap values,
int dimensionality)
Create a SparseIntegerVector consisting of double values according to the
specified mapping of indices and values.
|
Modifier and Type | Method and Description |
---|---|
double |
doubleValue(int dimension)
Deprecated.
|
Vector |
getColumnVector()
Returns a Vector representing in one column and
getDimensionality() rows the values of this NumberVector of V. |
int |
getDimensionality()
The dimensionality of the vector space where of this FeatureVector of V is
an element.
|
private int |
getMaxDim()
Get the maximum dimensionality.
|
Integer |
getValue(int dimension)
Deprecated.
|
private double[] |
getValues()
Returns an array consisting of the values of this feature vector.
|
int |
intValue(int dimension)
Deprecated.
|
int |
iter()
Iterator over non-zero features only, ascendingly.
|
int |
iterAdvance(int iter)
Advance the iterator to the next position.
|
byte |
iterByteValue(int iter)
Get the value of the iterators' current dimension.
|
int |
iterDim(int iter)
Get the dimension an iterator points to.
|
double |
iterDoubleValue(int iter)
Get the value of the iterators' current dimension.
|
float |
iterFloatValue(int iter)
Get the value of the iterators' current dimension.
|
int |
iterIntValue(int iter)
Get the value of the iterators' current dimension.
|
long |
iterLongValue(int iter)
Get the value of the iterators' current dimension.
|
short |
iterShortValue(int iter)
Get the value of the iterators' current dimension.
|
boolean |
iterValid(int iter)
Test the iterator position for validity.
|
long |
longValue(int dimension)
Deprecated.
|
void |
setDimensionality(int dimensionality)
Sets the dimensionality to the new value.
|
String |
toString()
Create a String representation of this SparseIntegerVector as suitable for
SparseNumberVectorLabelParser
. |
byteValue, floatValue, getMax, getMin, shortValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
byteValue, floatValue, shortValue
getMax, getMin
public static final SparseIntegerVector.Factory FACTORY
public static final ByteBufferSerializer<SparseIntegerVector> VARIABLE_SERIALIZER
private final int[] indexes
private final int[] values
private int dimensionality
public SparseIntegerVector(int[] indexes, int[] values, int dimensionality)
indexes
- Indexes Must be sorted!values
- Associated value.dimensionality
- "true" dimensionalitypublic SparseIntegerVector(gnu.trove.map.TIntDoubleMap values, int dimensionality) throws IllegalArgumentException
values
- the values to be set as values of the real vectordimensionality
- the dimensionality of this feature vectorIllegalArgumentException
- if the given dimensionality is too small
to cover the given values (i.e., the maximum index of any value not
zero is bigger than the given dimensionality)public SparseIntegerVector(int[] values) throws IllegalArgumentException
values
- the values to be set as values of the real vectorIllegalArgumentException
- if the given dimensionality is too small
to cover the given values (i.e., the maximum index of any value not
zero is bigger than the given dimensionality)private int getMaxDim()
public int getDimensionality()
FeatureVector
getDimensionality
in interface FeatureVector<Number>
getDimensionality
in interface SpatialComparable
public void setDimensionality(int dimensionality) throws IllegalArgumentException
setDimensionality
in interface SparseNumberVector
dimensionality
- the new dimensionalityIllegalArgumentException
- if the given dimensionality is too small
to cover the given values (i.e., the maximum index of any value not
zero is bigger than the given dimensionality)@Deprecated public Integer getValue(int dimension)
FeatureVector
getValue
in interface FeatureVector<Number>
getValue
in interface NumberVector
dimension
- the desired dimension, where 0 ≤ dimension ≤
this.getDimensionality()-1
@Deprecated public double doubleValue(int dimension)
NumberVector
getValue(dim).doubleValue()
, but usually this is much more
efficient due to boxing/unboxing cost.doubleValue
in interface NumberVector
doubleValue
in interface SparseNumberVector
dimension
- the desired dimension, where 0 ≤ dimension <
this.getDimensionality()
@Deprecated public long longValue(int dimension)
NumberVector
getValue(dim).longValue()
, but usually this is much more efficient
due to boxing/unboxing cost.longValue
in interface NumberVector
longValue
in interface SparseNumberVector
dimension
- the desired dimension, where 0 ≤ dimension <
this.getDimensionality()
@Deprecated public int intValue(int dimension)
NumberVector
getValue(dim).intValue()
, but usually this is much more efficient
due to boxing/unboxing cost.intValue
in interface NumberVector
intValue
in interface SparseNumberVector
intValue
in class AbstractNumberVector
dimension
- the desired dimension, where 0 ≤ dimension <
this.getDimensionality()
public Vector getColumnVector()
NumberVector
getDimensionality()
rows the values of this NumberVector of V.getColumnVector
in interface NumberVector
getDimensionality()
rows the values of this
NumberVector of Vpublic String toString()
SparseNumberVectorLabelParser
.
The returned String is a single line with entries separated by
AbstractNumberVector.ATTRIBUTE_SEPARATOR
. The first entry gives the
number of values actually not zero. Following entries are pairs of Integer
and Integer where the Integer gives the index of the dimensionality and the
Integer gives the corresponding value.
Example: a vector (0,1.2,1.3,0)T would result in the String2 2 1.2 3 1.3
toString
in interface FeatureVector<Number>
toString
in class Object
private double[] getValues()
public int iter()
SparseNumberVector
SparseFeatureVector.iterDim(int)
to get the actual dimension. In fact,
usually this will be the ith non-zero value, assuming an array
representation.
Think of this number as an iterator. For efficiency, it has a primitive
type!
Intended usage:
for (int iter = v.iter(); v.iterValid(iter); iter = v.iterAdvance(iter)) {
final int dim = v.iterDim(iter);
final double val = v.iterDoubleValue(iter);
// Do something.
}
iter
in interface SparseFeatureVector<Number>
iter
in interface SparseNumberVector
public int iterDim(int iter)
SparseFeatureVector
iterDim
in interface SparseFeatureVector<Number>
iter
- Iterator positionpublic int iterAdvance(int iter)
SparseFeatureVector
iterAdvance
in interface SparseFeatureVector<Number>
iter
- Previous iterator positionpublic boolean iterValid(int iter)
SparseFeatureVector
iterValid
in interface SparseFeatureVector<Number>
iter
- Iterator positiontrue
when it refers to a valid position.public double iterDoubleValue(int iter)
SparseNumberVector
iterDoubleValue
in interface SparseNumberVector
iter
- Iteratorpublic float iterFloatValue(int iter)
SparseNumberVector
iterFloatValue
in interface SparseNumberVector
iter
- Iteratorpublic int iterIntValue(int iter)
SparseNumberVector
iterIntValue
in interface SparseNumberVector
iter
- Iteratorpublic short iterShortValue(int iter)
SparseNumberVector
iterShortValue
in interface SparseNumberVector
iter
- Iteratorpublic long iterLongValue(int iter)
SparseNumberVector
iterLongValue
in interface SparseNumberVector
iter
- Iteratorpublic byte iterByteValue(int iter)
SparseNumberVector
iterByteValue
in interface SparseNumberVector
iter
- IteratorCopyright © 2015 ELKI Development Team, Lehr- und Forschungseinheit für Datenbanksysteme, Ludwig-Maximilians-Universität München. License information.