Class AbstractCooFieldVector<T extends AbstractCooFieldVector<T,U,V,W,Y>,U extends AbstractDenseFieldVector<U,W,Y>,V extends AbstractCooFieldMatrix<V,W,T,Y>,W extends AbstractDenseFieldMatrix<W,U,Y>,Y extends Field<Y>>

Type Parameters:
T - Type of this vector.
U - Type of equivalent dense vector.
V - Type of matrix equivalent to T.
W - Type of dense matrix equivalent to U.
Y - Type of the field element in this vector.
All Implemented Interfaces:
Serializable, FieldTensorMixin<T,U,Y>, TensorOverField<T,U,Y[],Y>, RingTensorMixin<T,U,Y>, TensorOverRing<T,U,Y[],Y>, SemiringTensorMixin<T,U,Y>, TensorOverSemiring<T,U,Y[],Y>, VectorMixin<T,V,W,Y>
Direct Known Subclasses:
CooCVector, CooFieldVector

public abstract class AbstractCooFieldVector<T extends AbstractCooFieldVector<T,U,V,W,Y>,U extends AbstractDenseFieldVector<U,W,Y>,V extends AbstractCooFieldMatrix<V,W,T,Y>,W extends AbstractDenseFieldMatrix<W,U,Y>,Y extends Field<Y>> extends AbstractCooRingVector<T,U,V,W,Y> implements FieldTensorMixin<T,U,Y>, VectorMixin<T,V,W,Y>

A sparse vector stored in coordinate list (COO) format. The AbstractTensor.data of this COO vector are elements of a Field.

The non-zero data and non-zero indices of a COO vector are mutable but the AbstractTensor.shape and total number of non-zero data is fixed.

Sparse vectors allow for the efficient storage of and ops on large vectors that contain many zero values.

COO vectors are optimized for large hyper-sparse vectors (i.e. vectors which contain almost all zeros relative to the size of the vector).

A sparse COO vector is stored as:

Note: many ops assume that the data of the COO vector are sorted lexicographically. However, this is not explicitly verified. Every operation implemented in this class will preserve the lexicographical sorting.

If indices need to be sorted for any reason, call AbstractCooSemiringVector.sortIndices().

See Also: