VandenBroeck and Keller, Equation (6)

Percentage Accurate: 77.1% → 94.5%
Time: 31.0s
Alternatives: 10
Speedup: 1.0×

Specification

?
\[\begin{array}{l} \\ \pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \end{array} \]
(FPCore (F l)
 :precision binary64
 (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))
double code(double F, double l) {
	return (((double) M_PI) * l) - ((1.0 / (F * F)) * tan((((double) M_PI) * l)));
}
public static double code(double F, double l) {
	return (Math.PI * l) - ((1.0 / (F * F)) * Math.tan((Math.PI * l)));
}
def code(F, l):
	return (math.pi * l) - ((1.0 / (F * F)) * math.tan((math.pi * l)))
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(1.0 / Float64(F * F)) * tan(Float64(pi * l))))
end
function tmp = code(F, l)
	tmp = (pi * l) - ((1.0 / (F * F)) * tan((pi * l)));
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]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 10 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 77.1% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \end{array} \]
(FPCore (F l)
 :precision binary64
 (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))
double code(double F, double l) {
	return (((double) M_PI) * l) - ((1.0 / (F * F)) * tan((((double) M_PI) * l)));
}
public static double code(double F, double l) {
	return (Math.PI * l) - ((1.0 / (F * F)) * Math.tan((Math.PI * l)));
}
def code(F, l):
	return (math.pi * l) - ((1.0 / (F * F)) * math.tan((math.pi * l)))
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(1.0 / Float64(F * F)) * tan(Float64(pi * l))))
end
function tmp = code(F, l)
	tmp = (pi * l) - ((1.0 / (F * F)) * tan((pi * l)));
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]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right)
\end{array}

Alternative 1: 94.5% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell + \frac{\frac{-1}{F}}{\left(\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) + {\ell}^{3} \cdot \left(F \cdot \left({\pi}^{3} \cdot -0.013888888888888888 - {\pi}^{3} \cdot 0.008333333333333333\right)\right)} \end{array} \]
(FPCore (F l)
 :precision binary64
 (+
  (* PI l)
  (/
   (/ -1.0 F)
   (+
    (-
     (/ F (* PI l))
     (* F (/ (* (* l (pow PI 3.0)) 0.3333333333333333) (pow PI 2.0))))
    (*
     (pow l 3.0)
     (*
      F
      (-
       (* (pow PI 3.0) -0.013888888888888888)
       (* (pow PI 3.0) 0.008333333333333333))))))))
double code(double F, double l) {
	return (((double) M_PI) * l) + ((-1.0 / F) / (((F / (((double) M_PI) * l)) - (F * (((l * pow(((double) M_PI), 3.0)) * 0.3333333333333333) / pow(((double) M_PI), 2.0)))) + (pow(l, 3.0) * (F * ((pow(((double) M_PI), 3.0) * -0.013888888888888888) - (pow(((double) M_PI), 3.0) * 0.008333333333333333))))));
}
public static double code(double F, double l) {
	return (Math.PI * l) + ((-1.0 / F) / (((F / (Math.PI * l)) - (F * (((l * Math.pow(Math.PI, 3.0)) * 0.3333333333333333) / Math.pow(Math.PI, 2.0)))) + (Math.pow(l, 3.0) * (F * ((Math.pow(Math.PI, 3.0) * -0.013888888888888888) - (Math.pow(Math.PI, 3.0) * 0.008333333333333333))))));
}
def code(F, l):
	return (math.pi * l) + ((-1.0 / F) / (((F / (math.pi * l)) - (F * (((l * math.pow(math.pi, 3.0)) * 0.3333333333333333) / math.pow(math.pi, 2.0)))) + (math.pow(l, 3.0) * (F * ((math.pow(math.pi, 3.0) * -0.013888888888888888) - (math.pow(math.pi, 3.0) * 0.008333333333333333))))))
function code(F, l)
	return Float64(Float64(pi * l) + Float64(Float64(-1.0 / F) / Float64(Float64(Float64(F / Float64(pi * l)) - Float64(F * Float64(Float64(Float64(l * (pi ^ 3.0)) * 0.3333333333333333) / (pi ^ 2.0)))) + Float64((l ^ 3.0) * Float64(F * Float64(Float64((pi ^ 3.0) * -0.013888888888888888) - Float64((pi ^ 3.0) * 0.008333333333333333)))))))
