public class AtomicGrowingMatrix extends Object implements AtomicMatrix
Matrix class.  This class allows
 multiple threads to operate on the same matrix where all methods are
 concurrent to the fullest extent possible.Matrix.Type| Constructor and Description | 
|---|
AtomicGrowingMatrix()
Create an  
AtomicGrowingMatrix with 0 rows and 0 columns. | 
| Modifier and Type | Method and Description | 
|---|---|
double | 
addAndGet(int row,
         int col,
         double delta)
Return the value stored at ( 
row, col) plus delta,
 and then increment the specified cell by delta. | 
int | 
columns()
Returns the number of columns in this  
Matrix. | 
double | 
get(int row,
   int col)
Returns the value of the  
Matrix at the provided row and column. | 
double | 
getAndAdd(int row,
         int col,
         double delta)
Return the value stored at ( 
row, col), and add delta to the same index. | 
double[] | 
getColumn(int column)
Returns the entire column. 
 | 
DoubleVector | 
getColumnVector(int column)
Returns the column as a vector. 
 | 
DoubleVector | 
getColumnVectorUnsafe(int column)
Returns an immutable view of the columns's data as a non-atomic vector,
 which may present an inconsistent view of the data if this matrix is
 being concurrently modified. 
 | 
double[] | 
getRow(int row)
Returns the entire row. 
 | 
DoubleVector | 
getRowVector(int row)
Returns a  
DoubleVector for an entire row. | 
DoubleVector | 
getRowVectorUnsafe(int row)
Returns an immutable view of the row's data as a non-atomic vector, which
 may present an inconsistent view of the data if this matrix is being
 concurrently modified. 
 | 
int | 
rows()
Returns the number of rows in this  
Matrix. | 
void | 
set(int row,
   int col,
   double val)
Sets the location at the row and column to the provided value. 
 | 
void | 
setColumn(int column,
         double[] values)
Sets the values for the column of this  
Matrix using the provided
 array. | 
void | 
setColumn(int column,
         DoubleVector values)
Sets the values for the column of this  
Matrix using the provided
 DoubleVector. | 
void | 
setRow(int row,
      double[] columns)
Sets the values for the row of this  
Matrix using the provided
 array. | 
void | 
setRow(int row,
      DoubleVector values)
Sets the values for the row of this  
Matrix using the provided
 DoubleVector. | 
double[][] | 
toDenseArray()
Converts the  
Matrix to a two dimensional array. | 
public AtomicGrowingMatrix()
AtomicGrowingMatrix with 0 rows and 0 columns.public double addAndGet(int row,
               int col,
               double delta)
row, col) plus delta,
 and then increment the specified cell by delta.addAndGet in interface AtomicMatrixrow - The row of the cell to modify and return.col - The column of the cell to modify and return.delta - The amount to change the specified cell.row, col) after
         adding delta.public int columns()
Matrix.public double get(int row,
         int col)
Matrix at the provided row and column.public double getAndAdd(int row,
               int col,
               double delta)
row, col), and add delta to the same index.getAndAdd in interface AtomicMatrixrow - The row of the cell to return and modify.col - The column of the cell to return and modify.delta - The amount to change the specified cell.row, col) prior to
         adding delta.public double[] getColumn(int column)
rows()public DoubleVector getColumnVector(int column)
SparseVector instance. The length of the returned row vector reflects the size of
 matrix at the time of the call, which may be different from earlier calls
 to rows()getColumnVector in interface Matrixcolumn - The column to return a DoubleVector for.DoubleVector representing the column at column.public DoubleVector getColumnVectorUnsafe(int column)
public double[] getRow(int row)
columns().public DoubleVector getRowVector(int row)
DoubleVector for an entire row.  Implementations should
 return an approriately typed DoubleVector.  Whether updates to the vector
 are written through to the backing matrix is left open to the specific
 implementation.  Implementations that maintain their data in a sparse
 format are encouraged to return a SparseVector instance. The length of the returned row vector reflects the size of
 matrix at the time of the call, which may be different from earlier calls
 to columns().getRowVector in interface Matrixrow - the index of the row to return.DoubleVector representing the row at row.public DoubleVector getRowVectorUnsafe(int row)
row - the row whose values should be returnedpublic int rows()
Matrix.public void set(int row,
       int col,
       double val)
public void setColumn(int column,
             double[] values)
Matrix using the provided
 array.  Note that the array itself is not made internal to the instance
 itself.public void setColumn(int column,
             DoubleVector values)
Matrix using the provided
 DoubleVector.  Note that the DoubleVector itself is not
 made internal to the instance itself.public void setRow(int row,
          double[] columns)
Matrix using the provided
 array.  Note that the array itself is not made internal to the instance
 itself.public void setRow(int row,
          DoubleVector values)
Matrix using the provided
 DoubleVector.  Note that the DoubleVector itself is not
 made internal to the instance itself.public double[][] toDenseArray()
Matrix to a two dimensional array.  Note that for
 large matrices, this may exhaust all available memory.toDenseArray in interface MatrixMatrix.Copyright © 2012. All Rights Reserved.