CHAPTER 3
174
Syntax
attribute is optional and can be used to clip the output to a specified range. Note
that when
N
is 1, the function performs a linear interpolation between
C0
and
C1
;
therefore, the function can also be expressed as a sampled function (type 0).
3.9.3 Type 3 (Stitching) Functions
Type 3 functions
(PDF 1.3)
define a
stitching
of the subdomains of several 1-input
functions to produce a single new 1-input function. Since the resulting stitching
function is a 1-input function, the domain is given by a two-element array,
[
Domain
0
Domain
1
]
.
In addition to the entries in Table 3.35 on page 168, a type 3 function dictionary
includes those listed in Table 3.38. (See implementation note 42 in Appendix H.)
TABLE 3.38 Additional entries specific to a type 3 function dictionary
KEY
TYPE
VALUE
Functions
array
(Required)
An array of
k
1-input functions making up the stitching function. The out-
put dimensionality of all functions must be the same, and compatible with the value of
Range
if
Range
is present.
(Required)
An array of
k
−
1 numbers that, in combination with
Domain
, define the
intervals to which each function from the
Functions
array applies.
Bounds
elements
must be in order of increasing value, and each value must be within the domain
defined by
Domain
.
(Required)
An array of 2
×
k
numbers that, taken in pairs, map each subset of the do-
main defined by
Domain
and the
Bounds
array to the domain of the corresponding
function.
Bounds
array
Encode
array
Domain
must be of size 2 (that is,
m
=
1), and
Domain
0
must be strictly less than
Domain
1
unless
k
=
1. The domain is partitioned into
k
subdomains, as indicated
by the dictionary’s
Bounds
entry, which is an array of
k
−
1 numbers that obey the
following relationships (with exceptions as noted below):
Domain
0
<
Bounds
0
<
Bounds
1
< … <
Bounds
k
–
2
<
Domain
1
The
Bounds
array describes a series of half-open intervals, closed on the left and
open on the right (except the last, which is closed on the right as well). The value
of the
Functions
entry is an array of
k
functions. The first function applies to
x
values in the first subdomain,
Domain
0
≤
x
<
Bounds
0
; the second function
applies to
x
values in the second subdomain,
Bounds
0
≤
x
<
Bounds
1
; and so on.