There is a minor problem with the description of exp(cx) when cx is of type complex. The expression uses cmplx(cos(im),sin(im)), which is always of default kind. The correct description should be something like cmplx(cos(im),sin(im),KIND(cx)). Of course, this is because the cmplx() instrinsic is screwed up due to backwards compatibility, and it does not work in the expected/obvious way.