glsl: implement double builtin functions