|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mahout.math.AbstractVector
org.apache.mahout.math.SequentialAccessSparseVector
public class SequentialAccessSparseVector
Implements vector that only stores non-zero doubles as a pair of parallel arrays (OrderedIntDoubleMapping),
one int[], one double[]. If there are k non-zero elements in the vector, this implementation has
O(log(k)) random-access read performance, and O(k) random-access write performance, which is far below that
of the hashmap based RandomAccessSparseVector
. This
class is primarily used for operations where the all the elements will be accessed in a read-only fashion
sequentially: methods which operate not via get() or set(), but via iterateNonZero(), such as (but not limited
to) :
Note that the Vector passed to these above methods may (and currently, are) be used in a random access fashion, so for example, calling SequentialAccessSparseVector.dot(SequentialAccessSparseVector) is slow. TODO: this need not be the case - both are ordered, so this should be very fast if implmented in this class
SeeOrderedIntDoubleMapping
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.apache.mahout.math.AbstractVector |
---|
AbstractVector.LocalElement |
Nested classes/interfaces inherited from interface org.apache.mahout.math.Vector |
---|
Vector.Element |
Field Summary |
---|
Fields inherited from class org.apache.mahout.math.AbstractVector |
---|
lengthSquared |
Constructor Summary | |
---|---|
SequentialAccessSparseVector()
For serialization purposes only. |
|
SequentialAccessSparseVector(int cardinality)
|
|
SequentialAccessSparseVector(int cardinality,
int size)
|
|
SequentialAccessSparseVector(SequentialAccessSparseVector other)
|
|
SequentialAccessSparseVector(SequentialAccessSparseVector other,
boolean shallowCopy)
|
|
SequentialAccessSparseVector(Vector other)
|
Method Summary | |
---|---|
Vector |
assign(Vector other)
Assign the other vector values to the receiver |
SequentialAccessSparseVector |
clone()
Return a copy of the recipient |
int |
getNumNondefaultElements()
Return the number of values in the recipient which are not the default value. |
double |
getQuick(int index)
Return the value at the given index, without checking bounds |
boolean |
isDense()
|
boolean |
isSequentialAccess()
|
Iterator<Vector.Element> |
iterateNonZero()
Iterates over all non-zero elements. |
Iterator<Vector.Element> |
iterator()
Iterates over all elements * NOTE: Implementations may choose to reuse the Element returned for performance reasons, so if you need a copy of it, you should call Vector.getElement(int) for the given index |
SequentialAccessSparseVector |
like()
Return an empty vector of the same underlying class as the receiver |
protected Matrix |
matrixLike(int rows,
int columns)
Subclasses must override to return an appropriately sparse or dense result |
Vector |
minus(Vector that)
Return a new vector containing the element by element difference of the recipient and the argument |
void |
setQuick(int index,
double value)
Set the value at the given index, without checking bounds |
String |
toString()
|
Methods inherited from class org.apache.mahout.math.AbstractVector |
---|
aggregate, aggregate, asFormatString, assign, assign, assign, assign, assign, cross, divide, dot, dotSelf, equals, get, getDistanceSquared, getElement, getLengthSquared, hashCode, logNormalize, logNormalize, logNormalize, maxValue, maxValueIndex, minValue, minValueIndex, norm, normalize, normalize, plus, plus, set, size, times, times, toString, viewPart, zSum |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SequentialAccessSparseVector()
public SequentialAccessSparseVector(int cardinality)
public SequentialAccessSparseVector(int cardinality, int size)
public SequentialAccessSparseVector(Vector other)
public SequentialAccessSparseVector(SequentialAccessSparseVector other, boolean shallowCopy)
public SequentialAccessSparseVector(SequentialAccessSparseVector other)
Method Detail |
---|
protected Matrix matrixLike(int rows, int columns)
AbstractVector
matrixLike
in class AbstractVector
rows
- the row cardinalitycolumns
- the column cardinality
public SequentialAccessSparseVector clone()
Vector
clone
in interface Vector
clone
in class AbstractVector
public Vector assign(Vector other)
Vector
assign
in interface Vector
assign
in class AbstractVector
other
- a Vector
public String toString()
toString
in class AbstractVector
public boolean isDense()
public boolean isSequentialAccess()
public double getQuick(int index)
Vector
index
- an int index
public void setQuick(int index, double value)
Vector
index
- an int index into the receivervalue
- a double value to setpublic int getNumNondefaultElements()
Vector
public SequentialAccessSparseVector like()
Vector
public Iterator<Vector.Element> iterateNonZero()
Vector
Vector.getElement(int)
for the given index
Iterator
over all non-zero elementspublic Iterator<Vector.Element> iterator()
Vector
Vector.getElement(int)
for the given index
Iterator
over all elementspublic Vector minus(Vector that)
Vector
minus
in interface Vector
minus
in class AbstractVector
that
- a Vector
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |