Previous Next


                                                    168
         CHAPTER 3                                                                           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-
           terpolation) Functions”).
         • (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,
           “Type 4 (PostScript Calculator) Functions”).

         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    Sampled function
                                    2    Exponential interpolation function
                                    3    Stitching function
                                    4    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, Domain2i must be less than or equal to
                                 Domain2i+1 , and the ith input value, xi , must lie in the interval
                                 Domain2i ≤ xi ≤ Domain2i+1 . Input values outside the declared domain are
                                 clipped to the nearest boundary value.

Range           array            (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, Range2j must be less than or equal to Range2j+1 , and the jth
                                 output value, yj , must lie in the interval Range2j ≤ yj ≤ Range2j+1 . Output
                                 values outside the declared range are clipped to the nearest boundary value. If
                                 this entry is absent, no clipping is done.

Previous Next