Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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
       --number-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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=spline&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help