I'm wondering if there's any point at all in double-precision calculations, or whether it's ok to just do everything in single-precision, seeing how the difference on non-Tesla GPUs for single and double-precision calculations appears to be large.

Some of the operations where this is relevant are:

  • General option pricing (BS, uses numerical approximation of cumulative normal distribution)
  • Calculating implied volatility (Newton-Raphson)
  • Interpolating the volatility smile (Levenberg-Marquardt)

In particular I'm interested in whether initial pricing is worth doing using a 'better' CND formula rather the one with just 5 constants in it... I know there are more precise ones with lots more constants, but I've been reticent to use one so far.


1 Answer 1


When you decide if the performance improvement is worth it you can add these to the downside ow using single precision:

  • the result of your basic B-S pricer will eventually need to be multiplied with a notional and maybe a discount factor; For a sufficiently large notional you will see different results than the one calculated using double precision. Is that kind of a notional likely to occur in practice in your system?

  • numerical stability. The straight-forward implementation of many algorithms (Newton-Raphson and probably Levenberg-Marquardt) may be unstable under the reduced precision of a single. Stable versions are slower and add complexity.

  • validation. Many people use Excel or other similar software to quickly test the final results of a complex calculation. Due to the difference in precision between that and your software the results will not match, leading to head-scratching and an impossibility of validating your results.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.