JavaView© v3.95.000

jv.vecmath
Class PdMatrix

java.lang.Object
  extended byjv.vecmath.PdMatrix
All Implemented Interfaces:
java.io.Serializable

public class PdMatrix
extends java.lang.Object
implements java.io.Serializable

Linear algebra class for small matrices of doubles. For methods on large matrices see PnMatrix.

See Also:
PnMatrix, Serialized Form

Field Summary
 double[][] m_data
          Data array containing the components of the vector.
 
Constructor Summary
PdMatrix()
          Create a new matrix of zero size.
PdMatrix(double[][] x)
          Constructs a matrix having same size and given initial data as given array.
PdMatrix(int aSize)
          Create a square matrix with given dimension.
PdMatrix(int iSize, int jSize)
          Create a non-square matrix with given dimensions.
 
Method Summary
 void add(PdMatrix m)
           
 void add(PdMatrix m1, PdMatrix m2)
           
 boolean adjoint(PdVector v)
          Compute this = v * v^t unsing adjoint(v, v).
 boolean adjoint(PdVector v, PdVector w)
          Compute this = v * w^t.
 java.lang.Object clone()
          Duplicate matrix and data array.
 void copy(PdMatrix m)
           
static boolean copy(PdMatrix[] dataDest, int destInd, PdMatrix[] dataSrc, int srcInd, int size)
           
static PdMatrix copyNew(PdMatrix mat)
          Create a new matrix as clone of argument matrix.
static PdMatrix[] copyNew(PdMatrix[] data)
           
static PdMatrix[] copyNew(PdMatrix[] data, int size)
           
 double det()
          Compute determinant square matrix with dimensions less or equal four.
 double det33()
          Compute determinant of (3*3) left upper block of matrix.
static PdMatrix expandComponents(PdMatrix mat, int dim)
          Create a bigger matrix such that each original entry expands to a (dim, dim)-diagonal matrix.
 PdVector getColumn(int aColumn)
          Get column vector of matrix.
 double[][] getEntries()
          Return a copy of content of matrix as array of arrays of doubles.
 double getEntry(int i, int j)
          Get the component of matrix.
 int getISize()
          Get number of rows of matrix.
 int getJSize()
          Get number of columns of matrix.
 PdVector getRow(int aRow)
          Get row vector of matrix.
 int getSize()
          Get dimension of square matrix, return -1 for non-square matrices.
 boolean invert()
          Invert a square matrix of dimension less than five by this = inverse(this).
 boolean invert(PdMatrix m)
          Invert a square matrix of dimension less than five by this = inverse(m).
 boolean invert34(PdMatrix m)
          Invert the top-left 3x4 square of a matrix44 in place.
 boolean invertTopLeft(PdMatrix m, int aSubSize)
          Invert the top-left subSize x subSize square of a matrix m in place and assign full matrix m to this matrix.
 boolean isSquare()
          Check if matrix is square.
 void leftMult(PdMatrix m)
          Multiply with square matrix from left of same sizes using this = m*this.
 void leftMult(PdMatrix m, int size)
          Multiply a submatrix of this matrix with a submatrix of the parameter matrix.
 void mult(PdMatrix mat1, PdMatrix mat2)
          Multiply two matrices of possibly different sizes using this = mat1*mat2.
 void multScalar(double scalar)
           
 void multScalar(PdMatrix m, double scalar)
           
static PdMatrix[] realloc(PdMatrix[] data, int arraySize)
           
