Average Error: 59.9 → 19.8
Time: 36.6s
Precision: binary64
Cost: 7436
\[\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 := 0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{if}\;d \leq -3.8 \cdot 10^{+182}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;d \leq -4.1 \cdot 10^{-196}:\\ \;\;\;\;0.25 \cdot \left(\left(\left(M \cdot D\right) \cdot \left(\left(M \cdot D\right) \cdot \frac{1}{d}\right)\right) \cdot \frac{h}{d}\right)\\ \mathbf{elif}\;d \leq 2.3 \cdot 10^{-23}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;\left(0.25 \cdot h\right) \cdot {\left(M \cdot \frac{D}{d}\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 (* 0.25 (* M (* (/ D d) (* (/ D d) (* M h)))))))
   (if (<= d -3.8e+182)
     t_0
     (if (<= d -4.1e-196)
       (* 0.25 (* (* (* M D) (* (* M D) (/ 1.0 d))) (/ h d)))
       (if (<= d 2.3e-23) t_0 (* (* 0.25 h) (pow (* M (/ D d)) 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 = 0.25 * (M * ((D / d) * ((D / d) * (M * h))));
	double tmp;
	if (d <= -3.8e+182) {
		tmp = t_0;
	} else if (d <= -4.1e-196) {
		tmp = 0.25 * (((M * D) * ((M * D) * (1.0 / d))) * (h / d));
	} else if (d <= 2.3e-23) {
		tmp = t_0;
	} else {
		tmp = (0.25 * h) * pow((M * (D / d)), 2.0);
	}
	return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
    real(8), intent (in) :: c0
    real(8), intent (in) :: w
    real(8), intent (in) :: h
    real(8), intent (in) :: d
    real(8), intent (in) :: d_1
    real(8), intent (in) :: m
    code = (c0 / (2.0d0 * w)) * (((c0 * (d_1 * d_1)) / ((w * h) * (d * d))) + sqrt(((((c0 * (d_1 * d_1)) / ((w * h) * (d * d))) * ((c0 * (d_1 * d_1)) / ((w * h) * (d * d)))) - (m * m))))
end function
real(8) function code(c0, w, h, d, d_1, m)
    real(8), intent (in) :: c0
    real(8), intent (in) :: w
    real(8), intent (in) :: h
    real(8), intent (in) :: d
    real(8), intent (in) :: d_1
    real(8), intent (in) :: m
    real(8) :: t_0
    real(8) :: tmp
    t_0 = 0.25d0 * (m * ((d / d_1) * ((d / d_1) * (m * h))))
    if (d_1 <= (-3.8d+182)) then
        tmp = t_0
    else if (d_1 <= (-4.1d-196)) then
        tmp = 0.25d0 * (((m * d) * ((m * d) * (1.0d0 / d_1))) * (h / d_1))
    else if (d_1 <= 2.3d-23) then
        tmp = t_0
    else
        tmp = (0.25d0 * h) * ((m * (d / d_1)) ** 2.0d0)
    end if
    code = tmp
end function
public static 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))) + Math.sqrt(((((c0 * (d * d)) / ((w * h) * (D * D))) * ((c0 * (d * d)) / ((w * h) * (D * D)))) - (M * M))));
}
public static double code(double c0, double w, double h, double D, double d, double M) {
	double t_0 = 0.25 * (M * ((D / d) * ((D / d) * (M * h))));
	double tmp;
	if (d <= -3.8e+182) {
		tmp = t_0;
	} else if (d <= -4.1e-196) {
		tmp = 0.25 * (((M * D) * ((M * D) * (1.0 / d))) * (h / d));
	} else if (d <= 2.3e-23) {
		tmp = t_0;
	} else {
		tmp = (0.25 * h) * Math.pow((M * (D / d)), 2.0);
	}
	return tmp;
}
def code(c0, w, h, D, d, M):
	return (c0 / (2.0 * w)) * (((c0 * (d * d)) / ((w * h) * (D * D))) + math.sqrt(((((c0 * (d * d)) / ((w * h) * (D * D))) * ((c0 * (d * d)) / ((w * h) * (D * D)))) - (M * M))))
def code(c0, w, h, D, d, M):
	t_0 = 0.25 * (M * ((D / d) * ((D / d) * (M * h))))
	tmp = 0
	if d <= -3.8e+182:
		tmp = t_0
	elif d <= -4.1e-196:
		tmp = 0.25 * (((M * D) * ((M * D) * (1.0 / d))) * (h / d))
	elif d <= 2.3e-23:
		tmp = t_0
	else:
		tmp = (0.25 * h) * math.pow((M * (D / d)), 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(0.25 * Float64(M * Float64(Float64(D / d) * Float64(Float64(D / d) * Float64(M * h)))))
	tmp = 0.0
	if (d <= -3.8e+182)
		tmp = t_0;
	elseif (d <= -4.1e-196)
		tmp = Float64(0.25 * Float64(Float64(Float64(M * D) * Float64(Float64(M * D) * Float64(1.0 / d))) * Float64(h / d)));
	elseif (d <= 2.3e-23)
		tmp = t_0;
	else
		tmp = Float64(Float64(0.25 * h) * (Float64(M * Float64(D / d)) ^ 2.0));
	end
	return tmp
end
function tmp = code(c0, w, h, D, d, M)
	tmp = (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))));