end
function tmp = code(F, l)
	tmp = (pi * l) + ((-1.0 / F) / (((F / (pi * l)) - (F * (((l * (pi ^ 3.0)) * 0.3333333333333333) / (pi ^ 2.0)))) + ((l ^ 3.0) * (F * (((pi ^ 3.0) * -0.013888888888888888) - ((pi ^ 3.0) * 0.008333333333333333))))));
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] + N[(N[(-1.0 / F), $MachinePrecision] / N[(N[(N[(F / N[(Pi * l), $MachinePrecision]), $MachinePrecision] - N[(F * N[(N[(N[(l * N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision] * 0.3333333333333333), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Power[l, 3.0], $MachinePrecision] * N[(F * N[(N[(N[Power[Pi, 3.0], $MachinePrecision] * -0.013888888888888888), $MachinePrecision] - N[(N[Power[Pi, 3.0], $MachinePrecision] * 0.008333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell + \frac{\frac{-1}{F}}{\left(\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) + {\ell}^{3} \cdot \left(F \cdot \left({\pi}^{3} \cdot -0.013888888888888888 - {\pi}^{3} \cdot 0.008333333333333333\right)\right)}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. associate-/r/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{F \cdot F}{\tan \left(\pi \cdot \ell\right)}}} \]
    2. associate-/l*82.8%

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\frac{F}{\frac{\tan \left(\pi \cdot \ell\right)}{F}}}} \]
    3. clear-num82.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
    4. add-sqr-sqrt38.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}} \]
    5. sqrt-prod68.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F \cdot F}}} \]
    6. sqr-neg68.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\sqrt{\color{blue}{\left(-F\right) \cdot \left(-F\right)}}} \]
    7. sqrt-unprod30.4%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{-F} \cdot \sqrt{-F}}} \]
    8. div-inv30.4%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    9. metadata-eval30.4%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\color{blue}{\sqrt{1}}}{F}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    10. add-sqr-sqrt0.0%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    11. sqrt-prod40.9%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    12. sqrt-div40.9%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    13. add-sqr-sqrt67.4%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \sqrt{\frac{1}{F \cdot F}}}{\color{blue}{-F}} \]
    14. associate-*l/67.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\tan \left(\pi \cdot \ell\right)}{-F} \cdot \sqrt{\frac{1}{F \cdot F}}} \]
    15. clear-num67.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \cdot \sqrt{\frac{1}{F \cdot F}} \]
    16. associate-*l/67.5%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \sqrt{\frac{1}{F \cdot F}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \]
    17. *-un-lft-identity67.5%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}} \]
  3. Applied egg-rr82.8%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{1}{F}}{\frac{F}{\tan \left(\pi \cdot \ell\right)}}} \]
  4. Taylor expanded in l around 0 94.7%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{-1 \cdot \left({\ell}^{3} \cdot \left(-1 \cdot \frac{F \cdot {\left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}^{2}}{{\pi}^{3}} + \frac{F \cdot \left(0.008333333333333333 \cdot {\pi}^{5} - \left(-0.5 \cdot \left({\pi}^{2} \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right) + 0.041666666666666664 \cdot {\pi}^{5}\right)\right)}{{\pi}^{2}}\right)\right) + \left(-1 \cdot \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}} + \frac{F}{\ell \cdot \pi}\right)}} \]
  5. Simplified94.7%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(\frac{F}{{\pi}^{2}} \cdot \left(0.008333333333333333 \cdot {\pi}^{5} - \mathsf{fma}\left(-0.5, {\pi}^{3} \cdot \left(0.3333333333333333 \cdot {\pi}^{2}\right), {\pi}^{5} \cdot 0.041666666666666664\right)\right) - \frac{F}{{\pi}^{3}} \cdot \left({\pi}^{6} \cdot 0.1111111111111111\right)\right)}} \]
  6. Taylor expanded in F around 0 94.7%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \color{blue}{\left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - \left(-0.16666666666666666 \cdot {\pi}^{3} + \left(0.041666666666666664 \cdot {\pi}^{3} + 0.1111111111111111 \cdot {\pi}^{3}\right)\right)\right)\right)}} \]
  7. Step-by-step derivation
    1. *-commutative94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - \left(\color{blue}{{\pi}^{3} \cdot -0.16666666666666666} + \left(0.041666666666666664 \cdot {\pi}^{3} + 0.1111111111111111 \cdot {\pi}^{3}\right)\right)\right)\right)} \]
    2. distribute-rgt-out94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - \left({\pi}^{3} \cdot -0.16666666666666666 + \color{blue}{{\pi}^{3} \cdot \left(0.041666666666666664 + 0.1111111111111111\right)}\right)\right)\right)} \]
    3. distribute-lft-out94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - \color{blue}{{\pi}^{3} \cdot \left(-0.16666666666666666 + \left(0.041666666666666664 + 0.1111111111111111\right)\right)}\right)\right)} \]
    4. metadata-eval94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - {\pi}^{3} \cdot \left(-0.16666666666666666 + \color{blue}{0.1527777777777778}\right)\right)\right)} \]
    5. metadata-eval94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - {\pi}^{3} \cdot \color{blue}{-0.013888888888888888}\right)\right)} \]
  8. Simplified94.7%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\left(\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) - {\ell}^{3} \cdot \color{blue}{\left(F \cdot \left(0.008333333333333333 \cdot {\pi}^{3} - {\pi}^{3} \cdot -0.013888888888888888\right)\right)}} \]
  9. Final simplification94.7%

    \[\leadsto \pi \cdot \ell + \frac{\frac{-1}{F}}{\left(\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}\right) + {\ell}^{3} \cdot \left(F \cdot \left({\pi}^{3} \cdot -0.013888888888888888 - {\pi}^{3} \cdot 0.008333333333333333\right)\right)} \]

Alternative 2: 91.8% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \leq -1 \cdot 10^{+162} \lor \neg \left(\pi \cdot \ell \leq -5 \cdot 10^{+14}\right):\\ \;\;\;\;\pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5}{\frac{{F}^{4}}{{\left(\pi \cdot \ell\right)}^{2}}}\right)\right)\\ \end{array} \end{array} \]
(FPCore (F l)
 :precision binary64
 (if (or (<= (* PI l) -1e+162) (not (<= (* PI l) -5e+14)))
   (+
    (* PI l)
    (/
     (/ -1.0 F)
     (-
      (/ F (* PI l))
      (* F (/ (* (* l (pow PI 3.0)) 0.3333333333333333) (pow PI 2.0))))))
   (-
    (* PI l)
    (expm1
     (fma l (/ PI (pow F 2.0)) (/ -0.5 (/ (pow F 4.0) (pow (* PI l) 2.0))))))))
