> +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE exp(__CLC_GENTYPE val) {
> + // exp(x) = exp2(x) * log2(e)
This identity doesn't look right to me. Here's a counter example x=0
exp(0) ≠ exp2(0) * log2(e)
1≠ log2(e)
I think the correct identity is
exp(x) == exp2(x * log2(e))
Thanks,
Dan.