diagrams-lib-1.0: Embedded domain-specific language for declarative graphics

Maintainer diagrams-discuss@googlegroups.com Safe-Inferred

Diagrams.CubicSpline.Internal

Contents

Description

A cubic spline is a smooth, connected sequence of cubic curves passing through a given sequence of points. This module implements a straightforward spline generation algorithm based on solving tridiagonal systems of linear equations.

Synopsis

# Solving for spline coefficents

solveTriDiagonal :: Fractional a => [a] -> [a] -> [a] -> [a] -> [a]Source

Solves a system of the form 'A*X=D' for `x` where `A` is an `n` by `n` matrix with `bs` as the main diagonal and `as` the diagonal below and `cs` the diagonal above. See: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm

solveCyclicTriDiagonal :: Fractional a => [a] -> [a] -> [a] -> [a] -> a -> a -> [a]Source

Solves a system similar to the tri-diagonal system using a special case of the Sherman-Morrison formula http://en.wikipedia.org/wiki/Sherman-Morrison_formula. This code is based on Numerical Recpies in C's `cyclic` function in section 2.7.

solveCubicSplineDerivatives :: Fractional a => [a] -> [a]Source

Use the tri-diagonal solver with the appropriate parameters for an open cubic spline.

solveCubicSplineDerivativesClosed :: Fractional a => [a] -> [a]Source

Use the cyclic-tri-diagonal solver with the appropriate parameters for a closed cubic spline.

solveCubicSplineCoefficients :: Fractional a => Bool -> [a] -> [[a]]Source

Use the cyclic-tri-diagonal solver with the appropriate parameters for a closed cubic spline.