CGShading and PDF 1.4
At this point one could argue that the CGFunction API allows you to create any of the function types because you can code up the function however you want. While this does work in an interactive environment, once you print you are exclusively in the realm of sampled functions as the PDF generation can not magically turn your C function into a PDF function definition other than sampled.