I have been reading the released OpenCL specification. I have noticed that double is a reserved type, but not supported by the draft specification. In particular, in section 6.1.4 it is listed as reserved, however it is not listed in 6.1.1 as a basic scalar type.

Although not all GPUs support double precision floating point operations, I believe that double should be supported. Perhaps the standard can force some type of emulation mode be supported, or return an error if double is not supported by the OpenCL device. Querying device capabilities for double is also an option.

Please let me know when double support is planned for OpenCL, or if the standard may be revised to include it in this iteration.