blob: 87d44a3f480dab4fcf35284d4d68d301973c9cf6 (
plain) (
tree)
|
|
* This module contains several useful routines for interpolating
data sets and finding where a given value lies in a sorted list.
The first is a subroutine used to locate a position in an array
of values where a given value would fit using bisection. It has
been designed to be efficient in the common situation that it is
called repeatedly. The user can supply a different set of comparison
operators to replace the standard < and <=. For example, given a
list (1, 2, 5, 8, 15) and the number 9.5 it would return 3.
* The remaining routines all are related to interpolating sets of
(x,y) data pairs. They all take a list of (x,y) data pairs given
another x value, return a sensible y value using the list of (x,y)
data pairs. Three different interpolating functions are provided.
The first, called a constant interpolator, assumes that the
function being interpolated moves in non-linear jumps from one
value to another. The interpolated value for some value x is the
y value of the neighboring (x,y) to the left of the given x. The
second interpolator performs a linear interpolation between the
neighboring points. The third interpolator is called the robust
interpolator and interpolates a smooth curve between all of the
(x,y) pairs. To do the interpolation, it first calculates some
reasonable derivatives at the (x,y) pairs. The robust interpolator
can also use derivative information supplied by the user.
WWW: http://search.cpan.org/dist/Math-Interpolate/
|