uchicago.src.sim.network
Class AdjacencyByteMatrix

java.lang.Object
  extended by uchicago.src.sim.network.AbstractAdjacencyMatrix
      extended by uchicago.src.sim.network.AdjacencyByteMatrix
All Implemented Interfaces:
AdjacencyMatrix

public class AdjacencyByteMatrix
extends AbstractAdjacencyMatrix

A social network adjacency matrix. This is used as an itermediary data structure when moving between Nodes and Edges and other kinds of network representations. The matrix is assumed to be square and that the rows and columns refer to the same nodes.

This matrix stores its elements as bytes, values of -127 - 127. Use AdjacencyDoubleMatrix if you need to store elements of larger values, and AdjacencyBitMatrix if you only need to store values of 0 and 1.

Version:
$Revision: 1.6 $ $Date: 2004/11/03 19:51:01 $
Author:
Nick Collier
See Also:
Node, Edge

Field Summary
 
Fields inherited from class uchicago.src.sim.network.AbstractAdjacencyMatrix
comment, labels, matrixLabel
 
Constructor Summary
AdjacencyByteMatrix(byte[][] m)
          Constructs an AdjacencyByteMatrix from the specified two dimensional byte array.
AdjacencyByteMatrix(ByteMatrix2D matrix)
          Constructs an AdjancencyByteMatrix using the specified matrix.
AdjacencyByteMatrix(int rows, int cols)
          Constructs an AdjacencyByteMatrix with the specified number of rows and columns.
AdjacencyByteMatrix(java.util.List labels)
          Constructs an AdjacencyByteMatrix with the specified row/col labels.
 
Method Summary
 int columns()
          Returns the number of columns in the matrix.
 double get(int row, int col)
          Gets the value at row, col.
 double getAvgDegree()
          Gets the average degree of this matrix.
 double getDensity()
          Gets (computes) the density of this matrix.
 cern.colt.matrix.impl.DenseDoubleMatrix1D getRow(int row)
          Gets the specified row of data for this matrix.
 java.lang.String matrixToString()
          Returns a String representation of only the actual data matrix.
 int rows()
          Returns the number of rows int matrix.
 void set(int row, int col, byte val)
          Sets a data value in this matrix.
 void set(int row, int col, double val)
          Sets a data value in this matrix.
 void setMatrix(byte[][] m)
          Sets the matrix for this AdjacencyByteMatrix to the specified byte[][].
 void setMatrix(cern.colt.matrix.impl.DenseDoubleMatrix2D m)
          Copies the matrix elements from the specified DenseDoubleMatrix2D and casts them into bytes.
 java.lang.String toString()
          Returns a String representation of this AdjacencyMatrix (comment etc.)
 
Methods inherited from class uchicago.src.sim.network.AbstractAdjacencyMatrix
getComment, getLabels, getMatrixLabel, setComment, setMatrixLabel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AdjacencyByteMatrix

public AdjacencyByteMatrix(int rows,
                           int cols)
Constructs an AdjacencyByteMatrix with the specified number of rows and columns. The intial state of every ij is 0.

Parameters:
rows - the number of rows in the matrix
cols - the number of cols in the matrix

AdjacencyByteMatrix

public AdjacencyByteMatrix(java.util.List labels)
Constructs an AdjacencyByteMatrix with the specified row/col labels. The matrix row and column size are set equal to the size of the lables vector.

Parameters:
labels - the row & column labels

AdjacencyByteMatrix

public AdjacencyByteMatrix(byte[][] m)
Constructs an AdjacencyByteMatrix from the specified two dimensional byte array.

Parameters:
m - the 2D byte array to construct this AdjacencyMatrix from.

AdjacencyByteMatrix

public AdjacencyByteMatrix(ByteMatrix2D matrix)
Constructs an AdjancencyByteMatrix using the specified matrix. This holds a reference to the specified matrix and any changes to that will be reflected in this AdjacencyByteMatrix.

Parameters:
matrix - the matrix data for this AdjacencyMatrix
Method Detail

setMatrix

public void setMatrix(cern.colt.matrix.impl.DenseDoubleMatrix2D m)
Copies the matrix elements from the specified DenseDoubleMatrix2D and casts them into bytes. The matrix will be corrupted if any of the elements > 127.. For a large matrix this will be slow as the values are copied and cast individually.

Parameters:
m - the actual matrix data for this AdjacencyMatrix

setMatrix

public void setMatrix(byte[][] m)
Sets the matrix for this AdjacencyByteMatrix to the specified byte[][]. Note that this is not a copy and any subsequent changes to the specified byte[][] will be reflected in this AdjacencyByteMatrix.

Parameters:
m - the actual matrix data for this AdjacencyMatrix

getRow

public cern.colt.matrix.impl.DenseDoubleMatrix1D getRow(int row)
Gets the specified row of data for this matrix.

Parameters:
row - the index of the row to get

getDensity

public double getDensity()
Gets (computes) the density of this matrix.


getAvgDegree

public double getAvgDegree()
Gets the average degree of this matrix.


set

public void set(int row,
                int col,
                byte val)
Sets a data value in this matrix.

Parameters:
row - the row index (i)
col - the col index (j)

set

public void set(int row,
                int col,
                double val)
Sets a data value in this matrix.

Parameters:
row - the row index (i)
col - the col index (j)

get

public double get(int row,
                  int col)
Gets the value at row, col. This returns a double rather than a byte for implementation reasons. You can cast it back to a byte without loosing precision.

Parameters:
row - the row index (i)
col - the col index (j)
Returns:
the byte value at row, col (ij) as a double.

rows

public int rows()
Returns the number of rows int matrix.


columns

public int columns()
Returns the number of columns in the matrix.


matrixToString

public java.lang.String matrixToString()
Returns a String representation of only the actual data matrix.


toString

public java.lang.String toString()
Returns a String representation of this AdjacencyMatrix (comment etc.) together with the actual data matrix.

Overrides:
toString in class java.lang.Object