Average Error: 59.7 → 13.3
Time: 25.7s
Precision: binary64
Cost: 42637
\[\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} t_0 := D \cdot \left(h \cdot D\right)\\ t_1 := \frac{D}{\frac{d}{M}}\\ t_2 := \frac{c0}{2 \cdot w}\\ t_3 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\ t_4 := t_2 \cdot \left(t_3 + \sqrt{t_3 \cdot t_3 - M \cdot M}\right)\\ \mathbf{if}\;t_4 \leq -1 \cdot 10^{-259}:\\ \;\;\;\;t_2 \cdot \mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{t_0}\right), \frac{-0.5}{\frac{d \cdot \left(c0 \cdot d\right)}{t_0 \cdot \left(w \cdot \left(M \cdot M\right)\right)}}\right)\\ \mathbf{elif}\;t_4 \leq 0 \lor \neg \left(t_4 \leq \infty\right):\\ \;\;\;\;t_1 \cdot \left(0.25 \cdot \left(h \cdot t_1\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\sqrt{h}}\right)}^{2}\\ \end{array} \]
(FPCore (c0 w h D d M)
 :precision binary64
 (*
  (/ c0 (* 2.0 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))))))
(FPCore (c0 w h D d M)
 :precision binary64
 (let* ((t_0 (* D (* h D)))
        (t_1 (/ D (/ d M)))
        (t_2 (/ c0 (* 2.0 w)))
        (t_3 (/ (* c0 (* d d)) (* (* w h) (* D D))))
        (t_4 (* t_2 (+ t_3 (sqrt (- (* t_3 t_3) (* M M)))))))
   (if (<= t_4 -1e-259)
     (*
      t_2
      (fma
       2.0
       (* d (* d (/ (/ c0 w) t_0)))
       (/ -0.5 (/ (* d (* c0 d)) (* t_0 (* w (* M M)))))))
     (if (or (<= t_4 0.0) (not (<= t_4 INFINITY)))
       (* t_1 (* 0.25 (* h t_1)))
       (pow (* (/ d D) (/ (/ c0 w) (sqrt h))) 2.0)))))
double code(double c0, double w, double h, double D, double d, double M) {
	return (c0 / (2.0 * 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))));
}
double code(double c0, double w, double h, double D, double d, double M) {
	double t_0 = D * (h * D);
	double t_1 = D / (d / M);
	double t_2 = c0 / (2.0 * w);
	double t_3 = (c0 * (d * d)) / ((w * h) * (D * D));
	double t_4 = t_2 * (t_3 + sqrt(((t_3 * t_3) - (M * M))));
	double tmp;
	if (t_4 <= -1e-259) {
		tmp = t_2 * fma(2.0, (d * (d * ((c0 / w) / t_0))), (-0.5 / ((d * (c0 * d)) / (t_0 * (w * (M * M))))));
	} else if ((t_4 <= 0.0) || !(t_4 <= ((double) INFINITY))) {
		tmp = t_1 * (0.25 * (h * t_1));
	} else {
		tmp = pow(((d / D) * ((c0 / w) / sqrt(h))), 2.0);
	}
	return tmp;
}
function code(c0, w, h, D, d, M)
	return Float64(Float64(c0 / Float64(2.0 * w)) * Float64(Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) + sqrt(Float64(Float64(Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) * Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D)))) - Float64(M * M)))))
end
function code(c0, w, h, D, d, M)
	t_0 = Float64(D * Float64(h * D))
	t_1 = Float64(D / Float64(d / M))
	t_2 = Float64(c0 / Float64(2.0 * w))
	t_3 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D)))
	t_4 = Float64(t_2 * Float64(t_3 + sqrt(Float64(Float64(t_3 * t_3) - Float64(M * M)))))
	tmp = 0.0
	if (t_4 <= -1e-259)
		tmp = Float64(t_2 * fma(2.0, Float64(d * Float64(d * Float64(Float64(c0 / w) / t_0))), Float64(-0.5 / Float64(Float64(d * Float64(c0 * d)) / Float64(t_0 * Float64(w * Float64(M * M)))))));
	elseif ((t_4 <= 0.0) || !(t_4 <= Inf))
		tmp = Float64(t_1 * Float64(0.25 * Float64(h * t_1)));
	else
		tmp = Float64(Float64(d / D) * Float64(Float64(c0 / w) / sqrt(h))) ^ 2.0;
	end
	return tmp
