ru.sscc.spline.polynomial
Class POddSplineCreator

java.lang.Object
  |
  +--ru.sscc.spline.creator.SplineCreator
        |
        +--ru.sscc.spline.creator.SmoothingSplineCreator
              |
              +--ru.sscc.spline.polynomial.OddSplineCreator
                    |
                    +--ru.sscc.spline.polynomial.POddSplineCreator

public class POddSplineCreator
extends OddSplineCreator

This creator is intended for construction of 1D polynomial splines of odd degree having the polynomial representaion of the result. The degree of a spline is defined by the order parameter in a constructor and is equal to 2*order-1. So, order=1 means the linear interpolation, order=2 means the cubic interpolation, order=3 means the quintic interpolation and so on.

See Also:
Serialized Form

Field Summary
protected  PSplineCalculator calculator
          Calculator used for calculation of the polynomial representation.
 
Fields inherited from class ru.sscc.spline.creator.SmoothingSplineCreator
preparator
 
Constructor Summary
POddSplineCreator()
          Default constructor.
POddSplineCreator(int order, double origin, double step, int count)
          Constructor for the case of uniform mesh.
POddSplineCreator(int order, RealVector mesh)
          Constuctor for the case of nonuniform mesh.
POddSplineCreator(int order, SimpleMesh mesh)
          Constructor for the case of an arbitrary simple mesh.
 
Method Summary
 void calculate(RealVector source, RealVector target)
          Calculates spline coefficients.
 double calculate(RealVector source, RealVector target, double epsilon)
          Finds the smoothing parameter using the residual criterion and calculates spline coefficients.
 double calculationCost()
          Returns a number of operations needed for a calculation of one spline coefficients vector.
static Spline createSpline(int order, double origin, double step, int count, java.lang.Object source)
          Creates an interpolating polynomial spline on a uniform mesh.
static Spline createSpline(int order, double origin, double step, int count, java.lang.Object source, double epsilon)
          Creates a polynomial spline on a uniform mesh using unweighted residual criterion.
static Spline createSpline(int order, double origin, double step, int count, java.lang.Object source, double epsilon, java.lang.Object weights)
          Creates a polynomial spline on a uniform mesh using weighted residual criterion.
static Spline createSpline(int order, java.lang.Object mesh, java.lang.Object source)
          Creates an interpolating polynomial spline
static Spline createSpline(int order, java.lang.Object mesh, java.lang.Object source, double epsilon)
          Creates a polynomial spline using unweighted residual criterion.
static Spline createSpline(int order, java.lang.Object mesh, java.lang.Object source, double epsilon, java.lang.Object weights)
          Creates a polynomial spline using weighted residual criterion.
 void prepareCreatorBody(int order, SimpleMesh mesh)
          Prepares the creator body.
 
Methods inherited from class ru.sscc.spline.polynomial.OddSplineCreator
attachSplineBody, clone, constructSpline, lambda
 
Methods inherited from class ru.sscc.spline.creator.SmoothingSplineCreator
constructSpline, constructSpline, getAlpha, getPreparator, prepareSolver, prepareWeights, sourceSize
 
Methods inherited from class ru.sscc.spline.creator.SplineCreator
constructSpline, constructSplinesByColumns, constructSplinesByRows, ensurePrepared, getSplineBody, isPrepared, setPrepared, targetSize
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

calculator

protected PSplineCalculator calculator
Calculator used for calculation of the polynomial representation.
Constructor Detail

POddSplineCreator

public POddSplineCreator()
Default constructor.

POddSplineCreator

public POddSplineCreator(int order,
                         RealVector mesh)
Constuctor for the case of nonuniform mesh.
Parameters:
order - a difference order
mesh - a mesh vector

POddSplineCreator

public POddSplineCreator(int order,
                         double origin,
                         double step,
                         int count)
Constructor for the case of uniform mesh.
Parameters:
order - a difference order
origin - a first mesh node
step - a distance between nodes
count - a number of mesh nodes

POddSplineCreator

public POddSplineCreator(int order,
                         SimpleMesh mesh)
