Class SparseStore<N extends Comparable<N>>

All Implemented Interfaces:
Consumer<Access2D<?>>, Group, Group.Additive<MatrixStore<N>>, NormedVectorSpace<MatrixStore<N>,N>, Operation, Operation.Addition<MatrixStore<N>>, Operation.Multiplication<MatrixStore<N>>, Operation.Subtraction<MatrixStore<N>>, ScalarOperation, ScalarOperation.Addition<MatrixStore<N>,N>, ScalarOperation.Division<MatrixStore<N>,N>, ScalarOperation.Multiplication<MatrixStore<N>,N>, ScalarOperation.Subtraction<MatrixStore<N>,N>, VectorSpace<MatrixStore<N>,N>, Matrix2D<N,MatrixStore<N>>, ElementsSupplier<N>, MatrixStore<N>, TransformableRegion<N>, Access1D<N>, Access1D.Aggregatable<N>, Access1D.Sliceable<N>, Access1D.Visitable<N>, Access2D<N>, Access2D.Aggregatable<N>, Access2D.Collectable<N,TransformableRegion<N>>, Access2D.Sliceable<N>, Access2D.Visitable<N>, Mutate1D, Mutate1D.Fillable<N>, Mutate1D.Modifiable<N>, Mutate2D, Mutate2D.Exchangeable, Mutate2D.Fillable<N>, Mutate2D.Modifiable<N>, Mutate2D.ModifiableReceiver<N>, Mutate2D.Receiver<N>, Operate2D<N,ElementsSupplier<N>>, Structure1D, Structure2D, Structure2D.Logical<Access2D<N>,MatrixStore<N>>, Structure2D.ReducibleTo1D<ElementsSupplier<N>>

public final class SparseStore<N extends Comparable<N>> extends FactoryStore<N> implements TransformableRegion<N>
A sparse matrix (this implementation) is not thread safe. Mutating the matrix (in particular creating new/more non-zero elements) from multiple threads will result in unpredictable behaviour (even if the threads update different elements). To mutate the matrix in a concurrent/multi-threaded environment you need to do one of the following: