Provided by: plotutils_2.6-14build3_amd64 bug

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, consisting of points from the smooth
       curve, is written to standard output.

       Unless the -a or -A options are used (see below), each dataset should be  a  sequence  of  values  for  a
       vector-valued  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  vector-
       valued  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  command-line
       options.

OPTIONS

   Interpolation-Related Options
       -f
       --filter
              Use  a local interpolation algorithm (the cubic Bessel algorithm), so that spline can be used as a
              real-time filter.  The slope of the interpolating curve at each point in a dataset will be  chosen
              by fitting a quadratic function through that point and the two adjacent points in the dataset.  If
              -f  is  specified  then  the  -t 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
       --boundary-condition k
              Set the boundary condition parameter for each constructed 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 specified component of the vector-
              valued  dependent  variable y at the first two points of a dataset, and y[n-1] 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
       --no-of-intervals n
              Subdivide  the  interval  over which interpolation occurs into n subintervals.  The number of data
              points computed, 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 specified, 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 tension.  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 fourth-
              order differential equation y""=sgn(tension)*(tension^2)y" in each of its components.  As  tension
              increases  to  positive  infinity, it will converge to a polygonal line.  The -T option may not be
              used if -f is specified.

       -t tmin tmax [tspacing]
       --t-spacing tmin tmax [tspacing]
              For each dataset, set the interval over which interpolation 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 filter-like behavior (see above).

   Format-Related Options
       -d dimension
       --y-dimension dimension
              Set  the dimensionality of the dependent variable y in the input and output files to be dimension.
              The default dimension is 1.

       -I data-format
       --input-format data-format
              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
                     d-dimensional,  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 newlines 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
                     d-dimensional, 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  possible  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 d-dimensional, 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 approximately 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 d-dimensional, 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^31-1.

       -a [step_size [lower_limit]]
       --auto-abscissa [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 d-dimensional, 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 interpolating curves rather than functions.

       -A
       --auto-dist-abscissa
              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  d-dimensional  space
              between  the  corresponding  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 data-format
       --output-format data-format
              Set the data format for the output file to be data-format.  The interpretation of  data-format  is
              the same as for the -I option.  The default is `a', i.e., ASCII format.

       -P significant-digits
       --precision significant-digits
              Set  the  numerical  precision for the t and y values in the output file to be significant-digits.
              This takes effect only if the output file is written in `a' format, i.e., in ASCII.   significant-
              digits must be a positive integer (the default is 6).

       -s
       --suppress-abscissa
              Omit  the  independent  variable t from the output file; for each point, supply only the dependent
              variable y.  If y is d-dimensional, there will be only d numbers for each point,  not  d+1.   This
              option is useful when interpolating curves rather than functions.

   Informational Options
       --help Print a list of command-line 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 0 | spline

       will  produce on standard output an interpolated dataset consisting 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  d-dimensional
       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 1 0 1 | spline -d 2 -a -s

       will produce on standard output a 101-point 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 two-dimensional.
       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 constructing 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).

SEE ALSO

       "The GNU Plotting Utilities Manual".

BUGS

       Email bug reports to bug-gnu-utils@gnu.org.

FSF                                                 Dec 1998                                           SPLINE(1)