Package no.uib.cipr.matrix.sparse
Class SparseVector
- java.lang.Object
-
- no.uib.cipr.matrix.AbstractVector
-
- no.uib.cipr.matrix.sparse.SparseVector
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<VectorEntry>
,ISparseVector
,Vector
public class SparseVector extends AbstractVector implements ISparseVector
Sparse vector- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface no.uib.cipr.matrix.Vector
Vector.Norm
-
-
Field Summary
-
Fields inherited from class no.uib.cipr.matrix.AbstractVector
size
-
-
Constructor Summary
Constructors Constructor Description SparseVector(int size)
Constructor for SparseVector.SparseVector(int size, int nz)
Constructor for SparseVector.SparseVector(int size, int[] index, double[] data)
Constructor for SparseVectorSparseVector(int size, int[] index, double[] data, boolean deep)
Constructor for SparseVectorSparseVector(Vector x)
Constructor for SparseVector, and copies the contents from the supplied vector.SparseVector(Vector x, boolean deep)
Constructor for SparseVector, and copies the contents from the supplied vector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, double value)
x(index) += value
void
compact()
Compacts the vectorSparseVector
copy()
Creates a deep copy of the vectordouble
dot(Vector y)
xT*y
double
get(int index)
Returnsx(index)
double[]
getData()
Returns the internal dataint[]
getIndex()
Returns the indicesint
getUsed()
Number of entries used in the sparse structurejava.util.Iterator<VectorEntry>
iterator()
protected double
norm1()
protected double
norm2()
protected double
norm2_robust()
protected double
normInf()
SparseVector
scale(double alpha)
x=alpha*x
void
set(int index, double value)
x(index) = value
Vector
set(Vector y)
x=y
SparseVector
zero()
Zeros all the entries in the vector, while preserving any underlying structure-
Methods inherited from class no.uib.cipr.matrix.AbstractVector
add, add, check, checkSize, norm, set, size, toString
-
-
-
-
Constructor Detail
-
SparseVector
public SparseVector(int size, int nz)
Constructor for SparseVector.- Parameters:
size
- Size of the vectornz
- Initial number of non-zeros
-
SparseVector
public SparseVector(Vector x, boolean deep)
Constructor for SparseVector, and copies the contents from the supplied vector.- Parameters:
x
- Vector to copy fromdeep
- True if a deep copy is to be made. If the copy is shallow,x
must be aSparseVector
-
SparseVector
public SparseVector(Vector x)
Constructor for SparseVector, and copies the contents from the supplied vector. Zero initial pre-allocation- Parameters:
x
- Vector to copy from. A deep copy is made
-
SparseVector
public SparseVector(int size)
Constructor for SparseVector. Zero initial pre-allocation- Parameters:
size
- Size of the vector
-
SparseVector
public SparseVector(int size, int[] index, double[] data, boolean deep)
Constructor for SparseVector- Parameters:
size
- Size of the vectorindex
- Indices of the vectordata
- Entries of the vectordeep
- True for a deep copy. For shallow copies, the given indices will be used internally
-
SparseVector
public SparseVector(int size, int[] index, double[] data)
Constructor for SparseVector- Parameters:
size
- Size of the vectorindex
- The vector indices are copies from this arraydata
- The vector entries are copies from this array
-
-
Method Detail
-
set
public void set(int index, double value)
Description copied from interface:Vector
x(index) = value
- Specified by:
set
in interfaceVector
- Overrides:
set
in classAbstractVector
-
add
public void add(int index, double value)
Description copied from interface:Vector
x(index) += value
- Specified by:
add
in interfaceVector
- Overrides:
add
in classAbstractVector
-
get
public double get(int index)
Description copied from interface:Vector
Returnsx(index)
- Specified by:
get
in interfaceVector
- Overrides:
get
in classAbstractVector
-
copy
public SparseVector copy()
Description copied from interface:Vector
Creates a deep copy of the vector- Specified by:
copy
in interfaceVector
- Overrides:
copy
in classAbstractVector
-
zero
public SparseVector zero()
Description copied from interface:Vector
Zeros all the entries in the vector, while preserving any underlying structure- Specified by:
zero
in interfaceVector
- Overrides:
zero
in classAbstractVector
-
scale
public SparseVector scale(double alpha)
Description copied from interface:Vector
x=alpha*x
- Specified by:
scale
in interfaceVector
- Overrides:
scale
in classAbstractVector
- Returns:
- x
-
dot
public double dot(Vector y)
Description copied from interface:Vector
xT*y
- Specified by:
dot
in interfaceVector
- Overrides:
dot
in classAbstractVector
-
norm1
protected double norm1()
- Overrides:
norm1
in classAbstractVector
-
norm2
protected double norm2()
- Overrides:
norm2
in classAbstractVector
-
norm2_robust
protected double norm2_robust()
- Overrides:
norm2_robust
in classAbstractVector
-
normInf
protected double normInf()
- Overrides:
normInf
in classAbstractVector
-
getData
public double[] getData()
Returns the internal data
-
getIndex
public int[] getIndex()
Returns the indices- Specified by:
getIndex
in interfaceISparseVector
-
getUsed
public int getUsed()
Number of entries used in the sparse structure- Specified by:
getUsed
in interfaceISparseVector
-
compact
public void compact()
Compacts the vector
-
iterator
public java.util.Iterator<VectorEntry> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<VectorEntry>
- Overrides:
iterator
in classAbstractVector
-
-