VandenBroeck and Keller, Equation (6)

Percentage Accurate: 76.3% → 98.0%
Time: 19.9s
Alternatives: 12
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 12 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: 76.3% 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: 98.0% accurate, 0.2× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}^{2}, 1\right)}}{F}}{F} \end{array} \]
(FPCore (F l)
 :precision binary64
 (-
  (* PI l)
  (/
   (/ (/ (sin (* PI l)) (fma -0.5 (pow (log1p (expm1 (* PI l))) 2.0) 1.0)) F)
   F)))
double code(double F, double l) {
	return (((double) M_PI) * l) - (((sin((((double) M_PI) * l)) / fma(-0.5, pow(log1p(expm1((((double) M_PI) * l))), 2.0), 1.0)) / F) / F);
}
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(Float64(sin(Float64(pi * l)) / fma(-0.5, (log1p(expm1(Float64(pi * l))) ^ 2.0), 1.0)) / F) / F))
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(N[(N[Sin[N[(Pi * l), $MachinePrecision]], $MachinePrecision] / N[(-0.5 * N[Power[N[Log[1 + N[(Exp[N[(Pi * l), $MachinePrecision]] - 1), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}^{2}, 1\right)}}{F}}{F}
\end{array}
Derivation
  1. Initial program 81.2%

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right) + 1}}}{F}}{F} \]
    2. fma-define92.5%

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

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}, 1\right)}}{F}}{F} \]
    5. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    6. swap-sqr92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    7. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}, 1\right)}}{F}}{F} \]
    8. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\ell \cdot \pi\right)}}^{2}, 1\right)}}{F}}{F} \]
  9. Simplified92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}}{F}}{F} \]
  10. Step-by-step derivation
    1. *-commutative92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}}^{2}, 1\right)}}{F}}{F} \]
  11. Applied egg-rr98.9%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\mathsf{log1p}\left(\mathsf{expm1}\left(\pi \cdot \ell\right)\right)\right)}}^{2}, 1\right)}}{F}}{F} \]
  12. Add Preprocessing

Alternative 2: 94.7% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{{\left(\pi \cdot \ell\right)}^{4}}, 1\right)}}{F}}{F} \end{array} \]
(FPCore (F l)
 :precision binary64
 (-
  (* PI l)
  (/ (/ (/ (sin (* PI l)) (fma -0.5 (sqrt (pow (* PI l) 4.0)) 1.0)) F) F)))
double code(double F, double l) {
	return (((double) M_PI) * l) - (((sin((((double) M_PI) * l)) / fma(-0.5, sqrt(pow((((double) M_PI) * l), 4.0)), 1.0)) / F) / F);
}
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(Float64(sin(Float64(pi * l)) / fma(-0.5, sqrt((Float64(pi * l) ^ 4.0)), 1.0)) / F) / F))
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(N[(N[Sin[N[(Pi * l), $MachinePrecision]], $MachinePrecision] / N[(-0.5 * N[Sqrt[N[Power[N[(Pi * l), $MachinePrecision], 4.0], $MachinePrecision]], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{{\left(\pi \cdot \ell\right)}^{4}}, 1\right)}}{F}}{F}
\end{array}
Derivation
  1. Initial program 81.2%

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right) + 1}}}{F}}{F} \]
    2. fma-define92.5%

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

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}, 1\right)}}{F}}{F} \]
    5. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    6. swap-sqr92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    7. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}, 1\right)}}{F}}{F} \]
    8. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\ell \cdot \pi\right)}}^{2}, 1\right)}}{F}}{F} \]
  9. Simplified92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}}{F}}{F} \]
  10. Step-by-step derivation
    1. add-sqr-sqrt92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\sqrt{{\left(\ell \cdot \pi\right)}^{2}} \cdot \sqrt{{\left(\ell \cdot \pi\right)}^{2}}}, 1\right)}}{F}}{F} \]
    2. sqrt-unprod94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\sqrt{{\left(\ell \cdot \pi\right)}^{2} \cdot {\left(\ell \cdot \pi\right)}^{2}}}, 1\right)}}{F}}{F} \]
    3. *-commutative94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{{\color{blue}{\left(\pi \cdot \ell\right)}}^{2} \cdot {\left(\ell \cdot \pi\right)}^{2}}, 1\right)}}{F}}{F} \]
    4. *-commutative94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{{\left(\pi \cdot \ell\right)}^{2} \cdot {\color{blue}{\left(\pi \cdot \ell\right)}}^{2}}, 1\right)}}{F}}{F} \]
    5. pow-prod-up94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{\color{blue}{{\left(\pi \cdot \ell\right)}^{\left(2 + 2\right)}}}, 1\right)}}{F}}{F} \]
    6. metadata-eval94.7%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \sqrt{{\left(\pi \cdot \ell\right)}^{\color{blue}{4}}}, 1\right)}}{F}}{F} \]
  11. Applied egg-rr94.7%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\sqrt{{\left(\pi \cdot \ell\right)}^{4}}}, 1\right)}}{F}}{F} \]
  12. Add Preprocessing

