
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* PI (/ angle 180.0)))) (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin t_0)) (cos t_0))))
double code(double a, double b, double angle) {
double t_0 = ((double) M_PI) * (angle / 180.0);
return ((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * sin(t_0)) * cos(t_0);
}
public static double code(double a, double b, double angle) {
double t_0 = Math.PI * (angle / 180.0);
return ((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * Math.sin(t_0)) * Math.cos(t_0);
}
def code(a, b, angle): t_0 = math.pi * (angle / 180.0) return ((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * math.sin(t_0)) * math.cos(t_0)
function code(a, b, angle) t_0 = Float64(pi * Float64(angle / 180.0)) return Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * sin(t_0)) * cos(t_0)) end
function tmp = code(a, b, angle) t_0 = pi * (angle / 180.0); tmp = ((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * sin(t_0)) * cos(t_0); end
code[a_, b_, angle_] := Block[{t$95$0 = N[(Pi * N[(angle / 180.0), $MachinePrecision]), $MachinePrecision]}, N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision] * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \pi \cdot \frac{angle}{180}\\
\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0
\end{array}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 18 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* PI (/ angle 180.0)))) (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin t_0)) (cos t_0))))
double code(double a, double b, double angle) {
double t_0 = ((double) M_PI) * (angle / 180.0);
return ((2.0 * (pow(b, 2.0) - pow(a, 2.0))) * sin(t_0)) * cos(t_0);
}
public static double code(double a, double b, double angle) {
double t_0 = Math.PI * (angle / 180.0);
return ((2.0 * (Math.pow(b, 2.0) - Math.pow(a, 2.0))) * Math.sin(t_0)) * Math.cos(t_0);
}
def code(a, b, angle): t_0 = math.pi * (angle / 180.0) return ((2.0 * (math.pow(b, 2.0) - math.pow(a, 2.0))) * math.sin(t_0)) * math.cos(t_0)
function code(a, b, angle) t_0 = Float64(pi * Float64(angle / 180.0)) return Float64(Float64(Float64(2.0 * Float64((b ^ 2.0) - (a ^ 2.0))) * sin(t_0)) * cos(t_0)) end
function tmp = code(a, b, angle) t_0 = pi * (angle / 180.0); tmp = ((2.0 * ((b ^ 2.0) - (a ^ 2.0))) * sin(t_0)) * cos(t_0); end
code[a_, b_, angle_] := Block[{t$95$0 = N[(Pi * N[(angle / 180.0), $MachinePrecision]), $MachinePrecision]}, N[(N[(N[(2.0 * N[(N[Power[b, 2.0], $MachinePrecision] - N[Power[a, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision] * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \pi \cdot \frac{angle}{180}\\
\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0
\end{array}
\end{array}
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (cbrt (pow PI 1.5)))
(t_1 (/ PI (/ 180.0 angle)))
(t_2 (* (* PI angle) 0.005555555555555556)))
(if (<= a_m 1.4e+14)
(*
(* (+ a_m b_m) (* (- b_m a_m) (sin (/ (/ PI 180.0) (/ 1.0 angle)))))
(* 2.0 (cos t_1)))
(if (<= a_m 2.2e+224)
(*
(* (+ a_m b_m) (* (- b_m a_m) (sin t_1)))
(* 2.0 (cos (/ (* t_0 t_0) (/ 180.0 angle)))))
(/ (* (* a_m -2.0) (* (cos t_2) (sin t_2))) (/ 1.0 (+ a_m b_m)))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double t_0 = cbrt(pow(((double) M_PI), 1.5));
double t_1 = ((double) M_PI) / (180.0 / angle);
double t_2 = (((double) M_PI) * angle) * 0.005555555555555556;
double tmp;
if (a_m <= 1.4e+14) {
tmp = ((a_m + b_m) * ((b_m - a_m) * sin(((((double) M_PI) / 180.0) / (1.0 / angle))))) * (2.0 * cos(t_1));
} else if (a_m <= 2.2e+224) {
tmp = ((a_m + b_m) * ((b_m - a_m) * sin(t_1))) * (2.0 * cos(((t_0 * t_0) / (180.0 / angle))));
} else {
tmp = ((a_m * -2.0) * (cos(t_2) * sin(t_2))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double t_0 = Math.cbrt(Math.pow(Math.PI, 1.5));
double t_1 = Math.PI / (180.0 / angle);
double t_2 = (Math.PI * angle) * 0.005555555555555556;
double tmp;
if (a_m <= 1.4e+14) {
tmp = ((a_m + b_m) * ((b_m - a_m) * Math.sin(((Math.PI / 180.0) / (1.0 / angle))))) * (2.0 * Math.cos(t_1));
} else if (a_m <= 2.2e+224) {
tmp = ((a_m + b_m) * ((b_m - a_m) * Math.sin(t_1))) * (2.0 * Math.cos(((t_0 * t_0) / (180.0 / angle))));
} else {
tmp = ((a_m * -2.0) * (Math.cos(t_2) * Math.sin(t_2))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) t_0 = cbrt((pi ^ 1.5)) t_1 = Float64(pi / Float64(180.0 / angle)) t_2 = Float64(Float64(pi * angle) * 0.005555555555555556) tmp = 0.0 if (a_m <= 1.4e+14) tmp = Float64(Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(Float64(Float64(pi / 180.0) / Float64(1.0 / angle))))) * Float64(2.0 * cos(t_1))); elseif (a_m <= 2.2e+224) tmp = Float64(Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(t_1))) * Float64(2.0 * cos(Float64(Float64(t_0 * t_0) / Float64(180.0 / angle))))); else tmp = Float64(Float64(Float64(a_m * -2.0) * Float64(cos(t_2) * sin(t_2))) / Float64(1.0 / Float64(a_m + b_m))); end return tmp end
a_m = N[Abs[a], $MachinePrecision]
b_m = N[Abs[b], $MachinePrecision]
code[a$95$m_, b$95$m_, angle_] := Block[{t$95$0 = N[Power[N[Power[Pi, 1.5], $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$1 = N[(Pi / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(Pi * angle), $MachinePrecision] * 0.005555555555555556), $MachinePrecision]}, If[LessEqual[a$95$m, 1.4e+14], N[(N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(N[(Pi / 180.0), $MachinePrecision] / N[(1.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[Cos[t$95$1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[a$95$m, 2.2e+224], N[(N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[t$95$1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[Cos[N[(N[(t$95$0 * t$95$0), $MachinePrecision] / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(a$95$m * -2.0), $MachinePrecision] * N[(N[Cos[t$95$2], $MachinePrecision] * N[Sin[t$95$2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 / N[(a$95$m + b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
t_0 := \sqrt[3]{{\pi}^{1.5}}\\
t_1 := \frac{\pi}{\frac{180}{angle}}\\
t_2 := \left(\pi \cdot angle\right) \cdot 0.005555555555555556\\
\mathbf{if}\;a\_m \leq 1.4 \cdot 10^{+14}:\\
\;\;\;\;\left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\frac{\frac{\pi}{180}}{\frac{1}{angle}}\right)\right)\right) \cdot \left(2 \cdot \cos t\_1\right)\\
\mathbf{elif}\;a\_m \leq 2.2 \cdot 10^{+224}:\\
\;\;\;\;\left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin t\_1\right)\right) \cdot \left(2 \cdot \cos \left(\frac{t\_0 \cdot t\_0}{\frac{180}{angle}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(a\_m \cdot -2\right) \cdot \left(\cos t\_2 \cdot \sin t\_2\right)}{\frac{1}{a\_m + b\_m}}\\
\end{array}
\end{array}
if a < 1.4e14Initial program 59.2%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.3%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr69.7%
div-invN/A
associate-/r*N/A
div-invN/A
metadata-evalN/A
/-lowering-/.f64N/A
metadata-evalN/A
div-invN/A
/-lowering-/.f64N/A
PI-lowering-PI.f64N/A
/-lowering-/.f6468.9%
Applied egg-rr68.9%
if 1.4e14 < a < 2.2e224Initial program 72.9%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified73.7%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr78.7%
add-cbrt-cubeN/A
add-sqr-sqrtN/A
unswap-sqrN/A
cbrt-prodN/A
*-lowering-*.f64N/A
cbrt-lowering-cbrt.f64N/A
pow1N/A
pow1/2N/A
pow-prod-upN/A
metadata-evalN/A
metadata-evalN/A
pow-lowering-pow.f64N/A
PI-lowering-PI.f64N/A
metadata-evalN/A
cbrt-lowering-cbrt.f64N/A
pow1N/A
pow1/2N/A
pow-prod-upN/A
metadata-evalN/A
metadata-evalN/A
pow-lowering-pow.f64N/A
Applied egg-rr79.4%
if 2.2e224 < a Initial program 56.2%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.8%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr94.4%
associate-*l*N/A
flip-+N/A
associate-*l/N/A
flip--N/A
div-invN/A
times-fracN/A
Applied egg-rr94.4%
*-lft-identityN/A
/-lowering-/.f64N/A
Applied egg-rr94.4%
Taylor expanded in b around 0
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6494.4%
Simplified94.4%
Final simplification72.2%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (pow (exp -1.0) (/ (log (/ 180.0 (* PI angle))) 2.0)))
(t_1 (cbrt (pow PI 1.5)))
(t_2 (/ 1.0 (+ a_m b_m))))
(if (<= a_m 3.3e+250)
(/
(*
(* (sin (/ (* PI angle) 180.0)) (* (- b_m a_m) 2.0))
(cos (/ (* angle (* t_1 t_1)) 180.0)))
t_2)
(/
(*
(* 2.0 (* (- b_m a_m) (sin (/ PI (/ 180.0 angle)))))
(cos (* t_0 t_0)))
t_2))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double t_0 = pow(exp(-1.0), (log((180.0 / (((double) M_PI) * angle))) / 2.0));
double t_1 = cbrt(pow(((double) M_PI), 1.5));
double t_2 = 1.0 / (a_m + b_m);
double tmp;
if (a_m <= 3.3e+250) {
tmp = ((sin(((((double) M_PI) * angle) / 180.0)) * ((b_m - a_m) * 2.0)) * cos(((angle * (t_1 * t_1)) / 180.0))) / t_2;
} else {
tmp = ((2.0 * ((b_m - a_m) * sin((((double) M_PI) / (180.0 / angle))))) * cos((t_0 * t_0))) / t_2;
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double t_0 = Math.pow(Math.exp(-1.0), (Math.log((180.0 / (Math.PI * angle))) / 2.0));
double t_1 = Math.cbrt(Math.pow(Math.PI, 1.5));
double t_2 = 1.0 / (a_m + b_m);
double tmp;
if (a_m <= 3.3e+250) {
tmp = ((Math.sin(((Math.PI * angle) / 180.0)) * ((b_m - a_m) * 2.0)) * Math.cos(((angle * (t_1 * t_1)) / 180.0))) / t_2;
} else {
tmp = ((2.0 * ((b_m - a_m) * Math.sin((Math.PI / (180.0 / angle))))) * Math.cos((t_0 * t_0))) / t_2;
}
return tmp;
}
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) t_0 = exp(-1.0) ^ Float64(log(Float64(180.0 / Float64(pi * angle))) / 2.0) t_1 = cbrt((pi ^ 1.5)) t_2 = Float64(1.0 / Float64(a_m + b_m)) tmp = 0.0 if (a_m <= 3.3e+250) tmp = Float64(Float64(Float64(sin(Float64(Float64(pi * angle) / 180.0)) * Float64(Float64(b_m - a_m) * 2.0)) * cos(Float64(Float64(angle * Float64(t_1 * t_1)) / 180.0))) / t_2); else tmp = Float64(Float64(Float64(2.0 * Float64(Float64(b_m - a_m) * sin(Float64(pi / Float64(180.0 / angle))))) * cos(Float64(t_0 * t_0))) / t_2); end return tmp end
a_m = N[Abs[a], $MachinePrecision]
b_m = N[Abs[b], $MachinePrecision]
code[a$95$m_, b$95$m_, angle_] := Block[{t$95$0 = N[Power[N[Exp[-1.0], $MachinePrecision], N[(N[Log[N[(180.0 / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$1 = N[Power[N[Power[Pi, 1.5], $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$2 = N[(1.0 / N[(a$95$m + b$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a$95$m, 3.3e+250], N[(N[(N[(N[Sin[N[(N[(Pi * angle), $MachinePrecision] / 180.0), $MachinePrecision]], $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[Cos[N[(N[(angle * N[(t$95$1 * t$95$1), $MachinePrecision]), $MachinePrecision] / 180.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision], N[(N[(N[(2.0 * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(Pi / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Cos[N[(t$95$0 * t$95$0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision]]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
t_0 := {\left(e^{-1}\right)}^{\left(\frac{\log \left(\frac{180}{\pi \cdot angle}\right)}{2}\right)}\\
t_1 := \sqrt[3]{{\pi}^{1.5}}\\
t_2 := \frac{1}{a\_m + b\_m}\\
\mathbf{if}\;a\_m \leq 3.3 \cdot 10^{+250}:\\
\;\;\;\;\frac{\left(\sin \left(\frac{\pi \cdot angle}{180}\right) \cdot \left(\left(b\_m - a\_m\right) \cdot 2\right)\right) \cdot \cos \left(\frac{angle \cdot \left(t\_1 \cdot t\_1\right)}{180}\right)}{t\_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(2 \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\frac{\pi}{\frac{180}{angle}}\right)\right)\right) \cdot \cos \left(t\_0 \cdot t\_0\right)}{t\_2}\\
\end{array}
\end{array}
if a < 3.30000000000000006e250Initial program 60.8%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified62.6%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr71.5%
associate-*l*N/A
flip-+N/A
associate-*l/N/A
flip--N/A
div-invN/A
times-fracN/A
Applied egg-rr71.5%
*-lft-identityN/A
/-lowering-/.f64N/A
Applied egg-rr71.5%
add-cbrt-cubeN/A
add-sqr-sqrtN/A
unswap-sqrN/A
cbrt-prodN/A
*-lowering-*.f64N/A
cbrt-lowering-cbrt.f64N/A
pow1N/A
pow1/2N/A
pow-prod-upN/A
metadata-evalN/A
metadata-evalN/A
pow-lowering-pow.f64N/A
PI-lowering-PI.f64N/A
metadata-evalN/A
cbrt-lowering-cbrt.f64N/A
pow1N/A
pow1/2N/A
pow-prod-upN/A
metadata-evalN/A
metadata-evalN/A
pow-lowering-pow.f64N/A
Applied egg-rr71.5%
if 3.30000000000000006e250 < a Initial program 64.3%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified71.4%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr92.9%
associate-*l*N/A
flip-+N/A
associate-*l/N/A
flip--N/A
div-invN/A
times-fracN/A
Applied egg-rr92.9%
clear-numN/A
inv-powN/A
exp-to-powN/A
*-commutativeN/A
exp-prodN/A
sqr-powN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
exp-lowering-exp.f64N/A
/-lowering-/.f64N/A
log-lowering-log.f64N/A
associate-/l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
pow-lowering-pow.f64N/A
exp-lowering-exp.f64N/A
Applied egg-rr50.0%
Final simplification70.3%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= b_m 1e+215)
(* (+ a_m b_m) (* (- b_m a_m) (sin (* (* PI angle) 0.011111111111111112))))
(*
(* (+ a_m b_m) (* (- b_m a_m) (sin (/ (/ PI 180.0) (/ 1.0 angle)))))
(* 2.0 (cos (pow (exp -1.0) (log (/ 180.0 (* PI angle)))))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (b_m <= 1e+215) {
tmp = (a_m + b_m) * ((b_m - a_m) * sin(((((double) M_PI) * angle) * 0.011111111111111112)));
} else {
tmp = ((a_m + b_m) * ((b_m - a_m) * sin(((((double) M_PI) / 180.0) / (1.0 / angle))))) * (2.0 * cos(pow(exp(-1.0), log((180.0 / (((double) M_PI) * angle))))));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (b_m <= 1e+215) {
tmp = (a_m + b_m) * ((b_m - a_m) * Math.sin(((Math.PI * angle) * 0.011111111111111112)));
} else {
tmp = ((a_m + b_m) * ((b_m - a_m) * Math.sin(((Math.PI / 180.0) / (1.0 / angle))))) * (2.0 * Math.cos(Math.pow(Math.exp(-1.0), Math.log((180.0 / (Math.PI * angle))))));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if b_m <= 1e+215: tmp = (a_m + b_m) * ((b_m - a_m) * math.sin(((math.pi * angle) * 0.011111111111111112))) else: tmp = ((a_m + b_m) * ((b_m - a_m) * math.sin(((math.pi / 180.0) / (1.0 / angle))))) * (2.0 * math.cos(math.pow(math.exp(-1.0), math.log((180.0 / (math.pi * angle)))))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (b_m <= 1e+215) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(Float64(Float64(pi * angle) * 0.011111111111111112)))); else tmp = Float64(Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(Float64(Float64(pi / 180.0) / Float64(1.0 / angle))))) * Float64(2.0 * cos((exp(-1.0) ^ log(Float64(180.0 / Float64(pi * angle))))))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (b_m <= 1e+215) tmp = (a_m + b_m) * ((b_m - a_m) * sin(((pi * angle) * 0.011111111111111112))); else tmp = ((a_m + b_m) * ((b_m - a_m) * sin(((pi / 180.0) / (1.0 / angle))))) * (2.0 * cos((exp(-1.0) ^ log((180.0 / (pi * angle)))))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[b$95$m, 1e+215], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(N[(Pi / 180.0), $MachinePrecision] / N[(1.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[Cos[N[Power[N[Exp[-1.0], $MachinePrecision], N[Log[N[(180.0 / N[(Pi * angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;b\_m \leq 10^{+215}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\frac{\frac{\pi}{180}}{\frac{1}{angle}}\right)\right)\right) \cdot \left(2 \cdot \cos \left({\left(e^{-1}\right)}^{\log \left(\frac{180}{\pi \cdot angle}\right)}\right)\right)\\
\end{array}
\end{array}
if b < 9.99999999999999907e214Initial program 62.0%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified63.4%
associate-*r/N/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
Applied egg-rr72.6%
if 9.99999999999999907e214 < b Initial program 43.4%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified57.7%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr71.4%
div-invN/A
associate-/r*N/A
div-invN/A
metadata-evalN/A
/-lowering-/.f64N/A
metadata-evalN/A
div-invN/A
/-lowering-/.f64N/A
PI-lowering-PI.f64N/A
/-lowering-/.f6471.4%
Applied egg-rr71.4%
clear-numN/A
inv-powN/A
exp-to-powN/A
*-commutativeN/A
exp-prodN/A
pow-lowering-pow.f64N/A
exp-lowering-exp.f64N/A
log-lowering-log.f64N/A
associate-/l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6435.7%
Applied egg-rr35.7%
Final simplification70.6%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* 2.0 (cos (/ PI (/ 180.0 angle))))))
(if (<= (pow a_m 2.0) 5e+293)
(*
(* (+ a_m b_m) (* (- b_m a_m) (sin (/ (/ PI 180.0) (/ 1.0 angle)))))
t_0)
(*
t_0
(*
(+ a_m b_m)
(* (sin (* (* PI angle) 0.005555555555555556)) (- 0.0 a_m)))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double t_0 = 2.0 * cos((((double) M_PI) / (180.0 / angle)));
double tmp;
if (pow(a_m, 2.0) <= 5e+293) {
tmp = ((a_m + b_m) * ((b_m - a_m) * sin(((((double) M_PI) / 180.0) / (1.0 / angle))))) * t_0;
} else {
tmp = t_0 * ((a_m + b_m) * (sin(((((double) M_PI) * angle) * 0.005555555555555556)) * (0.0 - a_m)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double t_0 = 2.0 * Math.cos((Math.PI / (180.0 / angle)));
double tmp;
if (Math.pow(a_m, 2.0) <= 5e+293) {
tmp = ((a_m + b_m) * ((b_m - a_m) * Math.sin(((Math.PI / 180.0) / (1.0 / angle))))) * t_0;
} else {
tmp = t_0 * ((a_m + b_m) * (Math.sin(((Math.PI * angle) * 0.005555555555555556)) * (0.0 - a_m)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): t_0 = 2.0 * math.cos((math.pi / (180.0 / angle))) tmp = 0 if math.pow(a_m, 2.0) <= 5e+293: tmp = ((a_m + b_m) * ((b_m - a_m) * math.sin(((math.pi / 180.0) / (1.0 / angle))))) * t_0 else: tmp = t_0 * ((a_m + b_m) * (math.sin(((math.pi * angle) * 0.005555555555555556)) * (0.0 - a_m))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) t_0 = Float64(2.0 * cos(Float64(pi / Float64(180.0 / angle)))) tmp = 0.0 if ((a_m ^ 2.0) <= 5e+293) tmp = Float64(Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(Float64(Float64(pi / 180.0) / Float64(1.0 / angle))))) * t_0); else tmp = Float64(t_0 * Float64(Float64(a_m + b_m) * Float64(sin(Float64(Float64(pi * angle) * 0.005555555555555556)) * Float64(0.0 - a_m)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) t_0 = 2.0 * cos((pi / (180.0 / angle))); tmp = 0.0; if ((a_m ^ 2.0) <= 5e+293) tmp = ((a_m + b_m) * ((b_m - a_m) * sin(((pi / 180.0) / (1.0 / angle))))) * t_0; else tmp = t_0 * ((a_m + b_m) * (sin(((pi * angle) * 0.005555555555555556)) * (0.0 - a_m))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
b_m = N[Abs[b], $MachinePrecision]
code[a$95$m_, b$95$m_, angle_] := Block[{t$95$0 = N[(2.0 * N[Cos[N[(Pi / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[Power[a$95$m, 2.0], $MachinePrecision], 5e+293], N[(N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(N[(Pi / 180.0), $MachinePrecision] / N[(1.0 / angle), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$0), $MachinePrecision], N[(t$95$0 * N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[Sin[N[(N[(Pi * angle), $MachinePrecision] * 0.005555555555555556), $MachinePrecision]], $MachinePrecision] * N[(0.0 - a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
t_0 := 2 \cdot \cos \left(\frac{\pi}{\frac{180}{angle}}\right)\\
\mathbf{if}\;{a\_m}^{2} \leq 5 \cdot 10^{+293}:\\
\;\;\;\;\left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\frac{\frac{\pi}{180}}{\frac{1}{angle}}\right)\right)\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \left(\left(a\_m + b\_m\right) \cdot \left(\sin \left(\left(\pi \cdot angle\right) \cdot 0.005555555555555556\right) \cdot \left(0 - a\_m\right)\right)\right)\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 5.00000000000000033e293Initial program 64.2%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified66.1%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr70.4%
div-invN/A
associate-/r*N/A
div-invN/A
metadata-evalN/A
/-lowering-/.f64N/A
metadata-evalN/A
div-invN/A
/-lowering-/.f64N/A
PI-lowering-PI.f64N/A
/-lowering-/.f6471.2%
Applied egg-rr71.2%
if 5.00000000000000033e293 < (pow.f64 a #s(literal 2 binary64)) Initial program 51.8%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified54.7%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr79.1%
Taylor expanded in b around 0
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6482.0%
Simplified82.0%
Final simplification74.0%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (/ PI (/ 180.0 angle)))
(t_1 (* (* PI angle) 0.005555555555555556)))
(if (<= a_m 1.82e+226)
(* (* 2.0 (cos t_0)) (* (+ a_m b_m) (* (- b_m a_m) (sin t_0))))
(/ (* (* a_m -2.0) (* (cos t_1) (sin t_1))) (/ 1.0 (+ a_m b_m))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double t_0 = ((double) M_PI) / (180.0 / angle);
double t_1 = (((double) M_PI) * angle) * 0.005555555555555556;
double tmp;
if (a_m <= 1.82e+226) {
tmp = (2.0 * cos(t_0)) * ((a_m + b_m) * ((b_m - a_m) * sin(t_0)));
} else {
tmp = ((a_m * -2.0) * (cos(t_1) * sin(t_1))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double t_0 = Math.PI / (180.0 / angle);
double t_1 = (Math.PI * angle) * 0.005555555555555556;
double tmp;
if (a_m <= 1.82e+226) {
tmp = (2.0 * Math.cos(t_0)) * ((a_m + b_m) * ((b_m - a_m) * Math.sin(t_0)));
} else {
tmp = ((a_m * -2.0) * (Math.cos(t_1) * Math.sin(t_1))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): t_0 = math.pi / (180.0 / angle) t_1 = (math.pi * angle) * 0.005555555555555556 tmp = 0 if a_m <= 1.82e+226: tmp = (2.0 * math.cos(t_0)) * ((a_m + b_m) * ((b_m - a_m) * math.sin(t_0))) else: tmp = ((a_m * -2.0) * (math.cos(t_1) * math.sin(t_1))) / (1.0 / (a_m + b_m)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) t_0 = Float64(pi / Float64(180.0 / angle)) t_1 = Float64(Float64(pi * angle) * 0.005555555555555556) tmp = 0.0 if (a_m <= 1.82e+226) tmp = Float64(Float64(2.0 * cos(t_0)) * Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(t_0)))); else tmp = Float64(Float64(Float64(a_m * -2.0) * Float64(cos(t_1) * sin(t_1))) / Float64(1.0 / Float64(a_m + b_m))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) t_0 = pi / (180.0 / angle); t_1 = (pi * angle) * 0.005555555555555556; tmp = 0.0; if (a_m <= 1.82e+226) tmp = (2.0 * cos(t_0)) * ((a_m + b_m) * ((b_m - a_m) * sin(t_0))); else tmp = ((a_m * -2.0) * (cos(t_1) * sin(t_1))) / (1.0 / (a_m + b_m)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
b_m = N[Abs[b], $MachinePrecision]
code[a$95$m_, b$95$m_, angle_] := Block[{t$95$0 = N[(Pi / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(Pi * angle), $MachinePrecision] * 0.005555555555555556), $MachinePrecision]}, If[LessEqual[a$95$m, 1.82e+226], N[(N[(2.0 * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision] * N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(a$95$m * -2.0), $MachinePrecision] * N[(N[Cos[t$95$1], $MachinePrecision] * N[Sin[t$95$1], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 / N[(a$95$m + b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
t_0 := \frac{\pi}{\frac{180}{angle}}\\
t_1 := \left(\pi \cdot angle\right) \cdot 0.005555555555555556\\
\mathbf{if}\;a\_m \leq 1.82 \cdot 10^{+226}:\\
\;\;\;\;\left(2 \cdot \cos t\_0\right) \cdot \left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(a\_m \cdot -2\right) \cdot \left(\cos t\_1 \cdot \sin t\_1\right)}{\frac{1}{a\_m + b\_m}}\\
\end{array}
\end{array}
if a < 1.8200000000000001e226Initial program 61.3%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified63.2%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr71.1%
if 1.8200000000000001e226 < a Initial program 56.2%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.8%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr94.4%
associate-*l*N/A
flip-+N/A
associate-*l/N/A
flip--N/A
div-invN/A
times-fracN/A
Applied egg-rr94.4%
*-lft-identityN/A
/-lowering-/.f64N/A
Applied egg-rr94.4%
Taylor expanded in b around 0
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6494.4%
Simplified94.4%
Final simplification72.7%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (/ PI (/ 180.0 angle))) (t_1 (* 2.0 (cos t_0))))
(if (<= a_m 3.1e+226)
(* t_1 (* (+ a_m b_m) (* (- b_m a_m) (sin t_0))))
(*
t_1
(*
(+ a_m b_m)
(* (sin (* (* PI angle) 0.005555555555555556)) (- 0.0 a_m)))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double t_0 = ((double) M_PI) / (180.0 / angle);
double t_1 = 2.0 * cos(t_0);
double tmp;
if (a_m <= 3.1e+226) {
tmp = t_1 * ((a_m + b_m) * ((b_m - a_m) * sin(t_0)));
} else {
tmp = t_1 * ((a_m + b_m) * (sin(((((double) M_PI) * angle) * 0.005555555555555556)) * (0.0 - a_m)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double t_0 = Math.PI / (180.0 / angle);
double t_1 = 2.0 * Math.cos(t_0);
double tmp;
if (a_m <= 3.1e+226) {
tmp = t_1 * ((a_m + b_m) * ((b_m - a_m) * Math.sin(t_0)));
} else {
tmp = t_1 * ((a_m + b_m) * (Math.sin(((Math.PI * angle) * 0.005555555555555556)) * (0.0 - a_m)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): t_0 = math.pi / (180.0 / angle) t_1 = 2.0 * math.cos(t_0) tmp = 0 if a_m <= 3.1e+226: tmp = t_1 * ((a_m + b_m) * ((b_m - a_m) * math.sin(t_0))) else: tmp = t_1 * ((a_m + b_m) * (math.sin(((math.pi * angle) * 0.005555555555555556)) * (0.0 - a_m))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) t_0 = Float64(pi / Float64(180.0 / angle)) t_1 = Float64(2.0 * cos(t_0)) tmp = 0.0 if (a_m <= 3.1e+226) tmp = Float64(t_1 * Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(t_0)))); else tmp = Float64(t_1 * Float64(Float64(a_m + b_m) * Float64(sin(Float64(Float64(pi * angle) * 0.005555555555555556)) * Float64(0.0 - a_m)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) t_0 = pi / (180.0 / angle); t_1 = 2.0 * cos(t_0); tmp = 0.0; if (a_m <= 3.1e+226) tmp = t_1 * ((a_m + b_m) * ((b_m - a_m) * sin(t_0))); else tmp = t_1 * ((a_m + b_m) * (sin(((pi * angle) * 0.005555555555555556)) * (0.0 - a_m))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision]
b_m = N[Abs[b], $MachinePrecision]
code[a$95$m_, b$95$m_, angle_] := Block[{t$95$0 = N[(Pi / N[(180.0 / angle), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(2.0 * N[Cos[t$95$0], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[a$95$m, 3.1e+226], N[(t$95$1 * N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[Sin[N[(N[(Pi * angle), $MachinePrecision] * 0.005555555555555556), $MachinePrecision]], $MachinePrecision] * N[(0.0 - a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
t_0 := \frac{\pi}{\frac{180}{angle}}\\
t_1 := 2 \cdot \cos t\_0\\
\mathbf{if}\;a\_m \leq 3.1 \cdot 10^{+226}:\\
\;\;\;\;t\_1 \cdot \left(\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \left(\left(a\_m + b\_m\right) \cdot \left(\sin \left(\left(\pi \cdot angle\right) \cdot 0.005555555555555556\right) \cdot \left(0 - a\_m\right)\right)\right)\\
\end{array}
\end{array}
if a < 3.09999999999999976e226Initial program 61.3%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified63.2%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr71.1%
if 3.09999999999999976e226 < a Initial program 56.2%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.8%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr94.4%
Taylor expanded in b around 0
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6494.4%
Simplified94.4%
Final simplification72.7%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 1e+205)
(* (+ a_m b_m) (* (- b_m a_m) (* (* PI angle) 0.011111111111111112)))
(if (<= (/ angle 180.0) 5e+261)
(*
(* (* angle 0.011111111111111112) (* PI (- (* b_m b_m) (* a_m a_m))))
(+ 1.0 (* (* -1.54320987654321e-5 (* angle angle)) (* PI PI))))
(* (* 2.0 (* b_m b_m)) (sin (* PI (/ angle 180.0)))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if ((angle / 180.0) <= 1e+205) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((((double) M_PI) * angle) * 0.011111111111111112));
} else if ((angle / 180.0) <= 5e+261) {
tmp = ((angle * 0.011111111111111112) * (((double) M_PI) * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (((double) M_PI) * ((double) M_PI))));
} else {
tmp = (2.0 * (b_m * b_m)) * sin((((double) M_PI) * (angle / 180.0)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if ((angle / 180.0) <= 1e+205) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((Math.PI * angle) * 0.011111111111111112));
} else if ((angle / 180.0) <= 5e+261) {
tmp = ((angle * 0.011111111111111112) * (Math.PI * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (Math.PI * Math.PI)));
} else {
tmp = (2.0 * (b_m * b_m)) * Math.sin((Math.PI * (angle / 180.0)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if (angle / 180.0) <= 1e+205: tmp = (a_m + b_m) * ((b_m - a_m) * ((math.pi * angle) * 0.011111111111111112)) elif (angle / 180.0) <= 5e+261: tmp = ((angle * 0.011111111111111112) * (math.pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (math.pi * math.pi))) else: tmp = (2.0 * (b_m * b_m)) * math.sin((math.pi * (angle / 180.0))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (Float64(angle / 180.0) <= 1e+205) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * Float64(Float64(pi * angle) * 0.011111111111111112))); elseif (Float64(angle / 180.0) <= 5e+261) tmp = Float64(Float64(Float64(angle * 0.011111111111111112) * Float64(pi * Float64(Float64(b_m * b_m) - Float64(a_m * a_m)))) * Float64(1.0 + Float64(Float64(-1.54320987654321e-5 * Float64(angle * angle)) * Float64(pi * pi)))); else tmp = Float64(Float64(2.0 * Float64(b_m * b_m)) * sin(Float64(pi * Float64(angle / 180.0)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if ((angle / 180.0) <= 1e+205) tmp = (a_m + b_m) * ((b_m - a_m) * ((pi * angle) * 0.011111111111111112)); elseif ((angle / 180.0) <= 5e+261) tmp = ((angle * 0.011111111111111112) * (pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (pi * pi))); else tmp = (2.0 * (b_m * b_m)) * sin((pi * (angle / 180.0))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[N[(angle / 180.0), $MachinePrecision], 1e+205], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(angle / 180.0), $MachinePrecision], 5e+261], N[(N[(N[(angle * 0.011111111111111112), $MachinePrecision] * N[(Pi * N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(N[(-1.54320987654321e-5 * N[(angle * angle), $MachinePrecision]), $MachinePrecision] * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * N[(b$95$m * b$95$m), $MachinePrecision]), $MachinePrecision] * N[Sin[N[(Pi * N[(angle / 180.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 10^{+205}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 5 \cdot 10^{+261}:\\
\;\;\;\;\left(\left(angle \cdot 0.011111111111111112\right) \cdot \left(\pi \cdot \left(b\_m \cdot b\_m - a\_m \cdot a\_m\right)\right)\right) \cdot \left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle \cdot angle\right)\right) \cdot \left(\pi \cdot \pi\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \left(b\_m \cdot b\_m\right)\right) \cdot \sin \left(\pi \cdot \frac{angle}{180}\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 1.00000000000000002e205Initial program 63.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified64.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.7%
Simplified61.7%
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6471.2%
Applied egg-rr71.2%
if 1.00000000000000002e205 < (/.f64 angle #s(literal 180 binary64)) < 5.0000000000000001e261Initial program 33.9%
pow2N/A
pow2N/A
flip--N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
clear-numN/A
flip--N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6433.9%
Applied egg-rr33.9%
Taylor expanded in angle around 0
associate-*r*N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
+-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
difference-of-squaresN/A
unpow2N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6419.4%
Simplified19.4%
Taylor expanded in angle around 0
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6426.8%
Simplified26.8%
if 5.0000000000000001e261 < (/.f64 angle #s(literal 180 binary64)) Initial program 24.3%
pow2N/A
pow2N/A
flip--N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
clear-numN/A
flip--N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6424.3%
Applied egg-rr24.3%
Taylor expanded in angle around 0
Simplified40.4%
Taylor expanded in b around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.2%
Simplified62.2%
Final simplification69.0%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= angle 2.2e+208)
(* (+ a_m b_m) (* (- b_m a_m) (* (* PI angle) 0.011111111111111112)))
(if (<= angle 5.2e+263)
(*
(* (* angle 0.011111111111111112) (* PI (- (* b_m b_m) (* a_m a_m))))
(+ 1.0 (* (* -1.54320987654321e-5 (* angle angle)) (* PI PI))))
(* (sin (* (* PI angle) 0.005555555555555556)) (* 2.0 (* b_m b_m))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((((double) M_PI) * angle) * 0.011111111111111112));
} else if (angle <= 5.2e+263) {
tmp = ((angle * 0.011111111111111112) * (((double) M_PI) * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (((double) M_PI) * ((double) M_PI))));
} else {
tmp = sin(((((double) M_PI) * angle) * 0.005555555555555556)) * (2.0 * (b_m * b_m));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((Math.PI * angle) * 0.011111111111111112));
} else if (angle <= 5.2e+263) {
tmp = ((angle * 0.011111111111111112) * (Math.PI * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (Math.PI * Math.PI)));
} else {
tmp = Math.sin(((Math.PI * angle) * 0.005555555555555556)) * (2.0 * (b_m * b_m));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if angle <= 2.2e+208: tmp = (a_m + b_m) * ((b_m - a_m) * ((math.pi * angle) * 0.011111111111111112)) elif angle <= 5.2e+263: tmp = ((angle * 0.011111111111111112) * (math.pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (math.pi * math.pi))) else: tmp = math.sin(((math.pi * angle) * 0.005555555555555556)) * (2.0 * (b_m * b_m)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (angle <= 2.2e+208) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * Float64(Float64(pi * angle) * 0.011111111111111112))); elseif (angle <= 5.2e+263) tmp = Float64(Float64(Float64(angle * 0.011111111111111112) * Float64(pi * Float64(Float64(b_m * b_m) - Float64(a_m * a_m)))) * Float64(1.0 + Float64(Float64(-1.54320987654321e-5 * Float64(angle * angle)) * Float64(pi * pi)))); else tmp = Float64(sin(Float64(Float64(pi * angle) * 0.005555555555555556)) * Float64(2.0 * Float64(b_m * b_m))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (angle <= 2.2e+208) tmp = (a_m + b_m) * ((b_m - a_m) * ((pi * angle) * 0.011111111111111112)); elseif (angle <= 5.2e+263) tmp = ((angle * 0.011111111111111112) * (pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (pi * pi))); else tmp = sin(((pi * angle) * 0.005555555555555556)) * (2.0 * (b_m * b_m)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[angle, 2.2e+208], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[angle, 5.2e+263], N[(N[(N[(angle * 0.011111111111111112), $MachinePrecision] * N[(Pi * N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(N[(-1.54320987654321e-5 * N[(angle * angle), $MachinePrecision]), $MachinePrecision] * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Sin[N[(N[(Pi * angle), $MachinePrecision] * 0.005555555555555556), $MachinePrecision]], $MachinePrecision] * N[(2.0 * N[(b$95$m * b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 2.2 \cdot 10^{+208}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{elif}\;angle \leq 5.2 \cdot 10^{+263}:\\
\;\;\;\;\left(\left(angle \cdot 0.011111111111111112\right) \cdot \left(\pi \cdot \left(b\_m \cdot b\_m - a\_m \cdot a\_m\right)\right)\right) \cdot \left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle \cdot angle\right)\right) \cdot \left(\pi \cdot \pi\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\left(\pi \cdot angle\right) \cdot 0.005555555555555556\right) \cdot \left(2 \cdot \left(b\_m \cdot b\_m\right)\right)\\
\end{array}
\end{array}
if angle < 2.20000000000000014e208Initial program 63.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified64.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.7%
Simplified61.7%
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6471.2%
Applied egg-rr71.2%
if 2.20000000000000014e208 < angle < 5.2000000000000004e263Initial program 33.9%
pow2N/A
pow2N/A
flip--N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
clear-numN/A
flip--N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6433.9%
Applied egg-rr33.9%
Taylor expanded in angle around 0
associate-*r*N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
+-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
difference-of-squaresN/A
unpow2N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6419.4%
Simplified19.4%
Taylor expanded in angle around 0
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6426.8%
Simplified26.8%
if 5.2000000000000004e263 < angle Initial program 24.3%
pow2N/A
pow2N/A
flip--N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
clear-numN/A
flip--N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6424.3%
Applied egg-rr24.3%
Taylor expanded in angle around 0
Simplified40.4%
Taylor expanded in b around inf
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6462.2%
Simplified62.2%
Final simplification69.0%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (* (+ a_m b_m) (* (- b_m a_m) (sin (* (* PI angle) 0.011111111111111112)))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
return (a_m + b_m) * ((b_m - a_m) * sin(((((double) M_PI) * angle) * 0.011111111111111112)));
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
return (a_m + b_m) * ((b_m - a_m) * Math.sin(((Math.PI * angle) * 0.011111111111111112)));
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): return (a_m + b_m) * ((b_m - a_m) * math.sin(((math.pi * angle) * 0.011111111111111112)))
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) return Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * sin(Float64(Float64(pi * angle) * 0.011111111111111112)))) end
a_m = abs(a); b_m = abs(b); function tmp = code(a_m, b_m, angle) tmp = (a_m + b_m) * ((b_m - a_m) * sin(((pi * angle) * 0.011111111111111112))); end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[Sin[N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)
\end{array}
Initial program 61.0%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified63.1%
associate-*r/N/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
Applied egg-rr72.1%
Final simplification72.1%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= angle 2.2e+208)
(* (+ a_m b_m) (* (- b_m a_m) (* (* PI angle) 0.011111111111111112)))
(/
(*
angle
(+
(* 0.011111111111111112 (* PI (- b_m a_m)))
(*
(* 2.0 (* angle angle))
(* (* (- b_m a_m) (* PI (* PI PI))) -1.1431184270690443e-7))))
(/ 1.0 (+ a_m b_m)))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((((double) M_PI) * angle) * 0.011111111111111112));
} else {
tmp = (angle * ((0.011111111111111112 * (((double) M_PI) * (b_m - a_m))) + ((2.0 * (angle * angle)) * (((b_m - a_m) * (((double) M_PI) * (((double) M_PI) * ((double) M_PI)))) * -1.1431184270690443e-7)))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((Math.PI * angle) * 0.011111111111111112));
} else {
tmp = (angle * ((0.011111111111111112 * (Math.PI * (b_m - a_m))) + ((2.0 * (angle * angle)) * (((b_m - a_m) * (Math.PI * (Math.PI * Math.PI))) * -1.1431184270690443e-7)))) / (1.0 / (a_m + b_m));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if angle <= 2.2e+208: tmp = (a_m + b_m) * ((b_m - a_m) * ((math.pi * angle) * 0.011111111111111112)) else: tmp = (angle * ((0.011111111111111112 * (math.pi * (b_m - a_m))) + ((2.0 * (angle * angle)) * (((b_m - a_m) * (math.pi * (math.pi * math.pi))) * -1.1431184270690443e-7)))) / (1.0 / (a_m + b_m)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (angle <= 2.2e+208) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * Float64(Float64(pi * angle) * 0.011111111111111112))); else tmp = Float64(Float64(angle * Float64(Float64(0.011111111111111112 * Float64(pi * Float64(b_m - a_m))) + Float64(Float64(2.0 * Float64(angle * angle)) * Float64(Float64(Float64(b_m - a_m) * Float64(pi * Float64(pi * pi))) * -1.1431184270690443e-7)))) / Float64(1.0 / Float64(a_m + b_m))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (angle <= 2.2e+208) tmp = (a_m + b_m) * ((b_m - a_m) * ((pi * angle) * 0.011111111111111112)); else tmp = (angle * ((0.011111111111111112 * (pi * (b_m - a_m))) + ((2.0 * (angle * angle)) * (((b_m - a_m) * (pi * (pi * pi))) * -1.1431184270690443e-7)))) / (1.0 / (a_m + b_m)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[angle, 2.2e+208], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(angle * N[(N[(0.011111111111111112 * N[(Pi * N[(b$95$m - a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(2.0 * N[(angle * angle), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(Pi * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * -1.1431184270690443e-7), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 / N[(a$95$m + b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 2.2 \cdot 10^{+208}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{angle \cdot \left(0.011111111111111112 \cdot \left(\pi \cdot \left(b\_m - a\_m\right)\right) + \left(2 \cdot \left(angle \cdot angle\right)\right) \cdot \left(\left(\left(b\_m - a\_m\right) \cdot \left(\pi \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot -1.1431184270690443 \cdot 10^{-7}\right)\right)}{\frac{1}{a\_m + b\_m}}\\
\end{array}
\end{array}
if angle < 2.20000000000000014e208Initial program 63.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified64.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.7%
Simplified61.7%
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6471.2%
Applied egg-rr71.2%
if 2.20000000000000014e208 < angle Initial program 31.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified42.7%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr36.8%
associate-*l*N/A
flip-+N/A
associate-*l/N/A
flip--N/A
div-invN/A
times-fracN/A
Applied egg-rr36.8%
*-lft-identityN/A
/-lowering-/.f64N/A
Applied egg-rr42.7%
Taylor expanded in angle around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-outN/A
Simplified25.4%
Final simplification68.2%
a_m = (fabs.f64 a)
b_m = (fabs.f64 b)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= angle 2.2e+208)
(* (+ a_m b_m) (* (- b_m a_m) (* (* PI angle) 0.011111111111111112)))
(if (<= angle 5.6e+227)
(*
(* (* angle 0.011111111111111112) (* PI (- (* b_m b_m) (* a_m a_m))))
(+ 1.0 (* (* -1.54320987654321e-5 (* angle angle)) (* PI PI))))
(* -0.011111111111111112 (* PI (* angle (* a_m a_m)))))))a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((((double) M_PI) * angle) * 0.011111111111111112));
} else if (angle <= 5.6e+227) {
tmp = ((angle * 0.011111111111111112) * (((double) M_PI) * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (((double) M_PI) * ((double) M_PI))));
} else {
tmp = -0.011111111111111112 * (((double) M_PI) * (angle * (a_m * a_m)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 2.2e+208) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((Math.PI * angle) * 0.011111111111111112));
} else if (angle <= 5.6e+227) {
tmp = ((angle * 0.011111111111111112) * (Math.PI * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (Math.PI * Math.PI)));
} else {
tmp = -0.011111111111111112 * (Math.PI * (angle * (a_m * a_m)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if angle <= 2.2e+208: tmp = (a_m + b_m) * ((b_m - a_m) * ((math.pi * angle) * 0.011111111111111112)) elif angle <= 5.6e+227: tmp = ((angle * 0.011111111111111112) * (math.pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (math.pi * math.pi))) else: tmp = -0.011111111111111112 * (math.pi * (angle * (a_m * a_m))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (angle <= 2.2e+208) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * Float64(Float64(pi * angle) * 0.011111111111111112))); elseif (angle <= 5.6e+227) tmp = Float64(Float64(Float64(angle * 0.011111111111111112) * Float64(pi * Float64(Float64(b_m * b_m) - Float64(a_m * a_m)))) * Float64(1.0 + Float64(Float64(-1.54320987654321e-5 * Float64(angle * angle)) * Float64(pi * pi)))); else tmp = Float64(-0.011111111111111112 * Float64(pi * Float64(angle * Float64(a_m * a_m)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (angle <= 2.2e+208) tmp = (a_m + b_m) * ((b_m - a_m) * ((pi * angle) * 0.011111111111111112)); elseif (angle <= 5.6e+227) tmp = ((angle * 0.011111111111111112) * (pi * ((b_m * b_m) - (a_m * a_m)))) * (1.0 + ((-1.54320987654321e-5 * (angle * angle)) * (pi * pi))); else tmp = -0.011111111111111112 * (pi * (angle * (a_m * a_m))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[angle, 2.2e+208], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[angle, 5.6e+227], N[(N[(N[(angle * 0.011111111111111112), $MachinePrecision] * N[(Pi * N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(N[(-1.54320987654321e-5 * N[(angle * angle), $MachinePrecision]), $MachinePrecision] * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.011111111111111112 * N[(Pi * N[(angle * N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 2.2 \cdot 10^{+208}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{elif}\;angle \leq 5.6 \cdot 10^{+227}:\\
\;\;\;\;\left(\left(angle \cdot 0.011111111111111112\right) \cdot \left(\pi \cdot \left(b\_m \cdot b\_m - a\_m \cdot a\_m\right)\right)\right) \cdot \left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle \cdot angle\right)\right) \cdot \left(\pi \cdot \pi\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-0.011111111111111112 \cdot \left(\pi \cdot \left(angle \cdot \left(a\_m \cdot a\_m\right)\right)\right)\\
\end{array}
\end{array}
if angle < 2.20000000000000014e208Initial program 63.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified64.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.7%
Simplified61.7%
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6471.2%
Applied egg-rr71.2%
if 2.20000000000000014e208 < angle < 5.59999999999999968e227Initial program 55.3%
pow2N/A
pow2N/A
flip--N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
clear-numN/A
flip--N/A
/-lowering-/.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6455.3%
Applied egg-rr55.3%
Taylor expanded in angle around 0
associate-*r*N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
+-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-commutativeN/A
difference-of-squaresN/A
unpow2N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6452.0%
Simplified52.0%
Taylor expanded in angle around 0
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
PI-lowering-PI.f6451.3%
Simplified51.3%
if 5.59999999999999968e227 < angle Initial program 23.7%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified38.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6424.7%
Simplified24.7%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6410.1%
Simplified10.1%
Final simplification67.8%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= angle 1.36e+228) (* (+ a_m b_m) (* (- b_m a_m) (* (* PI angle) 0.011111111111111112))) (* -0.011111111111111112 (* PI (* angle (* a_m a_m))))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 1.36e+228) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((((double) M_PI) * angle) * 0.011111111111111112));
} else {
tmp = -0.011111111111111112 * (((double) M_PI) * (angle * (a_m * a_m)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (angle <= 1.36e+228) {
tmp = (a_m + b_m) * ((b_m - a_m) * ((Math.PI * angle) * 0.011111111111111112));
} else {
tmp = -0.011111111111111112 * (Math.PI * (angle * (a_m * a_m)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if angle <= 1.36e+228: tmp = (a_m + b_m) * ((b_m - a_m) * ((math.pi * angle) * 0.011111111111111112)) else: tmp = -0.011111111111111112 * (math.pi * (angle * (a_m * a_m))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (angle <= 1.36e+228) tmp = Float64(Float64(a_m + b_m) * Float64(Float64(b_m - a_m) * Float64(Float64(pi * angle) * 0.011111111111111112))); else tmp = Float64(-0.011111111111111112 * Float64(pi * Float64(angle * Float64(a_m * a_m)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (angle <= 1.36e+228) tmp = (a_m + b_m) * ((b_m - a_m) * ((pi * angle) * 0.011111111111111112)); else tmp = -0.011111111111111112 * (pi * (angle * (a_m * a_m))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[angle, 1.36e+228], N[(N[(a$95$m + b$95$m), $MachinePrecision] * N[(N[(b$95$m - a$95$m), $MachinePrecision] * N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.011111111111111112 * N[(Pi * N[(angle * N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 1.36 \cdot 10^{+228}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-0.011111111111111112 \cdot \left(\pi \cdot \left(angle \cdot \left(a\_m \cdot a\_m\right)\right)\right)\\
\end{array}
\end{array}
if angle < 1.35999999999999996e228Initial program 62.7%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified64.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6460.8%
Simplified60.8%
*-commutativeN/A
difference-of-squaresN/A
associate-*l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6470.2%
Applied egg-rr70.2%
if 1.35999999999999996e228 < angle Initial program 25.6%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified33.7%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6418.5%
Simplified18.5%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6410.9%
Simplified10.9%
Final simplification67.4%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= a_m 6e+146) (* (- (* b_m b_m) (* a_m a_m)) (* angle (* PI 0.011111111111111112))) (* (* a_m PI) (* -0.011111111111111112 (* a_m angle)))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 6e+146) {
tmp = ((b_m * b_m) - (a_m * a_m)) * (angle * (((double) M_PI) * 0.011111111111111112));
} else {
tmp = (a_m * ((double) M_PI)) * (-0.011111111111111112 * (a_m * angle));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 6e+146) {
tmp = ((b_m * b_m) - (a_m * a_m)) * (angle * (Math.PI * 0.011111111111111112));
} else {
tmp = (a_m * Math.PI) * (-0.011111111111111112 * (a_m * angle));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if a_m <= 6e+146: tmp = ((b_m * b_m) - (a_m * a_m)) * (angle * (math.pi * 0.011111111111111112)) else: tmp = (a_m * math.pi) * (-0.011111111111111112 * (a_m * angle)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (a_m <= 6e+146) tmp = Float64(Float64(Float64(b_m * b_m) - Float64(a_m * a_m)) * Float64(angle * Float64(pi * 0.011111111111111112))); else tmp = Float64(Float64(a_m * pi) * Float64(-0.011111111111111112 * Float64(a_m * angle))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (a_m <= 6e+146) tmp = ((b_m * b_m) - (a_m * a_m)) * (angle * (pi * 0.011111111111111112)); else tmp = (a_m * pi) * (-0.011111111111111112 * (a_m * angle)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[a$95$m, 6e+146], N[(N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision] * N[(angle * N[(Pi * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a$95$m * Pi), $MachinePrecision] * N[(-0.011111111111111112 * N[(a$95$m * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 6 \cdot 10^{+146}:\\
\;\;\;\;\left(b\_m \cdot b\_m - a\_m \cdot a\_m\right) \cdot \left(angle \cdot \left(\pi \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \pi\right) \cdot \left(-0.011111111111111112 \cdot \left(a\_m \cdot angle\right)\right)\\
\end{array}
\end{array}
if a < 6.00000000000000005e146Initial program 59.9%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.8%
Simplified58.8%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6458.9%
Applied egg-rr58.9%
if 6.00000000000000005e146 < a Initial program 69.4%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified72.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.0%
Simplified59.0%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6472.8%
Simplified72.8%
*-commutativeN/A
associate-*l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f6479.3%
Applied egg-rr79.3%
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6479.3%
Applied egg-rr79.3%
Final simplification61.2%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= a_m 7.5e+153) (* (* angle 0.011111111111111112) (* PI (- (* b_m b_m) (* a_m a_m)))) (* -0.011111111111111112 (* a_m (* a_m (* PI angle))))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 7.5e+153) {
tmp = (angle * 0.011111111111111112) * (((double) M_PI) * ((b_m * b_m) - (a_m * a_m)));
} else {
tmp = -0.011111111111111112 * (a_m * (a_m * (((double) M_PI) * angle)));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 7.5e+153) {
tmp = (angle * 0.011111111111111112) * (Math.PI * ((b_m * b_m) - (a_m * a_m)));
} else {
tmp = -0.011111111111111112 * (a_m * (a_m * (Math.PI * angle)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if a_m <= 7.5e+153: tmp = (angle * 0.011111111111111112) * (math.pi * ((b_m * b_m) - (a_m * a_m))) else: tmp = -0.011111111111111112 * (a_m * (a_m * (math.pi * angle))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (a_m <= 7.5e+153) tmp = Float64(Float64(angle * 0.011111111111111112) * Float64(pi * Float64(Float64(b_m * b_m) - Float64(a_m * a_m)))); else tmp = Float64(-0.011111111111111112 * Float64(a_m * Float64(a_m * Float64(pi * angle)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (a_m <= 7.5e+153) tmp = (angle * 0.011111111111111112) * (pi * ((b_m * b_m) - (a_m * a_m))); else tmp = -0.011111111111111112 * (a_m * (a_m * (pi * angle))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[a$95$m, 7.5e+153], N[(N[(angle * 0.011111111111111112), $MachinePrecision] * N[(Pi * N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.011111111111111112 * N[(a$95$m * N[(a$95$m * N[(Pi * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 7.5 \cdot 10^{+153}:\\
\;\;\;\;\left(angle \cdot 0.011111111111111112\right) \cdot \left(\pi \cdot \left(b\_m \cdot b\_m - a\_m \cdot a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-0.011111111111111112 \cdot \left(a\_m \cdot \left(a\_m \cdot \left(\pi \cdot angle\right)\right)\right)\\
\end{array}
\end{array}
if a < 7.50000000000000065e153Initial program 60.1%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified62.0%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.0%
Simplified59.0%
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6459.0%
Applied egg-rr59.0%
if 7.50000000000000065e153 < a Initial program 68.3%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified71.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6457.6%
Simplified57.6%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6471.9%
Simplified71.9%
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6478.6%
Applied egg-rr78.6%
Final simplification61.1%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= a_m 4.4e+146) (* (* (* PI angle) 0.011111111111111112) (- (* b_m b_m) (* a_m a_m))) (* (* a_m PI) (* -0.011111111111111112 (* a_m angle)))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 4.4e+146) {
tmp = ((((double) M_PI) * angle) * 0.011111111111111112) * ((b_m * b_m) - (a_m * a_m));
} else {
tmp = (a_m * ((double) M_PI)) * (-0.011111111111111112 * (a_m * angle));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 4.4e+146) {
tmp = ((Math.PI * angle) * 0.011111111111111112) * ((b_m * b_m) - (a_m * a_m));
} else {
tmp = (a_m * Math.PI) * (-0.011111111111111112 * (a_m * angle));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if a_m <= 4.4e+146: tmp = ((math.pi * angle) * 0.011111111111111112) * ((b_m * b_m) - (a_m * a_m)) else: tmp = (a_m * math.pi) * (-0.011111111111111112 * (a_m * angle)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (a_m <= 4.4e+146) tmp = Float64(Float64(Float64(pi * angle) * 0.011111111111111112) * Float64(Float64(b_m * b_m) - Float64(a_m * a_m))); else tmp = Float64(Float64(a_m * pi) * Float64(-0.011111111111111112 * Float64(a_m * angle))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (a_m <= 4.4e+146) tmp = ((pi * angle) * 0.011111111111111112) * ((b_m * b_m) - (a_m * a_m)); else tmp = (a_m * pi) * (-0.011111111111111112 * (a_m * angle)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[a$95$m, 4.4e+146], N[(N[(N[(Pi * angle), $MachinePrecision] * 0.011111111111111112), $MachinePrecision] * N[(N[(b$95$m * b$95$m), $MachinePrecision] - N[(a$95$m * a$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(a$95$m * Pi), $MachinePrecision] * N[(-0.011111111111111112 * N[(a$95$m * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 4.4 \cdot 10^{+146}:\\
\;\;\;\;\left(\left(\pi \cdot angle\right) \cdot 0.011111111111111112\right) \cdot \left(b\_m \cdot b\_m - a\_m \cdot a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \pi\right) \cdot \left(-0.011111111111111112 \cdot \left(a\_m \cdot angle\right)\right)\\
\end{array}
\end{array}
if a < 4.3999999999999996e146Initial program 59.9%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified61.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.8%
Simplified58.8%
if 4.3999999999999996e146 < a Initial program 69.4%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified72.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.0%
Simplified59.0%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6472.8%
Simplified72.8%
*-commutativeN/A
associate-*l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f6479.3%
Applied egg-rr79.3%
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6479.3%
Applied egg-rr79.3%
Final simplification61.1%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= a_m 1.46e-18) (* 0.011111111111111112 (* angle (* PI (* b_m b_m)))) (* a_m (* angle (* -0.011111111111111112 (* a_m PI))))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 1.46e-18) {
tmp = 0.011111111111111112 * (angle * (((double) M_PI) * (b_m * b_m)));
} else {
tmp = a_m * (angle * (-0.011111111111111112 * (a_m * ((double) M_PI))));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 1.46e-18) {
tmp = 0.011111111111111112 * (angle * (Math.PI * (b_m * b_m)));
} else {
tmp = a_m * (angle * (-0.011111111111111112 * (a_m * Math.PI)));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if a_m <= 1.46e-18: tmp = 0.011111111111111112 * (angle * (math.pi * (b_m * b_m))) else: tmp = a_m * (angle * (-0.011111111111111112 * (a_m * math.pi))) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (a_m <= 1.46e-18) tmp = Float64(0.011111111111111112 * Float64(angle * Float64(pi * Float64(b_m * b_m)))); else tmp = Float64(a_m * Float64(angle * Float64(-0.011111111111111112 * Float64(a_m * pi)))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (a_m <= 1.46e-18) tmp = 0.011111111111111112 * (angle * (pi * (b_m * b_m))); else tmp = a_m * (angle * (-0.011111111111111112 * (a_m * pi))); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[a$95$m, 1.46e-18], N[(0.011111111111111112 * N[(angle * N[(Pi * N[(b$95$m * b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a$95$m * N[(angle * N[(-0.011111111111111112 * N[(a$95$m * Pi), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 1.46 \cdot 10^{-18}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot \left(\pi \cdot \left(b\_m \cdot b\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;a\_m \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot \left(a\_m \cdot \pi\right)\right)\right)\\
\end{array}
\end{array}
if a < 1.4599999999999999e-18Initial program 58.6%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified60.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6457.9%
Simplified57.9%
Taylor expanded in b around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
unpow2N/A
*-lowering-*.f6440.1%
Simplified40.1%
if 1.4599999999999999e-18 < a Initial program 68.8%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified70.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.9%
Simplified61.9%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6460.9%
Simplified60.9%
*-commutativeN/A
associate-*l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f6464.1%
Applied egg-rr64.1%
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6464.1%
Applied egg-rr64.1%
Final simplification45.7%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (if (<= a_m 6.8e-18) (* 0.011111111111111112 (* angle (* PI (* b_m b_m)))) (* -0.011111111111111112 (* (* a_m PI) (* a_m angle)))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 6.8e-18) {
tmp = 0.011111111111111112 * (angle * (((double) M_PI) * (b_m * b_m)));
} else {
tmp = -0.011111111111111112 * ((a_m * ((double) M_PI)) * (a_m * angle));
}
return tmp;
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
double tmp;
if (a_m <= 6.8e-18) {
tmp = 0.011111111111111112 * (angle * (Math.PI * (b_m * b_m)));
} else {
tmp = -0.011111111111111112 * ((a_m * Math.PI) * (a_m * angle));
}
return tmp;
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): tmp = 0 if a_m <= 6.8e-18: tmp = 0.011111111111111112 * (angle * (math.pi * (b_m * b_m))) else: tmp = -0.011111111111111112 * ((a_m * math.pi) * (a_m * angle)) return tmp
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) tmp = 0.0 if (a_m <= 6.8e-18) tmp = Float64(0.011111111111111112 * Float64(angle * Float64(pi * Float64(b_m * b_m)))); else tmp = Float64(-0.011111111111111112 * Float64(Float64(a_m * pi) * Float64(a_m * angle))); end return tmp end
a_m = abs(a); b_m = abs(b); function tmp_2 = code(a_m, b_m, angle) tmp = 0.0; if (a_m <= 6.8e-18) tmp = 0.011111111111111112 * (angle * (pi * (b_m * b_m))); else tmp = -0.011111111111111112 * ((a_m * pi) * (a_m * angle)); end tmp_2 = tmp; end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := If[LessEqual[a$95$m, 6.8e-18], N[(0.011111111111111112 * N[(angle * N[(Pi * N[(b$95$m * b$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.011111111111111112 * N[(N[(a$95$m * Pi), $MachinePrecision] * N[(a$95$m * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 6.8 \cdot 10^{-18}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot \left(\pi \cdot \left(b\_m \cdot b\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-0.011111111111111112 \cdot \left(\left(a\_m \cdot \pi\right) \cdot \left(a\_m \cdot angle\right)\right)\\
\end{array}
\end{array}
if a < 6.80000000000000002e-18Initial program 58.6%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified60.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6457.9%
Simplified57.9%
Taylor expanded in b around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
unpow2N/A
*-lowering-*.f6440.1%
Simplified40.1%
if 6.80000000000000002e-18 < a Initial program 68.8%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified70.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6461.9%
Simplified61.9%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6460.9%
Simplified60.9%
*-commutativeN/A
associate-*l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f6464.1%
Applied egg-rr64.1%
Final simplification45.7%
a_m = (fabs.f64 a) b_m = (fabs.f64 b) (FPCore (a_m b_m angle) :precision binary64 (* -0.011111111111111112 (* (* a_m PI) (* a_m angle))))
a_m = fabs(a);
b_m = fabs(b);
double code(double a_m, double b_m, double angle) {
return -0.011111111111111112 * ((a_m * ((double) M_PI)) * (a_m * angle));
}
a_m = Math.abs(a);
b_m = Math.abs(b);
public static double code(double a_m, double b_m, double angle) {
return -0.011111111111111112 * ((a_m * Math.PI) * (a_m * angle));
}
a_m = math.fabs(a) b_m = math.fabs(b) def code(a_m, b_m, angle): return -0.011111111111111112 * ((a_m * math.pi) * (a_m * angle))
a_m = abs(a) b_m = abs(b) function code(a_m, b_m, angle) return Float64(-0.011111111111111112 * Float64(Float64(a_m * pi) * Float64(a_m * angle))) end
a_m = abs(a); b_m = abs(b); function tmp = code(a_m, b_m, angle) tmp = -0.011111111111111112 * ((a_m * pi) * (a_m * angle)); end
a_m = N[Abs[a], $MachinePrecision] b_m = N[Abs[b], $MachinePrecision] code[a$95$m_, b$95$m_, angle_] := N[(-0.011111111111111112 * N[(N[(a$95$m * Pi), $MachinePrecision] * N[(a$95$m * angle), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
a_m = \left|a\right|
\\
b_m = \left|b\right|
\\
-0.011111111111111112 \cdot \left(\left(a\_m \cdot \pi\right) \cdot \left(a\_m \cdot angle\right)\right)
\end{array}
Initial program 61.0%
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified63.1%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
--lowering--.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.8%
Simplified58.8%
Taylor expanded in b around 0
*-lowering-*.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
PI-lowering-PI.f6441.7%
Simplified41.7%
*-commutativeN/A
associate-*l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
PI-lowering-PI.f64N/A
*-lowering-*.f6444.2%
Applied egg-rr44.2%
Final simplification44.2%
herbie shell --seed 2024138
(FPCore (a b angle)
:name "ab-angle->ABCF B"
:precision binary64
(* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* PI (/ angle 180.0)))) (cos (* PI (/ angle 180.0)))))