Average Error: 25.5 → 0.8
Time: 1.1m
Precision: 64
Internal Precision: 576
\[\frac{b \cdot c - a \cdot d}{c \cdot c + d \cdot d}\]
\[\frac{1}{\sqrt{d^2 + c^2}^*} \cdot (\left(\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) \cdot \left(\frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) + \left(\left(-a\right) \cdot \frac{d}{\sqrt{d^2 + c^2}^*}\right))_*\]

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Target

Original25.5
Target0.4
Herbie0.8
\[\begin{array}{l} \mathbf{if}\;\left|d\right| \lt \left|c\right|:\\ \;\;\;\;\frac{b - a \cdot \frac{d}{c}}{c + d \cdot \frac{d}{c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-a\right) + b \cdot \frac{c}{d}}{d + c \cdot \frac{c}{d}}\\ \end{array}\]

Derivation

  1. Initial program 25.5

    \[\frac{b \cdot c - a \cdot d}{c \cdot c + d \cdot d}\]
  2. Initial simplification25.5

    \[\leadsto \frac{b \cdot c - a \cdot d}{(d \cdot d + \left(c \cdot c\right))_*}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt25.5

    \[\leadsto \frac{b \cdot c - a \cdot d}{\color{blue}{\sqrt{(d \cdot d + \left(c \cdot c\right))_*} \cdot \sqrt{(d \cdot d + \left(c \cdot c\right))_*}}}\]
  5. Applied *-un-lft-identity25.5

    \[\leadsto \frac{\color{blue}{1 \cdot \left(b \cdot c - a \cdot d\right)}}{\sqrt{(d \cdot d + \left(c \cdot c\right))_*} \cdot \sqrt{(d \cdot d + \left(c \cdot c\right))_*}}\]
  6. Applied times-frac25.5

    \[\leadsto \color{blue}{\frac{1}{\sqrt{(d \cdot d + \left(c \cdot c\right))_*}} \cdot \frac{b \cdot c - a \cdot d}{\sqrt{(d \cdot d + \left(c \cdot c\right))_*}}}\]
  7. Simplified25.5

    \[\leadsto \color{blue}{\frac{1}{\sqrt{d^2 + c^2}^*}} \cdot \frac{b \cdot c - a \cdot d}{\sqrt{(d \cdot d + \left(c \cdot c\right))_*}}\]
  8. Simplified16.3

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \color{blue}{\frac{b \cdot c - a \cdot d}{\sqrt{d^2 + c^2}^*}}\]
  9. Using strategy rm
  10. Applied div-sub16.3

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \color{blue}{\left(\frac{b \cdot c}{\sqrt{d^2 + c^2}^*} - \frac{a \cdot d}{\sqrt{d^2 + c^2}^*}\right)}\]
  11. Using strategy rm
  12. Applied *-un-lft-identity16.3

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \left(\frac{b \cdot c}{\sqrt{d^2 + c^2}^*} - \frac{a \cdot d}{\color{blue}{1 \cdot \sqrt{d^2 + c^2}^*}}\right)\]
  13. Applied times-frac9.0

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \left(\frac{b \cdot c}{\sqrt{d^2 + c^2}^*} - \color{blue}{\frac{a}{1} \cdot \frac{d}{\sqrt{d^2 + c^2}^*}}\right)\]
  14. Applied add-sqr-sqrt9.1

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \left(\frac{b \cdot c}{\color{blue}{\sqrt{\sqrt{d^2 + c^2}^*} \cdot \sqrt{\sqrt{d^2 + c^2}^*}}} - \frac{a}{1} \cdot \frac{d}{\sqrt{d^2 + c^2}^*}\right)\]
  15. Applied times-frac0.8

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \left(\color{blue}{\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}} \cdot \frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}} - \frac{a}{1} \cdot \frac{d}{\sqrt{d^2 + c^2}^*}\right)\]
  16. Applied prod-diff0.8

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot \color{blue}{\left((\left(\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) \cdot \left(\frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) + \left(-\frac{d}{\sqrt{d^2 + c^2}^*} \cdot \frac{a}{1}\right))_* + (\left(-\frac{d}{\sqrt{d^2 + c^2}^*}\right) \cdot \left(\frac{a}{1}\right) + \left(\frac{d}{\sqrt{d^2 + c^2}^*} \cdot \frac{a}{1}\right))_*\right)}\]
  17. Applied distribute-rgt-in0.8

    \[\leadsto \color{blue}{(\left(\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) \cdot \left(\frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) + \left(-\frac{d}{\sqrt{d^2 + c^2}^*} \cdot \frac{a}{1}\right))_* \cdot \frac{1}{\sqrt{d^2 + c^2}^*} + (\left(-\frac{d}{\sqrt{d^2 + c^2}^*}\right) \cdot \left(\frac{a}{1}\right) + \left(\frac{d}{\sqrt{d^2 + c^2}^*} \cdot \frac{a}{1}\right))_* \cdot \frac{1}{\sqrt{d^2 + c^2}^*}}\]
  18. Simplified0.8

    \[\leadsto (\left(\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) \cdot \left(\frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) + \left(-\frac{d}{\sqrt{d^2 + c^2}^*} \cdot \frac{a}{1}\right))_* \cdot \frac{1}{\sqrt{d^2 + c^2}^*} + \color{blue}{0}\]
  19. Final simplification0.8

    \[\leadsto \frac{1}{\sqrt{d^2 + c^2}^*} \cdot (\left(\frac{b}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) \cdot \left(\frac{c}{\sqrt{\sqrt{d^2 + c^2}^*}}\right) + \left(\left(-a\right) \cdot \frac{d}{\sqrt{d^2 + c^2}^*}\right))_*\]

Runtime

Time bar (total: 1.1m)Debug logProfile

BaselineHerbieOracleSpan%
Regimes0.80.80.00.80%
herbie shell --seed 2018263 +o rules:numerics
(FPCore (a b c d)
  :name "Complex division, imag part"

  :herbie-target
  (if (< (fabs d) (fabs c)) (/ (- b (* a (/ d c))) (+ c (* d (/ d c)))) (/ (+ (- a) (* b (/ c d))) (+ d (* c (/ c d)))))

  (/ (- (* b c) (* a d)) (+ (* c c) (* d d))))