Alternative 3: 78.8% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \pi \cdot \ell - \frac{\frac{\frac{\left|\sin \left(\pi \cdot \ell\right)\right|}{\mathsf{fma}\left(-0.5, {\left(\pi \cdot \ell\right)}^{2}, 1\right)}}{F}}{F} \end{array} \]
(FPCore (F l)
 :precision binary64
 (-
  (* PI l)
  (/ (/ (/ (fabs (sin (* PI l))) (fma -0.5 (pow (* PI l) 2.0) 1.0)) F) F)))
double code(double F, double l) {
	return (((double) M_PI) * l) - (((fabs(sin((((double) M_PI) * l))) / fma(-0.5, pow((((double) M_PI) * l), 2.0), 1.0)) / F) / F);
}
function code(F, l)
	return Float64(Float64(pi * l) - Float64(Float64(Float64(abs(sin(Float64(pi * l))) / fma(-0.5, (Float64(pi * l) ^ 2.0), 1.0)) / F) / F))
end
code[F_, l_] := N[(N[(Pi * l), $MachinePrecision] - N[(N[(N[(N[Abs[N[Sin[N[(Pi * l), $MachinePrecision]], $MachinePrecision]], $MachinePrecision] / N[(-0.5 * N[Power[N[(Pi * l), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] / F), $MachinePrecision] / F), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\pi \cdot \ell - \frac{\frac{\frac{\left|\sin \left(\pi \cdot \ell\right)\right|}{\mathsf{fma}\left(-0.5, {\left(\pi \cdot \ell\right)}^{2}, 1\right)}}{F}}{F}
\end{array}
Derivation
  1. Initial program 81.2%

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right) + 1}}}{F}}{F} \]
    2. fma-define92.5%

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

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}, 1\right)}}{F}}{F} \]
    5. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    6. swap-sqr92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    7. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}, 1\right)}}{F}}{F} \]
    8. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\ell \cdot \pi\right)}}^{2}, 1\right)}}{F}}{F} \]
  9. Simplified92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}}{F}}{F} \]
  10. Step-by-step derivation
    1. add-sqr-sqrt45.6%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\color{blue}{\sqrt{\sin \left(\pi \cdot \ell\right)} \cdot \sqrt{\sin \left(\pi \cdot \ell\right)}}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
    2. sqrt-unprod73.4%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sqrt{\color{blue}{{\sin \left(\pi \cdot \ell\right)}^{2}}}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
  11. Applied egg-rr73.4%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\color{blue}{\sqrt{{\sin \left(\pi \cdot \ell\right)}^{2}}}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
  12. Step-by-step derivation
    1. unpow273.4%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sqrt{\color{blue}{\sin \left(\pi \cdot \ell\right) \cdot \sin \left(\pi \cdot \ell\right)}}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
    2. rem-sqrt-square77.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\color{blue}{\left|\sin \left(\pi \cdot \ell\right)\right|}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
    3. *-commutative77.9%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\left|\sin \color{blue}{\left(\ell \cdot \pi\right)}\right|}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
  13. Simplified77.9%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\color{blue}{\left|\sin \left(\ell \cdot \pi\right)\right|}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
  14. Final simplification77.9%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\left|\sin \left(\pi \cdot \ell\right)\right|}{\mathsf{fma}\left(-0.5, {\left(\pi \cdot \ell\right)}^{2}, 1\right)}}{F}}{F} \]
  15. Add Preprocessing

