(FPCore (F l) :precision binary64 (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))
(FPCore (F l)
:precision binary64
(let* ((t_0 (+ (* -0.16666666666666666 (pow PI 3.0)) (* (pow PI 3.0) 0.5)))
(t_1 (/ (* F (pow t_0 2.0)) (pow PI 3.0)))
(t_2
(-
(* 0.041666666666666664 (pow PI 5.0))
(* (* t_0 (pow PI 2.0)) 0.5)))
(t_3 (+ t_2 (* (pow PI 5.0) -0.008333333333333333))))
(-
(* PI l)
(/
(/
-1.0
(-
(/
(*
F
(* l (+ (* (pow PI 3.0) -0.5) (* (pow PI 3.0) 0.16666666666666666))))
(pow PI 2.0))
(-
(+
(*
(+
(/
(*
F
(+
(* -0.0001984126984126984 (pow PI 7.0))
(+
(* (* t_0 (pow PI 4.0)) -0.041666666666666664)
(-
(* (pow PI 7.0) 0.001388888888888889)
(* 0.5 (* (pow PI 2.0) t_3))))))
(pow PI 2.0))
(+
(/ (* t_0 (+ t_1 (/ (* F t_3) (pow PI 2.0)))) PI)
(/ (* F (* t_0 t_3)) (pow PI 3.0))))
(pow l 5.0))
(*
(-
(/ (* F (- (* 0.008333333333333333 (pow PI 5.0)) t_2)) (pow PI 2.0))
t_1)
(pow l 3.0)))
(/ F (* PI l)))))
(- F)))))double code(double F, double l) {
return (((double) M_PI) * l) - ((1.0 / (F * F)) * tan((((double) M_PI) * l)));
}
double code(double F, double l) {
double t_0 = (-0.16666666666666666 * pow(((double) M_PI), 3.0)) + (pow(((double) M_PI), 3.0) * 0.5);
double t_1 = (F * pow(t_0, 2.0)) / pow(((double) M_PI), 3.0);
double t_2 = (0.041666666666666664 * pow(((double) M_PI), 5.0)) - ((t_0 * pow(((double) M_PI), 2.0)) * 0.5);
double t_3 = t_2 + (pow(((double) M_PI), 5.0) * -0.008333333333333333);
return (((double) M_PI) * l) - ((-1.0 / (((F * (l * ((pow(((double) M_PI), 3.0) * -0.5) + (pow(((double) M_PI), 3.0) * 0.16666666666666666)))) / pow(((double) M_PI), 2.0)) - ((((((F * ((-0.0001984126984126984 * pow(((double) M_PI), 7.0)) + (((t_0 * pow(((double) M_PI), 4.0)) * -0.041666666666666664) + ((pow(((double) M_PI), 7.0) * 0.001388888888888889) - (0.5 * (pow(((double) M_PI), 2.0) * t_3)))))) / pow(((double) M_PI), 2.0)) + (((t_0 * (t_1 + ((F * t_3) / pow(((double) M_PI), 2.0)))) / ((double) M_PI)) + ((F * (t_0 * t_3)) / pow(((double) M_PI), 3.0)))) * pow(l, 5.0)) + ((((F * ((0.008333333333333333 * pow(((double) M_PI), 5.0)) - t_2)) / pow(((double) M_PI), 2.0)) - t_1) * pow(l, 3.0))) - (F / (((double) M_PI) * l))))) / -F);
}
public static double code(double F, double l) {
return (Math.PI * l) - ((1.0 / (F * F)) * Math.tan((Math.PI * l)));
}
public static double code(double F, double l) {
double t_0 = (-0.16666666666666666 * Math.pow(Math.PI, 3.0)) + (Math.pow(Math.PI, 3.0) * 0.5);
double t_1 = (F * Math.pow(t_0, 2.0)) / Math.pow(Math.PI, 3.0);
double t_2 = (0.041666666666666664 * Math.pow(Math.PI, 5.0)) - ((t_0 * Math.pow(Math.PI, 2.0)) * 0.5);
double t_3 = t_2 + (Math.pow(Math.PI, 5.0) * -0.008333333333333333);
return (Math.PI * l) - ((-1.0 / (((F * (l * ((Math.pow(Math.PI, 3.0) * -0.5) + (Math.pow(Math.PI, 3.0) * 0.16666666666666666)))) / Math.pow(Math.PI, 2.0)) - ((((((F * ((-0.0001984126984126984 * Math.pow(Math.PI, 7.0)) + (((t_0 * Math.pow(Math.PI, 4.0)) * -0.041666666666666664) + ((Math.pow(Math.PI, 7.0) * 0.001388888888888889) - (0.5 * (Math.pow(Math.PI, 2.0) * t_3)))))) / Math.pow(Math.PI, 2.0)) + (((t_0 * (t_1 + ((F * t_3) / Math.pow(Math.PI, 2.0)))) / Math.PI) + ((F * (t_0 * t_3)) / Math.pow(Math.PI, 3.0)))) * Math.pow(l, 5.0)) + ((((F * ((0.008333333333333333 * Math.pow(Math.PI, 5.0)) - t_2)) / Math.pow(Math.PI, 2.0)) - t_1) * Math.pow(l, 3.0))) - (F / (Math.PI * l))))) / -F);
}
def code(F, l): return (math.pi * l) - ((1.0 / (F * F)) * math.tan((math.pi * l)))
def code(F, l): t_0 = (-0.16666666666666666 * math.pow(math.pi, 3.0)) + (math.pow(math.pi, 3.0) * 0.5) t_1 = (F * math.pow(t_0, 2.0)) / math.pow(math.pi, 3.0) t_2 = (0.041666666666666664 * math.pow(math.pi, 5.0)) - ((t_0 * math.pow(math.pi, 2.0)) * 0.5) t_3 = t_2 + (math.pow(math.pi, 5.0) * -0.008333333333333333) return (math.pi * l) - ((-1.0 / (((F * (l * ((math.pow(math.pi, 3.0) * -0.5) + (math.pow(math.pi, 3.0) * 0.16666666666666666)))) / math.pow(math.pi, 2.0)) - ((((((F * ((-0.0001984126984126984 * math.pow(math.pi, 7.0)) + (((t_0 * math.pow(math.pi, 4.0)) * -0.041666666666666664) + ((math.pow(math.pi, 7.0) * 0.001388888888888889) - (0.5 * (math.pow(math.pi, 2.0) * t_3)))))) / math.pow(math.pi, 2.0)) + (((t_0 * (t_1 + ((F * t_3) / math.pow(math.pi, 2.0)))) / math.pi) + ((F * (t_0 * t_3)) / math.pow(math.pi, 3.0)))) * math.pow(l, 5.0)) + ((((F * ((0.008333333333333333 * math.pow(math.pi, 5.0)) - t_2)) / math.pow(math.pi, 2.0)) - t_1) * math.pow(l, 3.0))) - (F / (math.pi * l))))) / -F)
function code(F, l) return Float64(Float64(pi * l) - Float64(Float64(1.0 / Float64(F * F)) * tan(Float64(pi * l)))) end
function code(F, l) t_0 = Float64(Float64(-0.16666666666666666 * (pi ^ 3.0)) + Float64((pi ^ 3.0) * 0.5)) t_1 = Float64(Float64(F * (t_0 ^ 2.0)) / (pi ^ 3.0)) t_2 = Float64(Float64(0.041666666666666664 * (pi ^ 5.0)) - Float64(Float64(t_0 * (pi ^ 2.0)) * 0.5)) t_3 = Float64(t_2 + Float64((pi ^ 5.0) * -0.008333333333333333)) return Float64(Float64(pi * l) - Float64(Float64(-1.0 / Float64(Float64(Float64(F * Float64(l * Float64(Float64((pi ^ 3.0) * -0.5) + Float64((pi ^ 3.0) * 0.16666666666666666)))) / (pi ^ 2.0)) - Float64(Float64(Float64(Float64(Float64(Float64(F * Float64(Float64(-0.0001984126984126984 * (pi ^ 7.0)) + Float64(Float64(Float64(t_0 * (pi ^ 4.0)) * -0.041666666666666664) + Float64(Float64((pi ^ 7.0) * 0.001388888888888889) - Float64(0.5 * Float64((pi ^ 2.0) * t_3)))))) / (pi ^ 2.0)) + Float64(Float64(Float64(t_0 * Float64(t_1 + Float64(Float64(F * t_3) / (pi ^ 2.0)))) / pi) + Float64(Float64(F * Float64(t_0 * t_3)) / (pi ^ 3.0)))) * (l ^ 5.0)) + Float64(Float64(Float64(Float64(F * Float64(Float64(0.008333333333333333 * (pi ^ 5.0)) - t_2)) / (pi ^ 2.0)) - t_1) * (l ^ 3.0))) - Float64(F / Float64(pi * l))))) / Float64(-F))) end
function tmp = code(F, l) tmp = (pi * l) - ((1.0 / (F * F)) * tan((pi * l))); end
function tmp = code(F, l) t_0 = (-0.16666666666666666 * (pi ^ 3.0)) + ((pi ^ 3.0) * 0.5); t_1 = (F * (t_0 ^ 2.0)) / (pi ^ 3.0); t_2 = (0.041666666666666664 * (pi ^ 5.0)) - ((t_0 * (pi ^ 2.0)) * 0.5); t_3 = t_2 + ((pi ^ 5.0) * -0.008333333333333333); tmp = (pi * l) - ((-1.0 / (((F * (l * (((pi ^ 3.0) * -0.5) + ((pi ^ 3.0) * 0.16666666666666666)))) / (pi ^ 2.0)) - ((((((F * ((-0.0001984126984126984 * (pi ^ 7.0)) + (((t_0 * (pi ^ 4.0)) * -0.041666666666666664) + (((pi ^ 7.0) * 0.001388888888888889) - (0.5 * ((pi ^ 2.0) * t_3)))))) / (pi ^ 2.0)) + (((t_0 * (t_1 + ((F * t_3) / (pi ^ 2.0)))) / pi) + ((F * (t_0 * t_3)) / (pi ^ 3.0)))) * (l ^ 5.0)) + ((((F * ((0.008333333333333333 * (pi ^ 5.0)) - t_2)) / (pi ^ 2.0)) - t_1) * (l ^ 3.0))) - (F / (pi * l))))) / -F); end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(1.0 / N[(F * F), $MachinePrecision]), $MachinePrecision] * N[Tan[N[(Pi * l), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[F_, l_] := Block[{t$95$0 = N[(N[(-0.16666666666666666 * N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision] + N[(N[Power[Pi, 3.0], $MachinePrecision] * 0.5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(F * N[Power[t$95$0, 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(0.041666666666666664 * N[Power[Pi, 5.0], $MachinePrecision]), $MachinePrecision] - N[(N[(t$95$0 * N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] * 0.5), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(t$95$2 + N[(N[Power[Pi, 5.0], $MachinePrecision] * -0.008333333333333333), $MachinePrecision]), $MachinePrecision]}, N[(N[(Pi * l), $MachinePrecision] - N[(N[(-1.0 / N[(N[(N[(F * N[(l * N[(N[(N[Power[Pi, 3.0], $MachinePrecision] * -0.5), $MachinePrecision] + N[(N[Power[Pi, 3.0], $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] - N[(N[(N[(N[(N[(N[(F * N[(N[(-0.0001984126984126984 * N[Power[Pi, 7.0], $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$0 * N[Power[Pi, 4.0], $MachinePrecision]), $MachinePrecision] * -0.041666666666666664), $MachinePrecision] + N[(N[(N[Power[Pi, 7.0], $MachinePrecision] * 0.001388888888888889), $MachinePrecision] - N[(0.5 * N[(N[Power[Pi, 2.0], $MachinePrecision] * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$0 * N[(t$95$1 + N[(N[(F * t$95$3), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Pi), $MachinePrecision] + N[(N[(F * N[(t$95$0 * t$95$3), $MachinePrecision]), $MachinePrecision] / N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[l, 5.0], $MachinePrecision]), $MachinePrecision] + N[(N[(N[(N[(F * N[(N[(0.008333333333333333 * N[Power[Pi, 5.0], $MachinePrecision]), $MachinePrecision] - t$95$2), $MachinePrecision]), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision] - t$95$1), $MachinePrecision] * N[Power[l, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(F / N[(Pi * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / (-F)), $MachinePrecision]), $MachinePrecision]]]]]
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\begin{array}{l}
t_0 := -0.16666666666666666 \cdot {\pi}^{3} + {\pi}^{3} \cdot 0.5\\
t_1 := \frac{F \cdot {t_0}^{2}}{{\pi}^{3}}\\
t_2 := 0.041666666666666664 \cdot {\pi}^{5} - \left(t_0 \cdot {\pi}^{2}\right) \cdot 0.5\\
t_3 := t_2 + {\pi}^{5} \cdot -0.008333333333333333\\
\pi \cdot \ell - \frac{\frac{-1}{\frac{F \cdot \left(\ell \cdot \left({\pi}^{3} \cdot -0.5 + {\pi}^{3} \cdot 0.16666666666666666\right)\right)}{{\pi}^{2}} - \left(\left(\left(\frac{F \cdot \left(-0.0001984126984126984 \cdot {\pi}^{7} + \left(\left(t_0 \cdot {\pi}^{4}\right) \cdot -0.041666666666666664 + \left({\pi}^{7} \cdot 0.001388888888888889 - 0.5 \cdot \left({\pi}^{2} \cdot t_3\right)\right)\right)\right)}{{\pi}^{2}} + \left(\frac{t_0 \cdot \left(t_1 + \frac{F \cdot t_3}{{\pi}^{2}}\right)}{\pi} + \frac{F \cdot \left(t_0 \cdot t_3\right)}{{\pi}^{3}}\right)\right) \cdot {\ell}^{5} + \left(\frac{F \cdot \left(0.008333333333333333 \cdot {\pi}^{5} - t_2\right)}{{\pi}^{2}} - t_1\right) \cdot {\ell}^{3}\right) - \frac{F}{\pi \cdot \ell}\right)}}{-F}
\end{array}
Results
Initial program 16.8
Simplified16.6
Applied egg-rr12.6
Applied egg-rr12.6
Applied egg-rr12.6
Taylor expanded in l around 0 2.6
Final simplification2.6
herbie shell --seed 2022210
(FPCore (F l)
:name "VandenBroeck and Keller, Equation (6)"
:precision binary64
(- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))