org.jutil.math.matrix
Class Column

java.lang.Object
  |
  +--org.jutil.math.matrix.NMatrix
        |
        +--org.jutil.math.matrix.Matrix
              |
              +--org.jutil.math.matrix.Column

public class Column
extends Matrix

A class of matrices containing only 1 column.

Version:
$Revision: 1.7 $
Author:
Marko van Dooren

Field Summary
static java.lang.String CVS_REVISION
           
 
Constructor Summary
Column(double[] elements)
          pre elements != 0
pre elements.length > 0

post size() == elements.length
post (\forall int i; i>0 && i <= size();
elementAt(i) == elements[i-1]);
Create a new Column with the given elements.
Column(int size)
          public invariant getNbColumns() == 1;

pre size > 0;

post size() == size;
post (\forall int i; i > 0 && i <= size();
elementAt(i) == 0);
Create a new Column with the given size.
 
Method Summary
 java.lang.Object clone()
          also public behavior

post \result instanceof Column;
See superclass
 double elementAt(int index)
          pre validIndex(index);

post elementAt(index, 1);
Return the element at the given index
 double norm(int p)
          public behavior

pre p > 0;

post \result == Math.pow((\sum int i; i>=1 && i <= size();
Math.pow(elementAt(i),p)),
1/p)
Return the p-norm of this vector.
 void normalize()
          public behavior

pre norm(2) > 0;

post (\forall int i; i>=1 && i <= size();
elementAt(i) = \old(elementAt(i)/norm(2)));
Normalize this vector
 void setElementAt(int index, double value)
          pre validIndex(index);

post elementAt(index) == value;
Set the element at the given index
 void setSubColumn(int lower, Column column)
          public behavior

pre validIndex(lower);
pre validIndex(lower + column.size() - 1);
pre column != null;

post subColumn(lower, lower + column.size() - 1).equals(column);
Replace a subcolumn of this Column, starting at the given position with the given column.
 int size()
          post \result == getNbRows();
Return the size of this Column.
 Column subColumn(int lower, int upper)
          public behavior

pre validIndex(lower);
pre validIndex(upper);
pre lower <= upper;

post \result != null;
post \result.size() == upper - lower + 1;
post (\forall int i; i >= lower && i <= upper;
\result.elementAt(i - lower + 1) == elementAt(i));
Return a sub-column of this column starting from and ending at
 boolean validIndex(int index)
          post \result == (index > 0) && (index <= size());
Check whether or not the given index is a valid index for this Column.
 
Methods inherited from class org.jutil.math.matrix.Matrix
add, divide, elementAt, elementAt, equals, getColumn, getDimensions, getNbColumns, getNbDimensions, getNbRows, getRow, isDiagonal, isLowerTriangular, isPermutationMatrix, isSquare, isSymmetric, isUpperTriangular, leftGivens, minus, multiply, plus, returnTranspose, rightGivens, sameDimensions, setColumn, setElementAt, setElementAt, setRow, setSubMatrix, subMatrix, subtract, times, times, toString, transpose, unity, validIndex
 
Methods inherited from class org.jutil.math.matrix.NMatrix
validIndex
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CVS_REVISION

public static final java.lang.String CVS_REVISION
Constructor Detail

Column

public Column(int size)
public invariant getNbColumns() == 1;

pre size > 0;

post size() == size;
post (\forall int i; i > 0 && i <= size();
elementAt(i) == 0);
Create a new Column with the given size.
Parameters:
size - The size of the new column.

Column

public Column(double[] elements)
pre elements != 0
pre elements.length > 0

post size() == elements.length
post (\forall int i; i>0 && i <= size();
elementAt(i) == elements[i-1]);
Create a new Column with the given elements.
Parameters:
elements - An array containing the elements for this Column
Method Detail

elementAt

public double elementAt(int index)
pre validIndex(index);

post elementAt(index, 1);
Return the element at the given index
Parameters:
index - The index of the element to be retrieved.

setElementAt

public void setElementAt(int index,
                         double value)
pre validIndex(index);

post elementAt(index) == value;
Set the element at the given index
Parameters:
index - The index of the element to be set
value - The new value for the index

size

public int size()
post \result == getNbRows();
Return the size of this Column.

subColumn

public Column subColumn(int lower,
                        int upper)
public behavior

pre validIndex(lower);
pre validIndex(upper);
pre lower <= upper;

post \result != null;
post \result.size() == upper - lower + 1;
post (\forall int i; i >= lower && i <= upper;
\result.elementAt(i - lower + 1) == elementAt(i));
Return a sub-column of this column starting from and ending at
Parameters:
lower - The lower index
upper - The upper index

setSubColumn

public void setSubColumn(int lower,
                         Column column)
public behavior

pre validIndex(lower);
pre validIndex(lower + column.size() - 1);
pre column != null;

post subColumn(lower, lower + column.size() - 1).equals(column);
Replace a subcolumn of this Column, starting at the given position with the given column.
Parameters:
lower - The index at which the column must be pasted.
column - The column to paste into this column.

norm

public double norm(int p)
public behavior

pre p > 0;

post \result == Math.pow((\sum int i; i>=1 && i <= size();
Math.pow(elementAt(i),p)),
1/p)
Return the p-norm of this vector.
Parameters:
p - The p in p-norm.

clone

public java.lang.Object clone()
also public behavior

post \result instanceof Column;
See superclass
Overrides:
clone in class Matrix

normalize

public void normalize()
public behavior

pre norm(2) > 0;

post (\forall int i; i>=1 && i <= size();
elementAt(i) = \old(elementAt(i)/norm(2)));
Normalize this vector

validIndex

public boolean validIndex(int index)
post \result == (index > 0) && (index <= size());
Check whether or not the given index is a valid index for this Column.
Parameters:
index - The index to be verified