double code(double F, double l) {
	double tmp;
	if (((((double) M_PI) * l) <= -1e+162) || !((((double) M_PI) * l) <= -5e+14)) {
		tmp = (((double) M_PI) * l) + ((-1.0 / F) / ((F / (((double) M_PI) * l)) - (F * (((l * pow(((double) M_PI), 3.0)) * 0.3333333333333333) / pow(((double) M_PI), 2.0)))));
	} else {
		tmp = (((double) M_PI) * l) - expm1(fma(l, (((double) M_PI) / pow(F, 2.0)), (-0.5 / (pow(F, 4.0) / pow((((double) M_PI) * l), 2.0)))));
	}
	return tmp;
}
function code(F, l)
	tmp = 0.0
	if ((Float64(pi * l) <= -1e+162) || !(Float64(pi * l) <= -5e+14))
		tmp = Float64(Float64(pi * l) + Float64(Float64(-1.0 / F) / Float64(Float64(F / Float64(pi * l)) - Float64(F * Float64(Float64(Float64(l * (pi ^ 3.0)) * 0.3333333333333333) / (pi ^ 2.0))))));
	else
		tmp = Float64(Float64(pi * l) - expm1(fma(l, Float64(pi / (F ^ 2.0)), Float64(-0.5 / Float64((F ^ 4.0) / (Float64(pi * l) ^ 2.0))))));
	end
	return tmp
