CHAPTER 3
168
Syntax
function dictionary specifies the function’s representation, the set of attributes
that parameterize that representation, and the additional data needed by that
representation. Four types of functions are available, as indicated by the
dictionary’s
FunctionType
entry:
•
(PDF 1.2)
A
sampled function
(type 0) uses a table of
sample values
to define the
function. Various techniques are used to interpolate values between the sample
values (see Section 3.9.1, “Type 0 (Sampled) Functions”).
•
(PDF 1.3)
An
exponential interpolation function
(type 2) defines a set of coef-
ficients for an exponential function (see Section 3.9.2, “Type 2 (Exponential In-
•
(PDF 1.3)
A
stitching function
(type 3) is a combination of other functions, par-
titioned across a domain (see Section 3.9.3, “Type 3 (Stitching) Functions”).
•
(PDF 1.3)
A
PostScript calculator function
(type 4) uses operators from the
PostScript language to describe an arithmetic expression (see Section 3.9.4,
All function dictionaries share the entries listed in Table 3.35.
TABLE 3.35 Entries common to all function dictionaries
KEY
TYPE
VALUE
FunctionType
integer
(Required)
The function type:
0
2
3
4
Sampled function
Exponential interpolation function
Stitching function
PostScript calculator function
Domain
array
(Required)
An array of 2
×
m
numbers, where
m
is the number of input val-
ues. For each
i
from 0 to
m
−
1,
Domain
2i
must be less than or equal to
Domain
2i+1
, and the
ith
input value,
x
i
, must lie in the interval
Domain
2i
≤
x
i
≤
Domain
2i+1
. Input values outside the declared domain are
clipped to the nearest boundary value.
(Required for type 0 and type 4 functions, optional otherwise; see below)
An
array of 2
×
n
numbers, where
n
is the number of output values. For each
j
from 0 to
n
−
1,
Range
2j
must be less than or equal to
Range
2j+1
, and the
jth
output value,
y
j
, must lie in the interval
Range
2j
≤
y
j
≤
Range
2j+1
. Output
values outside the declared range are clipped to the nearest boundary value. If
this entry is absent, no clipping is done.
Range
array