Average Error: 58.7 → 31.0
Time: 1.7m
Precision: 64
Internal Precision: 6976
\[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
\[\begin{array}{l} \mathbf{if}\;(\left(\frac{c0}{2 \cdot w}\right) \cdot \left(\sqrt{(\left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) + \left(-M \cdot M\right))_*}\right) + \left(\frac{c0}{2 \cdot w} \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)\right))_* \le 1.071395561776289 \cdot 10^{+197}:\\ \;\;\;\;(\left(\frac{c0}{2 \cdot w}\right) \cdot \left(\sqrt{(\left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) + \left(-M \cdot M\right))_*}\right) + \left(\frac{c0}{2 \cdot w} \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)\right))_*\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Error

Bits error versus c0

Bits error versus w

Bits error versus h

Bits error versus D

Bits error versus d

Bits error versus M

Derivation

  1. Split input into 2 regimes
  2. if (fma (/ c0 (* w 2)) (sqrt (fma (* (* (/ d D) (/ d D)) (/ c0 (* w h))) (* (* (/ d D) (/ d D)) (/ c0 (* w h))) (* M (- M)))) (* (/ c0 (* w 2)) (* (* (/ d D) (/ d D)) (/ c0 (* w h))))) < 1.071395561776289e+197

    1. Initial program 48.8

      \[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
    2. Initial simplification37.6

      \[\leadsto (\left(\frac{c0}{w \cdot 2}\right) \cdot \left(\sqrt{(\left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right) \cdot \left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right) + \left(M \cdot \left(-M\right)\right))_*}\right) + \left(\frac{c0}{w \cdot 2} \cdot \left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right)\right))_*\]

    if 1.071395561776289e+197 < (fma (/ c0 (* w 2)) (sqrt (fma (* (* (/ d D) (/ d D)) (/ c0 (* w h))) (* (* (/ d D) (/ d D)) (/ c0 (* w h))) (* M (- M)))) (* (/ c0 (* w 2)) (* (* (/ d D) (/ d D)) (/ c0 (* w h)))))

    1. Initial program 61.8

      \[\frac{c0}{2 \cdot w} \cdot \left(\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} + \sqrt{\frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)} - M \cdot M}\right)\]
    2. Initial simplification62.3

      \[\leadsto (\left(\frac{c0}{w \cdot 2}\right) \cdot \left(\sqrt{(\left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right) \cdot \left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right) + \left(M \cdot \left(-M\right)\right))_*}\right) + \left(\frac{c0}{w \cdot 2} \cdot \left(\left(\frac{d}{D} \cdot \frac{d}{D}\right) \cdot \frac{c0}{w \cdot h}\right)\right))_*\]
    3. Taylor expanded around inf 28.8

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification31.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;(\left(\frac{c0}{2 \cdot w}\right) \cdot \left(\sqrt{(\left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) + \left(-M \cdot M\right))_*}\right) + \left(\frac{c0}{2 \cdot w} \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)\right))_* \le 1.071395561776289 \cdot 10^{+197}:\\ \;\;\;\;(\left(\frac{c0}{2 \cdot w}\right) \cdot \left(\sqrt{(\left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right) + \left(-M \cdot M\right))_*}\right) + \left(\frac{c0}{2 \cdot w} \cdot \left(\frac{c0}{w \cdot h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)\right))_*\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Runtime

Time bar (total: 1.7m)Debug logProfile

herbie shell --seed 2018217 +o rules:numerics
(FPCore (c0 w h D d M)
  :name "Henrywood and Agarwal, Equation (13)"
  (* (/ c0 (* 2 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M))))))