static PdMatrix[] realloc(PdMatrix[] data, int arraySize, int iSize, int jSize)
           
 void rightMult(PdMatrix m)
          Multiply with square matrix from right of same sizes using this = this*m.
 void rightMult(PdMatrix m, int size)
          Multiply a submatrix of this matrix with a submatrix of the parameter matrix.
 void set(double[][] x)
          Assign values of array, and adjust length of matrix if different from length of array.
 void setColumn(int aColumn, PdVector aVector)
          Set column vector of matrix.
 void setColumns(PdVector[] aVector)
          Fill matrix with array of column vectors.
 void setConstant(double aValue)
          Set all matrix entries to a constant value.
 void setDiagonal(PdVector diag)
          Set diagonal entries of a square matrix to components of a given vector.
 void setEntry(int i, int j, double value)
          Assign value to component of matrix, and possibly enlarge matrix if too small.
 void setIdentity()
          Initialize square matrix to be identity matrix.
 void setRow(int aRow, PdVector aVector)
          Set row vector of matrix.
 void setRows(PdVector[] aVector)
          Fill matrix with array of row vectors.
 void setSize(int size)
          Resize square matrix with new dimension (size,size).
 void setSize(int iSize, int jSize)
          Resize matrix to new dimension (iSize, jSize).
 void sub(PdMatrix m)
           
 void sub(PdMatrix m1, PdMatrix m2)
           
 java.lang.String toShortString()
          Create a short string representation of matrix with all instance variables.
 java.lang.String toString()
          Create a multi-line string representation with detailed information about all instance variables.
 void transpose()
          Transpose a square matrix by this = transpose(this).
 void transpose(PdMatrix m)
          Transpose a square matrix by this = transpose(m).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_data

public double[][] m_data
Data array containing the components of the vector. Array has public access for efficiency reasons in numerical computations, although method access should be preferred. Do not modify length of array directly.

Constructor Detail

PdMatrix

public PdMatrix()
Create a new matrix of zero size.


PdMatrix

public PdMatrix(int aSize)
Create a square matrix with given dimension.


PdMatrix

public PdMatrix(int iSize,
                int jSize)
Create a non-square matrix with given dimensions.


PdMatrix

public PdMatrix(double[][] x)
Constructs a matrix having same size and given initial data as given array.

Method Detail

realloc

public static PdMatrix[] realloc(PdMatrix[] data,
                                 int arraySize,
                                 int iSize,
                                 int jSize)

realloc

public static PdMatrix[] realloc(PdMatrix[] data,
                                 int arraySize)

clone

public java.lang.Object clone()
Duplicate matrix and data array. Method just returns result of copyNew(PdMatrix).

See Also:
copyNew(PdMatrix)

copyNew

public static PdMatrix[] copyNew(PdMatrix[] data)

copyNew

public static PdMatrix[] copyNew(PdMatrix[] data,
                                 int size)

copyNew

public static PdMatrix copyNew(PdMatrix mat)
Create a new matrix as clone of argument matrix.


copy

public static boolean copy(PdMatrix[] dataDest,
                           int destInd,
                           PdMatrix[] dataSrc,
                           int srcInd,
                           int size)

set

public void set(double[][] x)
Assign values of array, and adjust length of matrix if different from length of array.


getISize

public int getISize()
Get number of rows of matrix.


getJSize

public int getJSize()
Get number of columns of matrix.


getSize

public int getSize()
Get dimension of square matrix, return -1 for non-square matrices.


setSize

public void setSize(int size)
Resize square matrix with new dimension (size,size). Existing content of matrix is kept as much as possible.


setSize

public void setSize(int iSize,
                    int jSize)
Resize matrix to new dimension (iSize, jSize). Existing content of matrix is kept as much as possible.


getEntries

public double[][] getEntries()
Return a copy of content of matrix as array of arrays of doubles.


getEntry

public double getEntry(int i,
                       int j)
Get the component of matrix.


setEntry

public void setEntry(int i,
                     int j,
                     double value)
Assign value to component of matrix, and possibly enlarge matrix if too small.


isSquare

public boolean isSquare()
Check if matrix is square.


setIdentity

public void setIdentity()
Initialize square matrix to be identity matrix.


setConstant

public void setConstant(double aValue)
Set all matrix entries to a constant value.


setDiagonal

public void setDiagonal(PdVector diag)
Set diagonal entries of a square matrix to components of a given vector. No other values of matrix are modified. Size of vector must be equal or larger than size of square matrix.

Parameters:
diag - Vector with diagonal components