end
function tmp_2 = code(c0, w, h, D, d, M)
	t_0 = 0.25 * (M * ((D / d) * ((D / d) * (M * h))));
	tmp = 0.0;
	if (d <= -3.8e+182)
		tmp = t_0;
	elseif (d <= -4.1e-196)
		tmp = 0.25 * (((M * D) * ((M * D) * (1.0 / d))) * (h / d));
	elseif (d <= 2.3e-23)
		tmp = t_0;
	else
		tmp = (0.25 * h) * ((M * (D / d)) ^ 2.0);
	end
	tmp_2 = 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[(0.25 * N[(M * N[(N[(D / d), $MachinePrecision] * N[(N[(D / d), $MachinePrecision] * N[(M * h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[d, -3.8e+182], t$95$0, If[LessEqual[d, -4.1e-196], N[(0.25 * N[(N[(N[(M * D), $MachinePrecision] * N[(N[(M * D), $MachinePrecision] * N[(1.0 / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(h / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[d, 2.3e-23], t$95$0, N[(N[(0.25 * h), $MachinePrecision] * N[Power[N[(M * N[(D / d), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $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 := 0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\
\mathbf{if}\;d \leq -3.8 \cdot 10^{+182}:\\
\;\;\;\;t_0\\

\mathbf{elif}\;d \leq -4.1 \cdot 10^{-196}:\\
\;\;\;\;0.25 \cdot \left(\left(\left(M \cdot D\right) \cdot \left(\left(M \cdot D\right) \cdot \frac{1}{d}\right)\right) \cdot \frac{h}{d}\right)\\

\mathbf{elif}\;d \leq 2.3 \cdot 10^{-23}:\\
\;\;\;\;t_0\\

\mathbf{else}:\\
\;\;\;\;\left(0.25 \cdot h\right) \cdot {\left(M \cdot \frac{D}{d}\right)}^{2}\\


\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if d < -3.80000000000000013e182 or -4.10000000000000021e-196 < d < 2.3000000000000001e-23

    1. Initial program 62.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 62.6

      \[\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. Simplified44.8

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\mathsf{fma}\left(\frac{0.5}{d \cdot \left(d \cdot c0\right)}, w \cdot \left(\left(M \cdot \left(M \cdot h\right)\right) \cdot \left(D \cdot D\right)\right), 0\right)} \]
      Proof
      (fma.f64 (/.f64 1/2 (*.f64 d (*.f64 d c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 11 points increase in error, 11 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) c0)) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 M M) h)) (*.f64 D D))) 0): 16 points increase in error, 1 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 M 2)) h) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite=> *-commutative_binary64 (*.f64 h (pow.f64 M 2))) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 h (pow.f64 M 2)) (Rewrite<= unpow2_binary64 (pow.f64 D 2)))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 w (*.f64 h (pow.f64 M 2))) (pow.f64 D 2))) 0): 12 points increase in error, 5 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= mul0-rgt_binary64 (*.f64 (neg.f64 c0) 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (neg.f64 c0) (Rewrite<= metadata-eval (+.f64 -1 1)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 c0 (+.f64 -1 1))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 c0 (Rewrite=> metadata-eval 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite=> mul0-rgt_binary64 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite<= metadata-eval (*.f64 -1 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 101 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-/r/_binary64 (/.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 6 points increase in error, 3 points decrease in error
      (-.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 (pow.f64 d 2) c0))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 4 points increase in error, 3 points decrease in error
      (-.f64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 M 2) h))))) (*.f64 (pow.f64 d 2) c0)) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 1 points decrease in error
      (Rewrite=> fma-neg_binary64 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> distribute-rgt1-in_binary64 (*.f64 (+.f64 -1 1) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite=> metadata-eval 0) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> mul0-lft_binary64 0) c0)))): 0 points increase in error, 102 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (Rewrite=> mul0-lft_binary64 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite=> metadata-eval 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 102 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-def_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 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
    4. Taylor expanded in c0 around 0 41.5

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

      \[\leadsto \color{blue}{\left(\frac{D}{d} \cdot \frac{D}{d}\right) \cdot \left(\left(0.25 \cdot h\right) \cdot \left(M \cdot M\right)\right)} \]
      Proof
      (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (*.f64 (*.f64 1/4 h) (*.f64 M M))): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 D D) (*.f64 d d))) (*.f64 (*.f64 1/4 h) (*.f64 M M))): 47 points increase in error, 8 points decrease in error
      (*.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 D 2)) (*.f64 d d)) (*.f64 (*.f64 1/4 h) (*.f64 M M))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 D 2) (Rewrite<= unpow2_binary64 (pow.f64 d 2))) (*.f64 (*.f64 1/4 h) (*.f64 M M))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (*.f64 (*.f64 1/4 h) (Rewrite<= unpow2_binary64 (pow.f64 M 2)))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (Rewrite<= associate-*r*_binary64 (*.f64 1/4 (*.f64 h (pow.f64 M 2))))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (*.f64 1/4 (Rewrite=> *-commutative_binary64 (*.f64 (pow.f64 M 2) h)))): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 (pow.f64 M 2) h) 1/4))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (*.f64 (pow.f64 M 2) h)) 1/4)): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite<= associate-/r/_binary64 (/.f64 (pow.f64 D 2) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 M 2) h)))) 1/4): 12 points increase in error, 5 points decrease in error
      (*.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2))) 1/4): 8 points increase in error, 9 points decrease in error
      (Rewrite<= *-commutative_binary64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 (pow.f64 M 2) h)) (pow.f64 d 2)))): 0 points increase in error, 0 points decrease in error
    6. Taylor expanded in D around 0 41.5

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

      \[\leadsto \color{blue}{0.25 \cdot \left(D \cdot \frac{D}{\frac{d}{\left(\frac{M}{d} \cdot M\right) \cdot h}}\right)} \]
      Proof
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (*.f64 (*.f64 (/.f64 M d) M) h))))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (*.f64 (Rewrite<= associate-/r/_binary64 (/.f64 M (/.f64 d M))) h))))): 3 points increase in error, 0 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (*.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 M M) d)) h))))): 13 points increase in error, 5 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (*.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 M 2)) d) h))))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (Rewrite<= associate-/r/_binary64 (/.f64 (pow.f64 M 2) (/.f64 d h))))))): 10 points increase in error, 6 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (pow.f64 M 2) h) d)))))): 13 points increase in error, 10 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 d (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 h (pow.f64 M 2))) d))))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 d d) (*.f64 h (pow.f64 M 2))))))): 25 points increase in error, 4 points decrease in error
      (*.f64 1/4 (*.f64 D (/.f64 D (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) (*.f64 h (pow.f64 M 2)))))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 D (/.f64 (pow.f64 d 2) (*.f64 h (pow.f64 M 2)))) D))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 D D) (/.f64 (pow.f64 d 2) (*.f64 h (pow.f64 M 2)))))): 36 points increase in error, 6 points decrease in error
      (*.f64 1/4 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 D 2)) (/.f64 (pow.f64 d 2) (*.f64 h (pow.f64 M 2))))): 0 points increase in error, 0 points decrease in error
      (*.f64 1/4 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2))) (pow.f64 d 2)))): 8 points increase in error, 9 points decrease in error
      (*.f64 1/4 (/.f64 (*.f64 (pow.f64 D 2) (Rewrite=> *-commutative_binary64 (*.f64 (pow.f64 M 2) h))) (pow.f64 d 2))): 0 points increase in error, 0 points decrease in error
    8. Taylor expanded in D around 0 41.5

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

      \[\leadsto 0.25 \cdot \color{blue}{\left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)} \]
      Proof
      (*.f64 M (*.f64 (/.f64 D d) (*.f64 (/.f64 D d) (*.f64 M h)))): 0 points increase in error, 0 points decrease in error
      (*.f64 M (*.f64 (/.f64 D d) (*.f64 (/.f64 D d) (Rewrite<= *-commutative_binary64 (*.f64 h M))))): 0 points increase in error, 0 points decrease in error
      (*.f64 M (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 D d) (/.f64 D d)) (*.f64 h M)))): 36 points increase in error, 8 points decrease in error
      (*.f64 M (*.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 D D) (*.f64 d d))) (*.f64 h M))): 59 points increase in error, 10 points decrease in error
      (*.f64 M (*.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 D 2)) (*.f64 d d)) (*.f64 h M))): 0 points increase in error, 0 points decrease in error
      (*.f64 M (*.f64 (/.f64 (pow.f64 D 2) (Rewrite<= unpow2_binary64 (pow.f64 d 2))) (*.f64 h M))): 0 points increase in error, 0 points decrease in error
      (*.f64 M (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 h M) (/.f64 (pow.f64 D 2) (pow.f64 d 2))))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 M (*.f64 h M)) (/.f64 (pow.f64 D 2) (pow.f64 d 2)))): 20 points increase in error, 5 points decrease in error
      (*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 h M) M)) (/.f64 (pow.f64 D 2) (pow.f64 d 2))): 0 points increase in error, 0 points decrease in error
      (*.f64 (Rewrite<= associate-*r*_binary64 (*.f64 h (*.f64 M M))) (/.f64 (pow.f64 D 2) (pow.f64 d 2))): 21 points increase in error, 4 points decrease in error
      (*.f64 (*.f64 h (Rewrite<= unpow2_binary64 (pow.f64 M 2))) (/.f64 (pow.f64 D 2) (pow.f64 d 2))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (pow.f64 D 2) (pow.f64 d 2)) (*.f64 h (pow.f64 M 2)))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 h (pow.f64 M 2))) (pow.f64 d 2))): 10 points increase in error, 2 points decrease in error

    if -3.80000000000000013e182 < d < -4.10000000000000021e-196

    1. Initial program 56.9

      \[\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 56.8

      \[\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. Simplified38.3

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\mathsf{fma}\left(\frac{0.5}{d \cdot \left(d \cdot c0\right)}, w \cdot \left(\left(M \cdot \left(M \cdot h\right)\right) \cdot \left(D \cdot D\right)\right), 0\right)} \]
      Proof
      (fma.f64 (/.f64 1/2 (*.f64 d (*.f64 d c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 11 points increase in error, 11 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) c0)) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 M M) h)) (*.f64 D D))) 0): 16 points increase in error, 1 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 M 2)) h) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite=> *-commutative_binary64 (*.f64 h (pow.f64 M 2))) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 h (pow.f64 M 2)) (Rewrite<= unpow2_binary64 (pow.f64 D 2)))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 w (*.f64 h (pow.f64 M 2))) (pow.f64 D 2))) 0): 12 points increase in error, 5 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= mul0-rgt_binary64 (*.f64 (neg.f64 c0) 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (neg.f64 c0) (Rewrite<= metadata-eval (+.f64 -1 1)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 c0 (+.f64 -1 1))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 c0 (Rewrite=> metadata-eval 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite=> mul0-rgt_binary64 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite<= metadata-eval (*.f64 -1 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 101 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-/r/_binary64 (/.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 6 points increase in error, 3 points decrease in error
      (-.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 (pow.f64 d 2) c0))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 4 points increase in error, 3 points decrease in error
      (-.f64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 M 2) h))))) (*.f64 (pow.f64 d 2) c0)) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 1 points decrease in error
      (Rewrite=> fma-neg_binary64 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> distribute-rgt1-in_binary64 (*.f64 (+.f64 -1 1) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite=> metadata-eval 0) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> mul0-lft_binary64 0) c0)))): 0 points increase in error, 102 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (Rewrite=> mul0-lft_binary64 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite=> metadata-eval 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 102 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-def_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 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
    4. Taylor expanded in c0 around 0 33.0

      \[\leadsto \color{blue}{0.25 \cdot \frac{{D}^{2} \cdot \left({M}^{2} \cdot h\right)}{{d}^{2}}} \]
    5. Applied egg-rr22.2

      \[\leadsto 0.25 \cdot \color{blue}{\left(\frac{{\left(D \cdot M\right)}^{2}}{d} \cdot \frac{h}{d}\right)} \]
    6. Applied egg-rr20.6

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

    if 2.3000000000000001e-23 < d

    1. Initial program 60.5

      \[\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. Simplified35.7

      \[\leadsto \frac{c0}{2 \cdot w} \cdot \color{blue}{\mathsf{fma}\left(\frac{0.5}{d \cdot \left(d \cdot c0\right)}, w \cdot \left(\left(M \cdot \left(M \cdot h\right)\right) \cdot \left(D \cdot D\right)\right), 0\right)} \]
      Proof
      (fma.f64 (/.f64 1/2 (*.f64 d (*.f64 d c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 d d) c0))) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 11 points increase in error, 11 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) c0)) (*.f64 w (*.f64 (*.f64 M (*.f64 M h)) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 M M) h)) (*.f64 D D))) 0): 16 points increase in error, 1 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 (Rewrite<= unpow2_binary64 (pow.f64 M 2)) h) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (Rewrite=> *-commutative_binary64 (*.f64 h (pow.f64 M 2))) (*.f64 D D))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 w (*.f64 (*.f64 h (pow.f64 M 2)) (Rewrite<= unpow2_binary64 (pow.f64 D 2)))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 w (*.f64 h (pow.f64 M 2))) (pow.f64 D 2))) 0): 12 points increase in error, 5 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) 0): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= mul0-rgt_binary64 (*.f64 (neg.f64 c0) 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (*.f64 (neg.f64 c0) (Rewrite<= metadata-eval (+.f64 -1 1)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 c0 (+.f64 -1 1))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 c0 (Rewrite=> metadata-eval 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite=> mul0-rgt_binary64 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (Rewrite<= metadata-eval (*.f64 -1 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 101 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2)))) (neg.f64 (*.f64 -1 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 (/.f64 1/2 (*.f64 (pow.f64 d 2) c0)) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-/r/_binary64 (/.f64 1/2 (/.f64 (*.f64 (pow.f64 d 2) c0) (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 6 points increase in error, 3 points decrease in error
      (-.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 h (pow.f64 M 2))))) (*.f64 (pow.f64 d 2) c0))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 4 points increase in error, 3 points decrease in error
      (-.f64 (/.f64 (*.f64 1/2 (*.f64 (pow.f64 D 2) (*.f64 w (Rewrite<= *-commutative_binary64 (*.f64 (pow.f64 M 2) h))))) (*.f64 (pow.f64 d 2) c0)) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 0 points decrease in error
      (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)))) (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 0 points increase in error, 1 points decrease in error
      (Rewrite=> fma-neg_binary64 (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> distribute-rgt1-in_binary64 (*.f64 (+.f64 -1 1) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (*.f64 (Rewrite=> metadata-eval 0) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (*.f64 (Rewrite=> mul0-lft_binary64 0) c0)))): 0 points increase in error, 102 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 -1 (Rewrite=> mul0-lft_binary64 0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite=> metadata-eval 0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 c0)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= mul0-lft_binary64 (*.f64 0 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0))): 102 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (*.f64 (Rewrite<= metadata-eval (+.f64 -1 1)) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (neg.f64 (*.f64 (Rewrite<= distribute-rgt1-in_binary64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) c0))): 0 points increase in error, 0 points decrease in error
      (fma.f64 1/2 (/.f64 (*.f64 (pow.f64 D 2) (*.f64 w (*.f64 (pow.f64 M 2) h))) (*.f64 (pow.f64 d 2) c0)) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= fma-def_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 -1 (*.f64 (+.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) c0)))): 0 points increase in error, 0 points decrease in error
    4. Taylor expanded in c0 around 0 32.5

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

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

      \[\leadsto \color{blue}{0 + \left(0.25 \cdot h\right) \cdot {\left(M \cdot \frac{D}{d}\right)}^{2}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification19.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;d \leq -3.8 \cdot 10^{+182}:\\ \;\;\;\;0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{elif}\;d \leq -4.1 \cdot 10^{-196}:\\ \;\;\;\;0.25 \cdot \left(\left(\left(M \cdot D\right) \cdot \left(\left(M \cdot D\right) \cdot \frac{1}{d}\right)\right) \cdot \frac{h}{d}\right)\\ \mathbf{elif}\;d \leq 2.3 \cdot 10^{-23}:\\ \;\;\;\;0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(0.25 \cdot h\right) \cdot {\left(M \cdot \frac{D}{d}\right)}^{2}\\ \end{array} \]

Alternatives

Alternative 1
Error21.7
Cost1620
\[\begin{array}{l} t_0 := 0.25 \cdot \left(\frac{h}{d} \cdot \frac{\left(M \cdot D\right) \cdot \left(M \cdot D\right)}{d}\right)\\ \mathbf{if}\;d \leq 2.3 \cdot 10^{-23}:\\ \;\;\;\;0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{elif}\;d \leq 6.5 \cdot 10^{+91}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;d \leq 5.5 \cdot 10^{+118}:\\ \;\;\;\;\frac{D}{d} \cdot \frac{D}{\frac{d}{\left(M \cdot h\right) \cdot \left(0.25 \cdot M\right)}}\\ \mathbf{elif}\;d \leq 8.2 \cdot 10^{+220}:\\ \;\;\;\;0.25 \cdot \frac{M}{\frac{\frac{d}{\frac{M}{d}}}{D \cdot \left(D \cdot h\right)}}\\ \mathbf{elif}\;d \leq 3.4 \cdot 10^{+285}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(M \cdot M\right) \cdot \frac{0.25}{\frac{d}{D \cdot h}}}{\frac{d}{D}}\\ \end{array} \]
Alternative 2
Error19.7
Cost1480
\[\begin{array}{l} t_0 := 0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{if}\;D \cdot D \leq 5 \cdot 10^{-282}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;D \cdot D \leq 10^{+29}:\\ \;\;\;\;0.25 \cdot \frac{M \cdot \left(D \cdot D\right)}{d \cdot \frac{\frac{d}{M}}{h}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 3
Error21.9
Cost1356
\[\begin{array}{l} t_0 := 0.25 \cdot \left(\frac{h}{d} \cdot \frac{\left(M \cdot D\right) \cdot \left(M \cdot D\right)}{d}\right)\\ \mathbf{if}\;M \leq -1.96 \cdot 10^{+121}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;M \leq -1.740009561344486 \cdot 10^{-159}:\\ \;\;\;\;\frac{\left(M \cdot M\right) \cdot \frac{0.25}{\frac{d}{D \cdot h}}}{\frac{d}{D}}\\ \mathbf{elif}\;M \leq 7.5 \cdot 10^{+182}:\\ \;\;\;\;\frac{D}{d} \cdot \frac{D}{\frac{d}{\left(M \cdot h\right) \cdot \left(0.25 \cdot M\right)}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 4
Error20.3
Cost1356
\[\begin{array}{l} t_0 := 0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \mathbf{if}\;d \leq -3.8 \cdot 10^{+182}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;d \leq -4.1 \cdot 10^{-196}:\\ \;\;\;\;0.25 \cdot \left(\left(\left(M \cdot D\right) \cdot \left(\left(M \cdot D\right) \cdot \frac{1}{d}\right)\right) \cdot \frac{h}{d}\right)\\ \mathbf{elif}\;d \leq 2.3 \cdot 10^{-23}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;\left(0.25 \cdot h\right) \cdot \left(\frac{D}{d} \cdot \left(M \cdot \frac{M}{\frac{d}{D}}\right)\right)\\ \end{array} \]
Alternative 5
Error24.5
Cost1224
\[\begin{array}{l} t_0 := \frac{D}{d} \cdot \frac{D}{\frac{d}{\left(M \cdot h\right) \cdot \left(0.25 \cdot M\right)}}\\ \mathbf{if}\;d \leq 300000000000:\\ \;\;\;\;t_0\\ \mathbf{elif}\;d \leq 4.2 \cdot 10^{+191}:\\ \;\;\;\;0.25 \cdot \frac{M}{\frac{\frac{d}{\frac{M}{d}}}{D \cdot \left(D \cdot h\right)}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 6
Error21.7
Cost1224
\[\begin{array}{l} \mathbf{if}\;w \leq -4.2 \cdot 10^{-150}:\\ \;\;\;\;0.25 \cdot \left(D \cdot \left(\frac{D}{d} \cdot \left(M \cdot \left(h \cdot \frac{M}{d}\right)\right)\right)\right)\\ \mathbf{elif}\;w \leq -9 \cdot 10^{-300}:\\ \;\;\;\;0.25 \cdot \left(\frac{h}{d} \cdot \frac{\left(M \cdot D\right) \cdot \left(M \cdot D\right)}{d}\right)\\ \mathbf{else}:\\ \;\;\;\;0.25 \cdot \left(M \cdot \left(\frac{D}{d} \cdot \left(\frac{D}{d} \cdot \left(M \cdot h\right)\right)\right)\right)\\ \end{array} \]
Alternative 7
Error24.9
Cost960
\[\frac{D}{d} \cdot \frac{D}{\frac{d}{\left(M \cdot h\right) \cdot \left(0.25 \cdot M\right)}} \]
Alternative 8
Error31.8
Cost64
\[0 \]

Error

Reproduce

herbie shell --seed 2022302 
(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))))))