| Alternative 1 | |
|---|---|
| Accuracy | 41.5% |
| Cost | 19913 |
(FPCore (a b angle x-scale y-scale)
:precision binary64
(/
(-
(sqrt
(*
(*
(* 2.0 (/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0)))
(* (* b a) (* b (- a))))
(-
(+
(/
(/
(+
(pow (* a (sin (* (/ angle 180.0) PI))) 2.0)
(pow (* b (cos (* (/ angle 180.0) PI))) 2.0))
x-scale)
x-scale)
(/
(/
(+
(pow (* a (cos (* (/ angle 180.0) PI))) 2.0)
(pow (* b (sin (* (/ angle 180.0) PI))) 2.0))
y-scale)
y-scale))
(sqrt
(+
(pow
(-
(/
(/
(+
(pow (* a (sin (* (/ angle 180.0) PI))) 2.0)
(pow (* b (cos (* (/ angle 180.0) PI))) 2.0))
x-scale)
x-scale)
(/
(/
(+
(pow (* a (cos (* (/ angle 180.0) PI))) 2.0)
(pow (* b (sin (* (/ angle 180.0) PI))) 2.0))
y-scale)
y-scale))
2.0)
(pow
(/
(/
(*
(*
(* 2.0 (- (pow b 2.0) (pow a 2.0)))
(sin (* (/ angle 180.0) PI)))
(cos (* (/ angle 180.0) PI)))
x-scale)
y-scale)
2.0)))))))
(/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0))))(FPCore (a b angle x-scale y-scale)
:precision binary64
(if (<= b -2.3e-113)
(* 0.25 (fabs (* (* a (sqrt 8.0)) (* (sqrt 2.0) x-scale))))
(if (<= b 2e+126)
0.0
(fabs (* (sqrt 0.125) (* (sqrt 8.0) (* a x-scale)))))))double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
return -sqrt((((2.0 * ((4.0 * ((b * a) * (b * -a))) / pow((x_45_scale * y_45_scale), 2.0))) * ((b * a) * (b * -a))) * (((((pow((a * sin(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * cos(((angle / 180.0) * ((double) M_PI)))), 2.0)) / x_45_scale) / x_45_scale) + (((pow((a * cos(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * sin(((angle / 180.0) * ((double) M_PI)))), 2.0)) / y_45_scale) / y_45_scale)) - sqrt((pow(((((pow((a * sin(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * cos(((angle / 180.0) * ((double) M_PI)))), 2.0)) / x_45_scale) / x_45_scale) - (((pow((a * cos(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * sin(((angle / 180.0) * ((double) M_PI)))), 2.0)) / y_45_scale) / y_45_scale)), 2.0) + pow((((((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * sin(((angle / 180.0) * ((double) M_PI)))) * cos(((angle / 180.0) * ((double) M_PI)))) / x_45_scale) / y_45_scale), 2.0)))))) / ((4.0 * ((b * a) * (b * -a))) / pow((x_45_scale * y_45_scale), 2.0));
}
double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (b <= -2.3e-113) {
tmp = 0.25 * fabs(((a * sqrt(8.0)) * (sqrt(2.0) * x_45_scale)));
} else if (b <= 2e+126) {
tmp = 0.0;
} else {
tmp = fabs((sqrt(0.125) * (sqrt(8.0) * (a * x_45_scale))));
}
return tmp;
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
return -Math.sqrt((((2.0 * ((4.0 * ((b * a) * (b * -a))) / Math.pow((x_45_scale * y_45_scale), 2.0))) * ((b * a) * (b * -a))) * (((((Math.pow((a * Math.sin(((angle / 180.0) * Math.PI))), 2.0) + Math.pow((b * Math.cos(((angle / 180.0) * Math.PI))), 2.0)) / x_45_scale) / x_45_scale) + (((Math.pow((a * Math.cos(((angle / 180.0) * Math.PI))), 2.0) + Math.pow((b * Math.sin(((angle / 180.0) * Math.PI))), 2.0)) / y_45_scale) / y_45_scale)) - Math.sqrt((Math.pow(((((Math.pow((a * Math.sin(((angle / 180.0) * Math.PI))), 2.0) + Math.pow((b * Math.cos(((angle / 180.0) * Math.PI))), 2.0)) / x_45_scale) / x_45_scale) - (((Math.pow((a * Math.cos(((angle / 180.0) * Math.PI))), 2.0) + Math.pow((b * Math.sin(((angle / 180.0) * Math.PI))), 2.0)) / y_45_scale) / y_45_scale)), 2.0) + Math.pow((((((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * Math.sin(((angle / 180.0) * Math.PI))) * Math.cos(((angle / 180.0) * Math.PI))) / x_45_scale) / y_45_scale), 2.0)))))) / ((4.0 * ((b * a) * (b * -a))) / Math.pow((x_45_scale * y_45_scale), 2.0));
}
public static double code(double a, double b, double angle, double x_45_scale, double y_45_scale) {
double tmp;
if (b <= -2.3e-113) {
tmp = 0.25 * Math.abs(((a * Math.sqrt(8.0)) * (Math.sqrt(2.0) * x_45_scale)));
} else if (b <= 2e+126) {
tmp = 0.0;
} else {
tmp = Math.abs((Math.sqrt(0.125) * (Math.sqrt(8.0) * (a * x_45_scale))));
}
return tmp;
}
def code(a, b, angle, x_45_scale, y_45_scale): return -math.sqrt((((2.0 * ((4.0 * ((b * a) * (b * -a))) / math.pow((x_45_scale * y_45_scale), 2.0))) * ((b * a) * (b * -a))) * (((((math.pow((a * math.sin(((angle / 180.0) * math.pi))), 2.0) + math.pow((b * math.cos(((angle / 180.0) * math.pi))), 2.0)) / x_45_scale) / x_45_scale) + (((math.pow((a * math.cos(((angle / 180.0) * math.pi))), 2.0) + math.pow((b * math.sin(((angle / 180.0) * math.pi))), 2.0)) / y_45_scale) / y_45_scale)) - math.sqrt((math.pow(((((math.pow((a * math.sin(((angle / 180.0) * math.pi))), 2.0) + math.pow((b * math.cos(((angle / 180.0) * math.pi))), 2.0)) / x_45_scale) / x_45_scale) - (((math.pow((a * math.cos(((angle / 180.0) * math.pi))), 2.0) + math.pow((b * math.sin(((angle / 180.0) * math.pi))), 2.0)) / y_45_scale) / y_45_scale)), 2.0) + math.pow((((((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * math.sin(((angle / 180.0) * math.pi))) * math.cos(((angle / 180.0) * math.pi))) / x_45_scale) / y_45_scale), 2.0)))))) / ((4.0 * ((b * a) * (b * -a))) / math.pow((x_45_scale * y_45_scale), 2.0))
def code(a, b, angle, x_45_scale, y_45_scale): tmp = 0 if b <= -2.3e-113: tmp = 0.25 * math.fabs(((a * math.sqrt(8.0)) * (math.sqrt(2.0) * x_45_scale))) elif b <= 2e+126: tmp = 0.0 else: tmp = math.fabs((math.sqrt(0.125) * (math.sqrt(8.0) * (a * x_45_scale)))) return tmp
function code(a, b, angle, x_45_scale, y_45_scale) return Float64(Float64(-sqrt(Float64(Float64(Float64(2.0 * Float64(Float64(4.0 * Float64(Float64(b * a) * Float64(b * Float64(-a)))) / (Float64(x_45_scale * y_45_scale) ^ 2.0))) * Float64(Float64(b * a) * Float64(b * Float64(-a)))) * Float64(Float64(Float64(Float64(Float64((Float64(a * sin(Float64(Float64(angle / 180.0) * pi))) ^ 2.0) + (Float64(b * cos(Float64(Float64(angle / 180.0) * pi))) ^ 2.0)) / x_45_scale) / x_45_scale) + Float64(Float64(Float64((Float64(a * cos(Float64(Float64(angle / 180.0) * pi))) ^ 2.0) + (Float64(b * sin(Float64(Float64(angle / 180.0) * pi))) ^ 2.0)) / y_45_scale) / y_45_scale)) - sqrt(Float64((Float64(Float64(Float64(Float64((Float64(a * sin(Float64(Float64(angle / 180.0) * pi))) ^ 2.0) + (Float64(b * cos(Float64(Float64(angle / 180.0) * pi))) ^ 2.0)) / x_45_scale) / x_45_scale) - Float64(Float64(Float64((Float64(a * cos(Float64(Float64(angle / 180.0) * pi))) ^ 2.0) + (Float64(b * sin(Float64(Float64(angle / 180.0) * pi))) ^ 2.0)) / y_45_scale) / y_45_scale)) ^ 2.0) + (Float64(Float64(Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * sin(Float64(Float64(angle / 180.0) * pi))) * cos(Float64(Float64(angle / 180.0) * pi))) / x_45_scale) / y_45_scale) ^ 2.0))))))) / Float64(Float64(4.0 * Float64(Float64(b * a) * Float64(b * Float64(-a)))) / (Float64(x_45_scale * y_45_scale) ^ 2.0))) end
function code(a, b, angle, x_45_scale, y_45_scale) tmp = 0.0 if (b <= -2.3e-113) tmp = Float64(0.25 * abs(Float64(Float64(a * sqrt(8.0)) * Float64(sqrt(2.0) * x_45_scale)))); elseif (b <= 2e+126) tmp = 0.0; else tmp = abs(Float64(sqrt(0.125) * Float64(sqrt(8.0) * Float64(a * x_45_scale)))); end return tmp end
function tmp = code(a, b, angle, x_45_scale, y_45_scale) tmp = -sqrt((((2.0 * ((4.0 * ((b * a) * (b * -a))) / ((x_45_scale * y_45_scale) ^ 2.0))) * ((b * a) * (b * -a))) * (((((((a * sin(((angle / 180.0) * pi))) ^ 2.0) + ((b * cos(((angle / 180.0) * pi))) ^ 2.0)) / x_45_scale) / x_45_scale) + (((((a * cos(((angle / 180.0) * pi))) ^ 2.0) + ((b * sin(((angle / 180.0) * pi))) ^ 2.0)) / y_45_scale) / y_45_scale)) - sqrt(((((((((a * sin(((angle / 180.0) * pi))) ^ 2.0) + ((b * cos(((angle / 180.0) * pi))) ^ 2.0)) / x_45_scale) / x_45_scale) - (((((a * cos(((angle / 180.0) * pi))) ^ 2.0) + ((b * sin(((angle / 180.0) * pi))) ^ 2.0)) / y_45_scale) / y_45_scale)) ^ 2.0) + ((((((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * sin(((angle / 180.0) * pi))) * cos(((angle / 180.0) * pi))) / x_45_scale) / y_45_scale) ^ 2.0)))))) / ((4.0 * ((b * a) * (b * -a))) / ((x_45_scale * y_45_scale) ^ 2.0)); end
function tmp_2 = code(a, b, angle, x_45_scale, y_45_scale) tmp = 0.0; if (b <= -2.3e-113) tmp = 0.25 * abs(((a * sqrt(8.0)) * (sqrt(2.0) * x_45_scale))); elseif (b <= 2e+126) tmp = 0.0; else tmp = abs((sqrt(0.125) * (sqrt(8.0) * (a * x_45_scale)))); end tmp_2 = tmp; end
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := N[((-N[Sqrt[N[(N[(N[(2.0 * N[(N[(4.0 * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(x$45$scale * y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(N[Power[N[(a * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision] + N[(N[(N[(N[Power[N[(a * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision] - N[Sqrt[N[(N[Power[N[(N[(N[(N[(N[Power[N[(a * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / x$45$scale), $MachinePrecision] - N[(N[(N[(N[Power[N[(a * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / y$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(N[(N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / x$45$scale), $MachinePrecision] / y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]) / N[(N[(4.0 * N[(N[(b * a), $MachinePrecision] * N[(b * (-a)), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(x$45$scale * y$45$scale), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[a_, b_, angle_, x$45$scale_, y$45$scale_] := If[LessEqual[b, -2.3e-113], N[(0.25 * N[Abs[N[(N[(a * N[Sqrt[8.0], $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] * x$45$scale), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 2e+126], 0.0, N[Abs[N[(N[Sqrt[0.125], $MachinePrecision] * N[(N[Sqrt[8.0], $MachinePrecision] * N[(a * x$45$scale), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]
\frac{-\sqrt{\left(\left(2 \cdot \frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} + \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}\right)}}{\frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}}
\begin{array}{l}
\mathbf{if}\;b \leq -2.3 \cdot 10^{-113}:\\
\;\;\;\;0.25 \cdot \left|\left(a \cdot \sqrt{8}\right) \cdot \left(\sqrt{2} \cdot x-scale\right)\right|\\
\mathbf{elif}\;b \leq 2 \cdot 10^{+126}:\\
\;\;\;\;0\\
\mathbf{else}:\\
\;\;\;\;\left|\sqrt{0.125} \cdot \left(\sqrt{8} \cdot \left(a \cdot x-scale\right)\right)\right|\\
\end{array}
Results
if b < -2.30000000000000008e-113Initial program 0.1%
Simplified0.2%
[Start]0.1 | \[ \frac{-\sqrt{\left(\left(2 \cdot \frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} + \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}\right)}}{\frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}}
\] |
|---|
Taylor expanded in angle around 0 25.4%
Applied egg-rr37.8%
[Start]25.4 | \[ 0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)
\] |
|---|---|
add-sqr-sqrt [=>]23.9 | \[ 0.25 \cdot \color{blue}{\left(\sqrt{\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)} \cdot \sqrt{\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)}\right)}
\] |
sqrt-unprod [=>]30.5 | \[ 0.25 \cdot \color{blue}{\sqrt{\left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right) \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}
\] |
rem-sqrt-square [=>]37.8 | \[ 0.25 \cdot \color{blue}{\left|\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right|}
\] |
associate-*r* [=>]37.8 | \[ 0.25 \cdot \left|\color{blue}{\left(\sqrt{2} \cdot x-scale\right) \cdot \left(a \cdot \sqrt{8}\right)}\right|
\] |
*-commutative [=>]37.8 | \[ 0.25 \cdot \left|\color{blue}{\left(a \cdot \sqrt{8}\right) \cdot \left(\sqrt{2} \cdot x-scale\right)}\right|
\] |
if -2.30000000000000008e-113 < b < 1.99999999999999985e126Initial program 0.1%
Simplified0.2%
[Start]0.1 | \[ \frac{-\sqrt{\left(\left(2 \cdot \frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} + \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}\right)}}{\frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}}
\] |
|---|
Taylor expanded in angle around 0 19.6%
Applied egg-rr26.0%
[Start]19.6 | \[ 0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)
\] |
|---|---|
add-sqr-sqrt [=>]18.1 | \[ \color{blue}{\sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)} \cdot \sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}
\] |
sqrt-unprod [=>]25.9 | \[ \color{blue}{\sqrt{\left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right) \cdot \left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right)}}
\] |
associate-*r* [=>]25.9 | \[ \sqrt{\left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right) \cdot \color{blue}{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}
\] |
associate-*r* [=>]25.9 | \[ \sqrt{\color{blue}{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)} \cdot \left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}
\] |
*-commutative [=>]25.9 | \[ \sqrt{\color{blue}{\left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(0.25 \cdot \sqrt{2}\right)\right)} \cdot \left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}
\] |
*-commutative [=>]25.9 | \[ \sqrt{\left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(0.25 \cdot \sqrt{2}\right)\right) \cdot \color{blue}{\left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(0.25 \cdot \sqrt{2}\right)\right)}}
\] |
swap-sqr [=>]25.9 | \[ \sqrt{\color{blue}{\left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right) \cdot \left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(0.25 \cdot \sqrt{2}\right)\right)}}
\] |
Simplified26.0%
[Start]26.0 | \[ \sqrt{\left(8 \cdot {\left(a \cdot x-scale\right)}^{2}\right) \cdot 0.125}
\] |
|---|---|
*-commutative [=>]26.0 | \[ \sqrt{\color{blue}{0.125 \cdot \left(8 \cdot {\left(a \cdot x-scale\right)}^{2}\right)}}
\] |
associate-*r* [=>]26.0 | \[ \sqrt{\color{blue}{\left(0.125 \cdot 8\right) \cdot {\left(a \cdot x-scale\right)}^{2}}}
\] |
metadata-eval [=>]26.0 | \[ \sqrt{\color{blue}{1} \cdot {\left(a \cdot x-scale\right)}^{2}}
\] |
*-lft-identity [=>]26.0 | \[ \sqrt{\color{blue}{{\left(a \cdot x-scale\right)}^{2}}}
\] |
*-commutative [=>]26.0 | \[ \sqrt{{\color{blue}{\left(x-scale \cdot a\right)}}^{2}}
\] |
Applied egg-rr29.3%
[Start]26.0 | \[ \sqrt{{\left(x-scale \cdot a\right)}^{2}}
\] |
|---|---|
sqrt-pow1 [=>]19.7 | \[ \color{blue}{{\left(x-scale \cdot a\right)}^{\left(\frac{2}{2}\right)}}
\] |
metadata-eval [=>]19.7 | \[ {\left(x-scale \cdot a\right)}^{\color{blue}{1}}
\] |
pow1 [<=]19.7 | \[ \color{blue}{x-scale \cdot a}
\] |
expm1-log1p-u [=>]19.3 | \[ \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(x-scale \cdot a\right)\right)}
\] |
expm1-udef [=>]28.9 | \[ \color{blue}{e^{\mathsf{log1p}\left(x-scale \cdot a\right)} - 1}
\] |
log1p-udef [=>]28.9 | \[ e^{\color{blue}{\log \left(1 + x-scale \cdot a\right)}} - 1
\] |
add-exp-log [<=]29.3 | \[ \color{blue}{\left(1 + x-scale \cdot a\right)} - 1
\] |
Taylor expanded in x-scale around 0 43.3%
if 1.99999999999999985e126 < b Initial program 0.0%
Simplified0.0%
[Start]0.0 | \[ \frac{-\sqrt{\left(\left(2 \cdot \frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}\right) \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)\right) \cdot \left(\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} + \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right) - \sqrt{{\left(\frac{\frac{{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{x-scale}}{x-scale} - \frac{\frac{{\left(a \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}}{y-scale}}{y-scale}\right)}^{2} + {\left(\frac{\frac{\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right) \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)}{x-scale}}{y-scale}\right)}^{2}}\right)}}{\frac{4 \cdot \left(\left(b \cdot a\right) \cdot \left(b \cdot \left(-a\right)\right)\right)}{{\left(x-scale \cdot y-scale\right)}^{2}}}
\] |
|---|
Taylor expanded in angle around 0 30.0%
Applied egg-rr43.7%
[Start]30.0 | \[ 0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)
\] |
|---|---|
add-sqr-sqrt [=>]28.7 | \[ \color{blue}{\sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)} \cdot \sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}
\] |
sqr-abs [<=]28.7 | \[ \color{blue}{\left|\sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right| \cdot \left|\sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|}
\] |
mul-fabs [=>]28.7 | \[ \color{blue}{\left|\sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)} \cdot \sqrt{0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|}
\] |
sqrt-unprod [=>]33.5 | \[ \left|\color{blue}{\sqrt{\left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right) \cdot \left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right)}}\right|
\] |
associate-*r* [=>]33.5 | \[ \left|\sqrt{\color{blue}{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)} \cdot \left(0.25 \cdot \left(\sqrt{2} \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)\right)}\right|
\] |
associate-*r* [=>]33.5 | \[ \left|\sqrt{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right) \cdot \color{blue}{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}\right|
\] |
swap-sqr [=>]33.4 | \[ \left|\sqrt{\color{blue}{\left(\left(0.25 \cdot \sqrt{2}\right) \cdot \left(0.25 \cdot \sqrt{2}\right)\right) \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}}\right|
\] |
swap-sqr [=>]33.4 | \[ \left|\sqrt{\color{blue}{\left(\left(0.25 \cdot 0.25\right) \cdot \left(\sqrt{2} \cdot \sqrt{2}\right)\right)} \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
metadata-eval [=>]33.4 | \[ \left|\sqrt{\left(\color{blue}{0.0625} \cdot \left(\sqrt{2} \cdot \sqrt{2}\right)\right) \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
add-sqr-sqrt [<=]33.5 | \[ \left|\sqrt{\left(0.0625 \cdot \color{blue}{2}\right) \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
metadata-eval [=>]33.5 | \[ \left|\sqrt{\color{blue}{0.125} \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
metadata-eval [<=]33.5 | \[ \left|\sqrt{\color{blue}{\sqrt{0.015625}} \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
metadata-eval [<=]33.5 | \[ \left|\sqrt{\sqrt{\color{blue}{0.0625 \cdot 0.25}} \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
metadata-eval [<=]33.5 | \[ \left|\sqrt{\sqrt{\color{blue}{\left(0.25 \cdot 0.25\right)} \cdot 0.25} \cdot \left(\left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right) \cdot \left(x-scale \cdot \left(a \cdot \sqrt{8}\right)\right)\right)}\right|
\] |
Final simplification41.5%
| Alternative 1 | |
|---|---|
| Accuracy | 41.5% |
| Cost | 19913 |
| Alternative 2 | |
|---|---|
| Accuracy | 41.4% |
| Cost | 19784 |
| Alternative 3 | |
|---|---|
| Accuracy | 41.4% |
| Cost | 19721 |
| Alternative 4 | |
|---|---|
| Accuracy | 36.4% |
| Cost | 13188 |
| Alternative 5 | |
|---|---|
| Accuracy | 36.2% |
| Cost | 6980 |
| Alternative 6 | |
|---|---|
| Accuracy | 35.2% |
| Cost | 456 |
| Alternative 7 | |
|---|---|
| Accuracy | 23.2% |
| Cost | 192 |
herbie shell --seed 2023137
(FPCore (a b angle x-scale y-scale)
:name "b from scale-rotated-ellipse"
:precision binary64
(/ (- (sqrt (* (* (* 2.0 (/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0))) (* (* b a) (* b (- a)))) (- (+ (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale) (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale)) (sqrt (+ (pow (- (/ (/ (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)) x-scale) x-scale) (/ (/ (+ (pow (* a (cos (* (/ angle 180.0) PI))) 2.0) (pow (* b (sin (* (/ angle 180.0) PI))) 2.0)) y-scale) y-scale)) 2.0) (pow (/ (/ (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (/ angle 180.0) PI))) (cos (* (/ angle 180.0) PI))) x-scale) y-scale) 2.0))))))) (/ (* 4.0 (* (* b a) (* b (- a)))) (pow (* x-scale y-scale) 2.0))))