end
code[F_, l_] := If[Or[LessEqual[N[(Pi * l), $MachinePrecision], -1e+162], N[Not[LessEqual[N[(Pi * l), $MachinePrecision], -5e+14]], $MachinePrecision]], N[(N[(Pi * l), $MachinePrecision] + N[(N[(-1.0 / F), $MachinePrecision] / N[(N[(F / N[(Pi * l), $MachinePrecision]), $MachinePrecision] - N[(F * N[(N[(N[(l * N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision] * 0.3333333333333333), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(Pi * l), $MachinePrecision] - N[(Exp[N[(l * N[(Pi / N[Power[F, 2.0], $MachinePrecision]), $MachinePrecision] + N[(-0.5 / N[(N[Power[F, 4.0], $MachinePrecision] / N[Power[N[(Pi * l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\pi \cdot \ell \leq -1 \cdot 10^{+162} \lor \neg \left(\pi \cdot \ell \leq -5 \cdot 10^{+14}\right):\\
\;\;\;\;\pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}\\

\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5}{\frac{{F}^{4}}{{\left(\pi \cdot \ell\right)}^{2}}}\right)\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (*.f64 (PI.f64) l) < -9.9999999999999994e161 or -5e14 < (*.f64 (PI.f64) l)

    1. Initial program 81.4%

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. Step-by-step derivation
      1. associate-/r/81.8%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{F \cdot F}{\tan \left(\pi \cdot \ell\right)}}} \]
      2. associate-/l*86.5%

        \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\frac{F}{\frac{\tan \left(\pi \cdot \ell\right)}{F}}}} \]
      3. clear-num86.5%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
      4. add-sqr-sqrt38.5%

        \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}} \]
      5. sqrt-prod70.2%

        \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F \cdot F}}} \]
      6. sqr-neg70.2%

        \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\sqrt{\color{blue}{\left(-F\right) \cdot \left(-F\right)}}} \]
      7. sqrt-unprod32.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{-F} \cdot \sqrt{-F}}} \]
      8. div-inv32.1%

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
      9. metadata-eval32.1%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\color{blue}{\sqrt{1}}}{F}}{\sqrt{-F} \cdot \sqrt{-F}} \]
      10. add-sqr-sqrt0.0%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
      11. sqrt-prod43.8%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
      12. sqrt-div43.8%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
      13. add-sqr-sqrt68.8%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \sqrt{\frac{1}{F \cdot F}}}{\color{blue}{-F}} \]
      14. associate-*l/68.9%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\tan \left(\pi \cdot \ell\right)}{-F} \cdot \sqrt{\frac{1}{F \cdot F}}} \]
      15. clear-num68.8%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \cdot \sqrt{\frac{1}{F \cdot F}} \]
      16. associate-*l/68.9%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \sqrt{\frac{1}{F \cdot F}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \]
      17. *-un-lft-identity68.9%

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}} \]
    3. Applied egg-rr86.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{1}{F}}{\frac{F}{\tan \left(\pi \cdot \ell\right)}}} \]
    4. Taylor expanded in l around 0 92.1%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{-1 \cdot \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}} + \frac{F}{\ell \cdot \pi}}} \]
    5. Step-by-step derivation
      1. +-commutative92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} + -1 \cdot \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}}} \]
      2. mul-1-neg92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} + \color{blue}{\left(-\frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}\right)}} \]
      3. unsub-neg92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} - \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}}} \]
      4. *-lft-identity92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{\color{blue}{1 \cdot {\pi}^{2}}}} \]
      5. times-frac92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{\frac{F}{1} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}}} \]
      6. rem-square-sqrt41.9%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \frac{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}{1} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
      7. associate-*l/41.9%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{\left(\frac{\sqrt{F}}{1} \cdot \sqrt{F}\right)} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
      8. /-rgt-identity41.9%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \left(\color{blue}{\sqrt{F}} \cdot \sqrt{F}\right) \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
      9. rem-square-sqrt92.1%

        \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{F} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
    6. Simplified92.1%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}} \]

    if -9.9999999999999994e161 < (*.f64 (PI.f64) l) < -5e14

    1. Initial program 58.1%

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. Step-by-step derivation
      1. associate-/r/58.1%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{F \cdot F}{\tan \left(\pi \cdot \ell\right)}}} \]
      2. associate-/l*58.1%

        \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\frac{F}{\frac{\tan \left(\pi \cdot \ell\right)}{F}}}} \]
      3. clear-num58.1%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
      4. frac-2neg58.1%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{-F}} \]
      5. add-sqr-sqrt21.3%

        \[\leadsto \pi \cdot \ell - \frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{-F} \cdot \sqrt{-F}}} \]
      6. sqrt-unprod58.0%

        \[\leadsto \pi \cdot \ell - \frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{\left(-F\right) \cdot \left(-F\right)}}} \]
      7. sqr-neg58.0%

        \[\leadsto \pi \cdot \ell - \frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\sqrt{\color{blue}{F \cdot F}}} \]
      8. sqrt-prod36.7%

        \[\leadsto \pi \cdot \ell - \frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}} \]
      9. add-sqr-sqrt55.6%

        \[\leadsto \pi \cdot \ell - \frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{F}} \]
      10. distribute-neg-frac55.6%

        \[\leadsto \pi \cdot \ell - \color{blue}{\left(-\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}\right)} \]
      11. associate-/r*55.6%

        \[\leadsto \pi \cdot \ell - \left(-\color{blue}{\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}}\right) \]
      12. expm1-log1p-u46.5%

        \[\leadsto \pi \cdot \ell - \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(-\frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\right)\right)} \]
      13. associate-/r*46.5%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(-\color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}}\right)\right) \]
      14. distribute-neg-frac46.5%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\color{blue}{\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}}\right)\right) \]
      15. add-sqr-sqrt30.5%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}\right)\right) \]
      16. sqrt-prod45.7%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F \cdot F}}}\right)\right) \]
      17. sqr-neg45.7%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\sqrt{\color{blue}{\left(-F\right) \cdot \left(-F\right)}}}\right)\right) \]
      18. sqrt-unprod15.1%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{-F} \cdot \sqrt{-F}}}\right)\right) \]
      19. add-sqr-sqrt51.9%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{-\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{-F}}\right)\right) \]
      20. frac-2neg51.9%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{log1p}\left(\color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}}\right)\right) \]
    3. Applied egg-rr51.9%

      \[\leadsto \pi \cdot \ell - \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\tan \left(\pi \cdot \ell\right) \cdot {F}^{-2}\right)\right)} \]
    4. Taylor expanded in l around 0 96.3%

      \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\color{blue}{-0.5 \cdot \frac{{\ell}^{2} \cdot {\pi}^{2}}{{F}^{4}} + \frac{\ell \cdot \pi}{{F}^{2}}}\right) \]
    5. Step-by-step derivation
      1. +-commutative96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\color{blue}{\frac{\ell \cdot \pi}{{F}^{2}} + -0.5 \cdot \frac{{\ell}^{2} \cdot {\pi}^{2}}{{F}^{4}}}\right) \]
      2. associate-*r/96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\color{blue}{\ell \cdot \frac{\pi}{{F}^{2}}} + -0.5 \cdot \frac{{\ell}^{2} \cdot {\pi}^{2}}{{F}^{4}}\right) \]
      3. fma-def96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\color{blue}{\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, -0.5 \cdot \frac{{\ell}^{2} \cdot {\pi}^{2}}{{F}^{4}}\right)}\right) \]
      4. associate-*r/96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \color{blue}{\frac{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right)}{{F}^{4}}}\right)\right) \]
      5. *-commutative96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5 \cdot \color{blue}{\left({\pi}^{2} \cdot {\ell}^{2}\right)}}{{F}^{4}}\right)\right) \]
      6. unpow296.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5 \cdot \left(\color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}\right)}{{F}^{4}}\right)\right) \]
      7. unpow296.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5 \cdot \left(\left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}\right)}{{F}^{4}}\right)\right) \]
      8. swap-sqr96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5 \cdot \color{blue}{\left(\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)\right)}}{{F}^{4}}\right)\right) \]
      9. unpow296.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5 \cdot \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}}{{F}^{4}}\right)\right) \]
      10. associate-/l*96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \color{blue}{\frac{-0.5}{\frac{{F}^{4}}{{\left(\pi \cdot \ell\right)}^{2}}}}\right)\right) \]
      11. *-commutative96.3%

        \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5}{\frac{{F}^{4}}{{\color{blue}{\left(\ell \cdot \pi\right)}}^{2}}}\right)\right) \]
    6. Simplified96.3%

      \[\leadsto \pi \cdot \ell - \mathsf{expm1}\left(\color{blue}{\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5}{\frac{{F}^{4}}{{\left(\ell \cdot \pi\right)}^{2}}}\right)}\right) \]
  3. Recombined 2 regimes into one program.
  4. Final simplification92.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \leq -1 \cdot 10^{+162} \lor \neg \left(\pi \cdot \ell \leq -5 \cdot 10^{+14}\right):\\ \;\;\;\;\pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \mathsf{expm1}\left(\mathsf{fma}\left(\ell, \frac{\pi}{{F}^{2}}, \frac{-0.5}{\frac{{F}^{4}}{{\left(\pi \cdot \ell\right)}^{2}}}\right)\right)\\ \end{array} \]

Alternative 3: 88.2% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}} \end{array} \]
(FPCore (F l)
 :precision binary64
 (+
  (* PI l)
  (/
   (/ -1.0 F)
   (-
    (/ F (* PI l))
    (* F (/ (* (* l (pow PI 3.0)) 0.3333333333333333) (pow PI 2.0)))))))
