ExponentOp collapsing fix

The exponent op is unique in that the inverse transform is represented by
inverting the exponent, rather than storing an explicit forward/inverse flag.

However, the internal inversion math was done at float precision which meant that
for some exponents a forward / inverse pair would not exactly cancel out.

Example: 1.037289f, 1.019015f, 0.966082f

This fix stores the exponent at double precision, while doing inverse checks at
float precision, allowing accurate collapsing.

This does not impact performance as the actual image processing still works at
float, only the internal exponent coefficients are stored as doubles.