Constructor for the case of an arbitrary simple mesh.
Parameters:
order - a difference order
mesh - a mesh
Method Detail

prepareCreatorBody

public void prepareCreatorBody(int order,
                               SimpleMesh mesh)
Prepares the creator body.
Overrides:
prepareCreatorBody in class OddSplineCreator
Parameters:
order - a difference order
mesh - a mesh vector

calculate

public void calculate(RealVector source,
                      RealVector target)
Calculates spline coefficients.
Overrides:
calculate in class SplineCreator
Parameters:
source - interpolation values at mesh nodes
target - a vector to storage spline coefficients

calculate

public double calculate(RealVector source,
                        RealVector target,
                        double epsilon)
                 throws CalculatingException
Finds the smoothing parameter using the residual criterion and calculates spline coefficients.
Overrides:
calculate in class SmoothingSplineCreator
Parameters:
source - interpolation values at mesh nodes
target - a vector to store spline coefficients
epsilon - a required residual level (should be > 0)
Returns:
the smoothing parameter found

calculationCost

public double calculationCost()
Returns a number of operations needed for a calculation of one spline coefficients vector.
Overrides:
calculationCost in class SplineCreator

createSpline

public static final Spline createSpline(int order,
                                        java.lang.Object mesh,
                                        java.lang.Object source,
                                        double epsilon,
                                        java.lang.Object weights)
                                 throws CalculatingException
Creates a polynomial spline using weighted residual criterion.
Parameters:
order - a difference order
mesh - a mesh (an instance of SimpleMesh, RealVector, RealContainer, double[], or float[] types)
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)
epsilon - a residual criterion value. If epsilon<=0, the interpolation is performed
weights - a weights vector (may be the null value or an instance of double[], float[], RealContainer, or RealVector types)

createSpline

public static final Spline createSpline(int order,
                                        java.lang.Object mesh,
                                        java.lang.Object source,
                                        double epsilon)
                                 throws CalculatingException
Creates a polynomial spline using unweighted residual criterion.
Parameters:
order - a difference order
mesh - a mesh (an instance of SimpleMesh, RealVector, RealContainer, double[], or float[] types)
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)
epsilon - a residual criterion value. If epsilon<=0, the interpolation is performed

createSpline

public static final Spline createSpline(int order,
                                        java.lang.Object mesh,
                                        java.lang.Object source)
                                 throws CalculatingException
Creates an interpolating polynomial spline
Parameters:
order - a difference order
mesh - a mesh (an instance of SimpleMesh, RealVector, RealContainer, double[], or float[] types)
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)

createSpline

public static final Spline createSpline(int order,
                                        double origin,
                                        double step,
                                        int count,
                                        java.lang.Object source,
                                        double epsilon,
                                        java.lang.Object weights)
                                 throws CalculatingException
Creates a polynomial spline on a uniform mesh using weighted residual criterion.
Parameters:
order - a difference order
origin - a first mesh node
step - a distance between nodes
count - a number of mesh nodes
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)
epsilon - a residual criterion value. If epsilon<=0, the interpolation is performed
weights - a weights vector (may be the null value or an instance of double[], float[], RealContainer, or RealVector types)

createSpline

public static final Spline createSpline(int order,
                                        double origin,
                                        double step,
                                        int count,
                                        java.lang.Object source,
                                        double epsilon)
                                 throws CalculatingException
Creates a polynomial spline on a uniform mesh using unweighted residual criterion.
Parameters:
order - a difference order
origin - a first mesh node
step - a distance between nodes
count - a number of mesh nodes
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)
epsilon - a residual criterion value. If epsilon<=0, the interpolation is performed

createSpline

public static final Spline createSpline(int order,
                                        double origin,
                                        double step,
                                        int count,
                                        java.lang.Object source)
                                 throws CalculatingException
Creates an interpolating polynomial spline on a uniform mesh.
Parameters:
order - a difference order
origin - a first mesh node
step - a distance between nodes
count - a number of mesh nodes
source - interpolation values at mesh nodes (an instance of double[], float[], RealContainer, or RealVector types)