end
code[c0_, w_, h_, D_, d_, M_] := N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * D), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(D / N[(d / M), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(t$95$2 * N[(t$95$3 + N[Sqrt[N[(N[(t$95$3 * t$95$3), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$4, -1e-259], N[(t$95$2 * N[(2.0 * N[(d * N[(d * N[(N[(c0 / w), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / N[(N[(d * N[(c0 * d), $MachinePrecision]), $MachinePrecision] / N[(t$95$0 * N[(w * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[t$95$4, 0.0], N[Not[LessEqual[t$95$4, Infinity]], $MachinePrecision]], N[(t$95$1 * N[(0.25 * N[(h * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[Power[N[(N[(d / D), $MachinePrecision] * N[(N[(c0 / w), $MachinePrecision] / N[Sqrt[h], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]]]]]]]]
\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}
t_0 := D \cdot \left(h \cdot D\right)\\
t_1 := \frac{D}{\frac{d}{M}}\\
t_2 := \frac{c0}{2 \cdot w}\\
t_3 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
t_4 := t_2 \cdot \left(t_3 + \sqrt{t_3 \cdot t_3 - M \cdot M}\right)\\
\mathbf{if}\;t_4 \leq -1 \cdot 10^{-259}:\\
\;\;\;\;t_2 \cdot \mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{t_0}\right), \frac{-0.5}{\frac{d \cdot \left(c0 \cdot d\right)}{t_0 \cdot \left(w \cdot \left(M \cdot M\right)\right)}}\right)\\

\mathbf{elif}\;t_4 \leq 0 \lor \neg \left(t_4 \leq \infty\right):\\
\;\;\;\;t_1 \cdot \left(0.25 \cdot \left(h \cdot t_1\right)\right)\\

\mathbf{else}:\\
\;\;\;\;{\left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\sqrt{h}}\right)}^{2}\\


\end{array}

Error

Derivation

  1. Split input into 3 regimes
  2. if (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))) < -1.0000000000000001e-259

    1. Initial program 50.0

      \[\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. Taylor expanded in c0 around inf 43.4

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\left(-0.5 \cdot \frac{{D}^{2} \cdot \left(w \cdot \left({M}^{2} \cdot h\right)\right)}{{d}^{2} \cdot c0} + 2 \cdot \frac{{d}^{2} \cdot c0}{{D}^{2} \cdot \left(w \cdot h\right)}\right)} \]
    3. Simplified36.3

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{D \cdot \left(D \cdot h\right)}\right), \frac{-0.5}{\frac{d \cdot \left(d \cdot c0\right)}{\left(w \cdot \left(M \cdot M\right)\right) \cdot \left(D \cdot \left(D \cdot h\right)\right)}}\right)} \]
      Proof
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (*.f64 D (*.f64 D h))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 D D) h))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 4 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (Rewrite<= *-commutative_binary64 (*.f64 h (*.f64 D D)))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (Rewrite<= associate-/r*_binary64 (/.f64 c0 (*.f64 w (*.f64 h (*.f64 D D))))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) (/.f64 c0 (*.f64 w (*.f64 h (*.f64 D D)))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (*.f64 d d) c0) (*.f64 w (*.f64 h (*.f64 D D))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) c0) (*.f64 w (*.f64 h (*.f64 D D)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 29 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 w h) (*.f64 D D)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 29 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (*.f64 w h) (Rewrite<= unpow2_binary64 (pow.f64 D 2)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 c0 (*.f64 d d))) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 3 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (Rewrite<= unpow2_binary64 (pow.f64 M 2))) (*.f64 D (*.f64 D h))))))): 3 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (pow.f64 M 2)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 D D) h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (pow.f64 M 2)) (Rewrite<= *-commutative_binary64 (*.f64 h (*.f64 D D)))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (*.f64 w (pow.f64 M 2)) h) (*.f64 D D))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (Rewrite<= associate-*r*_binary64 (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 D D)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (*.f64 (pow.f64 M 2) h)) (Rewrite<= unpow2_binary64 (pow.f64 D 2))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h)))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h)))) (*.f64 c0 (*.f64 d d)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (Rewrite<= *-commutative_binary64 (*.f64 h (pow.f64 M 2)))))) (*.f64 c0 (*.f64 d d))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 c0 (Rewrite<= unpow2_binary64 (pow.f64 d 2)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 d 2) c0))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (Rewrite<= associate-*r/_binary64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (Rewrite=> times-frac_binary64 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (/.f64 (*.f64 w (*.f64 h (pow.f64 M 2))) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (/.f64 (*.f64 w (Rewrite=> *-commutative_binary64 (*.f64 (pow.f64 M 2) h))) c0))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0))) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))))))): 0 points increase in error, 5 points decrease in error

    if -1.0000000000000001e-259 < (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))) < 0.0 or +inf.0 < (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))

    1. Initial program 61.0

      \[\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. Taylor expanded in c0 around -inf 60.0

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\left(0.5 \cdot \frac{{D}^{2} \cdot \left(w \cdot \left({M}^{2} \cdot h\right)\right)}{{d}^{2} \cdot c0} + -1 \cdot \left(\left(\frac{{d}^{2}}{{D}^{2} \cdot \left(w \cdot h\right)} + -1 \cdot \frac{{d}^{2}}{{D}^{2} \cdot \left(w \cdot h\right)}\right) \cdot c0\right)\right)} \]
    3. Simplified59.0

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\mathsf{fma}\left(0.5, \frac{D \cdot D}{d \cdot d} \cdot \frac{\left(w \cdot \left(M \cdot M\right)\right) \cdot h}{c0}, -c0 \cdot \left(0 \cdot \left(\frac{d}{w} \cdot \frac{\frac{d}{h}}{D \cdot D}\right)\right)\right)} \]
      Proof
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (*.f64 D (*.f64 D h))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 D D) h))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 4 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (/.f64 (/.f64 c0 w) (Rewrite<= *-commutative_binary64 (*.f64 h (*.f64 D D)))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (*.f64 d (*.f64 d (Rewrite<= associate-/r*_binary64 (/.f64 c0 (*.f64 w (*.f64 h (*.f64 D D))))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) (/.f64 c0 (*.f64 w (*.f64 h (*.f64 D D)))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (*.f64 d d) c0) (*.f64 w (*.f64 h (*.f64 D D))))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) c0) (*.f64 w (*.f64 h (*.f64 D D)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 29 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (Rewrite=> associate-*r*_binary64 (*.f64 (*.f64 w h) (*.f64 D D)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 29 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (*.f64 w h) (Rewrite<= unpow2_binary64 (pow.f64 D 2)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 -1/2 (/.f64 (*.f64 d (*.f64 d c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) c0)) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 c0 (*.f64 d d))) (*.f64 (*.f64 w (*.f64 M M)) (*.f64 D (*.f64 D h))))))): 0 points increase in error, 3 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (Rewrite<= unpow2_binary64 (pow.f64 M 2))) (*.f64 D (*.f64 D h))))))): 3 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (pow.f64 M 2)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 D D) h))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (pow.f64 M 2)) (Rewrite<= *-commutative_binary64 (*.f64 h (*.f64 D D)))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (*.f64 w (pow.f64 M 2)) h) (*.f64 D D))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (Rewrite<= associate-*r*_binary64 (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 D D)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w (*.f64 (pow.f64 M 2) h)) (Rewrite<= unpow2_binary64 (pow.f64 D 2))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 -1/2 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h)))))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h)))) (*.f64 c0 (*.f64 d d)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (Rewrite<= *-commutative_binary64 (*.f64 h (pow.f64 M 2)))))) (*.f64 c0 (*.f64 d d))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 c0 (Rewrite<= unpow2_binary64 (pow.f64 d 2)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (/.f64 (*.f64 -1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 d 2) c0))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (fma.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))) (Rewrite<= associate-*r/_binary64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (Rewrite=> times-frac_binary64 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (/.f64 (*.f64 w (*.f64 h (pow.f64 M 2))) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (/.f64 (*.f64 w (Rewrite=> *-commutative_binary64 (*.f64 (pow.f64 M 2) h))) c0))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (*.f64 -1/2 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0))) (*.f64 2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w h))))))): 0 points increase in error, 5 points decrease in error
    4. Taylor expanded in c0 around 0 32.8

      \[\leadsto \color{blue}{0.25 \cdot \frac{{D}^{2} \cdot \left(h \cdot {M}^{2}\right)}{{d}^{2}}} \]
    5. Simplified24.4

      \[\leadsto \color{blue}{\frac{0.25}{\frac{d \cdot d}{h \cdot \left(\left(D \cdot M\right) \cdot \left(D \cdot M\right)\right)}}} \]
      Proof
      (/.f64 1/4 (/.f64 (*.f64 d d) (*.f64 h (*.f64 (*.f64 D M) (*.f64 D M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 1/4 (/.f64 (*.f64 d d) (*.f64 h (Rewrite<= unswap-sqr_binary64 (*.f64 (*.f64 D D) (*.f64 M M)))))): 0 points increase in error, 10 points decrease in error
      (/.f64 1/4 (/.f64 (*.f64 d d) (*.f64 h (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 D 2)) (*.f64 M M))))): 10 points increase in error, 0 points decrease in error
      (/.f64 1/4 (/.f64 (*.f64 d d) (*.f64 h (*.f64 (pow.f64 D 2) (Rewrite<= unpow2_binary64 (pow.f64 M 2)))))): 0 points increase in error, 10 points decrease in error
      (/.f64 1/4 (/.f64 (*.f64 d d) (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (pow.f64 D 2) (pow.f64 M 2)) h)))): 0 points increase in error, 0 points decrease in error
      (/.f64 1/4 (/.f64 (*.f64 d d) (Rewrite<= associate-*r*_binary64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))))): 10 points increase in error, 0 points decrease in error
      (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 1/4 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h))) (*.f64 d d))): 1 points increase in error, 9 points decrease in error
      (/.f64 (*.f64 1/4 (*.f64 (pow.f64 D 2) (Rewrite<= *-commutative_binary64 (*.f64 h (pow.f64 M 2))))) (*.f64 d d)): 0 points increase in error, 10 points decrease in error
      (/.f64 (*.f64 1/4 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2)))) (Rewrite<= unpow2_binary64 (pow.f64 d 2))): 10 points increase in error, 0 points decrease in error
      (Rewrite<= associate-*r/_binary64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2))) (pow.f64 d 2)))): 10 points increase in error, 0 points decrease in error
    6. Applied egg-rr16.5

      \[\leadsto \frac{0.25}{\color{blue}{\frac{d}{\left(h \cdot D\right) \cdot M} \cdot \frac{d}{D \cdot M}}} \]
    7. Applied egg-rr11.4

      \[\leadsto \color{blue}{\frac{D}{\frac{d}{M}} \cdot \left(0.25 \cdot \left(\frac{D}{\frac{d}{M}} \cdot h\right)\right)} \]

    if 0.0 < (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))) < +inf.0

    1. Initial program 49.7

      \[\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. Simplified49.9

      \[\leadsto \color{blue}{\frac{c0}{2 \cdot w} \cdot \left(\frac{c0}{w \cdot h} \cdot \frac{d \cdot d}{D \cdot D} + \sqrt{\mathsf{fma}\left(\frac{c0}{w \cdot h} \cdot \frac{d \cdot d}{D \cdot D}, \frac{c0}{w \cdot h} \cdot \frac{d \cdot d}{D \cdot D}, -M \cdot M\right)}\right)} \]
      Proof
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (sqrt.f64 (fma.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (neg.f64 (*.f64 M M)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (sqrt.f64 (fma.f64 (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (neg.f64 (*.f64 M M)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (fma.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 (/.f64 c0 (*.f64 w h)) (/.f64 (*.f64 d d) (*.f64 D D))) (neg.f64 (*.f64 M M)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (fma.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (neg.f64 (*.f64 M M)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 c0 (*.f64 2 w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M)))))): 0 points increase in error, 0 points decrease in error
    3. Taylor expanded in c0 around inf 54.4

      \[\leadsto \color{blue}{\frac{{d}^{2} \cdot {c0}^{2}}{{D}^{2} \cdot \left({w}^{2} \cdot h\right)}} \]
    4. Simplified51.4

      \[\leadsto \color{blue}{{\left(\frac{d}{D}\right)}^{2} \cdot \frac{c0 \cdot c0}{h \cdot \left(w \cdot w\right)}} \]
      Proof
      (*.f64 (pow.f64 (/.f64 d D) 2) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite=> unpow2_binary64 (*.f64 (/.f64 d D) (/.f64 d D))) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 (/.f64 d D) d) D)) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 0 points increase in error, 5 points decrease in error
      (*.f64 (/.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 d d) D)) D) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 5 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) D) D) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 0 points increase in error, 3 points decrease in error
      (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 (pow.f64 d 2) (*.f64 D D))) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 3 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 d 2) (Rewrite<= unpow2_binary64 (pow.f64 D 2))) (/.f64 (*.f64 c0 c0) (*.f64 h (*.f64 w w)))): 0 points increase in error, 11 points decrease in error
      (*.f64 (/.f64 (pow.f64 d 2) (pow.f64 D 2)) (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 c0 2)) (*.f64 h (*.f64 w w)))): 11 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 d 2) (pow.f64 D 2)) (/.f64 (pow.f64 c0 2) (*.f64 h (Rewrite<= unpow2_binary64 (pow.f64 w 2))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 d 2) (pow.f64 D 2)) (/.f64 (pow.f64 c0 2) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 w 2) h)))): 0 points increase in error, 1 points decrease in error
      (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (pow.f64 d 2) (pow.f64 c0 2)) (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 w 2) h)))): 1 points increase in error, 0 points decrease in error
    5. Applied egg-rr29.8

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left({\left(\frac{d}{D} \cdot \frac{c0}{w \cdot \sqrt{h}}\right)}^{2}\right)} - 1} \]
    6. Simplified16.5

      \[\leadsto \color{blue}{{\left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\sqrt{h}}\right)}^{2}} \]
      Proof
      (pow.f64 (*.f64 (/.f64 d D) (/.f64 (/.f64 c0 w) (sqrt.f64 h))) 2): 0 points increase in error, 0 points decrease in error
      (pow.f64 (*.f64 (/.f64 d D) (Rewrite<= associate-/r*_binary64 (/.f64 c0 (*.f64 w (sqrt.f64 h))))) 2): 0 points increase in error, 0 points decrease in error
      (Rewrite<= expm1-log1p_binary64 (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (/.f64 d D) (/.f64 c0 (*.f64 w (sqrt.f64 h)))) 2)))): 0 points increase in error, 4 points decrease in error
      (Rewrite<= expm1-def_binary64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (/.f64 d D) (/.f64 c0 (*.f64 w (sqrt.f64 h)))) 2))) 1)): 4 points increase in error, 0 points decrease in error
  3. Recombined 3 regimes into one program.
  4. Final simplification13.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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) \leq -1 \cdot 10^{-259}:\\ \;\;\;\;\frac{c0}{2 \cdot w} \cdot \mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{D \cdot \left(h \cdot D\right)}\right), \frac{-0.5}{\frac{d \cdot \left(c0 \cdot d\right)}{\left(D \cdot \left(h \cdot D\right)\right) \cdot \left(w \cdot \left(M \cdot M\right)\right)}}\right)\\ \mathbf{elif}\;\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) \leq 0 \lor \neg \left(\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) \leq \infty\right):\\ \;\;\;\;\frac{D}{\frac{d}{M}} \cdot \left(0.25 \cdot \left(h \cdot \frac{D}{\frac{d}{M}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{d}{D} \cdot \frac{\frac{c0}{w}}{\sqrt{h}}\right)}^{2}\\ \end{array} \]