double code(double F, double l) {
	return (((double) M_PI) * l) + ((-1.0 / F) / ((F / (((double) M_PI) * l)) - (F * (((l * pow(((double) M_PI), 3.0)) * 0.3333333333333333) / pow(((double) M_PI), 2.0)))));
}
public static double code(double F, double l) {
	return (Math.PI * l) + ((-1.0 / F) / ((F / (Math.PI * l)) - (F * (((l * Math.pow(Math.PI, 3.0)) * 0.3333333333333333) / Math.pow(Math.PI, 2.0)))));
}
def code(F, l):
	return (math.pi * l) + ((-1.0 / F) / ((F / (math.pi * l)) - (F * (((l * math.pow(math.pi, 3.0)) * 0.3333333333333333) / math.pow(math.pi, 2.0)))))
function code(F, l)
	return Float64(Float64(pi * l) + Float64(Float64(-1.0 / F) / Float64(Float64(F / Float64(pi * l)) - Float64(F * Float64(Float64(Float64(l * (pi ^ 3.0)) * 0.3333333333333333) / (pi ^ 2.0))))))
end
function tmp = code(F, l)
	tmp = (pi * l) + ((-1.0 / F) / ((F / (pi * l)) - (F * (((l * (pi ^ 3.0)) * 0.3333333333333333) / (pi ^ 2.0)))));
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] + N[(N[(-1.0 / F), $MachinePrecision] / N[(N[(F / N[(Pi * l), $MachinePrecision]), $MachinePrecision] - N[(F * N[(N[(N[(l * N[Power[Pi, 3.0], $MachinePrecision]), $MachinePrecision] * 0.3333333333333333), $MachinePrecision] / N[Power[Pi, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. associate-/r/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{F \cdot F}{\tan \left(\pi \cdot \ell\right)}}} \]
    2. associate-/l*82.8%

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\frac{F}{\frac{\tan \left(\pi \cdot \ell\right)}{F}}}} \]
    3. clear-num82.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
    4. add-sqr-sqrt38.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}} \]
    5. sqrt-prod68.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{F \cdot F}}} \]
    6. sqr-neg68.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\sqrt{\color{blue}{\left(-F\right) \cdot \left(-F\right)}}} \]
    7. sqrt-unprod30.4%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{\color{blue}{\sqrt{-F} \cdot \sqrt{-F}}} \]
    8. div-inv30.4%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    9. metadata-eval30.4%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\color{blue}{\sqrt{1}}}{F}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    10. add-sqr-sqrt0.0%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    11. sqrt-prod40.9%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \frac{\sqrt{1}}{\color{blue}{\sqrt{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    12. sqrt-div40.9%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\sqrt{-F} \cdot \sqrt{-F}} \]
    13. add-sqr-sqrt67.4%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot \sqrt{\frac{1}{F \cdot F}}}{\color{blue}{-F}} \]
    14. associate-*l/67.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\tan \left(\pi \cdot \ell\right)}{-F} \cdot \sqrt{\frac{1}{F \cdot F}}} \]
    15. clear-num67.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \cdot \sqrt{\frac{1}{F \cdot F}} \]
    16. associate-*l/67.5%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \sqrt{\frac{1}{F \cdot F}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}}} \]
    17. *-un-lft-identity67.5%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\sqrt{\frac{1}{F \cdot F}}}}{\frac{-F}{\tan \left(\pi \cdot \ell\right)}} \]
  3. Applied egg-rr82.8%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{1}{F}}{\frac{F}{\tan \left(\pi \cdot \ell\right)}}} \]
  4. Taylor expanded in l around 0 88.9%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{-1 \cdot \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}} + \frac{F}{\ell \cdot \pi}}} \]
  5. Step-by-step derivation
    1. +-commutative88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} + -1 \cdot \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}}} \]
    2. mul-1-neg88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} + \color{blue}{\left(-\frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}\right)}} \]
    3. unsub-neg88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} - \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{{\pi}^{2}}}} \]
    4. *-lft-identity88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \frac{F \cdot \left(\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)\right)}{\color{blue}{1 \cdot {\pi}^{2}}}} \]
    5. times-frac88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{\frac{F}{1} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}}} \]
    6. rem-square-sqrt42.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \frac{\color{blue}{\sqrt{F} \cdot \sqrt{F}}}{1} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
    7. associate-*l/42.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{\left(\frac{\sqrt{F}}{1} \cdot \sqrt{F}\right)} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
    8. /-rgt-identity42.3%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \left(\color{blue}{\sqrt{F}} \cdot \sqrt{F}\right) \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
    9. rem-square-sqrt88.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\frac{F}{\ell \cdot \pi} - \color{blue}{F} \cdot \frac{\ell \cdot \left(-0.16666666666666666 \cdot {\pi}^{3} - -0.5 \cdot {\pi}^{3}\right)}{{\pi}^{2}}} \]
  6. Simplified88.9%

    \[\leadsto \pi \cdot \ell - \frac{\frac{1}{F}}{\color{blue}{\frac{F}{\ell \cdot \pi} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}}} \]
  7. Final simplification88.9%

    \[\leadsto \pi \cdot \ell + \frac{\frac{-1}{F}}{\frac{F}{\pi \cdot \ell} - F \cdot \frac{\left(\ell \cdot {\pi}^{3}\right) \cdot 0.3333333333333333}{{\pi}^{2}}} \]

