SunOS man pages : spline (1)
GNU Plotting Utilities SPLINE(1)
NAME
spline  interpolate datasets using splines under tension
SYNOPSIS
spline [ options ] [ files ]
DESCRIPTION
spline reads datasets from standard input or from one or
more files, and fits a smooth curve (a "spline") through
each dataset. An interpolated version of each dataset, con
sisting of points from the smooth curve, is written to stan
dard output.
Unless the a or A options are used (see below), each
dataset should be a sequence of values for a vectorvalued
function of a single scalar variable. That is, each dataset
should be a sequence of data points, given as alternating t
and y values. t is a scalar independent variable, and y is
a vectorvalued dependent variable. The dimensionality of y
is specified with the d option (the default dimensionality
is 1). Between each data point and the next, t should
increase.
An input file may contain more than a single dataset. If an
input file is in ASCII format (the default), its datasets
should be separated by blank lines. The t and y values of
the data points in each dataset may be arranged arbitrarily,
so long as they are separated by white space. Besides
datasets, an input file may contain any number of comment
lines, which should begin with the comment character `#'.
Comment lines are ignored. They are not treated as blank,
i.e., they do not interrupt a dataset in progress.
Options and file names may be interspersed on the command
line, but the options are processed before the file names
are read. If  is seen, it is interpreted as the end of
the options. If no file names are specified, or the file
name  is encountered, the standard input is read.
The type of interpolation, and the format of the input and
output files, may be selected by commandline options.
OPTIONS
InterpolationRelated Options
f
filter
Use a local interpolation algorithm (the cubic Bessel
algorithm), so that spline can be used as a realtime
filter. The slope of the interpolating curve at each
point in a dataset will be chosen by fitting a qua
dratic function through that point and the two adjacent
points in the dataset. If f is specified then the t
FSF Last change: Dec 1998 1
GNU Plotting Utilities SPLINE(1)
option, otherwise optional, must be used as well.
Also, if f is specified then the k, p, and T
options may not be used.
If f is not specified, then the default (global)
interpolation algorithm will be used.
k k
boundarycondition k
Set the boundary condition parameter for each con
structed spline to be k. (The default value is 1.0.)
In each of its components, the spline will satisfy the
two boundary conditions y"[0]=ky"[1] and y"[n]=ky"[n
1]. Here y[0] and y[1] signify the values of a speci
fied component of the vectorvalued dependent variable
y at the first two points of a dataset, and y[n1] and
y[n] the values at the last two points. Setting k to
zero will yield a "natural" spline, i.e., one that has
zero curvature at the two ends of the dataset. The k
option may not be used if f or p is specified.
n n
numberofintervals n
Subdivide the interval over which interpolation occurs
into n subintervals. The number of data points com
puted, and written to the output, will be n+1. The
default value for n is 100.
p
periodic
Construct a periodic spline. If this option is speci
fied, the y values for the first and last points in
each dataset must be equal. The f and k options may
not be used if p is specified.
T tension
tension tension
Each interpolating curve will be a spline under ten
sion. This option sets the tension value (the default
is 0.0).
If tension equals zero, the curve will be a piecewise
cubic spline. Increasing the tension above zero makes
the curve "tighter", and reduces the likelihood of
spurious inflection points. That is because between
each pair of successive points in a dataset, the curve
will satisfy the fourthorder differential equation
y""=sgn(tension)*(tension^2)y" in each of its com
ponents. As tension increases to positive infinity, it
will converge to a polygonal line. The T option may
not be used if f is specified.
FSF Last change: Dec 1998 2
GNU Plotting Utilities SPLINE(1)
t tmin tmax [tspacing]
tspacing tmin tmax [tspacing]
For each dataset, set the interval over which interpo
lation occurs to be the interval between tmin and tmax.
If tspacing is not specified, the interval will be
divided into the number of subintervals specified by
the n option.
If the t option is not used, the interval over which
interpolation occurs will be the entire range of the
independent variable in the dataset. The t option
must always be used if the f option is used to request
filterlike behavior (see above).
FormatRelated Options
d dimension
ydimension dimension
Set the dimensionality of the dependent variable y in
the input and output files to be dimension. The
default dimension is 1.
I dataformat
inputformat dataformat
Set the data format for the input file(s) to be data
format, which may be one of the following.
a ASCII format (the default). Each file is a
sequence of floating point numbers, interpreted as
the t and y coordinates of the successive data
points in a dataset. If y is ddimensional, there
will be d+1 numbers for each point. The t and y
coordinates of a point need not appear on the same
line, and points need not appear on different
lines. But if a blank line occurs (i.e., two new
lines in succession are seen), it is interpreted
as the end of a dataset, and the beginning of the
next.
f Single precision binary format. Each file is a
sequence of floating point numbers, interpreted as
the t and y coordinates of the successive data
points in a dataset. If y is ddimensional, there
will be d+1 numbers for each point. Successive
datasets are separated by a single occurrence of
the quantity FLT_MAX, which is the largest possi
ble single precision floating point number. On
most machines this is approximately 3.4x10^38.
d Double precision binary format. Each file is a
sequence of double precision floating point
numbers, interpreted as the t and y coordinates of
the successive data points in a dataset. If y is
FSF Last change: Dec 1998 3
GNU Plotting Utilities SPLINE(1)
ddimensional, there will be d+1 numbers for each
point. Successive datasets are separated by a
single occurrence of the quantity DBL_MAX, which
is the largest possible double precision floating
point number. On most machines this is approxi
mately 1.8x10^308.
i Integer binary format. Each file is a sequence of
integers, interpreted as the t and y coordinates
of the successive data points in a dataset. If y
is ddimensional, there will be d+1 numbers for
each point. Successive datasets are separated by
a single occurrence of the quantity INT_MAX, which
is the largest possible integer. On most machines
this is 2^311.
a [step_size [lower_limit]]
autoabscissa [step_size [lower_limit]]
Automatically generate values for t, the independent
variable (the default values of step_size and
lower_limit are 1.0 and 0.0, respectively).
Irrespective of data format (`a', `f', `d', or `i'),
this option specifies that the values of t are missing
from the input file: the dataset(s) to be read contain
only values of y, the dependent variable. So if y is
ddimensional, there will be only d numbers for each
point. The increment from each t value to the next
will be step_size, and the first t value will be
lower_limit. This option is useful, e.g., when inter
polating curves rather than functions.
A
autodistabscissa
Automatically generate values for t, the independent
variable. This is a variant form of the a option.
The increment from each t value to the next will be the
distance in ddimensional space between the correspond
ing y values, and the first t value will be 0.0. That
is, t will be "polygonal arclength". This option is
useful when interpolating curves rather than functions.
O dataformat
outputformat dataformat
Set the data format for the output file to be data
format. The interpretation of dataformat is the same
as for the I option. The default is `a', i.e., ASCII
format.
P significantdigits
precision significantdigits
Set the numerical precision for the t and y values in
FSF Last change: Dec 1998 4
GNU Plotting Utilities SPLINE(1)
the output file to be significantdigits. This takes
effect only if the output file is written in `a' for
mat, i.e., in ASCII. significantdigits must be a posi
tive integer (the default is 6).
s
suppressabscissa
Omit the independent variable t from the output file;
for each point, supply only the dependent variable y.
If y is ddimensional, there will be only d numbers for
each point, not d+1. This option is useful when inter
polating curves rather than functions.
Informational Options
help
Print a list of commandline options, and exit.
version
Print the version number of spline and the plotting
utilities package, and exit.
EXAMPLES
Typing
echo 0 0 1 1 2
will produce on standard output an interpolated dataset con
sisting of 101 data points. If graphed, this interpolated
dataset will yield a parabola.
It is sometimes useful to interpolate between a sequence of
arbitrarily placed points in ddimensional space, i.e., to
"spline a curve" rather than a function. The a and s
options are used for this. For example,
echo 0 0 1 0 1
will produce on standard output a 101point dataset that
interpolates between the four points (0,0), (1,0), (1,1),
and (0,1). The d 2 option specifies that the dependent
variable y is twodimensional. The a option specifies that
the t values are missing from the input and should be
automatically generated. The s option specifies that the t
values should be stripped from the output.
AUTHORS
spline was written by Robert S. Maier
(rsm@math.arizona.edu), starting with an earlier version by
Rich Murphey (rich@freebsd.org). The algorithms for con
structing splines under tension are similar to those used in
the FITPACK subroutine library, and are ultimately due to
Alan K. Cline (cline@cs.utexas.edu).
FSF Last change: Dec 1998 5
GNU Plotting Utilities SPLINE(1)
SEE ALSO
"The GNU Plotting Utilities Manual".
BUGS
Email bug reports to buggnuutils@gnu.org.
FSF Last change: Dec 1998 6



