org.biojava.stats.svm
Class SparseVector

java.lang.Object
  extended by org.biojava.stats.svm.SparseVector
All Implemented Interfaces:
Serializable

public class SparseVector
extends Object
implements Serializable

An implementation of a sparse vector.

Memory is only allocated for dimensions that have non-zero values.

Author:
Thomas Down, Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
static class SparseVector.NormalizingKernel
          A version of the standard dot-product kernel that scales each column independently.
 
Field Summary
static SVMKernel kernel
           
 
Constructor Summary
SparseVector()
           
SparseVector(int capacity)
           
 
Method Summary
 double get(int dim)
          Retrieve the value at dimension dim.
 int getDimAtIndex(int indx)
          Retrieve the dimension at a specific index.
 double getValueAtIndex(int indx)
          Retrieve the value at a specific index.
 int maxIndex()
           
static SparseVector normalLengthVector(SparseVector v, double length)
           
 void put(int dim, double value)
          Set the value at a particular dimension.
 int size()
          The number of used dimensions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

kernel

public static final SVMKernel kernel
Constructor Detail

SparseVector

public SparseVector()

SparseVector

public SparseVector(int capacity)
Method Detail

size

public int size()
The number of used dimensions.

This is the total number of non-zero dimensions. It is not equal to the number of the highest indexed dimension.

Returns:
the number of non-zero dimensions

put

public void put(int dim,
                double value)
Set the value at a particular dimension.

This silently handles the case when previously there was no value at dim. It does not contract the sparse array if you set a value to zero.

Parameters:
dim - the dimension to alter
value - the new value

get

public double get(int dim)
Retrieve the value at dimension dim.

Parameters:
dim - the dimension to retrieve a value for
Returns:
the value at that dimension

getDimAtIndex

public int getDimAtIndex(int indx)
Retrieve the dimension at a specific index.

E.g., if the sparse vector had dimensions 5, 11, 12, 155 set to non-zero values then sv.getDimAtIndex(2) would return 12.

Parameters:
indx - the index
Returns:
the dimension stoored at that index
Throws:
ArrayIndexOutOfBoundsException - if index >= size.

getValueAtIndex

public double getValueAtIndex(int indx)
Retrieve the value at a specific index.

E.g., if the sparse vector contained the data 5->0.1, 11->100, 12->8.5, 155->-10 then sv.geValueAtIndex(2) would return 8.5.

Parameters:
indx - the index
Returns:
the value stoored at that index
Throws:
ArrayIndexOutOfBoundsException - if index >= size.

maxIndex

public int maxIndex()

normalLengthVector

public static SparseVector normalLengthVector(SparseVector v,
                                              double length)