Average Error: 59.5 → 15.3
Time: 27.1s
Precision: binary64
Cost: 30540
\[\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.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\ t_1 := \frac{\frac{d \cdot \left(c0 \cdot \frac{0.5}{w}\right)}{D}}{\left(h \cdot D\right) \cdot \frac{w \cdot 0.5}{c0 \cdot d}}\\ t_2 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\ t_3 := \frac{c0}{2 \cdot w} \cdot \left(t_2 + \sqrt{t_2 \cdot t_2 - M \cdot M}\right)\\ \mathbf{if}\;t_3 \leq -2 \cdot 10^{-43}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t_3 \leq 5 \cdot 10^{-195}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;t_3 \leq \infty:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \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.5 (/ M (* -2.0 (* (/ (/ d D) h) (/ (/ d D) M))))))
        (t_1
         (/ (/ (* d (* c0 (/ 0.5 w))) D) (* (* h D) (/ (* w 0.5) (* c0 d)))))
        (t_2 (/ (* c0 (* d d)) (* (* w h) (* D D))))
        (t_3 (* (/ c0 (* 2.0 w)) (+ t_2 (sqrt (- (* t_2 t_2) (* M M)))))))
   (if (<= t_3 -2e-43)
     t_1
     (if (<= t_3 5e-195) t_0 (if (<= t_3 INFINITY) t_1 t_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.5 * (M / (-2.0 * (((d / D) / h) * ((d / D) / M))));
	double t_1 = ((d * (c0 * (0.5 / w))) / D) / ((h * D) * ((w * 0.5) / (c0 * d)));
	double t_2 = (c0 * (d * d)) / ((w * h) * (D * D));
	double t_3 = (c0 / (2.0 * w)) * (t_2 + sqrt(((t_2 * t_2) - (M * M))));
	double tmp;
	if (t_3 <= -2e-43) {
		tmp = t_1;
	} else if (t_3 <= 5e-195) {
		tmp = t_0;
	} else if (t_3 <= ((double) INFINITY)) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
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.5 * (M / (-2.0 * (((d / D) / h) * ((d / D) / M))));
	double t_1 = ((d * (c0 * (0.5 / w))) / D) / ((h * D) * ((w * 0.5) / (c0 * d)));
	double t_2 = (c0 * (d * d)) / ((w * h) * (D * D));
	double t_3 = (c0 / (2.0 * w)) * (t_2 + Math.sqrt(((t_2 * t_2) - (M * M))));
	double tmp;
	if (t_3 <= -2e-43) {
		tmp = t_1;
	} else if (t_3 <= 5e-195) {
		tmp = t_0;
	} else if (t_3 <= Double.POSITIVE_INFINITY) {
		tmp = t_1;
	} else {
		tmp = t_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.5 * (M / (-2.0 * (((d / D) / h) * ((d / D) / M))))
	t_1 = ((d * (c0 * (0.5 / w))) / D) / ((h * D) * ((w * 0.5) / (c0 * d)))
	t_2 = (c0 * (d * d)) / ((w * h) * (D * D))
	t_3 = (c0 / (2.0 * w)) * (t_2 + math.sqrt(((t_2 * t_2) - (M * M))))
	tmp = 0
	if t_3 <= -2e-43:
		tmp = t_1
	elif t_3 <= 5e-195:
		tmp = t_0
	elif t_3 <= math.inf:
		tmp = t_1
	else:
		tmp = t_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.5 * Float64(M / Float64(-2.0 * Float64(Float64(Float64(d / D) / h) * Float64(Float64(d / D) / M)))))
	t_1 = Float64(Float64(Float64(d * Float64(c0 * Float64(0.5 / w))) / D) / Float64(Float64(h * D) * Float64(Float64(w * 0.5) / Float64(c0 * d))))
	t_2 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D)))
	t_3 = Float64(Float64(c0 / Float64(2.0 * w)) * Float64(t_2 + sqrt(Float64(Float64(t_2 * t_2) - Float64(M * M)))))
	tmp = 0.0
	if (t_3 <= -2e-43)
		tmp = t_1;
	elseif (t_3 <= 5e-195)
		tmp = t_0;
	elseif (t_3 <= Inf)
		tmp = t_1;
	else
		tmp = t_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.5 * (M / (-2.0 * (((d / D) / h) * ((d / D) / M))));
	t_1 = ((d * (c0 * (0.5 / w))) / D) / ((h * D) * ((w * 0.5) / (c0 * d)));
	t_2 = (c0 * (d * d)) / ((w * h) * (D * D));
	t_3 = (c0 / (2.0 * w)) * (t_2 + sqrt(((t_2 * t_2) - (M * M))));
	tmp = 0.0;
	if (t_3 <= -2e-43)
		tmp = t_1;
	elseif (t_3 <= 5e-195)
		tmp = t_0;
	elseif (t_3 <= Inf)
		tmp = t_1;
	else
		tmp = t_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.5 * N[(M / N[(-2.0 * N[(N[(N[(d / D), $MachinePrecision] / h), $MachinePrecision] * N[(N[(d / D), $MachinePrecision] / M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(d * N[(c0 * N[(0.5 / w), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision] / N[(N[(h * D), $MachinePrecision] * N[(N[(w * 0.5), $MachinePrecision] / N[(c0 * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 + N[Sqrt[N[(N[(t$95$2 * t$95$2), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$3, -2e-43], t$95$1, If[LessEqual[t$95$3, 5e-195], t$95$0, If[LessEqual[t$95$3, Infinity], t$95$1, t$95$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)
\begin{array}{l}
t_0 := -0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\
t_1 := \frac{\frac{d \cdot \left(c0 \cdot \frac{0.5}{w}\right)}{D}}{\left(h \cdot D\right) \cdot \frac{w \cdot 0.5}{c0 \cdot d}}\\
t_2 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
t_3 := \frac{c0}{2 \cdot w} \cdot \left(t_2 + \sqrt{t_2 \cdot t_2 - M \cdot M}\right)\\
\mathbf{if}\;t_3 \leq -2 \cdot 10^{-43}:\\
\;\;\;\;t_1\\

\mathbf{elif}\;t_3 \leq 5 \cdot 10^{-195}:\\
\;\;\;\;t_0\\

\mathbf{elif}\;t_3 \leq \infty:\\
\;\;\;\;t_1\\

\mathbf{else}:\\
\;\;\;\;t_0\\


\end{array}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 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))))) < -2.00000000000000015e-43 or 5.00000000000000009e-195 < (*.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 51.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. Taylor expanded in c0 around inf 46.2

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

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

      \[\leadsto \color{blue}{\frac{c0}{\left(\frac{w \cdot h}{\left(2 \cdot d\right) \cdot c0} \cdot \frac{D \cdot D}{d}\right) \cdot \left(2 \cdot w\right)}} \]
    5. Simplified32.0

      \[\leadsto \color{blue}{\frac{\frac{c0}{2 \cdot w}}{\left(D \cdot D\right) \cdot \left(\frac{w}{2 \cdot \left(d \cdot c0\right)} \cdot h\right)} \cdot d} \]
      Proof
      (*.f64 (/.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 (*.f64 D D) (*.f64 (/.f64 w (*.f64 2 (*.f64 d c0))) h))) d): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 (*.f64 D D) (*.f64 (/.f64 w (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 2 d) c0))) h))) d): 0 points increase in error, 0 points decrease in error
      (*.f64 (/.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 (*.f64 D D) (Rewrite<= associate-/r/_binary64 (/.f64 w (/.f64 (*.f64 (*.f64 2 d) c0) h))))) d): 11 points increase in error, 7 points decrease in error
      (*.f64 (/.f64 (/.f64 c0 (*.f64 2 w)) (*.f64 (*.f64 D D) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 w h) (*.f64 (*.f64 2 d) c0))))) d): 12 points increase in error, 16 points decrease in error
      (*.f64 (/.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= *-commutative_binary64 (*.f64 (/.f64 (*.f64 w h) (*.f64 (*.f64 2 d) c0)) (*.f64 D D)))) d): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-/r/_binary64 (/.f64 (/.f64 c0 (*.f64 2 w)) (/.f64 (*.f64 (/.f64 (*.f64 w h) (*.f64 (*.f64 2 d) c0)) (*.f64 D D)) d))): 17 points increase in error, 12 points decrease in error
      (/.f64 (/.f64 c0 (*.f64 2 w)) (Rewrite<= associate-*r/_binary64 (*.f64 (/.f64 (*.f64 w h) (*.f64 (*.f64 2 d) c0)) (/.f64 (*.f64 D D) d)))): 10 points increase in error, 9 points decrease in error
      (Rewrite=> associate-/l/_binary64 (/.f64 c0 (*.f64 (*.f64 (/.f64 (*.f64 w h) (*.f64 (*.f64 2 d) c0)) (/.f64 (*.f64 D D) d)) (*.f64 2 w)))): 10 points increase in error, 10 points decrease in error
    6. Applied egg-rr19.8

      \[\leadsto \color{blue}{\frac{\frac{d \cdot \left(c0 \cdot \frac{0.5}{w}\right)}{D}}{\left(D \cdot h\right) \cdot \frac{w \cdot 0.5}{d \cdot c0}}} \]

    if -2.00000000000000015e-43 < (*.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))))) < 5.00000000000000009e-195 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 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. Applied egg-rr62.1

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

      \[\leadsto \color{blue}{\frac{\frac{0 + M \cdot M}{\frac{w}{\frac{-c0}{-2}}}}{\frac{\frac{c0}{w}}{h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right) - \sqrt{{\left(\frac{\frac{c0}{w}}{h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)}^{2} - M \cdot M}}} \]
      Proof
      (/.f64 (/.f64 (+.f64 0 (*.f64 M M)) (/.f64 w (/.f64 (neg.f64 c0) -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (+.f64 (Rewrite<= +-inverses_binary64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2))) (*.f64 M M)) (/.f64 w (/.f64 (neg.f64 c0) -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 93 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (+.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2)) (Rewrite<= unpow2_binary64 (pow.f64 M 2))) (/.f64 w (/.f64 (neg.f64 c0) -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (Rewrite<= associate--r-_binary64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (pow.f64 M 2)))) (/.f64 w (/.f64 (neg.f64 c0) -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 4 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (Rewrite=> unpow2_binary64 (*.f64 M M)))) (/.f64 w (/.f64 (neg.f64 c0) -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 w -2) (neg.f64 c0)))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2))) (-.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 c0 (*.f64 w h))) (*.f64 (/.f64 d D) (/.f64 d D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 11 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 d D) (/.f64 d D)) (/.f64 c0 (*.f64 w h)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 d (/.f64 d D)) D)) (/.f64 c0 (*.f64 w h))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 1 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (Rewrite=> associate-/l*_binary64 (/.f64 d (/.f64 D (/.f64 d D)))) (/.f64 c0 (*.f64 w h))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 2 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 d (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 D D) d))) (/.f64 c0 (*.f64 w h))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 d d) (*.f64 D D))) (/.f64 c0 (*.f64 w h))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 2 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (*.f64 d d) c0) (*.f64 (*.f64 D D) (*.f64 w h)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 8 points increase in error, 3 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 c0 (*.f64 d d))) (*.f64 (*.f64 D D) (*.f64 w h))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 w h) (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= associate-*r*_binary64 (*.f64 w (*.f64 h (*.f64 D D))))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 3 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (Rewrite=> associate-/r*_binary64 (/.f64 (/.f64 (*.f64 c0 (*.f64 d d)) w) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 3 points increase in error, 5 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (/.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 c0 w) (*.f64 d d))) (*.f64 h (*.f64 D D))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 3 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D))))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 (/.f64 c0 w) h) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 5 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 c0 (*.f64 w h))) (*.f64 (/.f64 d D) (/.f64 d D))) 2) (*.f64 M M))))): 0 points increase in error, 3 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (/.f64 d D) (/.f64 d D)) (/.f64 c0 (*.f64 w h)))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 d (/.f64 d D)) D)) (/.f64 c0 (*.f64 w h))) 2) (*.f64 M M))))): 1 points increase in error, 1 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (Rewrite=> associate-/l*_binary64 (/.f64 d (/.f64 D (/.f64 d D)))) (/.f64 c0 (*.f64 w h))) 2) (*.f64 M M))))): 1 points increase in error, 1 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 d (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 D D) d))) (/.f64 c0 (*.f64 w h))) 2) (*.f64 M M))))): 4 points increase in error, 1 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 d d) (*.f64 D D))) (/.f64 c0 (*.f64 w h))) 2) (*.f64 M M))))): 4 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (*.f64 d d) c0) (*.f64 (*.f64 D D) (*.f64 w h)))) 2) (*.f64 M M))))): 8 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 c0 (*.f64 d d))) (*.f64 (*.f64 D D) (*.f64 w h))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite=> *-commutative_binary64 (*.f64 (*.f64 w h) (*.f64 D D)))) 2) (*.f64 M M))))): 0 points increase in error, 0 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (Rewrite<= associate-*r*_binary64 (*.f64 w (*.f64 h (*.f64 D D))))) 2) (*.f64 M M))))): 3 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (Rewrite=> associate-/r*_binary64 (/.f64 (/.f64 (*.f64 c0 (*.f64 d d)) w) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))))): 2 points increase in error, 4 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (/.f64 (Rewrite<= associate-*l/_binary64 (*.f64 (/.f64 c0 w) (*.f64 d d))) (*.f64 h (*.f64 D D))) 2) (*.f64 M M))))): 2 points increase in error, 2 points decrease in error
      (/.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 w -2)) (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (Rewrite<= associate-*r/_binary64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D))))) 2) (*.f64 M M))))): 4 points increase in error, 0 points decrease in error
      (Rewrite=> associate-/l/_binary64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M))) (neg.f64 c0)) (*.f64 (-.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) (sqrt.f64 (-.f64 (pow.f64 (*.f64 (/.f64 c0 w) (/.f64 (*.f64 d d) (*.f64 h (*.f64 D D)))) 2) (*.f64 M M)))) (*.f64 w -2)))): 1 points increase in error, 0 points decrease in error
    4. Taylor expanded in c0 around -inf 37.5

      \[\leadsto \color{blue}{-0.5 \cdot \frac{{M}^{2}}{w \cdot \left(-1 \cdot \frac{{d}^{2}}{{D}^{2} \cdot \left(w \cdot h\right)} - \frac{{d}^{2}}{{D}^{2} \cdot \left(w \cdot h\right)}\right)}} \]
    5. Simplified27.4

      \[\leadsto \color{blue}{-0.5 \cdot \frac{M}{\left(\frac{{\left(\frac{d}{D}\right)}^{2}}{w \cdot h} \cdot -2\right) \cdot \frac{w}{M}}} \]
      Proof
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (pow.f64 (/.f64 d D) 2) (*.f64 w h)) -2) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (Rewrite=> unpow2_binary64 (*.f64 (/.f64 d D) (/.f64 d D))) (*.f64 w h)) -2) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (Rewrite=> associate-*l/_binary64 (/.f64 (*.f64 d (/.f64 d D)) D)) (*.f64 w h)) -2) (/.f64 w M)))): 10 points increase in error, 4 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (/.f64 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 d d) D)) D) (*.f64 w h)) -2) (/.f64 w M)))): 26 points increase in error, 3 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (/.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 d 2)) D) D) (*.f64 w h)) -2) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (Rewrite=> associate-/l/_binary64 (/.f64 (pow.f64 d 2) (*.f64 D D))) (*.f64 w h)) -2) (/.f64 w M)))): 26 points increase in error, 1 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (/.f64 (pow.f64 d 2) (Rewrite<= unpow2_binary64 (pow.f64 D 2))) (*.f64 w h)) -2) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) -2) (/.f64 w M)))): 9 points increase in error, 5 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (*.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))) (Rewrite<= metadata-eval (+.f64 -1 -1))) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 -1 (/.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)))))) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (Rewrite=> mul-1-neg_binary64 (neg.f64 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (/.f64 M (*.f64 (Rewrite<= sub-neg_binary64 (-.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))) (/.f64 w M)))): 0 points increase in error, 0 points decrease in error
      (*.f64 -1/2 (Rewrite<= associate-/l/_binary64 (/.f64 (/.f64 M (/.f64 w M)) (-.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))))): 24 points increase in error, 2 points decrease in error
      (*.f64 -1/2 (/.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 M M) w)) (-.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))): 7 points increase in error, 4 points decrease in error
      (*.f64 -1/2 (Rewrite<= associate-/r*_binary64 (/.f64 (*.f64 M M) (*.f64 w (-.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))))))): 1 points increase in error, 19 points decrease in error
      (*.f64 -1/2 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 M 2)) (*.f64 w (-.f64 (*.f64 -1 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h)))) (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 w h))))))): 0 points increase in error, 0 points decrease in error
    6. Taylor expanded in d around 0 29.3

      \[\leadsto -0.5 \cdot \frac{M}{\color{blue}{-2 \cdot \frac{{d}^{2}}{{D}^{2} \cdot \left(h \cdot M\right)}}} \]
    7. Simplified19.8

      \[\leadsto -0.5 \cdot \frac{M}{\color{blue}{-2 \cdot \frac{{\left(\frac{d}{D}\right)}^{2}}{h \cdot M}}} \]
      Proof
      (*.f64 -2 (/.f64 (pow.f64 (/.f64 d D) 2) (*.f64 h M))): 0 points increase in error, 0 points decrease in error
      (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 -2 (pow.f64 (/.f64 d D) 2)) (*.f64 h M))): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -2 (Rewrite=> unpow2_binary64 (*.f64 (/.f64 d D) (/.f64 d D)))) (*.f64 h M)): 0 points increase in error, 0 points decrease in error
      (/.f64 (*.f64 -2 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 d d) (*.f64 D D)))) (*.f64 h M)): 42 points increase in error, 16 points decrease in error
      (/.f64 (*.f64 -2 (/.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 (*.f64 -2 (/.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 (Rewrite=> associate-*r/_binary64 (/.f64 (*.f64 -2 (pow.f64 d 2)) (pow.f64 D 2))) (*.f64 h M)): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate-/r*_binary64 (/.f64 (*.f64 -2 (pow.f64 d 2)) (*.f64 (pow.f64 D 2) (*.f64 h M)))): 19 points increase in error, 9 points decrease in error
      (Rewrite<= associate-*r/_binary64 (*.f64 -2 (/.f64 (pow.f64 d 2) (*.f64 (pow.f64 D 2) (*.f64 h M))))): 0 points increase in error, 0 points decrease in error
    8. Applied egg-rr14.7

      \[\leadsto -0.5 \cdot \frac{M}{-2 \cdot \color{blue}{\left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.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 -2 \cdot 10^{-43}:\\ \;\;\;\;\frac{\frac{d \cdot \left(c0 \cdot \frac{0.5}{w}\right)}{D}}{\left(h \cdot D\right) \cdot \frac{w \cdot 0.5}{c0 \cdot d}}\\ \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 5 \cdot 10^{-195}:\\ \;\;\;\;-0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\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 \infty:\\ \;\;\;\;\frac{\frac{d \cdot \left(c0 \cdot \frac{0.5}{w}\right)}{D}}{\left(h \cdot D\right) \cdot \frac{w \cdot 0.5}{c0 \cdot d}}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\ \end{array} \]

Alternatives

Alternative 1
Error20.0
Cost2384
\[\begin{array}{l} t_0 := -0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\ \mathbf{if}\;D \cdot D \leq 2 \cdot 10^{-191}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;D \cdot D \leq 10^{+32}:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \mathbf{elif}\;D \cdot D \leq 10^{+218}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;D \cdot D \leq 4 \cdot 10^{+277}:\\ \;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \left(\frac{\frac{c0}{w}}{h} \cdot \left(\frac{d}{D} \cdot \frac{d}{D}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 2
Error19.9
Cost2128
\[\begin{array}{l} t_0 := -0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\ \mathbf{if}\;D \cdot D \leq 2 \cdot 10^{-191}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;D \cdot D \leq 10^{+32}:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \mathbf{elif}\;D \cdot D \leq 10^{+218}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;D \cdot D \leq 4 \cdot 10^{+260}:\\ \;\;\;\;\frac{c0}{\frac{h \cdot \left(w \cdot \frac{w}{d}\right)}{c0 \cdot \frac{\frac{d}{D}}{D}}}\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 3
Error23.3
Cost1616
\[\begin{array}{l} t_0 := 0.25 \cdot \left(h \cdot \left(\left(M \cdot M\right) \cdot \left(\frac{D}{d} \cdot \frac{D}{d}\right)\right)\right)\\ t_1 := -0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \mathbf{if}\;M \leq -8 \cdot 10^{+88}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;M \leq -0.0019:\\ \;\;\;\;t_0\\ \mathbf{elif}\;M \leq 1.1 \cdot 10^{-20}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;M \leq 4.05 \cdot 10^{+152}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_1\\ \end{array} \]
Alternative 4
Error22.6
Cost1608
\[\begin{array}{l} \mathbf{if}\;M \cdot M \leq 0:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(\left(h \cdot M\right) \cdot \left(M \cdot \left(\frac{D}{d} \cdot \frac{D}{d}\right)\right)\right)\right)\\ \mathbf{elif}\;M \cdot M \leq 5 \cdot 10^{+273}:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(\frac{D}{\frac{d}{M \cdot M}} \cdot \frac{D}{\frac{d}{h}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \end{array} \]
Alternative 5
Error23.1
Cost1484
\[\begin{array}{l} t_0 := -0.5 \cdot \left(-0.5 \cdot \left(\left(h \cdot M\right) \cdot \left(M \cdot \left(\frac{D}{d} \cdot \frac{D}{d}\right)\right)\right)\right)\\ t_1 := -0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \mathbf{if}\;d \leq -1.55 \cdot 10^{+136}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;d \leq 10^{-54}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;d \leq 9.2 \cdot 10^{+119}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 6
Error19.8
Cost1348
\[\begin{array}{l} \mathbf{if}\;M \cdot M \leq 5 \cdot 10^{+273}:\\ \;\;\;\;-0.5 \cdot \frac{M}{-2 \cdot \left(\frac{\frac{d}{D}}{h} \cdot \frac{\frac{d}{D}}{M}\right)}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(-0.5 \cdot \left(D \cdot \left(D \cdot \left(\frac{M}{d} \cdot \frac{h \cdot M}{d}\right)\right)\right)\right)\\ \end{array} \]
Alternative 7
Error28.5
Cost1220
\[\begin{array}{l} \mathbf{if}\;M \cdot M \leq \infty:\\ \;\;\;\;0.25 \cdot \left(h \cdot \left(\left(M \cdot M\right) \cdot \left(\frac{D}{d} \cdot \frac{D}{d}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array} \]
Alternative 8
Error32.2
Cost64
\[0 \]

Error

Reproduce

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