Package org.nuiton.math.matrix
Class DoubleSparseArrayVector
- java.lang.Object
-
- org.nuiton.math.matrix.DoubleSparseArrayVector
-
- All Implemented Interfaces:
SparseVector
,Vector
public class DoubleSparseArrayVector extends Object implements SparseVector
Permet de stocker des données à une position lineaire et de la redemander. Cette classe ne gére que les données lineaire. L'avantage de cette classe est de ne conserver que les elements differents de la valeur par defaut, ce qui minimize la taille du tableau necessaire a conserver les données. On permet que la matrice est plus deInteger.MAX_VALUE
cellules mais on ne permet pas que la matrice est plus queInteger.MAX_VALUE
valeur différente que le default value. Created: 6 octobre 2005 01:29:23 CEST- Version:
- $Revision$ Last update: $Date$ by : $Author$
- Author:
- Benjamin POUSSIN <poussin@codelutin.com>
-
-
Field Summary
Fields Modifier and Type Field Description protected int
assignedSize
current number of assigned valueprotected long
capacity
maximum number of element, maximum pos valueprotected double
defaultValue
la valeur par defautprotected long[]
position
contient la position de l'element, le tableau est triéprotected double[]
values
-
Constructor Summary
Constructors Constructor Description DoubleSparseArrayVector()
DoubleSparseArrayVector(long capacity)
DoubleSparseArrayVector(long capacity, double defaultValue)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
addElementAt(int index, long element, double value)
protected void
checkPos(long pos)
protected void
ensureCapacity(int mincap)
boolean
equals(Object o)
protected int
findIndex(long pos)
retourne la position dans le tableau position de la position lineairevoid
forEachNotZero(VectorForEachFunction f)
long[]
getAssignedPosition()
Return an orderer array of position assigned, this array can be longer than realy assigned value, you must used getNumberOfAssignedValue to know number of significant position in arraydouble[]
getAssignedValue()
Return an array in same order that getAssignedPosition.double
getDefaultValue()
Value to used if not un assigned valueString
getInfo()
return information on this vector.double
getMaxOccurence()
Deprecated.double
getMaxOccurrence()
Retourne la valeur la plus utilise dans le vectorlong
getNumberOfAssignedValue()
Returne number of assigned value, assigned value is value stored in memorydouble
getValue(long pos)
int
hashCode()
void
init(long capacity)
Init vector, before this method call, vector is in indetermined state.boolean
isImplementedMap()
Permet de savoir si map est implanté par ce vector.boolean
isImplementedPaste(Vector v)
Permet de savoir si paste est implanté par ce vector.VectorIterator
iterator()
Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element de la matrice.VectorIterator
iteratorNotZero()
Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element different de 0 de la matrice.void
map(MapFunction f)
on applique sur chaque donnée existante et sur defaultvoid
paste(Vector v)
On recopie tous les attributs pour que le vector ressemble exactement a celui passé en argumentprotected void
removeElementAt(int index)
void
setValue(long pos, double value)
long
size()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.nuiton.math.matrix.Vector
add, forEach, isImplementedAdd, isImplementedMinus, minus
-
-
-
-
Field Detail
-
defaultValue
protected double defaultValue
la valeur par defaut
-
capacity
protected long capacity
maximum number of element, maximum pos value
-
assignedSize
protected int assignedSize
current number of assigned value
-
position
protected long[] position
contient la position de l'element, le tableau est trié
-
values
protected double[] values
-
-
Method Detail
-
init
public void init(long capacity)
Description copied from interface:Vector
Init vector, before this method call, vector is in indetermined state. multiple call to init method must be permit. Only first call must do some work, extra call must do nothing
-
getInfo
public String getInfo()
Description copied from interface:Vector
return information on this vector. This information depends on implementation example: - size - max occurence number - ...
-
getDefaultValue
public double getDefaultValue()
Description copied from interface:SparseVector
Value to used if not un assigned value- Specified by:
getDefaultValue
in interfaceSparseVector
- Returns:
-
getAssignedPosition
public long[] getAssignedPosition()
Description copied from interface:SparseVector
Return an orderer array of position assigned, this array can be longer than realy assigned value, you must used getNumberOfAssignedValue to know number of significant position in array- Specified by:
getAssignedPosition
in interfaceSparseVector
- Returns:
-
getAssignedValue
public double[] getAssignedValue()
Description copied from interface:SparseVector
Return an array in same order that getAssignedPosition. This array contains values. This array can be longer than realy assigned value, you must used getNumberOfAssignedValue to know number of significant position in array- Specified by:
getAssignedValue
in interfaceSparseVector
- Returns:
-
getNumberOfAssignedValue
public long getNumberOfAssignedValue()
Description copied from interface:Vector
Returne number of assigned value, assigned value is value stored in memory- Specified by:
getNumberOfAssignedValue
in interfaceVector
-
getMaxOccurence
@Deprecated public double getMaxOccurence()
Deprecated.- Specified by:
getMaxOccurence
in interfaceVector
-
getMaxOccurrence
public double getMaxOccurrence()
Description copied from interface:Vector
Retourne la valeur la plus utilise dans le vector- Specified by:
getMaxOccurrence
in interfaceVector
- Returns:
-
checkPos
protected void checkPos(long pos)
-
findIndex
protected int findIndex(long pos)
retourne la position dans le tableau position de la position lineaire- Parameters:
pos
-- Returns:
- la position ou < 0 donnant la position de l'element s'il etait present
-
ensureCapacity
protected void ensureCapacity(int mincap)
-
addElementAt
protected void addElementAt(int index, long element, double value)
-
removeElementAt
protected void removeElementAt(int index)
-
isImplementedPaste
public boolean isImplementedPaste(Vector v)
Description copied from interface:Vector
Permet de savoir si paste est implanté par ce vector.- Specified by:
isImplementedPaste
in interfaceVector
- Parameters:
v
- vector to test- Returns:
true
if operation is supported
-
isImplementedMap
public boolean isImplementedMap()
Description copied from interface:Vector
Permet de savoir si map est implanté par ce vector.- Specified by:
isImplementedMap
in interfaceVector
- Returns:
true
if operation is supported
-
paste
public void paste(Vector v)
On recopie tous les attributs pour que le vector ressemble exactement a celui passé en argument
-
map
public void map(MapFunction f)
on applique sur chaque donnée existante et sur default
-
iterator
public VectorIterator iterator()
Description copied from interface:Vector
Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element de la matrice.
-
iteratorNotZero
public VectorIterator iteratorNotZero()
Description copied from interface:Vector
Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element different de 0 de la matrice.- Specified by:
iteratorNotZero
in interfaceVector
- Returns:
- un objet Inc pret à être utilisé
-
forEachNotZero
public void forEachNotZero(VectorForEachFunction f)
- Specified by:
forEachNotZero
in interfaceVector
-
-