Alternatives

Alternative 1
Error13.3
Cost42637
\[\begin{array}{l} t_0 := D \cdot \left(h \cdot D\right)\\ t_1 := \frac{D}{\frac{d}{M}}\\ t_2 := \frac{c0}{2 \cdot w}\\ t_3 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\ t_4 := t_2 \cdot \left(t_3 + \sqrt{t_3 \cdot t_3 - M \cdot M}\right)\\ \mathbf{if}\;t_4 \leq -1 \cdot 10^{-259}:\\ \;\;\;\;t_2 \cdot \mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{t_0}\right), \frac{-0.5}{\frac{d \cdot \left(c0 \cdot d\right)}{t_0 \cdot \left(w \cdot \left(M \cdot M\right)\right)}}\right)\\ \mathbf{elif}\;t_4 \leq 0 \lor \neg \left(t_4 \leq \infty\right):\\ \;\;\;\;t_1 \cdot \left(0.25 \cdot \left(h \cdot t_1\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{d}{D} \cdot \frac{c0}{w \cdot \sqrt{h}}\right)}^{2}\\ \end{array} \]
Alternative 2
Error15.3
Cost18628
\[\begin{array}{l} t_0 := D \cdot \left(h \cdot D\right)\\ t_1 := \frac{c0}{2 \cdot w}\\ t_2 := \frac{D}{\frac{d}{M}}\\ t_3 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\ \mathbf{if}\;t_1 \cdot \left(t_3 + \sqrt{t_3 \cdot t_3 - M \cdot M}\right) \leq -1 \cdot 10^{-259}:\\ \;\;\;\;t_1 \cdot \mathsf{fma}\left(2, d \cdot \left(d \cdot \frac{\frac{c0}{w}}{t_0}\right), \frac{-0.5}{\frac{d \cdot \left(c0 \cdot d\right)}{t_0 \cdot \left(w \cdot \left(M \cdot M\right)\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;t_2 \cdot \left(0.25 \cdot \left(h \cdot t_2\right)\right)\\ \end{array} \]
Alternative 3
Error20.0
Cost1356
\[\begin{array}{l} t_0 := \frac{D}{\frac{d}{M}}\\ t_1 := \frac{0.25}{\frac{d}{D}} \cdot \left(M \cdot \left(h \cdot t_0\right)\right)\\ \mathbf{if}\;w \leq -3.7 \cdot 10^{-142}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;w \leq 4.9 \cdot 10^{-272}:\\ \;\;\;\;M \cdot \frac{0.25}{\frac{d \cdot \frac{\frac{d}{D}}{h}}{D \cdot M}}\\ \mathbf{elif}\;w \leq 1.05 \cdot 10^{+102}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;\left(D \cdot M\right) \cdot \left(\frac{h}{d} \cdot \left(t_0 \cdot 0.25\right)\right)\\ \end{array} \]
Alternative 4
Error23.7
Cost1225
\[\begin{array}{l} \mathbf{if}\;d \leq -1.7 \cdot 10^{-154} \lor \neg \left(d \leq 8.6 \cdot 10^{-153}\right):\\ \;\;\;\;\left(D \cdot M\right) \cdot \left(\frac{0.25}{d \cdot d} \cdot \left(M \cdot \left(h \cdot D\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.25 \cdot \left(\left(\frac{D}{d} \cdot \frac{D}{d}\right) \cdot \left(h \cdot \left(M \cdot M\right)\right)\right)\\ \end{array} \]
Alternative 5
Error26.2
Cost1220
\[\begin{array}{l} \mathbf{if}\;M \cdot M \leq 2 \cdot 10^{+290}:\\ \;\;\;\;0.25 \cdot \left(\left(\frac{D}{d} \cdot \frac{D}{d}\right) \cdot \left(h \cdot \left(M \cdot M\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array} \]
Alternative 6
Error19.4
Cost1220
\[\begin{array}{l} t_0 := \frac{D}{\frac{d}{M}}\\ \mathbf{if}\;D \cdot D \leq 10^{-97}:\\ \;\;\;\;\left(D \cdot M\right) \cdot \left(\frac{h}{d} \cdot \left(t_0 \cdot 0.25\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{0.25}{\frac{d}{D}} \cdot \left(M \cdot \left(h \cdot t_0\right)\right)\\ \end{array} \]
Alternative 7
Error20.3
Cost960
\[\left(D \cdot M\right) \cdot \left(\frac{h}{d} \cdot \left(\frac{D}{\frac{d}{M}} \cdot 0.25\right)\right) \]
Alternative 8
Error16.2
Cost960
\[\begin{array}{l} t_0 := \frac{D}{\frac{d}{M}}\\ t_0 \cdot \left(0.25 \cdot \left(h \cdot t_0\right)\right) \end{array} \]
Alternative 9
Error31.1
Cost64
\[0 \]

Error

Reproduce

herbie shell --seed 2022343 
(FPCore (c0 w h D d M)
  :name "Henrywood and Agarwal, Equation (13)"
  :precision binary64
  (* (/ c0 (* 2.0 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))))))