Alternative 4: 82.7% accurate, 0.8× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\pi, \ell, \frac{\frac{\tan \left(\pi \cdot \ell\right)}{-F}}{F}\right) \end{array} \]
(FPCore (F l) :precision binary64 (fma PI l (/ (/ (tan (* PI l)) (- F)) F)))
double code(double F, double l) {
	return fma(((double) M_PI), l, ((tan((((double) M_PI) * l)) / -F) / F));
}
function code(F, l)
	return fma(pi, l, Float64(Float64(tan(Float64(pi * l)) / Float64(-F)) / F))
end
code[F_, l_] := N[(Pi * l + N[(N[(N[Tan[N[(Pi * l), $MachinePrecision]], $MachinePrecision] / (-F)), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\pi, \ell, \frac{\frac{\tan \left(\pi \cdot \ell\right)}{-F}}{F}\right)
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. *-commutative78.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F \cdot F}} \]
    2. sqr-neg78.4%

      \[\leadsto \pi \cdot \ell - \tan \left(\pi \cdot \ell\right) \cdot \frac{1}{\color{blue}{\left(-F\right) \cdot \left(-F\right)}} \]
    3. *-commutative78.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\left(-F\right) \cdot \left(-F\right)} \cdot \tan \left(\pi \cdot \ell\right)} \]
    4. fma-neg78.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\pi, \ell, -\frac{1}{\left(-F\right) \cdot \left(-F\right)} \cdot \tan \left(\pi \cdot \ell\right)\right)} \]
    5. associate-*l/78.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, -\color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{\left(-F\right) \cdot \left(-F\right)}}\right) \]
    6. times-frac82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, -\color{blue}{\frac{1}{-F} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}}\right) \]
    7. distribute-lft-neg-in82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\left(-\frac{1}{-F}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}}\right) \]
    8. neg-mul-182.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\frac{1}{\color{blue}{-1 \cdot F}}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    9. associate-/r*82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\color{blue}{\frac{\frac{1}{-1}}{F}}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    10. metadata-eval82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\frac{\color{blue}{-1}}{F}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    11. distribute-neg-frac82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\frac{--1}{F}} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    12. metadata-eval82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\color{blue}{1}}{F} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    13. times-frac78.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F \cdot \left(-F\right)}}\right) \]
  3. Simplified82.8%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\pi, \ell, \frac{\frac{\tan \left(\pi \cdot \ell\right)}{-F}}{F}\right)} \]
  4. Final simplification82.8%

    \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\frac{\tan \left(\pi \cdot \ell\right)}{-F}}{F}\right) \]

Alternative 5: 78.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;F \leq 4.2 \cdot 10^{-182}:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\\ \end{array} \end{array} \]
(FPCore (F l)
 :precision binary64
 (if (<= F 4.2e-182)
   (- (* PI l) (/ (/ l (/ F PI)) F))
   (- (* PI l) (/ (tan (* PI l)) (* F F)))))
double code(double F, double l) {
	double tmp;
	if (F <= 4.2e-182) {
		tmp = (((double) M_PI) * l) - ((l / (F / ((double) M_PI))) / F);
	} else {
		tmp = (((double) M_PI) * l) - (tan((((double) M_PI) * l)) / (F * F));
	}
	return tmp;
}
public static double code(double F, double l) {
	double tmp;
	if (F <= 4.2e-182) {
		tmp = (Math.PI * l) - ((l / (F / Math.PI)) / F);
	} else {
		tmp = (Math.PI * l) - (Math.tan((Math.PI * l)) / (F * F));
	}
	return tmp;
}
def code(F, l):
	tmp = 0
	if F <= 4.2e-182:
		tmp = (math.pi * l) - ((l / (F / math.pi)) / F)
	else:
		tmp = (math.pi * l) - (math.tan((math.pi * l)) / (F * F))
	return tmp
function code(F, l)
	tmp = 0.0
	if (F <= 4.2e-182)
		tmp = Float64(Float64(pi * l) - Float64(Float64(l / Float64(F / pi)) / F));
	else
		tmp = Float64(Float64(pi * l) - Float64(tan(Float64(pi * l)) / Float64(F * F)));
	end
	return tmp
end
function tmp_2 = code(F, l)
	tmp = 0.0;
	if (F <= 4.2e-182)
		tmp = (pi * l) - ((l / (F / pi)) / F);
	else
		tmp = (pi * l) - (tan((pi * l)) / (F * F));
	end
	tmp_2 = tmp;
end
code[F_, l_] := If[LessEqual[F, 4.2e-182], N[(N[(Pi * l), $MachinePrecision] - N[(N[(l / N[(F / Pi), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision], N[(N[(Pi * l), $MachinePrecision] - N[(N[Tan[N[(Pi * l), $MachinePrecision]], $MachinePrecision] / N[(F * F), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;F \leq 4.2 \cdot 10^{-182}:\\
\;\;\;\;\pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F}\\

\mathbf{else}:\\
\;\;\;\;\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if F < 4.2000000000000001e-182

    1. Initial program 73.5%

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. Step-by-step derivation
      1. associate-*l/73.5%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
      2. *-un-lft-identity73.5%

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{F \cdot F} \]
      3. associate-/r*79.4%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
    3. Applied egg-rr79.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
    4. Taylor expanded in l around 0 73.2%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell \cdot \pi}{F}}}{F} \]
    5. Step-by-step derivation
      1. associate-/l*73.3%

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell}{\frac{F}{\pi}}}}{F} \]
    6. Simplified73.3%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell}{\frac{F}{\pi}}}}{F} \]

    if 4.2000000000000001e-182 < F

    1. Initial program 86.4%

      \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. Step-by-step derivation
      1. sqr-neg86.4%

        \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\left(-F\right) \cdot \left(-F\right)}} \cdot \tan \left(\pi \cdot \ell\right) \]
      2. associate-*l/87.3%

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{\left(-F\right) \cdot \left(-F\right)}} \]
      3. *-lft-identity87.3%

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{\left(-F\right) \cdot \left(-F\right)} \]
      4. sqr-neg87.3%

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{\color{blue}{F \cdot F}} \]
    3. Simplified87.3%

      \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification78.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;F \leq 4.2 \cdot 10^{-182}:\\ \;\;\;\;\pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F}\\ \mathbf{else}:\\ \;\;\;\;\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}\\ \end{array} \]

