Image generation from a function: column invariants can now be cached