Alternative 4: 91.7% accurate, 0.5× speedup?

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

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

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right) + 1}}}{F}}{F} \]
    2. fma-define92.5%

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

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}, 1\right)}}{F}}{F} \]
    5. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    6. swap-sqr92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    7. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}, 1\right)}}{F}}{F} \]
    8. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\ell \cdot \pi\right)}}^{2}, 1\right)}}{F}}{F} \]
  9. Simplified92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\ell \cdot \pi\right) \cdot \left(\ell \cdot \pi\right)}, 1\right)}}{F}}{F} \]
    2. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right)} \cdot \left(\ell \cdot \pi\right), 1\right)}}{F}}{F} \]
    3. associate-*r*92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\left(\pi \cdot \ell\right) \cdot \ell\right) \cdot \pi}, 1\right)}}{F}}{F} \]
  11. Applied egg-rr92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\left(\pi \cdot \ell\right) \cdot \ell\right) \cdot \pi}, 1\right)}}{F}}{F} \]
  12. Final simplification92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \pi \cdot \left(\ell \cdot \left(\pi \cdot \ell\right)\right), 1\right)}}{F}}{F} \]
  13. Add Preprocessing

Alternative 5: 90.4% accurate, 0.5× speedup?

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

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

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 92.5%

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{-0.5 \cdot \left({\ell}^{2} \cdot {\pi}^{2}\right) + 1}}}{F}}{F} \]
    2. fma-define92.5%

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

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

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \pi\right)} \cdot {\ell}^{2}, 1\right)}}{F}}{F} \]
    5. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \left(\pi \cdot \pi\right) \cdot \color{blue}{\left(\ell \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    6. swap-sqr92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{\left(\pi \cdot \ell\right) \cdot \left(\pi \cdot \ell\right)}, 1\right)}}{F}}{F} \]
    7. unpow292.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, \color{blue}{{\left(\pi \cdot \ell\right)}^{2}}, 1\right)}}{F}}{F} \]
    8. *-commutative92.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\mathsf{fma}\left(-0.5, {\color{blue}{\left(\ell \cdot \pi\right)}}^{2}, 1\right)}}{F}}{F} \]
  9. Simplified92.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}}{F}}{F} \]
  10. Taylor expanded in l around 0 92.0%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\color{blue}{\ell \cdot \pi}}{\mathsf{fma}\left(-0.5, {\left(\ell \cdot \pi\right)}^{2}, 1\right)}}{F}}{F} \]
  11. Final simplification92.0%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\pi \cdot \ell}{\mathsf{fma}\left(-0.5, {\left(\pi \cdot \ell\right)}^{2}, 1\right)}}{F}}{F} \]
  12. Add Preprocessing

Alternative 6: 82.3% accurate, 0.5× speedup?

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

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

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Add Preprocessing

Alternative 7: 78.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\pi \cdot \ell \leq 10^{-8}:\\ \;\;\;\;\pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}}\\ \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 (<= (* PI l) 1e-8)
   (- (* PI l) (/ PI (* F (/ F l))))
   (- (* PI l) (/ (tan (* PI l)) (* F F)))))
double code(double F, double l) {
	double tmp;
	if ((((double) M_PI) * l) <= 1e-8) {
		tmp = (((double) M_PI) * l) - (((double) M_PI) / (F * (F / l)));
	} 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 ((Math.PI * l) <= 1e-8) {
		tmp = (Math.PI * l) - (Math.PI / (F * (F / l)));
	} else {
		tmp = (Math.PI * l) - (Math.tan((Math.PI * l)) / (F * F));
	}
	return tmp;
}
def code(F, l):
	tmp = 0
	if (math.pi * l) <= 1e-8:
		tmp = (math.pi * l) - (math.pi / (F * (F / l)))
	else:
		tmp = (math.pi * l) - (math.tan((math.pi * l)) / (F * F))
	return tmp