Alternative 6: 82.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F} \end{array} \]
(FPCore (F l) :precision binary64 (- (* PI l) (/ (/ (tan (* PI l)) F) F)))
double code(double F, double l) {
	return (((double) M_PI) * l) - ((tan((((double) M_PI) * l)) / F) / F);
}
public static double code(double F, double l) {
	return (Math.PI * l) - ((Math.tan((Math.PI * l)) / F) / F);
}
def code(F, l):
	return (math.pi * l) - ((math.tan((math.pi * l)) / F) / F)
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(tan(Float64(pi * l)) / F) / F))
end
function tmp = code(F, l)
	tmp = (pi * l) - ((tan((pi * l)) / F) / F);
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(N[Tan[N[(Pi * l), $MachinePrecision]], $MachinePrecision] / F), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. associate-*l/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
    2. *-un-lft-identity78.8%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{F \cdot F} \]
    3. associate-/r*82.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  3. Applied egg-rr82.8%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  4. Final simplification82.8%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F} \]

Alternative 7: 75.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\pi, \ell, \frac{\frac{-\ell}{\frac{F}{\pi}}}{F}\right) \end{array} \]
(FPCore (F l) :precision binary64 (fma PI l (/ (/ (- l) (/ F PI)) F)))
double code(double F, double l) {
	return fma(((double) M_PI), l, ((-l / (F / ((double) M_PI))) / F));
}
function code(F, l)
	return fma(pi, l, Float64(Float64(Float64(-l) / Float64(F / pi)) / F))
end
code[F_, l_] := N[(Pi * l + N[(N[((-l) / N[(F / Pi), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\pi, \ell, \frac{\frac{-\ell}{\frac{F}{\pi}}}{F}\right)
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. *-commutative78.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\tan \left(\pi \cdot \ell\right) \cdot \frac{1}{F \cdot F}} \]
    2. sqr-neg78.4%

      \[\leadsto \pi \cdot \ell - \tan \left(\pi \cdot \ell\right) \cdot \frac{1}{\color{blue}{\left(-F\right) \cdot \left(-F\right)}} \]
    3. *-commutative78.4%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\left(-F\right) \cdot \left(-F\right)} \cdot \tan \left(\pi \cdot \ell\right)} \]
    4. fma-neg78.4%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\pi, \ell, -\frac{1}{\left(-F\right) \cdot \left(-F\right)} \cdot \tan \left(\pi \cdot \ell\right)\right)} \]
    5. associate-*l/78.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, -\color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{\left(-F\right) \cdot \left(-F\right)}}\right) \]
    6. times-frac82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, -\color{blue}{\frac{1}{-F} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}}\right) \]
    7. distribute-lft-neg-in82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\left(-\frac{1}{-F}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}}\right) \]
    8. neg-mul-182.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\frac{1}{\color{blue}{-1 \cdot F}}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    9. associate-/r*82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\color{blue}{\frac{\frac{1}{-1}}{F}}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    10. metadata-eval82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \left(-\frac{\color{blue}{-1}}{F}\right) \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    11. distribute-neg-frac82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\frac{--1}{F}} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    12. metadata-eval82.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\color{blue}{1}}{F} \cdot \frac{\tan \left(\pi \cdot \ell\right)}{-F}\right) \]
    13. times-frac78.8%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F \cdot \left(-F\right)}}\right) \]
  3. Simplified82.8%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\pi, \ell, \frac{\frac{\tan \left(\pi \cdot \ell\right)}{-F}}{F}\right)} \]
  4. Taylor expanded in l around 0 75.2%

    \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\color{blue}{-1 \cdot \frac{\ell \cdot \pi}{F}}}{F}\right) \]
  5. Step-by-step derivation
    1. mul-1-neg75.2%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\color{blue}{-\frac{\ell \cdot \pi}{F}}}{F}\right) \]
    2. associate-/l*75.2%

      \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{-\color{blue}{\frac{\ell}{\frac{F}{\pi}}}}{F}\right) \]
  6. Simplified75.2%

    \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\color{blue}{-\frac{\ell}{\frac{F}{\pi}}}}{F}\right) \]
  7. Final simplification75.2%

    \[\leadsto \mathsf{fma}\left(\pi, \ell, \frac{\frac{-\ell}{\frac{F}{\pi}}}{F}\right) \]

