Average Error: 23.3 → 6.5
Time: 3.1m
Precision: 64
Internal Precision: 1408
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\frac{(\left(\frac{\frac{1}{\sqrt{\left(\alpha + \beta\right) + (2 \cdot i + 2.0)_*}}}{\frac{1}{1}}\right) \cdot \left(\frac{\frac{\alpha + \beta}{\sqrt{\left(\alpha + \beta\right) + (2 \cdot i + 2.0)_*}}}{\frac{(i \cdot 2 + \alpha)_* + \beta}{\beta - \alpha}}\right) + 1.0)_*}{2.0} \le 1.0349046632922962 \cdot 10^{-16}:\\ \;\;\;\;\frac{(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(\frac{8.0}{\alpha} - 4.0\right) + \left(\frac{2.0}{\alpha}\right))_*}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{(\left(\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*}\right) \cdot \left(\frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}\right) + 1.0)_*}\right)}{2.0}\\ \end{array}\]

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if (/ (fma (/ (/ 1 (sqrt (+ (+ alpha beta) (fma 2 i 2.0)))) (/ 1 1)) (/ (/ (+ alpha beta) (sqrt (+ (+ alpha beta) (fma 2 i 2.0)))) (/ (+ (fma i 2 alpha) beta) (- beta alpha))) 1.0) 2.0) < 1.0349046632922962e-16

    1. Initial program 62.7

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    2. Applied simplify60.8

      \[\leadsto \color{blue}{\frac{(\left(\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*}\right) \cdot \left(\frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}\right) + 1.0)_*}{2.0}}\]
    3. Using strategy rm
    4. Applied add-log-exp60.8

      \[\leadsto \frac{\color{blue}{\log \left(e^{(\left(\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*}\right) \cdot \left(\frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}\right) + 1.0)_*}\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied fma-udef60.8

      \[\leadsto \frac{\log \left(e^{\color{blue}{\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*} \cdot \frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*} + 1.0}}\right)}{2.0}\]
    7. Applied exp-sum60.8

      \[\leadsto \frac{\log \color{blue}{\left(e^{\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*} \cdot \frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}} \cdot e^{1.0}\right)}}{2.0}\]
    8. Applied log-prod60.8

      \[\leadsto \frac{\color{blue}{\log \left(e^{\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*} \cdot \frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}}\right) + \log \left(e^{1.0}\right)}}{2.0}\]
    9. Applied simplify60.8

      \[\leadsto \frac{\color{blue}{\frac{\frac{\alpha + \beta}{\left(\alpha + \beta\right) + (2 \cdot i + 2.0)_*}}{\frac{(i \cdot 2 + \alpha)_* + \beta}{\beta - \alpha}}} + \log \left(e^{1.0}\right)}{2.0}\]
    10. Applied simplify60.8

      \[\leadsto \frac{\frac{\frac{\alpha + \beta}{\left(\alpha + \beta\right) + (2 \cdot i + 2.0)_*}}{\frac{(i \cdot 2 + \alpha)_* + \beta}{\beta - \alpha}} + \color{blue}{1.0}}{2.0}\]
    11. Taylor expanded around inf 28.9

      \[\leadsto \frac{\color{blue}{\left(8.0 \cdot \frac{1}{{\alpha}^{3}} + 2.0 \cdot \frac{1}{\alpha}\right) - 4.0 \cdot \frac{1}{{\alpha}^{2}}}}{2.0}\]
    12. Applied simplify28.9

      \[\leadsto \color{blue}{\frac{(\left(\frac{1}{\alpha \cdot \alpha}\right) \cdot \left(\frac{8.0}{\alpha} - 4.0\right) + \left(\frac{2.0}{\alpha}\right))_*}{2.0}}\]

    if 1.0349046632922962e-16 < (/ (fma (/ (/ 1 (sqrt (+ (+ alpha beta) (fma 2 i 2.0)))) (/ 1 1)) (/ (/ (+ alpha beta) (sqrt (+ (+ alpha beta) (fma 2 i 2.0)))) (/ (+ (fma i 2 alpha) beta) (- beta alpha))) 1.0) 2.0)

    1. Initial program 14.5

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    2. Applied simplify1.5

      \[\leadsto \color{blue}{\frac{(\left(\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*}\right) \cdot \left(\frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}\right) + 1.0)_*}{2.0}}\]
    3. Using strategy rm
    4. Applied add-log-exp1.5

      \[\leadsto \frac{\color{blue}{\log \left(e^{(\left(\frac{\beta + \alpha}{\left(\beta + \alpha\right) + (2 \cdot i + 2.0)_*}\right) \cdot \left(\frac{\beta - \alpha}{\beta + (i \cdot 2 + \alpha)_*}\right) + 1.0)_*}\right)}}{2.0}\]
  3. Recombined 2 regimes into one program.

Runtime

Time bar (total: 3.1m)Debug logProfile

herbie shell --seed '#(1064269945 2896236262 301053905 1701069080 1701464310 1614783279)' +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (> alpha -1) (> beta -1) (> i 0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))