# fnbrk

Name and part(s) of form

## Syntax

[out1,...,outn] = fnbrk(f,part1,...,partm)
fnbrk(f,interval)
fnbrk(pp,j)
fnbrk(f)

## Description

[out1,...,outn] = fnbrk(f,part1,...,partm) returns the part(s) of the form in f specified by part1,...,partn (assuming that n<=m). These are the parts used when the form was put together, in spmak or ppmak or rpmak or rsmak or stmak, but also other parts derived from these.

You only need to specify the beginning character(s) of the relevant option.

Regardless of what particular form f is in, parti can be one of the following, specified as a character vector or string scalar.

 'form' The particular form used 'variables' The dimension of the function's domain 'dimension' The dimension of the function's target 'coefficients' The coefficients in that particular form 'interval' The basic interval of that form

Depending on the form in f, additional parts may be asked for.

If f is in B-form (or BBform or rBform), then additional choices for parti are

 'knots' The knot sequence 'coefficients' The B-spline coefficients 'number' The number of coefficients 'order' The polynomial order of the spline

If f is in ppform (or rpform), then additional choices for parti are

 'breaks' The break sequence 'coefficients' The local polynomial coefficients 'pieces' The number of polynomial pieces 'order' The polynomial order of the spline 'guide' The local polynomial coefficients, but in the form needed for PPVALU in PGS

If the function in f is multivariate, then the corresponding multivariate parts are returned. This means, e.g., that knots, breaks, and the basic interval, are cell arrays, the coefficient array is, in general, higher than two-dimensional, and order, number and pieces are vectors.

If f is in stform, then additional choices for parti are

 'centers' The centers 'coefficients' The coefficients 'number' Number of coefficients or terms 'type' The particular type

fnbrk(f,interval) with interval a 1-by-2 matrix [a b] with a<b does not return a particular part. Rather, it returns a description of the univariate function described by f and in the same form but with the basic interval changed, to the interval given. If, instead, interval is [ ], f is returned unchanged. This is of particular help when the function in f is m-variate, in which case interval must be a cell array with m entries, with the ith entry specifying the desired interval in the ith dimension. If that ith entry is [ ], the basic interval in the ith dimension is unchanged.

fnbrk(pp,j), with pp the ppform of a univariate function and j a positive integer, does not return a particular part, but returns the ppform of the jth polynomial piece of the function in pp. If pp is the ppform of an m-variate function, then j must be a cell array of length m. In that case, each entry of j must be a positive integer or else an interval, to single out a particular polynomial piece or else to specify the basic interval in that dimension.

fnbrk(f) returns nothing, but a description of the various parts of the form is printed at the command line instead.

## Examples

If p1 and p2 contain the B-form of two splines of the same order, with the same knot sequence, and the same target dimension, then

p1plusp2 = spmak(fnbrk(p1,'k'),fnbrk(p1,'c')+fnbrk(p2,'c'));

provides the (pointwise) sum of those two functions.

If pp contains the ppform of a bivariate spline with at least four polynomial pieces in the first variable, then ppp=fnbrk(pp,{4,[-1 1]}) gives the spline that agrees with the spline in pp on the rectangle [b4 .. b5] x [-1 .. 1] , where b4b5 are the fourth and fifth entry in the break sequence for the first variable.