
(FPCore (z0) :precision binary64 (sin (* z0 (+ PI PI))))
double code(double z0) {
return sin((z0 * (((double) M_PI) + ((double) M_PI))));
}
public static double code(double z0) {
return Math.sin((z0 * (Math.PI + Math.PI)));
}
def code(z0): return math.sin((z0 * (math.pi + math.pi)))
function code(z0) return sin(Float64(z0 * Float64(pi + pi))) end
function tmp = code(z0) tmp = sin((z0 * (pi + pi))); end
code[z0_] := N[Sin[N[(z0 * N[(Pi + Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\sin \left(z0 \cdot \left(\pi + \pi\right)\right)
Herbie found 10 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (z0) :precision binary64 (sin (* z0 (+ PI PI))))
double code(double z0) {
return sin((z0 * (((double) M_PI) + ((double) M_PI))));
}
public static double code(double z0) {
return Math.sin((z0 * (Math.PI + Math.PI)));
}
def code(z0): return math.sin((z0 * (math.pi + math.pi)))
function code(z0) return sin(Float64(z0 * Float64(pi + pi))) end
function tmp = code(z0) tmp = sin((z0 * (pi + pi))); end
code[z0_] := N[Sin[N[(z0 * N[(Pi + Pi), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\sin \left(z0 \cdot \left(\pi + \pi\right)\right)
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (* (fabs z0) (fabs z0)) PI))
(t_1 (log (pow (exp PI) t_0)))
(t_2 (+ (fabs z0) (fabs z0)))
(t_3 (* PI (fabs z0))))
(*
(copysign 1 z0)
(if (<= (fabs z0) 1120000000000000)
(sin (* (* t_2 (pow PI 2/3)) (pow (pow PI 1/6) 2)))
(sin
(/
(304-z0z1z2z3z4 (* t_2 PI) t_0 (+ PI PI) (* t_3 PI) (fabs z0))
(+ t_1 (+ t_1 (* t_3 (* (- PI) (fabs z0)))))))))))\begin{array}{l}
t_0 := \left(\left|z0\right| \cdot \left|z0\right|\right) \cdot \pi\\
t_1 := \log \left({\left(e^{\pi}\right)}^{t\_0}\right)\\
t_2 := \left|z0\right| + \left|z0\right|\\
t_3 := \pi \cdot \left|z0\right|\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 1120000000000000:\\
\;\;\;\;\sin \left(\left(t\_2 \cdot {\pi}^{\frac{2}{3}}\right) \cdot {\left({\pi}^{\frac{1}{6}}\right)}^{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{\mathsf{304\_z0z1z2z3z4}\left(\left(t\_2 \cdot \pi\right), t\_0, \left(\pi + \pi\right), \left(t\_3 \cdot \pi\right), \left(\left|z0\right|\right)\right)}{t\_1 + \left(t\_1 + t\_3 \cdot \left(\left(-\pi\right) \cdot \left|z0\right|\right)\right)}\right)\\
\end{array}
\end{array}
if z0 < 1.12e15Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
lift-cbrt.f64N/A
pow1/3N/A
sqr-powN/A
lower-unsound-*.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f6452.8%
Applied rewrites52.8%
lift-*.f64N/A
pow2N/A
lower-pow.f6452.8%
lower-unsound-/.f64N/A
lower-unsound-/.f6452.8%
lift-/.f64N/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.12e15 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-exp.f6416.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f6416.5%
Applied rewrites16.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f64N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-exp.f6416.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f6416.4%
Applied rewrites16.4%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* PI (fabs z0)))
(t_1 (* (- PI) (fabs z0)))
(t_2 (log (pow (exp PI) (* (* (fabs z0) (fabs z0)) PI)))))
(*
(copysign 1 z0)
(if (<= (fabs z0) 1120000000000000)
(sin
(*
(* (+ (fabs z0) (fabs z0)) (pow PI 2/3))
(pow (pow PI 1/6) 2)))
(sin
(/ (- (pow t_0 3) (pow t_1 3)) (+ t_2 (+ t_2 (* t_0 t_1)))))))))double code(double z0) {
double t_0 = ((double) M_PI) * fabs(z0);
double t_1 = -((double) M_PI) * fabs(z0);
double t_2 = log(pow(exp(((double) M_PI)), ((fabs(z0) * fabs(z0)) * ((double) M_PI))));
double tmp;
if (fabs(z0) <= 1.12e+15) {
tmp = sin((((fabs(z0) + fabs(z0)) * pow(((double) M_PI), 0.6666666666666666)) * pow(pow(((double) M_PI), 0.16666666666666666), 2.0)));
} else {
tmp = sin(((pow(t_0, 3.0) - pow(t_1, 3.0)) / (t_2 + (t_2 + (t_0 * t_1)))));
}
return copysign(1.0, z0) * tmp;
}
public static double code(double z0) {
double t_0 = Math.PI * Math.abs(z0);
double t_1 = -Math.PI * Math.abs(z0);
double t_2 = Math.log(Math.pow(Math.exp(Math.PI), ((Math.abs(z0) * Math.abs(z0)) * Math.PI)));
double tmp;
if (Math.abs(z0) <= 1.12e+15) {
tmp = Math.sin((((Math.abs(z0) + Math.abs(z0)) * Math.pow(Math.PI, 0.6666666666666666)) * Math.pow(Math.pow(Math.PI, 0.16666666666666666), 2.0)));
} else {
tmp = Math.sin(((Math.pow(t_0, 3.0) - Math.pow(t_1, 3.0)) / (t_2 + (t_2 + (t_0 * t_1)))));
}
return Math.copySign(1.0, z0) * tmp;
}
def code(z0): t_0 = math.pi * math.fabs(z0) t_1 = -math.pi * math.fabs(z0) t_2 = math.log(math.pow(math.exp(math.pi), ((math.fabs(z0) * math.fabs(z0)) * math.pi))) tmp = 0 if math.fabs(z0) <= 1.12e+15: tmp = math.sin((((math.fabs(z0) + math.fabs(z0)) * math.pow(math.pi, 0.6666666666666666)) * math.pow(math.pow(math.pi, 0.16666666666666666), 2.0))) else: tmp = math.sin(((math.pow(t_0, 3.0) - math.pow(t_1, 3.0)) / (t_2 + (t_2 + (t_0 * t_1))))) return math.copysign(1.0, z0) * tmp
function code(z0) t_0 = Float64(pi * abs(z0)) t_1 = Float64(Float64(-pi) * abs(z0)) t_2 = log((exp(pi) ^ Float64(Float64(abs(z0) * abs(z0)) * pi))) tmp = 0.0 if (abs(z0) <= 1.12e+15) tmp = sin(Float64(Float64(Float64(abs(z0) + abs(z0)) * (pi ^ 0.6666666666666666)) * ((pi ^ 0.16666666666666666) ^ 2.0))); else tmp = sin(Float64(Float64((t_0 ^ 3.0) - (t_1 ^ 3.0)) / Float64(t_2 + Float64(t_2 + Float64(t_0 * t_1))))); end return Float64(copysign(1.0, z0) * tmp) end
function tmp_2 = code(z0) t_0 = pi * abs(z0); t_1 = -pi * abs(z0); t_2 = log((exp(pi) ^ ((abs(z0) * abs(z0)) * pi))); tmp = 0.0; if (abs(z0) <= 1.12e+15) tmp = sin((((abs(z0) + abs(z0)) * (pi ^ 0.6666666666666666)) * ((pi ^ 0.16666666666666666) ^ 2.0))); else tmp = sin((((t_0 ^ 3.0) - (t_1 ^ 3.0)) / (t_2 + (t_2 + (t_0 * t_1))))); end tmp_2 = (sign(z0) * abs(1.0)) * tmp; end
code[z0_] := Block[{t$95$0 = N[(Pi * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[((-Pi) * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[Log[N[Power[N[Exp[Pi], $MachinePrecision], N[(N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1], TMP2 = Sign[z0]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[N[Abs[z0], $MachinePrecision], 1120000000000000], N[Sin[N[(N[(N[(N[Abs[z0], $MachinePrecision] + N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 2/3], $MachinePrecision]), $MachinePrecision] * N[Power[N[Power[Pi, 1/6], $MachinePrecision], 2], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sin[N[(N[(N[Power[t$95$0, 3], $MachinePrecision] - N[Power[t$95$1, 3], $MachinePrecision]), $MachinePrecision] / N[(t$95$2 + N[(t$95$2 + N[(t$95$0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]), $MachinePrecision]]]]
\begin{array}{l}
t_0 := \pi \cdot \left|z0\right|\\
t_1 := \left(-\pi\right) \cdot \left|z0\right|\\
t_2 := \log \left({\left(e^{\pi}\right)}^{\left(\left(\left|z0\right| \cdot \left|z0\right|\right) \cdot \pi\right)}\right)\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 1120000000000000:\\
\;\;\;\;\sin \left(\left(\left(\left|z0\right| + \left|z0\right|\right) \cdot {\pi}^{\frac{2}{3}}\right) \cdot {\left({\pi}^{\frac{1}{6}}\right)}^{2}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{{t\_0}^{3} - {t\_1}^{3}}{t\_2 + \left(t\_2 + t\_0 \cdot t\_1\right)}\right)\\
\end{array}
\end{array}
if z0 < 1.12e15Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
lift-cbrt.f64N/A
pow1/3N/A
sqr-powN/A
lower-unsound-*.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f6452.8%
Applied rewrites52.8%
lift-*.f64N/A
pow2N/A
lower-pow.f6452.8%
lower-unsound-/.f64N/A
lower-unsound-/.f6452.8%
lift-/.f64N/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.12e15 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-exp.f64N/A
lower-*.f6416.5%
Applied rewrites16.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-PI.f64N/A
add-log-expN/A
log-pow-revN/A
lower-log.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-exp.f64N/A
lower-*.f6416.4%
Applied rewrites16.4%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (fabs z0) (fabs z0)))
(t_1 (* t_0 PI))
(t_2 (* (- PI) (fabs z0)))
(t_3 (* PI (fabs z0)))
(t_4 (* t_3 (fabs z0)))
(t_5 (* t_0 (* PI PI)))
(t_6 (+ (fabs z0) (fabs z0)))
(t_7 (* t_3 PI))
(t_8 (* t_7 PI))
(t_9 (* t_7 (fabs z0)))
(t_10 (* t_8 t_0))
(t_11 (* t_3 (+ t_2 t_3)))
(t_12 (* t_11 t_11))
(t_13 (* t_4 PI)))
(*
(copysign 1 z0)
(if (<= (fabs z0) 15000000000000000)
(sin (* (* t_6 (pow PI 2/3)) (pow (pow PI 1/6) 2)))
(if (<=
(fabs z0)
79999999999999995719222155803854345574979318317056)
(sin
(/
(/
(* (- t_10 t_10) (+ t_10 t_10))
(- (* t_4 t_7) (* (* (* t_2 PI) (fabs z0)) t_2)))
(+ t_5 (+ t_5 (* t_3 t_2)))))
(if (<=
(fabs z0)
36999999999999999491511714385915989040023595931478890296747033983213553844224)
(sin
(/
(304-z0z1z2z3z4 (* t_6 PI) t_1 (+ PI PI) t_7 (fabs z0))
(/
(- (pow t_9 3) (pow t_11 3))
(+ (* (* t_8 t_3) t_0) (+ t_12 (* t_9 t_11))))))
(sin
(/
(- (pow t_3 3) (pow t_2 3))
(/
(- (* t_13 t_13) t_12)
(- (* t_1 (+ PI PI)) t_13))))))))))\begin{array}{l}
t_0 := \left|z0\right| \cdot \left|z0\right|\\
t_1 := t\_0 \cdot \pi\\
t_2 := \left(-\pi\right) \cdot \left|z0\right|\\
t_3 := \pi \cdot \left|z0\right|\\
t_4 := t\_3 \cdot \left|z0\right|\\
t_5 := t\_0 \cdot \left(\pi \cdot \pi\right)\\
t_6 := \left|z0\right| + \left|z0\right|\\
t_7 := t\_3 \cdot \pi\\
t_8 := t\_7 \cdot \pi\\
t_9 := t\_7 \cdot \left|z0\right|\\
t_10 := t\_8 \cdot t\_0\\
t_11 := t\_3 \cdot \left(t\_2 + t\_3\right)\\
t_12 := t\_11 \cdot t\_11\\
t_13 := t\_4 \cdot \pi\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 15000000000000000:\\
\;\;\;\;\sin \left(\left(t\_6 \cdot {\pi}^{\frac{2}{3}}\right) \cdot {\left({\pi}^{\frac{1}{6}}\right)}^{2}\right)\\
\mathbf{elif}\;\left|z0\right| \leq 79999999999999995719222155803854345574979318317056:\\
\;\;\;\;\sin \left(\frac{\frac{\left(t\_10 - t\_10\right) \cdot \left(t\_10 + t\_10\right)}{t\_4 \cdot t\_7 - \left(\left(t\_2 \cdot \pi\right) \cdot \left|z0\right|\right) \cdot t\_2}}{t\_5 + \left(t\_5 + t\_3 \cdot t\_2\right)}\right)\\
\mathbf{elif}\;\left|z0\right| \leq 36999999999999999491511714385915989040023595931478890296747033983213553844224:\\
\;\;\;\;\sin \left(\frac{\mathsf{304\_z0z1z2z3z4}\left(\left(t\_6 \cdot \pi\right), t\_1, \left(\pi + \pi\right), t\_7, \left(\left|z0\right|\right)\right)}{\frac{{t\_9}^{3} - {t\_11}^{3}}{\left(t\_8 \cdot t\_3\right) \cdot t\_0 + \left(t\_12 + t\_9 \cdot t\_11\right)}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{{t\_3}^{3} - {t\_2}^{3}}{\frac{t\_13 \cdot t\_13 - t\_12}{t\_1 \cdot \left(\pi + \pi\right) - t\_13}}\right)\\
\end{array}
\end{array}
if z0 < 1.5e16Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
lift-cbrt.f64N/A
pow1/3N/A
sqr-powN/A
lower-unsound-*.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f6452.8%
Applied rewrites52.8%
lift-*.f64N/A
pow2N/A
lower-pow.f6452.8%
lower-unsound-/.f64N/A
lower-unsound-/.f6452.8%
lift-/.f64N/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.5e16 < z0 < 7.9999999999999996e49Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites1.0%
Applied rewrites5.4%
if 7.9999999999999996e49 < z0 < 3.6999999999999999e76Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.4%
Applied rewrites14.8%
if 3.6999999999999999e76 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.2%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (fabs z0) (fabs z0)))
(t_1 (* t_0 PI))
(t_2 (* (- PI) (fabs z0)))
(t_3 (* t_0 (* PI PI)))
(t_4 (* PI (fabs z0)))
(t_5 (* t_4 (+ t_2 t_4)))
(t_6 (* t_4 PI))
(t_7 (* t_6 PI))
(t_8 (+ (fabs z0) (fabs z0)))
(t_9 (* t_7 t_0)))
(*
(copysign 1 z0)
(if (<= (fabs z0) 15000000000000000)
(sin (* (* t_8 (pow PI 2/3)) (pow (pow PI 1/6) 2)))
(if (<=
(fabs z0)
40000000000000001882405379836218783566238405631466523057114838139592998125568)
(sin
(/
(/
(* (- t_9 t_9) (+ t_9 t_9))
(-
(* (* t_4 (fabs z0)) t_6)
(* (* (* t_2 PI) (fabs z0)) t_2)))
(+ t_3 (+ t_3 (* t_4 t_2)))))
(sin
(/
(304-z0z1z2z3z4 (* t_8 PI) t_1 (+ PI PI) t_6 (fabs z0))
(/
(- (* (* t_7 t_4) t_0) (* t_5 t_5))
(* t_1 (- (+ PI PI) PI))))))))))\begin{array}{l}
t_0 := \left|z0\right| \cdot \left|z0\right|\\
t_1 := t\_0 \cdot \pi\\
t_2 := \left(-\pi\right) \cdot \left|z0\right|\\
t_3 := t\_0 \cdot \left(\pi \cdot \pi\right)\\
t_4 := \pi \cdot \left|z0\right|\\
t_5 := t\_4 \cdot \left(t\_2 + t\_4\right)\\
t_6 := t\_4 \cdot \pi\\
t_7 := t\_6 \cdot \pi\\
t_8 := \left|z0\right| + \left|z0\right|\\
t_9 := t\_7 \cdot t\_0\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 15000000000000000:\\
\;\;\;\;\sin \left(\left(t\_8 \cdot {\pi}^{\frac{2}{3}}\right) \cdot {\left({\pi}^{\frac{1}{6}}\right)}^{2}\right)\\
\mathbf{elif}\;\left|z0\right| \leq 40000000000000001882405379836218783566238405631466523057114838139592998125568:\\
\;\;\;\;\sin \left(\frac{\frac{\left(t\_9 - t\_9\right) \cdot \left(t\_9 + t\_9\right)}{\left(t\_4 \cdot \left|z0\right|\right) \cdot t\_6 - \left(\left(t\_2 \cdot \pi\right) \cdot \left|z0\right|\right) \cdot t\_2}}{t\_3 + \left(t\_3 + t\_4 \cdot t\_2\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{\mathsf{304\_z0z1z2z3z4}\left(\left(t\_8 \cdot \pi\right), t\_1, \left(\pi + \pi\right), t\_6, \left(\left|z0\right|\right)\right)}{\frac{\left(t\_7 \cdot t\_4\right) \cdot t\_0 - t\_5 \cdot t\_5}{t\_1 \cdot \left(\left(\pi + \pi\right) - \pi\right)}}\right)\\
\end{array}
\end{array}
if z0 < 1.5e16Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
lift-cbrt.f64N/A
pow1/3N/A
sqr-powN/A
lower-unsound-*.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f6452.8%
Applied rewrites52.8%
lift-*.f64N/A
pow2N/A
lower-pow.f6452.8%
lower-unsound-/.f64N/A
lower-unsound-/.f6452.8%
lift-/.f64N/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.5e16 < z0 < 4.0000000000000002e76Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites1.0%
Applied rewrites5.4%
if 4.0000000000000002e76 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.4%
Applied rewrites19.2%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (fabs z0) (fabs z0)))
(t_1 (* t_0 (* PI PI)))
(t_2 (* PI (fabs z0)))
(t_3 (* t_2 (fabs z0)))
(t_4 (* t_2 PI))
(t_5 (* (* t_4 PI) t_0))
(t_6 (* (- PI) (fabs z0)))
(t_7 (* t_2 (+ t_6 t_2)))
(t_8 (* t_3 PI)))
(*
(copysign 1 z0)
(if (<= (fabs z0) 15000000000000000)
(sin
(*
(* (+ (fabs z0) (fabs z0)) (pow PI 2/3))
(pow (pow PI 1/6) 2)))
(if (<=
(fabs z0)
40000000000000001882405379836218783566238405631466523057114838139592998125568)
(sin
(/
(/
(* (- t_5 t_5) (+ t_5 t_5))
(- (* t_3 t_4) (* (* (* t_6 PI) (fabs z0)) t_6)))
(+ t_1 (+ t_1 (* t_2 t_6)))))
(sin
(/
(- (pow t_2 3) (pow t_6 3))
(/
(- (* t_8 t_8) (* t_7 t_7))
(- (* (* t_0 PI) (+ PI PI)) t_8)))))))))double code(double z0) {
double t_0 = fabs(z0) * fabs(z0);
double t_1 = t_0 * (((double) M_PI) * ((double) M_PI));
double t_2 = ((double) M_PI) * fabs(z0);
double t_3 = t_2 * fabs(z0);
double t_4 = t_2 * ((double) M_PI);
double t_5 = (t_4 * ((double) M_PI)) * t_0;
double t_6 = -((double) M_PI) * fabs(z0);
double t_7 = t_2 * (t_6 + t_2);
double t_8 = t_3 * ((double) M_PI);
double tmp;
if (fabs(z0) <= 1.5e+16) {
tmp = sin((((fabs(z0) + fabs(z0)) * pow(((double) M_PI), 0.6666666666666666)) * pow(pow(((double) M_PI), 0.16666666666666666), 2.0)));
} else if (fabs(z0) <= 4e+76) {
tmp = sin(((((t_5 - t_5) * (t_5 + t_5)) / ((t_3 * t_4) - (((t_6 * ((double) M_PI)) * fabs(z0)) * t_6))) / (t_1 + (t_1 + (t_2 * t_6)))));
} else {
tmp = sin(((pow(t_2, 3.0) - pow(t_6, 3.0)) / (((t_8 * t_8) - (t_7 * t_7)) / (((t_0 * ((double) M_PI)) * (((double) M_PI) + ((double) M_PI))) - t_8))));
}
return copysign(1.0, z0) * tmp;
}
public static double code(double z0) {
double t_0 = Math.abs(z0) * Math.abs(z0);
double t_1 = t_0 * (Math.PI * Math.PI);
double t_2 = Math.PI * Math.abs(z0);
double t_3 = t_2 * Math.abs(z0);
double t_4 = t_2 * Math.PI;
double t_5 = (t_4 * Math.PI) * t_0;
double t_6 = -Math.PI * Math.abs(z0);
double t_7 = t_2 * (t_6 + t_2);
double t_8 = t_3 * Math.PI;
double tmp;
if (Math.abs(z0) <= 1.5e+16) {
tmp = Math.sin((((Math.abs(z0) + Math.abs(z0)) * Math.pow(Math.PI, 0.6666666666666666)) * Math.pow(Math.pow(Math.PI, 0.16666666666666666), 2.0)));
} else if (Math.abs(z0) <= 4e+76) {
tmp = Math.sin(((((t_5 - t_5) * (t_5 + t_5)) / ((t_3 * t_4) - (((t_6 * Math.PI) * Math.abs(z0)) * t_6))) / (t_1 + (t_1 + (t_2 * t_6)))));
} else {
tmp = Math.sin(((Math.pow(t_2, 3.0) - Math.pow(t_6, 3.0)) / (((t_8 * t_8) - (t_7 * t_7)) / (((t_0 * Math.PI) * (Math.PI + Math.PI)) - t_8))));
}
return Math.copySign(1.0, z0) * tmp;
}
def code(z0): t_0 = math.fabs(z0) * math.fabs(z0) t_1 = t_0 * (math.pi * math.pi) t_2 = math.pi * math.fabs(z0) t_3 = t_2 * math.fabs(z0) t_4 = t_2 * math.pi t_5 = (t_4 * math.pi) * t_0 t_6 = -math.pi * math.fabs(z0) t_7 = t_2 * (t_6 + t_2) t_8 = t_3 * math.pi tmp = 0 if math.fabs(z0) <= 1.5e+16: tmp = math.sin((((math.fabs(z0) + math.fabs(z0)) * math.pow(math.pi, 0.6666666666666666)) * math.pow(math.pow(math.pi, 0.16666666666666666), 2.0))) elif math.fabs(z0) <= 4e+76: tmp = math.sin(((((t_5 - t_5) * (t_5 + t_5)) / ((t_3 * t_4) - (((t_6 * math.pi) * math.fabs(z0)) * t_6))) / (t_1 + (t_1 + (t_2 * t_6))))) else: tmp = math.sin(((math.pow(t_2, 3.0) - math.pow(t_6, 3.0)) / (((t_8 * t_8) - (t_7 * t_7)) / (((t_0 * math.pi) * (math.pi + math.pi)) - t_8)))) return math.copysign(1.0, z0) * tmp
function code(z0) t_0 = Float64(abs(z0) * abs(z0)) t_1 = Float64(t_0 * Float64(pi * pi)) t_2 = Float64(pi * abs(z0)) t_3 = Float64(t_2 * abs(z0)) t_4 = Float64(t_2 * pi) t_5 = Float64(Float64(t_4 * pi) * t_0) t_6 = Float64(Float64(-pi) * abs(z0)) t_7 = Float64(t_2 * Float64(t_6 + t_2)) t_8 = Float64(t_3 * pi) tmp = 0.0 if (abs(z0) <= 1.5e+16) tmp = sin(Float64(Float64(Float64(abs(z0) + abs(z0)) * (pi ^ 0.6666666666666666)) * ((pi ^ 0.16666666666666666) ^ 2.0))); elseif (abs(z0) <= 4e+76) tmp = sin(Float64(Float64(Float64(Float64(t_5 - t_5) * Float64(t_5 + t_5)) / Float64(Float64(t_3 * t_4) - Float64(Float64(Float64(t_6 * pi) * abs(z0)) * t_6))) / Float64(t_1 + Float64(t_1 + Float64(t_2 * t_6))))); else tmp = sin(Float64(Float64((t_2 ^ 3.0) - (t_6 ^ 3.0)) / Float64(Float64(Float64(t_8 * t_8) - Float64(t_7 * t_7)) / Float64(Float64(Float64(t_0 * pi) * Float64(pi + pi)) - t_8)))); end return Float64(copysign(1.0, z0) * tmp) end
function tmp_2 = code(z0) t_0 = abs(z0) * abs(z0); t_1 = t_0 * (pi * pi); t_2 = pi * abs(z0); t_3 = t_2 * abs(z0); t_4 = t_2 * pi; t_5 = (t_4 * pi) * t_0; t_6 = -pi * abs(z0); t_7 = t_2 * (t_6 + t_2); t_8 = t_3 * pi; tmp = 0.0; if (abs(z0) <= 1.5e+16) tmp = sin((((abs(z0) + abs(z0)) * (pi ^ 0.6666666666666666)) * ((pi ^ 0.16666666666666666) ^ 2.0))); elseif (abs(z0) <= 4e+76) tmp = sin(((((t_5 - t_5) * (t_5 + t_5)) / ((t_3 * t_4) - (((t_6 * pi) * abs(z0)) * t_6))) / (t_1 + (t_1 + (t_2 * t_6))))); else tmp = sin((((t_2 ^ 3.0) - (t_6 ^ 3.0)) / (((t_8 * t_8) - (t_7 * t_7)) / (((t_0 * pi) * (pi + pi)) - t_8)))); end tmp_2 = (sign(z0) * abs(1.0)) * tmp; end
code[z0_] := Block[{t$95$0 = N[(N[Abs[z0], $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 * N[(Pi * Pi), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(Pi * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(t$95$2 * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(t$95$2 * Pi), $MachinePrecision]}, Block[{t$95$5 = N[(N[(t$95$4 * Pi), $MachinePrecision] * t$95$0), $MachinePrecision]}, Block[{t$95$6 = N[((-Pi) * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$7 = N[(t$95$2 * N[(t$95$6 + t$95$2), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$8 = N[(t$95$3 * Pi), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1], TMP2 = Sign[z0]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * If[LessEqual[N[Abs[z0], $MachinePrecision], 15000000000000000], N[Sin[N[(N[(N[(N[Abs[z0], $MachinePrecision] + N[Abs[z0], $MachinePrecision]), $MachinePrecision] * N[Power[Pi, 2/3], $MachinePrecision]), $MachinePrecision] * N[Power[N[Power[Pi, 1/6], $MachinePrecision], 2], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[N[Abs[z0], $MachinePrecision], 40000000000000001882405379836218783566238405631466523057114838139592998125568], N[Sin[N[(N[(N[(N[(t$95$5 - t$95$5), $MachinePrecision] * N[(t$95$5 + t$95$5), $MachinePrecision]), $MachinePrecision] / N[(N[(t$95$3 * t$95$4), $MachinePrecision] - N[(N[(N[(t$95$6 * Pi), $MachinePrecision] * N[Abs[z0], $MachinePrecision]), $MachinePrecision] * t$95$6), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 + N[(t$95$1 + N[(t$95$2 * t$95$6), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[Sin[N[(N[(N[Power[t$95$2, 3], $MachinePrecision] - N[Power[t$95$6, 3], $MachinePrecision]), $MachinePrecision] / N[(N[(N[(t$95$8 * t$95$8), $MachinePrecision] - N[(t$95$7 * t$95$7), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(t$95$0 * Pi), $MachinePrecision] * N[(Pi + Pi), $MachinePrecision]), $MachinePrecision] - t$95$8), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]]]), $MachinePrecision]]]]]]]]]]
\begin{array}{l}
t_0 := \left|z0\right| \cdot \left|z0\right|\\
t_1 := t\_0 \cdot \left(\pi \cdot \pi\right)\\
t_2 := \pi \cdot \left|z0\right|\\
t_3 := t\_2 \cdot \left|z0\right|\\
t_4 := t\_2 \cdot \pi\\
t_5 := \left(t\_4 \cdot \pi\right) \cdot t\_0\\
t_6 := \left(-\pi\right) \cdot \left|z0\right|\\
t_7 := t\_2 \cdot \left(t\_6 + t\_2\right)\\
t_8 := t\_3 \cdot \pi\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 15000000000000000:\\
\;\;\;\;\sin \left(\left(\left(\left|z0\right| + \left|z0\right|\right) \cdot {\pi}^{\frac{2}{3}}\right) \cdot {\left({\pi}^{\frac{1}{6}}\right)}^{2}\right)\\
\mathbf{elif}\;\left|z0\right| \leq 40000000000000001882405379836218783566238405631466523057114838139592998125568:\\
\;\;\;\;\sin \left(\frac{\frac{\left(t\_5 - t\_5\right) \cdot \left(t\_5 + t\_5\right)}{t\_3 \cdot t\_4 - \left(\left(t\_6 \cdot \pi\right) \cdot \left|z0\right|\right) \cdot t\_6}}{t\_1 + \left(t\_1 + t\_2 \cdot t\_6\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{{t\_2}^{3} - {t\_6}^{3}}{\frac{t\_8 \cdot t\_8 - t\_7 \cdot t\_7}{\left(t\_0 \cdot \pi\right) \cdot \left(\pi + \pi\right) - t\_8}}\right)\\
\end{array}
\end{array}
if z0 < 1.5e16Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
lift-cbrt.f64N/A
pow1/3N/A
sqr-powN/A
lower-unsound-*.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f64N/A
lower-unsound-pow.f64N/A
lower-unsound-/.f6452.8%
Applied rewrites52.8%
lift-*.f64N/A
pow2N/A
lower-pow.f6452.8%
lower-unsound-/.f64N/A
lower-unsound-/.f6452.8%
lift-/.f64N/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.5e16 < z0 < 4.0000000000000002e76Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites1.0%
Applied rewrites5.4%
if 4.0000000000000002e76 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.2%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (- PI) (fabs z0)))
(t_1 (* PI (fabs z0)))
(t_2 (* t_1 PI))
(t_3 (* t_2 PI))
(t_4 (* t_1 (+ t_0 t_1)))
(t_5 (* (fabs z0) (fabs z0)))
(t_6 (* t_5 PI))
(t_7 (* t_3 t_5))
(t_8 (* t_5 (* PI PI))))
(*
(copysign 1 z0)
(if (<= (fabs z0) 15000000000000000)
(* 2 (* (sin (- t_1 (* PI -1/2))) (sin t_1)))
(if (<=
(fabs z0)
40000000000000001882405379836218783566238405631466523057114838139592998125568)
(sin
(/
(/
(* (- t_7 t_7) (+ t_7 t_7))
(-
(* (* t_1 (fabs z0)) t_2)
(* (* (* t_0 PI) (fabs z0)) t_0)))
(+ t_8 (+ t_8 (* t_1 t_0)))))
(sin
(/
(304-z0z1z2z3z4
(* (+ (fabs z0) (fabs z0)) PI)
t_6
(+ PI PI)
t_2
(fabs z0))
(/
(- (* (* t_3 t_1) t_5) (* t_4 t_4))
(* t_6 (- (+ PI PI) PI))))))))))\begin{array}{l}
t_0 := \left(-\pi\right) \cdot \left|z0\right|\\
t_1 := \pi \cdot \left|z0\right|\\
t_2 := t\_1 \cdot \pi\\
t_3 := t\_2 \cdot \pi\\
t_4 := t\_1 \cdot \left(t\_0 + t\_1\right)\\
t_5 := \left|z0\right| \cdot \left|z0\right|\\
t_6 := t\_5 \cdot \pi\\
t_7 := t\_3 \cdot t\_5\\
t_8 := t\_5 \cdot \left(\pi \cdot \pi\right)\\
\mathsf{copysign}\left(1, z0\right) \cdot \begin{array}{l}
\mathbf{if}\;\left|z0\right| \leq 15000000000000000:\\
\;\;\;\;2 \cdot \left(\sin \left(t\_1 - \pi \cdot \frac{-1}{2}\right) \cdot \sin t\_1\right)\\
\mathbf{elif}\;\left|z0\right| \leq 40000000000000001882405379836218783566238405631466523057114838139592998125568:\\
\;\;\;\;\sin \left(\frac{\frac{\left(t\_7 - t\_7\right) \cdot \left(t\_7 + t\_7\right)}{\left(t\_1 \cdot \left|z0\right|\right) \cdot t\_2 - \left(\left(t\_0 \cdot \pi\right) \cdot \left|z0\right|\right) \cdot t\_0}}{t\_8 + \left(t\_8 + t\_1 \cdot t\_0\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{\mathsf{304\_z0z1z2z3z4}\left(\left(\left(\left|z0\right| + \left|z0\right|\right) \cdot \pi\right), t\_6, \left(\pi + \pi\right), t\_2, \left(\left|z0\right|\right)\right)}{\frac{\left(t\_3 \cdot t\_1\right) \cdot t\_5 - t\_4 \cdot t\_4}{t\_6 \cdot \left(\left(\pi + \pi\right) - \pi\right)}}\right)\\
\end{array}
\end{array}
if z0 < 1.5e16Initial program 52.9%
lift-sin.f64N/A
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
count-2N/A
sin-2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f6452.9%
Applied rewrites52.9%
lift-cos.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
add-flipN/A
lower--.f64N/A
lift-PI.f64N/A
mult-flipN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f64N/A
metadata-evalN/A
metadata-eval52.8%
Applied rewrites52.8%
if 1.5e16 < z0 < 4.0000000000000002e76Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites1.0%
Applied rewrites5.4%
if 4.0000000000000002e76 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.4%
Applied rewrites19.2%
(FPCore (z0)
:precision binary64
(let* ((t_0 (* (* z0 z0) PI))
(t_1 (* (* PI z0) PI))
(t_2 (* (* PI z0) (+ (* (- PI) z0) (* PI z0)))))
(if (<= z0 8999999999999999938988538069254651788155375977496576)
(* 2 (* (sin (- (* PI z0) (* PI -1/2))) (sin (* PI z0))))
(sin
(/
(304-z0z1z2z3z4 (* (+ z0 z0) PI) t_0 (+ PI PI) t_1 z0)
(/
(- (* (* (* t_1 PI) (* PI z0)) (* z0 z0)) (* t_2 t_2))
(* t_0 (- (+ PI PI) PI))))))))\begin{array}{l}
t_0 := \left(z0 \cdot z0\right) \cdot \pi\\
t_1 := \left(\pi \cdot z0\right) \cdot \pi\\
t_2 := \left(\pi \cdot z0\right) \cdot \left(\left(-\pi\right) \cdot z0 + \pi \cdot z0\right)\\
\mathbf{if}\;z0 \leq 8999999999999999938988538069254651788155375977496576:\\
\;\;\;\;2 \cdot \left(\sin \left(\pi \cdot z0 - \pi \cdot \frac{-1}{2}\right) \cdot \sin \left(\pi \cdot z0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\frac{\mathsf{304\_z0z1z2z3z4}\left(\left(\left(z0 + z0\right) \cdot \pi\right), t\_0, \left(\pi + \pi\right), t\_1, z0\right)}{\frac{\left(\left(t\_1 \cdot \pi\right) \cdot \left(\pi \cdot z0\right)\right) \cdot \left(z0 \cdot z0\right) - t\_2 \cdot t\_2}{t\_0 \cdot \left(\left(\pi + \pi\right) - \pi\right)}}\right)\\
\end{array}
if z0 < 8.9999999999999999e51Initial program 52.9%
lift-sin.f64N/A
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
count-2N/A
sin-2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f6452.9%
Applied rewrites52.9%
lift-cos.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
add-flipN/A
lower--.f64N/A
lift-PI.f64N/A
mult-flipN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f64N/A
metadata-evalN/A
metadata-eval52.8%
Applied rewrites52.8%
if 8.9999999999999999e51 < z0 Initial program 52.9%
lift-*.f64N/A
lift-+.f64N/A
count-2N/A
associate-*r*N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
count-2N/A
lower-+.f64N/A
lift-PI.f64N/A
pow1/3N/A
lift-PI.f64N/A
pow1/3N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-cbrt.f6452.3%
Applied rewrites52.3%
Applied rewrites19.3%
Applied rewrites19.4%
Applied rewrites19.2%
(FPCore (z0) :precision binary64 (let* ((t_0 (* PI (fabs z0)))) (* (copysign 1 z0) (* 2 (* (sin (- t_0 (* PI -1/2))) (sin t_0))))))
double code(double z0) {
double t_0 = ((double) M_PI) * fabs(z0);
return copysign(1.0, z0) * (2.0 * (sin((t_0 - (((double) M_PI) * -0.5))) * sin(t_0)));
}
public static double code(double z0) {
double t_0 = Math.PI * Math.abs(z0);
return Math.copySign(1.0, z0) * (2.0 * (Math.sin((t_0 - (Math.PI * -0.5))) * Math.sin(t_0)));
}
def code(z0): t_0 = math.pi * math.fabs(z0) return math.copysign(1.0, z0) * (2.0 * (math.sin((t_0 - (math.pi * -0.5))) * math.sin(t_0)))
function code(z0) t_0 = Float64(pi * abs(z0)) return Float64(copysign(1.0, z0) * Float64(2.0 * Float64(sin(Float64(t_0 - Float64(pi * -0.5))) * sin(t_0)))) end
function tmp = code(z0) t_0 = pi * abs(z0); tmp = (sign(z0) * abs(1.0)) * (2.0 * (sin((t_0 - (pi * -0.5))) * sin(t_0))); end
code[z0_] := Block[{t$95$0 = N[(Pi * N[Abs[z0], $MachinePrecision]), $MachinePrecision]}, N[(N[With[{TMP1 = Abs[1], TMP2 = Sign[z0]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision] * N[(2 * N[(N[Sin[N[(t$95$0 - N[(Pi * -1/2), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
t_0 := \pi \cdot \left|z0\right|\\
\mathsf{copysign}\left(1, z0\right) \cdot \left(2 \cdot \left(\sin \left(t\_0 - \pi \cdot \frac{-1}{2}\right) \cdot \sin t\_0\right)\right)
\end{array}
Initial program 52.9%
lift-sin.f64N/A
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
count-2N/A
sin-2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f6452.9%
Applied rewrites52.9%
lift-cos.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
add-flipN/A
lower--.f64N/A
lift-PI.f64N/A
mult-flipN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
lower-*.f64N/A
metadata-evalN/A
metadata-eval52.8%
Applied rewrites52.8%
(FPCore (z0) :precision binary64 (* 2 (* (cos (* PI z0)) (sin (* PI z0)))))
double code(double z0) {
return 2.0 * (cos((((double) M_PI) * z0)) * sin((((double) M_PI) * z0)));
}
public static double code(double z0) {
return 2.0 * (Math.cos((Math.PI * z0)) * Math.sin((Math.PI * z0)));
}
def code(z0): return 2.0 * (math.cos((math.pi * z0)) * math.sin((math.pi * z0)))
function code(z0) return Float64(2.0 * Float64(cos(Float64(pi * z0)) * sin(Float64(pi * z0)))) end
function tmp = code(z0) tmp = 2.0 * (cos((pi * z0)) * sin((pi * z0))); end
code[z0_] := N[(2 * N[(N[Cos[N[(Pi * z0), $MachinePrecision]], $MachinePrecision] * N[Sin[N[(Pi * z0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
2 \cdot \left(\cos \left(\pi \cdot z0\right) \cdot \sin \left(\pi \cdot z0\right)\right)
Initial program 52.9%
lift-sin.f64N/A
lift-*.f64N/A
lift-+.f64N/A
distribute-lft-inN/A
count-2N/A
sin-2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f6452.9%
Applied rewrites52.9%
herbie shell --seed 2025277 -o generate:taylor -o generate:evaluate
(FPCore (z0)
:name "(sin (* z0 (+ PI PI)))"
:precision binary64
(sin (* z0 (+ PI PI))))