Alternative 8: 75.0% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\pi}{F} \cdot \frac{\ell}{F} \end{array} \]
(FPCore (F l) :precision binary64 (- (* PI l) (* (/ PI F) (/ l F))))
double code(double F, double l) {
	return (((double) M_PI) * l) - ((((double) M_PI) / F) * (l / F));
}
public static double code(double F, double l) {
	return (Math.PI * l) - ((Math.PI / F) * (l / F));
}
def code(F, l):
	return (math.pi * l) - ((math.pi / F) * (l / F))
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(pi / F) * Float64(l / F)))
end
function tmp = code(F, l)
	tmp = (pi * l) - ((pi / F) * (l / F));
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(Pi / F), $MachinePrecision] * N[(l / F), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\pi}{F} \cdot \frac{\ell}{F}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. sqr-neg78.4%

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\left(-F\right) \cdot \left(-F\right)}} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. associate-*l/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{\left(-F\right) \cdot \left(-F\right)}} \]
    3. *-lft-identity78.8%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{\left(-F\right) \cdot \left(-F\right)} \]
    4. sqr-neg78.8%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{\color{blue}{F \cdot F}} \]
  3. Simplified78.8%

    \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
  4. Taylor expanded in l around 0 71.1%

    \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\ell \cdot \pi}}{F \cdot F} \]
  5. Step-by-step derivation
    1. *-commutative71.1%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\pi \cdot \ell}}{F \cdot F} \]
    2. times-frac75.2%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  6. Applied egg-rr75.2%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  7. Final simplification75.2%

    \[\leadsto \pi \cdot \ell - \frac{\pi}{F} \cdot \frac{\ell}{F} \]

Alternative 9: 75.0% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}} \end{array} \]
(FPCore (F l) :precision binary64 (- (* PI l) (/ PI (* F (/ F l)))))
double code(double F, double l) {
	return (((double) M_PI) * l) - (((double) M_PI) / (F * (F / l)));
}
public static double code(double F, double l) {
	return (Math.PI * l) - (Math.PI / (F * (F / l)));
}
def code(F, l):
	return (math.pi * l) - (math.pi / (F * (F / l)))
function code(F, l)
	return Float64(Float64(pi * l) - Float64(pi / Float64(F * Float64(F / l))))
end
function tmp = code(F, l)
	tmp = (pi * l) - (pi / (F * (F / l)));
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(Pi / N[(F * N[(F / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. sqr-neg78.4%

      \[\leadsto \pi \cdot \ell - \frac{1}{\color{blue}{\left(-F\right) \cdot \left(-F\right)}} \cdot \tan \left(\pi \cdot \ell\right) \]
    2. associate-*l/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{\left(-F\right) \cdot \left(-F\right)}} \]
    3. *-lft-identity78.8%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{\left(-F\right) \cdot \left(-F\right)} \]
    4. sqr-neg78.8%

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{\color{blue}{F \cdot F}} \]
  3. Simplified78.8%

    \[\leadsto \color{blue}{\pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
  4. Taylor expanded in l around 0 71.1%

    \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\ell \cdot \pi}}{F \cdot F} \]
  5. Step-by-step derivation
    1. *-commutative71.1%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\pi \cdot \ell}}{F \cdot F} \]
    2. times-frac75.2%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  6. Applied egg-rr75.2%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  7. Step-by-step derivation
    1. *-commutative75.2%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\ell}{F} \cdot \frac{\pi}{F}} \]
    2. clear-num75.2%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1}{\frac{F}{\ell}}} \cdot \frac{\pi}{F} \]
    3. frac-times75.2%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \pi}{\frac{F}{\ell} \cdot F}} \]
    4. *-un-lft-identity75.2%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\pi}}{\frac{F}{\ell} \cdot F} \]
  8. Applied egg-rr75.2%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{\frac{F}{\ell} \cdot F}} \]
  9. Final simplification75.2%

    \[\leadsto \pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}} \]

Alternative 10: 75.0% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F} \end{array} \]
(FPCore (F l) :precision binary64 (- (* PI l) (/ (/ l (/ F PI)) F)))
double code(double F, double l) {
	return (((double) M_PI) * l) - ((l / (F / ((double) M_PI))) / F);
}
public static double code(double F, double l) {
	return (Math.PI * l) - ((l / (F / Math.PI)) / F);
}
def code(F, l):
	return (math.pi * l) - ((l / (F / math.pi)) / F)
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(l / Float64(F / pi)) / F))
end
function tmp = code(F, l)
	tmp = (pi * l) - ((l / (F / pi)) / F);
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(l / N[(F / Pi), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F}
\end{array}
Derivation
  1. Initial program 78.4%

    \[\pi \cdot \ell - \frac{1}{F \cdot F} \cdot \tan \left(\pi \cdot \ell\right) \]
  2. Step-by-step derivation
    1. associate-*l/78.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{1 \cdot \tan \left(\pi \cdot \ell\right)}{F \cdot F}} \]
    2. *-un-lft-identity78.8%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\tan \left(\pi \cdot \ell\right)}}{F \cdot F} \]
    3. associate-/r*82.8%

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  3. Applied egg-rr82.8%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  4. Taylor expanded in l around 0 75.1%

    \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell \cdot \pi}{F}}}{F} \]
  5. Step-by-step derivation
    1. associate-/l*75.2%

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell}{\frac{F}{\pi}}}}{F} \]
  6. Simplified75.2%

    \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\ell}{\frac{F}{\pi}}}}{F} \]
  7. Final simplification75.2%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\ell}{\frac{F}{\pi}}}{F} \]

Reproduce

?
herbie shell --seed 2023311 
(FPCore (F l)
  :name "VandenBroeck and Keller, Equation (6)"
  :precision binary64
  (- (* PI l) (* (/ 1.0 (* F F)) (tan (* PI l)))))