Is it really worth having all this boilerplate for `0.5 * (simplex() + 1)`? Why not implement these on the OSL side?