getRow

public PdVector getRow(int aRow)
Get row vector of matrix. Method returns null if row index out of bounds.


setRow

public void setRow(int aRow,
                   PdVector aVector)
Set row vector of matrix. Length of vector must be equal or greater than number of columns. Dimension of matrix is not modified.


getColumn

public PdVector getColumn(int aColumn)
Get column vector of matrix. Method returns null if column index out of bounds.


setColumn

public void setColumn(int aColumn,
                      PdVector aVector)
Set column vector of matrix. Length of vector must be equal or greater than number of rows. Dimension of matrix is not modified.


setRows

public void setRows(PdVector[] aVector)
Fill matrix with array of row vectors. Number of vectors and length of each vector must be equal or greater than corresponding sizes of matrix. Dimension of matrix is not modified.


setColumns

public void setColumns(PdVector[] aVector)
Fill matrix with array of column vectors. Number of vectors and length of each vector must be equal or greater than corresponding sizes of matrix. Dimension of matrix is not modified.


add

public void add(PdMatrix m)

add

public void add(PdMatrix m1,
                PdMatrix m2)

sub

public void sub(PdMatrix m)

sub

public void sub(PdMatrix m1,
                PdMatrix m2)

copy

public void copy(PdMatrix m)

multScalar

public void multScalar(double scalar)

multScalar

public void multScalar(PdMatrix m,
                       double scalar)

det

public double det()
Compute determinant square matrix with dimensions less or equal four.


det33

public double det33()
Compute determinant of (3*3) left upper block of matrix.


leftMult

public void leftMult(PdMatrix m,
                     int size)
Multiply a submatrix of this matrix with a submatrix of the parameter matrix.. Size of 'this' does not change. Matrices must be larger than size of submatrix.

Parameters:
m - parameter matrix
size - size of square sub matrix affected within this.

leftMult

public void leftMult(PdMatrix m)
Multiply with square matrix from left of same sizes using this = m*this. Size of 'this' does not change.


rightMult

public void rightMult(PdMatrix m,
                      int size)
Multiply a submatrix of this matrix with a submatrix of the parameter matrix.. Size of 'this' does not change. Matrices must be larger than size of submatrix.

Parameters:
m - parameter matrix
size - size of square sub matrix affected within this.

rightMult

public void rightMult(PdMatrix m)
Multiply with square matrix from right of same sizes using this = this*m. Size of 'this' does not change.


mult

public void mult(PdMatrix mat1,
                 PdMatrix mat2)
Multiply two matrices of possibly different sizes using this = mat1*mat2. Size of 'this' is adjusted to have number of rows equal to first factor and number of columns equal to second factor.


transpose

public void transpose()
Transpose a square matrix by this = transpose(this).


transpose

public void transpose(PdMatrix m)
Transpose a square matrix by this = transpose(m).


invert

public boolean invert()
Invert a square matrix of dimension less than five by this = inverse(this).


invert

public boolean invert(PdMatrix m)
Invert a square matrix of dimension less than five by this = inverse(m).

Returns:
false if error occured, and if arg is singular call this.setIdentity().

invertTopLeft

public boolean invertTopLeft(PdMatrix m,
                             int aSubSize)
Invert the top-left subSize x subSize square of a matrix m in place and assign full matrix m to this matrix.


invert34

public boolean invert34(PdMatrix m)
Invert the top-left 3x4 square of a matrix44 in place.


adjoint

public boolean adjoint(PdVector v)
Compute this = v * v^t unsing adjoint(v, v).


adjoint

public boolean adjoint(PdVector v,
                       PdVector w)
Compute this = v * w^t.


toString

public java.lang.String toString()
Create a multi-line string representation with detailed information about all instance variables.


toShortString

public java.lang.String toShortString()
Create a short string representation of matrix with all instance variables.


expandComponents

public static PdMatrix expandComponents(PdMatrix mat,
                                        int dim)
Create a bigger matrix such that each original entry expands to a (dim, dim)-diagonal matrix.


JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.