Average Error: 25.5 → 0.7
Time: 2.8m
Precision: 64
Internal Precision: 576
\[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
\[\frac{(\left(\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) \cdot \left(\frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) + \left(\frac{-y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot x.re\right))_*}{\sqrt{y.re^2 + y.im^2}^*} + 0\]

Error

Bits error versus x.re

Bits error versus x.im

Bits error versus y.re

Bits error versus y.im

Derivation

  1. Initial program 25.5

    \[\frac{x.im \cdot y.re - x.re \cdot y.im}{y.re \cdot y.re + y.im \cdot y.im}\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt25.5

    \[\leadsto \frac{x.im \cdot y.re - x.re \cdot y.im}{\color{blue}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  4. Applied *-un-lft-identity25.5

    \[\leadsto \frac{\color{blue}{1 \cdot \left(x.im \cdot y.re - x.re \cdot y.im\right)}}{\sqrt{y.re \cdot y.re + y.im \cdot y.im} \cdot \sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
  5. Applied times-frac25.6

    \[\leadsto \color{blue}{\frac{1}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}} \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}}\]
  6. Applied simplify25.6

    \[\leadsto \color{blue}{\frac{1}{\sqrt{y.re^2 + y.im^2}^*}} \cdot \frac{x.im \cdot y.re - x.re \cdot y.im}{\sqrt{y.re \cdot y.re + y.im \cdot y.im}}\]
  7. Applied simplify16.4

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \color{blue}{\frac{y.re \cdot x.im - x.re \cdot y.im}{\sqrt{y.re^2 + y.im^2}^*}}\]
  8. Using strategy rm
  9. Applied div-sub16.4

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \color{blue}{\left(\frac{y.re \cdot x.im}{\sqrt{y.re^2 + y.im^2}^*} - \frac{x.re \cdot y.im}{\sqrt{y.re^2 + y.im^2}^*}\right)}\]
  10. Using strategy rm
  11. Applied *-un-lft-identity16.4

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \left(\frac{y.re \cdot x.im}{\sqrt{y.re^2 + y.im^2}^*} - \frac{x.re \cdot y.im}{\color{blue}{1 \cdot \sqrt{y.re^2 + y.im^2}^*}}\right)\]
  12. Applied times-frac9.1

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \left(\frac{y.re \cdot x.im}{\sqrt{y.re^2 + y.im^2}^*} - \color{blue}{\frac{x.re}{1} \cdot \frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}}\right)\]
  13. Applied add-sqr-sqrt9.1

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \left(\frac{y.re \cdot x.im}{\color{blue}{\sqrt{\sqrt{y.re^2 + y.im^2}^*} \cdot \sqrt{\sqrt{y.re^2 + y.im^2}^*}}} - \frac{x.re}{1} \cdot \frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}\right)\]
  14. Applied times-frac0.8

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \left(\color{blue}{\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}} \cdot \frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}} - \frac{x.re}{1} \cdot \frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}\right)\]
  15. Applied prod-diff0.8

    \[\leadsto \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot \color{blue}{\left((\left(\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) \cdot \left(\frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) + \left(-\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot \frac{x.re}{1}\right))_* + (\left(-\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}\right) \cdot \left(\frac{x.re}{1}\right) + \left(\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot \frac{x.re}{1}\right))_*\right)}\]
  16. Applied distribute-lft-in0.8

    \[\leadsto \color{blue}{\frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot (\left(\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) \cdot \left(\frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) + \left(-\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot \frac{x.re}{1}\right))_* + \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot (\left(-\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}\right) \cdot \left(\frac{x.re}{1}\right) + \left(\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot \frac{x.re}{1}\right))_*}\]
  17. Applied simplify0.7

    \[\leadsto \color{blue}{\frac{(\left(\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) \cdot \left(\frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) + \left(\frac{-y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot x.re\right))_*}{\sqrt{y.re^2 + y.im^2}^*}} + \frac{1}{\sqrt{y.re^2 + y.im^2}^*} \cdot (\left(-\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*}\right) \cdot \left(\frac{x.re}{1}\right) + \left(\frac{y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot \frac{x.re}{1}\right))_*\]
  18. Applied simplify0.7

    \[\leadsto \frac{(\left(\frac{y.re}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) \cdot \left(\frac{x.im}{\sqrt{\sqrt{y.re^2 + y.im^2}^*}}\right) + \left(\frac{-y.im}{\sqrt{y.re^2 + y.im^2}^*} \cdot x.re\right))_*}{\sqrt{y.re^2 + y.im^2}^*} + \color{blue}{0}\]

Runtime

Time bar (total: 2.8m)Debug logProfile

herbie shell --seed 2018170 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
  :name "_divideComplex, imaginary part"
  (/ (- (* x.im y.re) (* x.re y.im)) (+ (* y.re y.re) (* y.im y.im))))