function code(F, l)
	tmp = 0.0
	if (Float64(pi * l) <= 1e-8)
		tmp = Float64(Float64(pi * l) - Float64(pi / Float64(F * Float64(F / l))));
	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 ((pi * l) <= 1e-8)
		tmp = (pi * l) - (pi / (F * (F / l)));
	else
		tmp = (pi * l) - (tan((pi * l)) / (F * F));
	end
	tmp_2 = tmp;
end
code[F_, l_] := If[LessEqual[N[(Pi * l), $MachinePrecision], 1e-8], N[(N[(Pi * l), $MachinePrecision] - N[(Pi / N[(F * N[(F / l), $MachinePrecision]), $MachinePrecision]), $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}\;\pi \cdot \ell \leq 10^{-8}:\\
\;\;\;\;\pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}}\\

\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 (*.f64 (PI.f64) l) < 1e-8

    1. Initial program 86.1%

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

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

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

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

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

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

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

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

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

        \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
    7. Applied egg-rr86.4%

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

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

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

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

        \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\pi}}{\frac{F}{\ell} \cdot F} \]
    9. Applied egg-rr86.4%

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

    if 1e-8 < (*.f64 (PI.f64) l)

    1. Initial program 68.6%

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

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

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

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

        \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot 1}{\color{blue}{F \cdot F}} \]
      5. *-rgt-identity68.6%

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

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

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

Alternative 8: 82.3% 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 81.2%

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Add Preprocessing

Alternative 9: 81.4% accurate, 1.0× speedup?

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

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

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

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

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

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

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\frac{\tan \left(\pi \cdot \ell\right)}{F}}{F}} \]
  5. Step-by-step derivation
    1. tan-quot85.5%

      \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  6. Applied egg-rr85.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\color{blue}{\frac{\sin \left(\pi \cdot \ell\right)}{\cos \left(\pi \cdot \ell\right)}}}{F}}{F} \]
  7. Taylor expanded in l around 0 84.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\frac{\sin \left(\pi \cdot \ell\right)}{\color{blue}{1}}}{F}}{F} \]
  8. Taylor expanded in l around inf 84.5%

    \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\frac{\sin \left(\ell \cdot \pi\right)}{F}}}{F} \]
  9. Final simplification84.5%

    \[\leadsto \pi \cdot \ell - \frac{\frac{\sin \left(\pi \cdot \ell\right)}{F}}{F} \]
  10. Add Preprocessing

Alternative 10: 74.9% accurate, 10.3× speedup?

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

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

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

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

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

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

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

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

    \[\leadsto \pi \cdot \ell - \frac{\frac{\pi \cdot \ell}{F}}{F} \]
  7. Add Preprocessing

Alternative 11: 75.0% accurate, 10.3× 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 81.2%

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

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

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

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

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot 1}{\color{blue}{F \cdot F}} \]
    5. *-rgt-identity81.7%

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

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

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

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  7. Applied egg-rr77.3%

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

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

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

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

      \[\leadsto \pi \cdot \ell - \frac{\color{blue}{\pi}}{\frac{F}{\ell} \cdot F} \]
  9. Applied egg-rr77.3%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{\frac{F}{\ell} \cdot F}} \]
  10. Final simplification77.3%

    \[\leadsto \pi \cdot \ell - \frac{\pi}{F \cdot \frac{F}{\ell}} \]
  11. Add Preprocessing

Alternative 12: 75.0% accurate, 10.3× 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 81.2%

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

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

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

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

      \[\leadsto \pi \cdot \ell - \frac{\tan \left(\pi \cdot \ell\right) \cdot 1}{\color{blue}{F \cdot F}} \]
    5. *-rgt-identity81.7%

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

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

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

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

      \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  7. Applied egg-rr77.3%

    \[\leadsto \pi \cdot \ell - \color{blue}{\frac{\pi}{F} \cdot \frac{\ell}{F}} \]
  8. Add Preprocessing

Reproduce

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