`compute``n``k``x``y``#!key`(`shape-constraint``'none`) (`boundary-condition``'none`) (`derivative-computation``'order2`) (`d0``#f`) (`dnp``#f`) (`d20``#f`) (`d2np``#f`) (`eps``0.0001`) (`constr``#f`) (`beta``#f`) (`betainv``#f`) (`rho``#f`) (`rhoinv``#f`) (`kmax``#f`) (`maxstp``#f`) (`d``#f`) (`d2``#f`)procedureComputes the coefficients of a shape-preserving spline, of continuity class C(k), k=1,2 , which interpolates a set of data points and, if required, satisfies additional boundary conditions.

The result of the routine is a list of the form

`(D D2 CONSTR ERRC DIAGN)`.`D D2 ERRC`provide the input parameters for`evaluate`, which evaluates the spline and its derivatives along a set of tabulation points.`CONSTR`is an SRFI-4`s32vector`that contains computed constraint information.The required arguments are:

- N
- the degree of the spline (must be integer >= 3)
- K
- the class of continuity of the spline (first or second derivative). K=1 or K=2 and N >= 3*K
- X
- SRFI-4
`f64vector`value containing the x coordinates of the data points (must be the same length as Y) - Y
- SRFI-4
`f64vector`value containing the y coordinates of the data points (must be the same length as X)

The optional arguments are:

- shape-constraint
- one of
`'none`,`'monotonicity`,`'convexity`,`'monotonicity+convexity`,`'local`. Default is`'none` - boundary-condition
- one of
`'none`,`'non-separable`,`'separable`. Default is`'none` - derivative-computation
- one of
`'order1`,`'order2`,`'order3`,`'classic`. Default is`'order2` - d0
- left separable boundary condition for the first derivative (only used when
`boundary-condition`is`'separable`) - dnp
- right separable boundary condition for the first derivative (only used when
`boundary-condition`is`'separable`) - d20
- left separable boundary condition for the second derivative (only used when
`boundary-condition`is`'separable`and K=2) - d2np
- right separable boundary condition for the second derivative (only used when
`boundary-condition`is`'separable`and K=2) - eps
- relative tolerance of the method. Default is 1e-4
- constr
- if
`shape-constraint`is`'local`, this argument containts a`s32vector`value with the desired constraints on the shape for each subinterval. Each element can be one of 0,1,2,3 (none, monotonicity, convexity, monotonicity and convexity constraint) - beta
- user-supplied procedure of the form
`(LAMBDA X)`, which represents non-separable boundary conditions for the first derivatives (only used when`boundary-condition`is`'non-separable`) - betainv
- user-supplied procedure of the form
`(LAMBDA X)`, which is the inverse of`BETA`(only used when`boundary-condition`is`'non-separable`) - rho
- user-supplied procedure of the form
`(LAMBDA X)`, which represents non-separable boundary conditions for the second derivatives (only used when`boundary-condition`is`'non-separable`and K=2) - rhoinv
- user-supplied procedure of the form
`(LAMBDA X)`, which is the inverse of`RHO`(only used when`boundary-condition`is`'non-separable`and K=2) - kmax
- the number of iterations allowed for selecting the minimal set
`ASTAR`(described in the paper) - maxstp
- the number of iterations allowed for finding the set
`DSTAR`(described in the paper) - d
- SRFI-4
`f64vector`value containing the first derivatives at the points in X (only used when`derivative-computation`is`'classic`) - d2
- SRFI-4
`f64vector`value containing the second derivatives at the points in X (only used when`derivative-computation`is`'classic`and K=2)