\subsection{Compute a curve interpolating a set of points,
\mbox{automatic} parameterization.}
\funclabel{s1356}
\begin{minipg1}
Compute a curve interpolating a set of points.  The points
can be assigned a tangent (derivative).  The parameterization of the
curve will be generated and the curve can be open, closed non-periodic
or periodic.  If end-conditions are conflicting, the condition closed
curve rules out other end conditions.
The output will be represented as a B-spline curve.
\end{minipg1} \\ \\
SYNOPSIS\\
        \>void s1356(\begin{minipg3}
          {\fov epoint}, {\fov inbpnt}, {\fov idim}, {\fov nptyp}, {\fov icnsta}, {\fov icnend}, {\fov iopen}, {\fov ik}, {\fov astpar},
          {\fov cendpar}, {\fov rc}, {\fov gpar}, {\fov jnbpar}, {\fov jstat})
        \end{minipg3}\\[0.3ex]
        \>\>    double \>  {\fov epoint}[\,];\\
        \>\>    int    \>  {\fov inbpnt};\\
        \>\>    int    \>  {\fov idim};\\
        \>\>    int    \>  {\fov nptyp}[\,];\\
        \>\>    int    \>  {\fov icnsta};\\
        \>\>    int    \>  {\fov icnend};\\
        \>\>    int    \>  {\fov iopen};\\
        \>\>    int    \>  {\fov ik};\\
        \>\>    double \>  {\fov astpar};\\
        \>\>    double \>  *{\fov cendpar};\\
        \>\>    SISLCurve \> **{\fov rc};\\
        \>\>    double \>  **{\fov gpar};\\
        \>\>    int    \>  *{\fov jnbpar};\\
        \>\>    int    \>  *{\fov jstat};\\
\\
ARGUMENTS\\
        \>Input Arguments:\\
        \>\>    {\fov epoint}\> - \>
        \begin{minipg2}
          Array (of length $idim\times inbpnt$) containing the
          points/\-derivatives to be interpolated.
        \end{minipg2}\\
        \>\>    {\fov inbpnt}\> - \>
        \begin{minipg2}
          No. of points/\-derivatives in the {\fov epoint} array.
        \end{minipg2}\\
        \>\>    {\fov idim}\> - \>
        The dimension of the space in which the points lie.\\
        \>\>    {\fov nptyp}\> - \> \begin{minipg2}
                  Array (length {\fov inbpnt}) containing type indicator for
                  points/\-derivatives/\-second-derivatives:
                \end{minipg2}\\
                \>\>\>\> $=1$\>: Ordinary point.\\
                \>\>\>\> $=2$\>:
                \begin{minipg5}
                  Knuckle point.  (Is treated as an ordinary point.)
                \end{minipg5}\\
                \>\>\>\> $=3$\>: Derivative to next point.\\
                \>\>\>\> $=4$\>: Derivative to prior point.\\
                \>\>\>\> ($=5$\>: Second-derivative to next point.)\\
                \>\>\>\> ($=6$\>: Second derivative to prior point.)\\
                \>\>\>\> $=13$\>: Point of tangent to next point.\\
                \>\>\>\> $=14$\>: Point of tangent to prior  point.\\
\newpagetabs
        \>\>    {\fov icnsta}\> - \>
                Additional condition at the start of the curve:\\
                  \>\>\>\> $=0$\>: No additional condition.\\
                  \>\>\>\> $=1$\>: Zero curvature at start.\\
        \>\>    {\fov icnend}\> - \>
                Additional condition at the end of the curve:\\
                  \>\>\>\> $=0$\>: No additional condition.\\
                  \>\>\>\> $=1$\>: Zero curvature at end.\\
        \>\>    {\fov iopen}\> - \>
                Flag telling if the curve should be open or closed:\\
                  \>\>\>\> $=1$\>: Open curve.\\
                  \>\>\>\> $=0$\>: Closed, non-periodic curve.\\
                  \>\>\>\> $=-1$\>: Periodic (and closed) curve.\\
        \>\>    {\fov ik}\> - \> The order of the spline curve to be produced.\\
        \>\>    {\fov astpar}\> - \>
        \begin{minipg2}
          Parameter value to be used at the start of the curve.
        \end{minipg2}\\
\\
        \>Output Arguments:\\
        \>\>    {\fov cendpar}\> - \>
        \begin{minipg2}
          Parameter value used at the end of the curve.
        \end{minipg2}\\
        \>\>    {\fov rc}\> - \> Pointer to output B-spline curve.\\
        \>\>    {\fov gpar}\> - \>
        \begin{minipg2}
          Pointer to the parameter values of the points in the
          curve. Represented only once, although derivatives and
          second-derivatives will have the same parameter value as the
          points.
        \end{minipg2}\\
        \>\>    {\fov jnbpar}\> - \> No. of unique parameter values.\\
        \>\>    {\fov jstat}\> - \> Status message\\
                \>\>\>\>\> $< 0$ : Error.\\
                \>\>\>\>\> $= 0$ : Ok.\\
                \>\>\>\>\> $> 0$ : Warning.\\
\\ %\newpagetabs
EXAMPLE OF USE\\
        \>      \{ \\
        \>\>    double \>  {\fov epoint}[30];\\
        \>\>    int    \>  {\fov inbpnt} = 10;\\
        \>\>    int    \>  {\fov idim} = 3;\\
        \>\>    int    \>  {\fov nptyp}[10];\\
        \>\>    int    \>  {\fov icnsta} = 0;\\
        \>\>    int    \>  {\fov icnend} = 0;\\
        \>\>    int    \>  {\fov iopen} = 1;\\
        \>\>    int    \>  {\fov ik} = 4;\\
        \>\>    double \>  {\fov astpar} = 0.0;\\
        \>\>    double \>  {\fov cendpar} = 0.0;\\
        \>\>    SISLCurve \> *{\fov rc} = NULL;\\
        \>\>    double \>  *{\fov gpar} = NULL;\\
        \>\>    int    \>  {\fov jnbpar} = 0;\\
        \>\>    int    \>  {\fov jstat};\\
        \>\>    \ldots \\
        \>\>s1356(\begin{minipg4}
          {\fov epoint}, {\fov inbpnt}, {\fov idim}, {\fov nptyp}, {\fov icnsta}, {\fov icnend}, {\fov iopen}, {\fov ik}, {\fov astpar},
          \&{\fov cendpar}, \&{\fov rc}, \&{\fov gpar}, \&{\fov jnbpar}, \&{\fov jstat});
        \end{minipg4}\\
        \>\>    \ldots \\
        \>      \}
\end{tabbing}
