dwww Home | Manual pages | Find package

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 interpo-
       lated  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 vari-
       able, 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  algo-
              rithm),  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 compo-
              nents, 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 speci-
              fied.

       -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 differen-
              tial 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.

       -t tmin tmax [tspacing]
       --t-spacing tmin tmax [tspacing]
              For  each dataset, set the interval over which interpolation oc-
              curs 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 interpola-
              tion occurs will be the entire range of the independent variable
              in the dataset.  The -t option must always be used if the -f op-
              tion 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  coor-
                     dinates 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 ap-
                     pear on the same line, and points need not appear on dif-
                     ferent 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 co-
                     ordinates 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 oc-
                     currence 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  sepa-
                     rated  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  inte-
                     gers,  interpreted as the t and y coordinates of the suc-
                     cessive 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  depen-
              dent  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  func-
              tions.

       -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.  signifi-
              cant-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-dimen-
              sional, 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 exam-
       ple,

              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 op-
       tion 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  algo-
       rithms 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)

Generated by dwww version 1.15 on Mon Jun 24 02:45:20 CEST 2024.