\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
↓
\[\begin{array}{l}
\mathbf{if}\;c \leq -1.266447775026859 \cdot 10^{+143}:\\
\;\;\;\;\frac{a}{c}\\
\mathbf{elif}\;c \leq -4.7218745403061054 \cdot 10^{+135}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -2.2148262768226444 \cdot 10^{+22}:\\
\;\;\;\;\frac{1}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq -3084.182004279282:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -9.83945259871375 \cdot 10^{-91}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq 1.9690354844540234 \cdot 10^{-126}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq 1.4163550870851477 \cdot 10^{+142}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{c}\\
\end{array}\]
\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}
↓
\begin{array}{l}
\mathbf{if}\;c \leq -1.266447775026859 \cdot 10^{+143}:\\
\;\;\;\;\frac{a}{c}\\
\mathbf{elif}\;c \leq -4.7218745403061054 \cdot 10^{+135}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -2.2148262768226444 \cdot 10^{+22}:\\
\;\;\;\;\frac{1}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq -3084.182004279282:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -9.83945259871375 \cdot 10^{-91}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq 1.9690354844540234 \cdot 10^{-126}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq 1.4163550870851477 \cdot 10^{+142}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{c}\\
\end{array}
(FPCore (a b c d)
:precision binary64
(/ (+ (* a c) (* b d)) (+ (* c c) (* d d))))
↓
(FPCore (a b c d)
:precision binary64
(if (<= c -1.266447775026859e+143)
(/ a c)
(if (<= c -4.7218745403061054e+135)
(+ (/ b d) (/ (* c a) (* d d)))
(if (<= c -2.2148262768226444e+22)
(*
(/ 1.0 (sqrt (+ (* d d) (* c c))))
(/ (+ (* c a) (* b d)) (sqrt (+ (* d d) (* c c)))))
(if (<= c -3084.182004279282)
(+ (/ b d) (/ (* c a) (* d d)))
(if (<= c -9.83945259871375e-91)
(/
(/ (+ (* c a) (* b d)) (sqrt (+ (* d d) (* c c))))
(sqrt (+ (* d d) (* c c))))
(if (<= c 1.9690354844540234e-126)
(+ (/ b d) (/ (* c a) (* d d)))
(if (<= c 1.4163550870851477e+142)
(/
(/ (+ (* c a) (* b d)) (sqrt (+ (* d d) (* c c))))
(sqrt (+ (* d d) (* c c))))
(/ a c)))))))))
double code(double a, double b, double c, double d) {
return ((a * c) + (b * d)) / ((c * c) + (d * d));
}
\[\begin{array}{l}
\mathbf{if}\;\left|d\right| < \left|c\right|:\\
\;\;\;\;\frac{a + b \cdot \frac{d}{c}}{c + d \cdot \frac{d}{c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{b + a \cdot \frac{c}{d}}{d + c \cdot \frac{c}{d}}\\
\end{array}\]
Alternatives
Alternative 1
Error
26.8
Cost
41408
\[\frac{\sqrt[3]{a \cdot c + b \cdot d} \cdot \sqrt[3]{a \cdot c + b \cdot d}}{\sqrt[3]{d \cdot d + c \cdot c} \cdot \sqrt[3]{d \cdot d + c \cdot c}} \cdot \frac{\sqrt[3]{a \cdot c + b \cdot d}}{\sqrt[3]{d \cdot d + c \cdot c}}\]
Alternative 2
Error
44.3
Cost
34496
\[\frac{\sqrt{a \cdot c + b \cdot d}}{\sqrt[3]{d \cdot d + c \cdot c} \cdot \sqrt[3]{d \cdot d + c \cdot c}} \cdot \frac{\sqrt{a \cdot c + b \cdot d}}{\sqrt[3]{d \cdot d + c \cdot c}}\]
Alternative 3
Error
26.7
Cost
34496
\[\frac{\sqrt[3]{a \cdot c + b \cdot d} \cdot \sqrt[3]{a \cdot c + b \cdot d}}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{\sqrt[3]{a \cdot c + b \cdot d}}{\sqrt{d \cdot d + c \cdot c}}\]
Alternative 4
Error
46.3
Cost
28224
\[\frac{\sqrt[3]{a \cdot c + b \cdot d} \cdot \sqrt[3]{a \cdot c + b \cdot d}}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{\sqrt[3]{a \cdot c + b \cdot d}}{d + 0.5 \cdot \frac{c \cdot c}{d}}\]
Alternative 5
Error
26.7
Cost
22208
\[\sqrt[3]{\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}} \cdot \left(\sqrt[3]{\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}} \cdot \sqrt[3]{\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}}\right)\]
Alternative 6
Error
26.7
Cost
21312
\[\frac{1}{\sqrt[3]{d \cdot d + c \cdot c} \cdot \sqrt[3]{d \cdot d + c \cdot c}} \cdot \frac{a \cdot c + b \cdot d}{\sqrt[3]{d \cdot d + c \cdot c}}\]
Alternative 7
Error
26.7
Cost
21184
\[\left(\sqrt[3]{a \cdot c + b \cdot d} \cdot \sqrt[3]{a \cdot c + b \cdot d}\right) \cdot \frac{\sqrt[3]{a \cdot c + b \cdot d}}{d \cdot d + c \cdot c}\]
Alternative 8
Error
26.7
Cost
21184
\[\frac{\frac{a \cdot c + b \cdot d}{\sqrt[3]{d \cdot d + c \cdot c} \cdot \sqrt[3]{d \cdot d + c \cdot c}}}{\sqrt[3]{d \cdot d + c \cdot c}}\]
Alternative 9
Error
48.0
Cost
15168
\[\frac{{\left(a \cdot c\right)}^{3} + {\left(b \cdot d\right)}^{3}}{\left(d \cdot d + c \cdot c\right) \cdot \left(\left(a \cdot c\right) \cdot \left(a \cdot c\right) + b \cdot \left(d \cdot \left(b \cdot d - a \cdot c\right)\right)\right)}\]
\[\sqrt{\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}} \cdot \sqrt{\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}}\]
Alternative 12
Error
26.2
Cost
14400
\[\frac{1}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{a \cdot c + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}\]
Alternative 13
Error
44.2
Cost
14272
\[\sqrt{a \cdot c + b \cdot d} \cdot \frac{\sqrt{a \cdot c + b \cdot d}}{d \cdot d + c \cdot c}\]
Alternative 14
Error
26.2
Cost
14272
\[\frac{\frac{a \cdot c + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\]
Alternative 15
Error
44.2
Cost
14272
\[\frac{\sqrt{a \cdot c + b \cdot d}}{\frac{d \cdot d + c \cdot c}{\sqrt{a \cdot c + b \cdot d}}}\]
Alternative 16
Error
47.0
Cost
14144
\[\frac{a \cdot c + b \cdot d}{\frac{{c}^{4} - {d}^{4}}{c \cdot c - d \cdot d}}\]
Alternative 17
Error
49.1
Cost
14144
\[\left(c \cdot c - d \cdot d\right) \cdot \frac{a \cdot c + b \cdot d}{{c}^{4} - {d}^{4}}\]
Alternative 18
Error
45.0
Cost
13824
\[\frac{\sqrt[3]{{\left(a \cdot c + b \cdot d\right)}^{3}}}{d \cdot d + c \cdot c}\]
Alternative 19
Error
41.8
Cost
13824
\[\sqrt[3]{{\left(\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}\right)}^{3}}\]
Alternative 20
Error
28.5
Cost
13760
\[\frac{a \cdot c + b \cdot d}{e^{\log \left(d \cdot d + c \cdot c\right)}}\]
Alternative 21
Error
45.2
Cost
13760
\[\frac{e^{\log \left(a \cdot c + b \cdot d\right)}}{d \cdot d + c \cdot c}\]
Alternative 22
Error
40.4
Cost
13760
\[e^{\log \left(\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}\right)}\]
Alternative 23
Error
47.3
Cost
6976
\[\frac{a}{\sqrt{d \cdot d + c \cdot c}}\]
Alternative 24
Error
41.1
Cost
1984
\[\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right) - \left(b \cdot d\right) \cdot \left(b \cdot d\right)}{\left(d \cdot d + c \cdot c\right) \cdot \left(a \cdot c - b \cdot d\right)}\]
Alternative 25
Error
26.2
Cost
1472
\[\frac{a \cdot c}{d \cdot d + c \cdot c} + \frac{b \cdot d}{d \cdot d + c \cdot c}\]
Alternative 26
Error
26.4
Cost
1088
\[\left(a \cdot c + b \cdot d\right) \cdot \frac{1}{d \cdot d + c \cdot c}\]
Alternative 27
Error
26.3
Cost
1088
\[\frac{1}{\frac{d \cdot d + c \cdot c}{a \cdot c + b \cdot d}}\]
Alternative 28
Error
26.2
Cost
960
\[\frac{a \cdot c + b \cdot d}{d \cdot d + c \cdot c}\]
Alternative 29
Error
34.8
Cost
704
\[\frac{b}{d} + \frac{a \cdot c}{d \cdot d}\]
Alternative 30
Error
43.9
Cost
704
\[\frac{a \cdot c + b \cdot d}{c \cdot c}\]
Alternative 31
Error
39.2
Cost
704
\[\frac{a \cdot c}{d \cdot d + c \cdot c}\]
Alternative 32
Error
39.5
Cost
704
\[\frac{b \cdot d}{d \cdot d + c \cdot c}\]
Alternative 33
Error
34.7
Cost
704
\[\frac{a}{c} + \frac{b \cdot d}{c \cdot c}\]
Alternative 34
Error
37.4
Cost
192
\[\frac{b}{d}\]
Alternative 35
Error
37.6
Cost
192
\[\frac{a}{c}\]
Alternative 36
Error
61.6
Cost
64
\[1\]
Alternative 37
Error
52.0
Cost
64
\[0\]
Alternative 38
Error
61.7
Cost
64
\[-1\]
Error
Derivation
Split input into 4 regimes
if c < -1.2664477750268591e143 or 1.41635508708514771e142 < c
Initial program 42.6
\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
Taylor expanded around inf 14.5
\[\leadsto \color{blue}{\frac{a}{c}}\]
Simplified14.5
\[\leadsto \color{blue}{\frac{a}{c}}\]
if -1.2664477750268591e143 < c < -4.7218745403061054e135 or -2.2148262768226444e22 < c < -3084.18200427928195 or -9.8394525987137508e-91 < c < 1.9690354844540234e-126
Initial program 22.4
\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
if -4.7218745403061054e135 < c < -2.2148262768226444e22
Initial program 22.1
\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
Using strategy rm
Applied add-sqr-sqrt_binary64_175822.1
\[\leadsto \frac{a \cdot c + b \cdot d}{\color{blue}{\sqrt{c \cdot c + d \cdot d} \cdot \sqrt{c \cdot c + d \cdot d}}}\]
Applied *-un-lft-identity_binary64_173622.1
\[\leadsto \frac{\color{blue}{1 \cdot \left(a \cdot c + b \cdot d\right)}}{\sqrt{c \cdot c + d \cdot d} \cdot \sqrt{c \cdot c + d \cdot d}}\]
Applied times-frac_binary64_174222.1
\[\leadsto \color{blue}{\frac{1}{\sqrt{c \cdot c + d \cdot d}} \cdot \frac{a \cdot c + b \cdot d}{\sqrt{c \cdot c + d \cdot d}}}\]
Simplified22.1
\[\leadsto \color{blue}{\frac{1}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{a \cdot c + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}\]
if -3084.18200427928195 < c < -9.8394525987137508e-91 or 1.9690354844540234e-126 < c < 1.41635508708514771e142
Initial program 16.3
\[\frac{a \cdot c + b \cdot d}{c \cdot c + d \cdot d}\]
Using strategy rm
Applied add-sqr-sqrt_binary64_175816.3
\[\leadsto \frac{a \cdot c + b \cdot d}{\color{blue}{\sqrt{c \cdot c + d \cdot d} \cdot \sqrt{c \cdot c + d \cdot d}}}\]
Applied associate-/r*_binary64_168016.2
\[\leadsto \color{blue}{\frac{\frac{a \cdot c + b \cdot d}{\sqrt{c \cdot c + d \cdot d}}}{\sqrt{c \cdot c + d \cdot d}}}\]
Simplified16.2
\[\leadsto \color{blue}{\frac{\frac{a \cdot c + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}}\]
Recombined 4 regimes into one program.
Final simplification15.3
\[\leadsto \begin{array}{l}
\mathbf{if}\;c \leq -1.266447775026859 \cdot 10^{+143}:\\
\;\;\;\;\frac{a}{c}\\
\mathbf{elif}\;c \leq -4.7218745403061054 \cdot 10^{+135}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -2.2148262768226444 \cdot 10^{+22}:\\
\;\;\;\;\frac{1}{\sqrt{d \cdot d + c \cdot c}} \cdot \frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq -3084.182004279282:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq -9.83945259871375 \cdot 10^{-91}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{elif}\;c \leq 1.9690354844540234 \cdot 10^{-126}:\\
\;\;\;\;\frac{b}{d} + \frac{c \cdot a}{d \cdot d}\\
\mathbf{elif}\;c \leq 1.4163550870851477 \cdot 10^{+142}:\\
\;\;\;\;\frac{\frac{c \cdot a + b \cdot d}{\sqrt{d \cdot d + c \cdot c}}}{\sqrt{d \cdot d + c \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{a}{c}\\
\end{array}\]
Reproduce
herbie shell --seed 2021042
(FPCore (a b c d)
:name "Complex division, real part"
:precision binary64
:herbie-target
(if (< (fabs d) (fabs c)) (/ (+ a (* b (/ d c))) (+ c (* d (/ d c)))) (/ (+ b (* a (/ c d))) (+ d (* c (/ c d)))))
(/ (+ (* a c) (* b d)) (+ (* c c) (* d d))))