In GLSL there's rudimentary support for double precision variables and operations which can be found here. However they also mention "Double-precision versions of angle, trigonometry, and exponential functions are not supported.".
Is there a simple workaround for this, or do I have to write my own functions from scratch?
j-p
this link seem's to be the best answer
So yes, you'll need to make your own implementation for those functions.
glibc source may be your friend.
来源:https://stackoverflow.com/questions/22522169/glsl-double-precision-angle-trig-and-exponential-functions-workaround