XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ pchcm()

void pchcm ( int  n,
double  x[],
double  f[],
double  d[],
int  incfd,
int  skip,
int  ismon[],
int *  info 
)

Monotonicity check for piecewise cubic Hermite function

Purpose
This routine checks the piecewise cubic Hermite function defined by n, x[], f[], d[] for monotonicity.
Parameters
[in]nNumber of data points. (n >= 2)
[in]x[]Array x[lx] (lx >= n)
Independent variable values. The elements of x[] must be strictly increasing.
[in]f[]Array f[lf] (lf >= incfd*(n - 1) + 1)
Function values. f[i*incfd] is the value corresponding to x[i] (i = 0 to n - 1).
[in]d[]Array d[ld] (ld >= incfd*(n - 1) + 1)
Derivative values. d[i*incfd] is the value corresponding to x[i] (i = 0 to n - 1).
[in]incfdIncrement between successive values in f[] and d[]. (incfd >= 1)
[in]skipLogical variable which should be set to true (1) if the user wishes to skip checks for validity of preceding parameters, or to false (0) otherwise. This will save time in case these checks have already been performed (say, in pchim, pchic, pchsp or pchse).
[out]ismon[]Array ismon[lismon] (lismon >= n)
An integer array indicating on which intervals the piecewise cubic Hermite function defined by n, x[], f[], d[] is monotonic.
For data interval [x[i], x[i+1]] (i = 0 to n-2),
  ismon[i] = -3 if function is probably decreasing
  ismon[i] = -1 if function is strictly decreasing
  ismon[i] = 0 if function is constant
  ismon[i] = 1 if function is strictly increasing
  ismon[i] = 2 if function is non-monotonic
  ismon[i] = 3 if function is probably increasing
ismon[n-1] indicates whether the entire function is monotonic on [x[0], x[n-1]].
[out]info= 0: Successful exit
= -1: The argument n had an illegal value (n < 2)
= -2: The argument x[] had an illegal value (not strictly increasing)
= -5: The argument incfd had an illegal value (incfd < 1)
Reference
SLATEC (PCHIP)