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

Copyright(c) 2011 diagrams-lib team (see LICENSE)
LicenseBSD-style (see LICENSE)
Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

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.