ru.sscc.spline.polynomial
Class MatrixPreparator

java.lang.Object
  |
  +--ru.sscc.spline.polynomial.MatrixPreparator
Direct Known Subclasses:
NonuniformPreparator, UniformPreparator

public abstract class MatrixPreparator
extends java.lang.Object
implements java.io.Serializable

Provides preparation of matrices for the linear algebraic system of polynomial spline interpolation. The finite differences matrix H is calculated while construction of class instance. The Laurent matrix A is calculated in the calculateA method.

See Also:
Serialized Form

Field Summary
protected  RectBandedMatrix h
          The matrix of finite differences.
 
Constructor Summary
MatrixPreparator()
           
 
Method Summary
static MatrixPreparator by(SimpleMesh mesh, int order)
          Create a matrix preparator by a mesh and difference order.
abstract  void calculateA(SymBandedMatrix a)
          Calculates the symmetric banded Laurent matrix.
protected  void ensureValidMatrix(SymBandedMatrix a, boolean toeplitz)
          Tests the symmetric banded matrix to have correct size and half-band width for writing of the Laurent matrix and prepares the matrix for reuse.
 RectBandedMatrix getH()
          Returns the matrix of finite differences.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

h

protected RectBandedMatrix h
The matrix of finite differences.
Constructor Detail

MatrixPreparator

public MatrixPreparator()
Method Detail

getH

public final RectBandedMatrix getH()
Returns the matrix of finite differences.

calculateA

public abstract void calculateA(SymBandedMatrix a)
Calculates the symmetric banded Laurent matrix. The matrix size should be equal to the rows number of the finite differences matrix. The width of the matrix half-band should be not less than the degree of the finite difference matrix.
Parameters:
a - a matrix to store the result.

by

public static final MatrixPreparator by(SimpleMesh mesh,
                                        int order)
Create a matrix preparator by a mesh and difference order.

ensureValidMatrix

protected final void ensureValidMatrix(SymBandedMatrix a,
                                       boolean toeplitz)
Tests the symmetric banded matrix to have correct size and half-band width for writing of the Laurent matrix and prepares the matrix for reuse.
Parameters:
a - a matrix to store the Laurent matrix.
toeplitz - a toeplitzness tag to be set