Provided by: libncarg-dev_6.3.0-6build1_amd64

#### NAME

```       CURVPS - calculate values for a smoothing spline for a periodic function.

```

#### SYNOPSIS

```       CALL CURVPS (N, X, Y, P, D, ISW, S, EPS, YS, YSP, SIGMA, TEMP, IER)

This  subroutine  calculates certain values that are used by CURVP2 in order to compute an
interpolatory smoothing spline under tension through a sequence of functional values for a
periodic  function.  The  actual computation of the interpolated values must be done using
CURVP2.

Three parameters are used to control the degree of smoothness -- D, S, and EPS.

The parameter D is a value indicating the degree of confidence  in  the  accuracy  of  the
input function values -- it should be an approximation of the standard deviation of error.
Effectively the value of D controls how close the smoothed curve comes to the  input  data
points.  If  D is small then the interpolated curve will pass close to the input data. The
larger the value of D, the more freedom the smooth curve has in how close it comes to  the
input data values.

S is a more subtle global smoothing parameter. S must be non-negative. For small values of
S, the curve approximates the tension spline and for larger values  of  S,  the  curve  is
smoother. A reasonable value for S is REAL(N).

EPS  controls  the  precision  to  which  S  is interpreted; EPS must be between 0. and 1.
inclusive. A reasonable value for EPS is SQRT(2./REAL(N)).

```

#### DESCRIPTION

```       N           (integer, input) The number of input data values. (N > 1)

X           (integer, input) An array containing the abscissae for the input function.

Y           (integer, input) An array containing  the  functional  values  for  the  input
function -- Y(K) is the functional value at X(K) for K=1,N.

P           (real, input) The period of the function.

D           (integer, input) A user-specified value containing the observed weights. D may
be either an array or a scalar, depending on the value of  ISW  (as  described
below).

ISW         (integer, input) A switch for interpreting the value of D. If ISW=0, then D is
an array of length N (D contains an individual error estimate for  each  input
data value); if ISW=1, then D is a scalar that serves as an error estimate for
every single data item.

S           (integer, input) Contains the value for smoothing.  S  must  be  non-negative.
Larger values for S yield greater smoothing. A reasonable value is REAL(N).

EPS         (integer,  input)  Contains  a  tolerance  value for the relative precision to
which S should be interpreted. EPS must be between 0.  and  1.  inclusive.   A
reasonable value is SQRT(2./REAL(N)).

YS          (integer, input) An array of length N.

YSP         (integer, input) An array of length N.

SIGMA       (integer,  input)  Tension  factor. Values near zero result in a cubic spline;
large values (e.g. 50) result in nearly a polygonal line. A typical  value  is
1.

TEMP        (integer, input) Scratch space.

IER         (integer,  input)  An  error  return  value.  If IER is returned as 0, then no
errors were detected.

= 1 if N is less than 2.
= 2 if S is negative.
= 3 if EPS is negative or greater than 1.
= 4 if X values are not strictly increasing.
= 5 if D is negative.
= 6 if P is less than or equal to X(N)-X(1).

```

#### ACCESS

```       To use CURVPS, load the NCAR Graphics library ngmath.

```

#### SEEALSO

```       curvp2, fitgrid_params.

Complete documentation for Fitgrid is available at URL
http://ngwww.ucar.edu/ngdoc/ng/ngmath/fitgrid/fithome.html

```

```       Copyright (C) 2000