Toniolo and Linder, Equation (10-)

Percentage Accurate: 34.5% → 92.7%
Time: 20.5s
Alternatives: 9
Speedup: 3.8×

Specification

?
\[\begin{array}{l} \\ \frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/
  2.0
  (*
   (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k))
   (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
	return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
def code(t, l, k):
	return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\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 9 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: 34.5% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/
  2.0
  (*
   (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k))
   (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
	return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
def code(t, l, k):
	return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\end{array}

Alternative 1: 92.7% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \frac{2}{\frac{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}{\cos k}} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/ 2.0 (/ (* (pow (* (sin k) (/ k l)) 2.0) t) (cos k))))
double code(double t, double l, double k) {
	return 2.0 / ((pow((sin(k) * (k / l)), 2.0) * t) / cos(k));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / ((((sin(k) * (k / l)) ** 2.0d0) * t) / cos(k))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((Math.pow((Math.sin(k) * (k / l)), 2.0) * t) / Math.cos(k));
}
def code(t, l, k):
	return 2.0 / ((math.pow((math.sin(k) * (k / l)), 2.0) * t) / math.cos(k))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64((Float64(sin(k) * Float64(k / l)) ^ 2.0) * t) / cos(k)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / ((((sin(k) * (k / l)) ^ 2.0) * t) / cos(k));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[Power[N[(N[Sin[k], $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * t), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\frac{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}{\cos k}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Step-by-step derivation
    1. associate-/r*36.3%

      \[\leadsto \color{blue}{\frac{\frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1}} \]
    2. associate-*l/37.0%

      \[\leadsto \frac{\frac{2}{\color{blue}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell}} \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1} \]
    3. associate--l+37.0%

      \[\leadsto \frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{\color{blue}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  3. Simplified37.0%

    \[\leadsto \color{blue}{\frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  4. Applied egg-rr21.9%

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)} - 1} \]
  5. Step-by-step derivation
    1. expm1-def24.4%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)\right)} \]
    2. expm1-log1p24.6%

      \[\leadsto \color{blue}{\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}} \]
    3. associate-*l*24.7%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sqrt{\tan k \cdot \sin k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}}^{2}} \]
    4. *-commutative24.7%

      \[\leadsto \frac{2}{{\left(\sqrt{\color{blue}{\sin k \cdot \tan k}} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}} \]
  6. Simplified24.7%

    \[\leadsto \color{blue}{\frac{2}{{\left(\sqrt{\sin k \cdot \tan k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}}} \]
  7. Taylor expanded in k around inf 43.9%

    \[\leadsto \frac{2}{{\color{blue}{\left(\frac{k \cdot \sin k}{\ell} \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  8. Step-by-step derivation
    1. associate-/l*44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\frac{k}{\frac{\ell}{\sin k}}} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    2. associate-/r/44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\left(\frac{k}{\ell} \cdot \sin k\right)} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
  9. Simplified44.7%

    \[\leadsto \frac{2}{{\color{blue}{\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  10. Step-by-step derivation
    1. unpow-prod-down42.6%

      \[\leadsto \frac{2}{\color{blue}{{\left(\frac{k}{\ell} \cdot \sin k\right)}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}}} \]
    2. *-commutative42.6%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sin k \cdot \frac{k}{\ell}\right)}}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    3. pow242.6%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\left(\sqrt{\frac{t}{\cos k}} \cdot \sqrt{\frac{t}{\cos k}}\right)}} \]
    4. add-sqr-sqrt93.8%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\frac{t}{\cos k}}} \]
  11. Applied egg-rr93.8%

    \[\leadsto \frac{2}{\color{blue}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}}} \]
  12. Step-by-step derivation
    1. associate-*r/93.9%

      \[\leadsto \frac{2}{\color{blue}{\frac{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}{\cos k}}} \]
  13. Applied egg-rr93.9%

    \[\leadsto \frac{2}{\color{blue}{\frac{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}{\cos k}}} \]
  14. Final simplification93.9%

    \[\leadsto \frac{2}{\frac{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}{\cos k}} \]

Alternative 2: 92.7% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \frac{2}{\frac{t}{\cos k} \cdot {\left(\frac{k}{\frac{\ell}{\sin k}}\right)}^{2}} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/ 2.0 (* (/ t (cos k)) (pow (/ k (/ l (sin k))) 2.0))))
double code(double t, double l, double k) {
	return 2.0 / ((t / cos(k)) * pow((k / (l / sin(k))), 2.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / ((t / cos(k)) * ((k / (l / sin(k))) ** 2.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((t / Math.cos(k)) * Math.pow((k / (l / Math.sin(k))), 2.0));
}
def code(t, l, k):
	return 2.0 / ((t / math.cos(k)) * math.pow((k / (l / math.sin(k))), 2.0))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64(t / cos(k)) * (Float64(k / Float64(l / sin(k))) ^ 2.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / ((t / cos(k)) * ((k / (l / sin(k))) ^ 2.0));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(t / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[Power[N[(k / N[(l / N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\frac{t}{\cos k} \cdot {\left(\frac{k}{\frac{\ell}{\sin k}}\right)}^{2}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Step-by-step derivation
    1. associate-/r*36.3%

      \[\leadsto \color{blue}{\frac{\frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1}} \]
    2. associate-*l/37.0%

      \[\leadsto \frac{\frac{2}{\color{blue}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell}} \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1} \]
    3. associate--l+37.0%

      \[\leadsto \frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{\color{blue}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  3. Simplified37.0%

    \[\leadsto \color{blue}{\frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  4. Applied egg-rr21.9%

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)} - 1} \]
  5. Step-by-step derivation
    1. expm1-def24.4%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)\right)} \]
    2. expm1-log1p24.6%

      \[\leadsto \color{blue}{\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}} \]
    3. associate-*l*24.7%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sqrt{\tan k \cdot \sin k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}}^{2}} \]
    4. *-commutative24.7%

      \[\leadsto \frac{2}{{\left(\sqrt{\color{blue}{\sin k \cdot \tan k}} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}} \]
  6. Simplified24.7%

    \[\leadsto \color{blue}{\frac{2}{{\left(\sqrt{\sin k \cdot \tan k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}}} \]
  7. Taylor expanded in k around inf 43.9%

    \[\leadsto \frac{2}{{\color{blue}{\left(\frac{k \cdot \sin k}{\ell} \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  8. Step-by-step derivation
    1. associate-/l*44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\frac{k}{\frac{\ell}{\sin k}}} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    2. associate-/r/44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\left(\frac{k}{\ell} \cdot \sin k\right)} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
  9. Simplified44.7%

    \[\leadsto \frac{2}{{\color{blue}{\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  10. Step-by-step derivation
    1. expm1-log1p-u43.9%

      \[\leadsto \frac{2}{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left({\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}\right)\right)}} \]
    2. expm1-udef35.9%

      \[\leadsto \frac{2}{\color{blue}{e^{\mathsf{log1p}\left({\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}\right)} - 1}} \]
    3. *-commutative35.9%

      \[\leadsto \frac{2}{e^{\mathsf{log1p}\left({\color{blue}{\left(\sqrt{\frac{t}{\cos k}} \cdot \left(\frac{k}{\ell} \cdot \sin k\right)\right)}}^{2}\right)} - 1} \]
    4. unpow-prod-down34.6%

      \[\leadsto \frac{2}{e^{\mathsf{log1p}\left(\color{blue}{{\left(\sqrt{\frac{t}{\cos k}}\right)}^{2} \cdot {\left(\frac{k}{\ell} \cdot \sin k\right)}^{2}}\right)} - 1} \]
    5. pow234.6%

      \[\leadsto \frac{2}{e^{\mathsf{log1p}\left(\color{blue}{\left(\sqrt{\frac{t}{\cos k}} \cdot \sqrt{\frac{t}{\cos k}}\right)} \cdot {\left(\frac{k}{\ell} \cdot \sin k\right)}^{2}\right)} - 1} \]
    6. add-sqr-sqrt35.2%

      \[\leadsto \frac{2}{e^{\mathsf{log1p}\left(\color{blue}{\frac{t}{\cos k}} \cdot {\left(\frac{k}{\ell} \cdot \sin k\right)}^{2}\right)} - 1} \]
    7. *-commutative35.2%

      \[\leadsto \frac{2}{e^{\mathsf{log1p}\left(\frac{t}{\cos k} \cdot {\color{blue}{\left(\sin k \cdot \frac{k}{\ell}\right)}}^{2}\right)} - 1} \]
  11. Applied egg-rr35.2%

    \[\leadsto \frac{2}{\color{blue}{e^{\mathsf{log1p}\left(\frac{t}{\cos k} \cdot {\left(\sin k \cdot \frac{k}{\ell}\right)}^{2}\right)} - 1}} \]
  12. Step-by-step derivation
    1. expm1-def74.8%

      \[\leadsto \frac{2}{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{t}{\cos k} \cdot {\left(\sin k \cdot \frac{k}{\ell}\right)}^{2}\right)\right)}} \]
    2. expm1-log1p93.8%

      \[\leadsto \frac{2}{\color{blue}{\frac{t}{\cos k} \cdot {\left(\sin k \cdot \frac{k}{\ell}\right)}^{2}}} \]
    3. associate-*r/93.4%

      \[\leadsto \frac{2}{\frac{t}{\cos k} \cdot {\color{blue}{\left(\frac{\sin k \cdot k}{\ell}\right)}}^{2}} \]
    4. *-commutative93.4%

      \[\leadsto \frac{2}{\frac{t}{\cos k} \cdot {\left(\frac{\color{blue}{k \cdot \sin k}}{\ell}\right)}^{2}} \]
    5. associate-/l*93.8%

      \[\leadsto \frac{2}{\frac{t}{\cos k} \cdot {\color{blue}{\left(\frac{k}{\frac{\ell}{\sin k}}\right)}}^{2}} \]
  13. Simplified93.8%

    \[\leadsto \frac{2}{\color{blue}{\frac{t}{\cos k} \cdot {\left(\frac{k}{\frac{\ell}{\sin k}}\right)}^{2}}} \]
  14. Final simplification93.8%

    \[\leadsto \frac{2}{\frac{t}{\cos k} \cdot {\left(\frac{k}{\frac{\ell}{\sin k}}\right)}^{2}} \]

Alternative 3: 92.7% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/ 2.0 (* (pow (* (sin k) (/ k l)) 2.0) (/ t (cos k)))))
double code(double t, double l, double k) {
	return 2.0 / (pow((sin(k) * (k / l)), 2.0) * (t / cos(k)));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((sin(k) * (k / l)) ** 2.0d0) * (t / cos(k)))
end function
public static double code(double t, double l, double k) {
	return 2.0 / (Math.pow((Math.sin(k) * (k / l)), 2.0) * (t / Math.cos(k)));
}
def code(t, l, k):
	return 2.0 / (math.pow((math.sin(k) * (k / l)), 2.0) * (t / math.cos(k)))
function code(t, l, k)
	return Float64(2.0 / Float64((Float64(sin(k) * Float64(k / l)) ^ 2.0) * Float64(t / cos(k))))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((sin(k) * (k / l)) ^ 2.0) * (t / cos(k)));
end
code[t_, l_, k_] := N[(2.0 / N[(N[Power[N[(N[Sin[k], $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * N[(t / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Step-by-step derivation
    1. associate-/r*36.3%

      \[\leadsto \color{blue}{\frac{\frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1}} \]
    2. associate-*l/37.0%

      \[\leadsto \frac{\frac{2}{\color{blue}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell}} \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1} \]
    3. associate--l+37.0%

      \[\leadsto \frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{\color{blue}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  3. Simplified37.0%

    \[\leadsto \color{blue}{\frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  4. Applied egg-rr21.9%

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)} - 1} \]
  5. Step-by-step derivation
    1. expm1-def24.4%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)\right)} \]
    2. expm1-log1p24.6%

      \[\leadsto \color{blue}{\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}} \]
    3. associate-*l*24.7%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sqrt{\tan k \cdot \sin k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}}^{2}} \]
    4. *-commutative24.7%

      \[\leadsto \frac{2}{{\left(\sqrt{\color{blue}{\sin k \cdot \tan k}} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}} \]
  6. Simplified24.7%

    \[\leadsto \color{blue}{\frac{2}{{\left(\sqrt{\sin k \cdot \tan k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}}} \]
  7. Taylor expanded in k around inf 43.9%

    \[\leadsto \frac{2}{{\color{blue}{\left(\frac{k \cdot \sin k}{\ell} \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  8. Step-by-step derivation
    1. associate-/l*44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\frac{k}{\frac{\ell}{\sin k}}} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    2. associate-/r/44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\left(\frac{k}{\ell} \cdot \sin k\right)} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
  9. Simplified44.7%

    \[\leadsto \frac{2}{{\color{blue}{\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  10. Step-by-step derivation
    1. unpow-prod-down42.6%

      \[\leadsto \frac{2}{\color{blue}{{\left(\frac{k}{\ell} \cdot \sin k\right)}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}}} \]
    2. *-commutative42.6%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sin k \cdot \frac{k}{\ell}\right)}}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    3. pow242.6%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\left(\sqrt{\frac{t}{\cos k}} \cdot \sqrt{\frac{t}{\cos k}}\right)}} \]
    4. add-sqr-sqrt93.8%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\frac{t}{\cos k}}} \]
  11. Applied egg-rr93.8%

    \[\leadsto \frac{2}{\color{blue}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}}} \]
  12. Final simplification93.8%

    \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}} \]

Alternative 4: 73.8% accurate, 2.0× speedup?

\[\begin{array}{l} \\ \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/ 2.0 (* (pow (* (sin k) (/ k l)) 2.0) t)))
double code(double t, double l, double k) {
	return 2.0 / (pow((sin(k) * (k / l)), 2.0) * t);
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((sin(k) * (k / l)) ** 2.0d0) * t)
end function
public static double code(double t, double l, double k) {
	return 2.0 / (Math.pow((Math.sin(k) * (k / l)), 2.0) * t);
}
def code(t, l, k):
	return 2.0 / (math.pow((math.sin(k) * (k / l)), 2.0) * t)
function code(t, l, k)
	return Float64(2.0 / Float64((Float64(sin(k) * Float64(k / l)) ^ 2.0) * t))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((sin(k) * (k / l)) ^ 2.0) * t);
end
code[t_, l_, k_] := N[(2.0 / N[(N[Power[N[(N[Sin[k], $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Step-by-step derivation
    1. associate-/r*36.3%

      \[\leadsto \color{blue}{\frac{\frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1}} \]
    2. associate-*l/37.0%

      \[\leadsto \frac{\frac{2}{\color{blue}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell}} \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1} \]
    3. associate--l+37.0%

      \[\leadsto \frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{\color{blue}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  3. Simplified37.0%

    \[\leadsto \color{blue}{\frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  4. Applied egg-rr21.9%

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)} - 1} \]
  5. Step-by-step derivation
    1. expm1-def24.4%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}\right)\right)} \]
    2. expm1-log1p24.6%

      \[\leadsto \color{blue}{\frac{2}{{\left(\left(\sqrt{\tan k \cdot \sin k} \cdot \frac{k}{t}\right) \cdot \frac{{t}^{1.5}}{\ell}\right)}^{2}}} \]
    3. associate-*l*24.7%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sqrt{\tan k \cdot \sin k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}}^{2}} \]
    4. *-commutative24.7%

      \[\leadsto \frac{2}{{\left(\sqrt{\color{blue}{\sin k \cdot \tan k}} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}} \]
  6. Simplified24.7%

    \[\leadsto \color{blue}{\frac{2}{{\left(\sqrt{\sin k \cdot \tan k} \cdot \left(\frac{k}{t} \cdot \frac{{t}^{1.5}}{\ell}\right)\right)}^{2}}} \]
  7. Taylor expanded in k around inf 43.9%

    \[\leadsto \frac{2}{{\color{blue}{\left(\frac{k \cdot \sin k}{\ell} \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  8. Step-by-step derivation
    1. associate-/l*44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\frac{k}{\frac{\ell}{\sin k}}} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    2. associate-/r/44.7%

      \[\leadsto \frac{2}{{\left(\color{blue}{\left(\frac{k}{\ell} \cdot \sin k\right)} \cdot \sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
  9. Simplified44.7%

    \[\leadsto \frac{2}{{\color{blue}{\left(\left(\frac{k}{\ell} \cdot \sin k\right) \cdot \sqrt{\frac{t}{\cos k}}\right)}}^{2}} \]
  10. Step-by-step derivation
    1. unpow-prod-down42.6%

      \[\leadsto \frac{2}{\color{blue}{{\left(\frac{k}{\ell} \cdot \sin k\right)}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}}} \]
    2. *-commutative42.6%

      \[\leadsto \frac{2}{{\color{blue}{\left(\sin k \cdot \frac{k}{\ell}\right)}}^{2} \cdot {\left(\sqrt{\frac{t}{\cos k}}\right)}^{2}} \]
    3. pow242.6%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\left(\sqrt{\frac{t}{\cos k}} \cdot \sqrt{\frac{t}{\cos k}}\right)}} \]
    4. add-sqr-sqrt93.8%

      \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{\frac{t}{\cos k}}} \]
  11. Applied egg-rr93.8%

    \[\leadsto \frac{2}{\color{blue}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \frac{t}{\cos k}}} \]
  12. Taylor expanded in k around 0 75.7%

    \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot \color{blue}{t}} \]
  13. Final simplification75.7%

    \[\leadsto \frac{2}{{\left(\sin k \cdot \frac{k}{\ell}\right)}^{2} \cdot t} \]

Alternative 5: 60.5% accurate, 2.0× speedup?

\[\begin{array}{l} \\ 2 \cdot \frac{{\ell}^{2}}{t \cdot {k}^{4}} \end{array} \]
(FPCore (t l k) :precision binary64 (* 2.0 (/ (pow l 2.0) (* t (pow k 4.0)))))
double code(double t, double l, double k) {
	return 2.0 * (pow(l, 2.0) / (t * pow(k, 4.0)));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 * ((l ** 2.0d0) / (t * (k ** 4.0d0)))
end function
public static double code(double t, double l, double k) {
	return 2.0 * (Math.pow(l, 2.0) / (t * Math.pow(k, 4.0)));
}
def code(t, l, k):
	return 2.0 * (math.pow(l, 2.0) / (t * math.pow(k, 4.0)))
function code(t, l, k)
	return Float64(2.0 * Float64((l ^ 2.0) / Float64(t * (k ^ 4.0))))
end
function tmp = code(t, l, k)
	tmp = 2.0 * ((l ^ 2.0) / (t * (k ^ 4.0)));
end
code[t_, l_, k_] := N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t * N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
2 \cdot \frac{{\ell}^{2}}{t \cdot {k}^{4}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Step-by-step derivation
    1. associate-/r*36.3%

      \[\leadsto \color{blue}{\frac{\frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1}} \]
    2. associate-*l/37.0%

      \[\leadsto \frac{\frac{2}{\color{blue}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell}} \cdot \tan k}}{\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1} \]
    3. associate--l+37.0%

      \[\leadsto \frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{\color{blue}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  3. Simplified37.0%

    \[\leadsto \color{blue}{\frac{\frac{2}{\frac{{t}^{3} \cdot \sin k}{\ell \cdot \ell} \cdot \tan k}}{1 + \left({\left(\frac{k}{t}\right)}^{2} - 1\right)}} \]
  4. Taylor expanded in k around 0 62.1%

    \[\leadsto \color{blue}{2 \cdot \frac{{\ell}^{2}}{{k}^{4} \cdot t}} \]
  5. Final simplification62.1%

    \[\leadsto 2 \cdot \frac{{\ell}^{2}}{t \cdot {k}^{4}} \]

Alternative 6: 60.5% accurate, 2.0× speedup?

\[\begin{array}{l} \\ \frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right) \end{array} \]
(FPCore (t l k) :precision binary64 (* (/ 2.0 t) (* (pow l 2.0) (pow k -4.0))))
double code(double t, double l, double k) {
	return (2.0 / t) * (pow(l, 2.0) * pow(k, -4.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = (2.0d0 / t) * ((l ** 2.0d0) * (k ** (-4.0d0)))
end function
public static double code(double t, double l, double k) {
	return (2.0 / t) * (Math.pow(l, 2.0) * Math.pow(k, -4.0));
}
def code(t, l, k):
	return (2.0 / t) * (math.pow(l, 2.0) * math.pow(k, -4.0))
function code(t, l, k)
	return Float64(Float64(2.0 / t) * Float64((l ^ 2.0) * (k ^ -4.0)))
end
function tmp = code(t, l, k)
	tmp = (2.0 / t) * ((l ^ 2.0) * (k ^ -4.0));
end
code[t_, l_, k_] := N[(N[(2.0 / t), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] * N[Power[k, -4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right)
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Simplified42.5%

    \[\leadsto \color{blue}{\frac{2}{\frac{{t}^{3}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)}} \]
  3. Step-by-step derivation
    1. unpow342.5%

      \[\leadsto \frac{2}{\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    2. times-frac52.2%

      \[\leadsto \frac{2}{\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    3. pow252.2%

      \[\leadsto \frac{2}{\left(\frac{\color{blue}{{t}^{2}}}{\ell} \cdot \frac{t}{\ell}\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  4. Applied egg-rr52.2%

    \[\leadsto \frac{2}{\color{blue}{\left(\frac{{t}^{2}}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  5. Taylor expanded in k around 0 62.1%

    \[\leadsto \frac{2}{\color{blue}{\frac{{k}^{4} \cdot t}{{\ell}^{2}}}} \]
  6. Step-by-step derivation
    1. *-commutative62.1%

      \[\leadsto \frac{2}{\frac{\color{blue}{t \cdot {k}^{4}}}{{\ell}^{2}}} \]
    2. associate-/l*61.8%

      \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  7. Simplified61.8%

    \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  8. Step-by-step derivation
    1. associate-/r/61.8%

      \[\leadsto \color{blue}{\frac{2}{t} \cdot \frac{{\ell}^{2}}{{k}^{4}}} \]
    2. div-inv61.8%

      \[\leadsto \frac{2}{t} \cdot \color{blue}{\left({\ell}^{2} \cdot \frac{1}{{k}^{4}}\right)} \]
    3. pow-flip62.2%

      \[\leadsto \frac{2}{t} \cdot \left({\ell}^{2} \cdot \color{blue}{{k}^{\left(-4\right)}}\right) \]
    4. metadata-eval62.2%

      \[\leadsto \frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{\color{blue}{-4}}\right) \]
  9. Applied egg-rr62.2%

    \[\leadsto \color{blue}{\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right)} \]
  10. Final simplification62.2%

    \[\leadsto \frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right) \]

Alternative 7: 60.4% accurate, 2.0× speedup?

\[\begin{array}{l} \\ {\ell}^{2} \cdot \left({k}^{-4} \cdot \frac{2}{t}\right) \end{array} \]
(FPCore (t l k) :precision binary64 (* (pow l 2.0) (* (pow k -4.0) (/ 2.0 t))))
double code(double t, double l, double k) {
	return pow(l, 2.0) * (pow(k, -4.0) * (2.0 / t));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = (l ** 2.0d0) * ((k ** (-4.0d0)) * (2.0d0 / t))
end function
public static double code(double t, double l, double k) {
	return Math.pow(l, 2.0) * (Math.pow(k, -4.0) * (2.0 / t));
}
def code(t, l, k):
	return math.pow(l, 2.0) * (math.pow(k, -4.0) * (2.0 / t))
function code(t, l, k)
	return Float64((l ^ 2.0) * Float64((k ^ -4.0) * Float64(2.0 / t)))
end
function tmp = code(t, l, k)
	tmp = (l ^ 2.0) * ((k ^ -4.0) * (2.0 / t));
end
code[t_, l_, k_] := N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[Power[k, -4.0], $MachinePrecision] * N[(2.0 / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
{\ell}^{2} \cdot \left({k}^{-4} \cdot \frac{2}{t}\right)
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Simplified42.5%

    \[\leadsto \color{blue}{\frac{2}{\frac{{t}^{3}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)}} \]
  3. Step-by-step derivation
    1. unpow342.5%

      \[\leadsto \frac{2}{\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    2. times-frac52.2%

      \[\leadsto \frac{2}{\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    3. pow252.2%

      \[\leadsto \frac{2}{\left(\frac{\color{blue}{{t}^{2}}}{\ell} \cdot \frac{t}{\ell}\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  4. Applied egg-rr52.2%

    \[\leadsto \frac{2}{\color{blue}{\left(\frac{{t}^{2}}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  5. Taylor expanded in k around 0 62.1%

    \[\leadsto \frac{2}{\color{blue}{\frac{{k}^{4} \cdot t}{{\ell}^{2}}}} \]
  6. Step-by-step derivation
    1. *-commutative62.1%

      \[\leadsto \frac{2}{\frac{\color{blue}{t \cdot {k}^{4}}}{{\ell}^{2}}} \]
    2. associate-/l*61.8%

      \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  7. Simplified61.8%

    \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  8. Step-by-step derivation
    1. expm1-log1p-u38.4%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}\right)\right)} \]
    2. expm1-udef36.8%

      \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}\right)} - 1} \]
    3. associate-/r/36.8%

      \[\leadsto e^{\mathsf{log1p}\left(\color{blue}{\frac{2}{t} \cdot \frac{{\ell}^{2}}{{k}^{4}}}\right)} - 1 \]
    4. div-inv36.8%

      \[\leadsto e^{\mathsf{log1p}\left(\frac{2}{t} \cdot \color{blue}{\left({\ell}^{2} \cdot \frac{1}{{k}^{4}}\right)}\right)} - 1 \]
    5. pow-flip37.2%

      \[\leadsto e^{\mathsf{log1p}\left(\frac{2}{t} \cdot \left({\ell}^{2} \cdot \color{blue}{{k}^{\left(-4\right)}}\right)\right)} - 1 \]
    6. metadata-eval37.2%

      \[\leadsto e^{\mathsf{log1p}\left(\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{\color{blue}{-4}}\right)\right)} - 1 \]
  9. Applied egg-rr37.2%

    \[\leadsto \color{blue}{e^{\mathsf{log1p}\left(\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right)\right)} - 1} \]
  10. Step-by-step derivation
    1. expm1-def38.8%

      \[\leadsto \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right)\right)\right)} \]
    2. expm1-log1p62.2%

      \[\leadsto \color{blue}{\frac{2}{t} \cdot \left({\ell}^{2} \cdot {k}^{-4}\right)} \]
    3. *-commutative62.2%

      \[\leadsto \color{blue}{\left({\ell}^{2} \cdot {k}^{-4}\right) \cdot \frac{2}{t}} \]
    4. associate-*l*62.5%

      \[\leadsto \color{blue}{{\ell}^{2} \cdot \left({k}^{-4} \cdot \frac{2}{t}\right)} \]
  11. Simplified62.5%

    \[\leadsto \color{blue}{{\ell}^{2} \cdot \left({k}^{-4} \cdot \frac{2}{t}\right)} \]
  12. Final simplification62.5%

    \[\leadsto {\ell}^{2} \cdot \left({k}^{-4} \cdot \frac{2}{t}\right) \]

Alternative 8: 70.2% accurate, 2.0× speedup?

\[\begin{array}{l} \\ \frac{2}{\frac{t}{{\left(\ell \cdot {k}^{-2}\right)}^{2}}} \end{array} \]
(FPCore (t l k) :precision binary64 (/ 2.0 (/ t (pow (* l (pow k -2.0)) 2.0))))
double code(double t, double l, double k) {
	return 2.0 / (t / pow((l * pow(k, -2.0)), 2.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (t / ((l * (k ** (-2.0d0))) ** 2.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / (t / Math.pow((l * Math.pow(k, -2.0)), 2.0));
}
def code(t, l, k):
	return 2.0 / (t / math.pow((l * math.pow(k, -2.0)), 2.0))
function code(t, l, k)
	return Float64(2.0 / Float64(t / (Float64(l * (k ^ -2.0)) ^ 2.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (t / ((l * (k ^ -2.0)) ^ 2.0));
end
code[t_, l_, k_] := N[(2.0 / N[(t / N[Power[N[(l * N[Power[k, -2.0], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\frac{t}{{\left(\ell \cdot {k}^{-2}\right)}^{2}}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Simplified42.5%

    \[\leadsto \color{blue}{\frac{2}{\frac{{t}^{3}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)}} \]
  3. Step-by-step derivation
    1. unpow342.5%

      \[\leadsto \frac{2}{\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    2. times-frac52.2%

      \[\leadsto \frac{2}{\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    3. pow252.2%

      \[\leadsto \frac{2}{\left(\frac{\color{blue}{{t}^{2}}}{\ell} \cdot \frac{t}{\ell}\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  4. Applied egg-rr52.2%

    \[\leadsto \frac{2}{\color{blue}{\left(\frac{{t}^{2}}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  5. Taylor expanded in k around 0 62.1%

    \[\leadsto \frac{2}{\color{blue}{\frac{{k}^{4} \cdot t}{{\ell}^{2}}}} \]
  6. Step-by-step derivation
    1. *-commutative62.1%

      \[\leadsto \frac{2}{\frac{\color{blue}{t \cdot {k}^{4}}}{{\ell}^{2}}} \]
    2. associate-/l*61.8%

      \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  7. Simplified61.8%

    \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  8. Step-by-step derivation
    1. add-sqr-sqrt61.8%

      \[\leadsto \frac{2}{\frac{t}{\color{blue}{\sqrt{\frac{{\ell}^{2}}{{k}^{4}}} \cdot \sqrt{\frac{{\ell}^{2}}{{k}^{4}}}}}} \]
    2. pow261.8%

      \[\leadsto \frac{2}{\frac{t}{\color{blue}{{\left(\sqrt{\frac{{\ell}^{2}}{{k}^{4}}}\right)}^{2}}}} \]
    3. div-inv61.8%

      \[\leadsto \frac{2}{\frac{t}{{\left(\sqrt{\color{blue}{{\ell}^{2} \cdot \frac{1}{{k}^{4}}}}\right)}^{2}}} \]
    4. sqrt-prod61.8%

      \[\leadsto \frac{2}{\frac{t}{{\color{blue}{\left(\sqrt{{\ell}^{2}} \cdot \sqrt{\frac{1}{{k}^{4}}}\right)}}^{2}}} \]
    5. pow261.8%

      \[\leadsto \frac{2}{\frac{t}{{\left(\sqrt{\color{blue}{\ell \cdot \ell}} \cdot \sqrt{\frac{1}{{k}^{4}}}\right)}^{2}}} \]
    6. sqrt-prod34.5%

      \[\leadsto \frac{2}{\frac{t}{{\left(\color{blue}{\left(\sqrt{\ell} \cdot \sqrt{\ell}\right)} \cdot \sqrt{\frac{1}{{k}^{4}}}\right)}^{2}}} \]
    7. add-sqr-sqrt69.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\color{blue}{\ell} \cdot \sqrt{\frac{1}{{k}^{4}}}\right)}^{2}}} \]
    8. pow-flip69.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \sqrt{\color{blue}{{k}^{\left(-4\right)}}}\right)}^{2}}} \]
    9. metadata-eval69.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \sqrt{{k}^{\color{blue}{-4}}}\right)}^{2}}} \]
    10. metadata-eval69.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \sqrt{{k}^{\color{blue}{\left(-2 + -2\right)}}}\right)}^{2}}} \]
    11. pow-prod-up69.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \sqrt{\color{blue}{{k}^{-2} \cdot {k}^{-2}}}\right)}^{2}}} \]
    12. sqrt-unprod72.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \color{blue}{\left(\sqrt{{k}^{-2}} \cdot \sqrt{{k}^{-2}}\right)}\right)}^{2}}} \]
    13. add-sqr-sqrt72.3%

      \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot \color{blue}{{k}^{-2}}\right)}^{2}}} \]
  9. Applied egg-rr72.3%

    \[\leadsto \frac{2}{\frac{t}{\color{blue}{{\left(\ell \cdot {k}^{-2}\right)}^{2}}}} \]
  10. Final simplification72.3%

    \[\leadsto \frac{2}{\frac{t}{{\left(\ell \cdot {k}^{-2}\right)}^{2}}} \]

Alternative 9: 60.6% accurate, 3.8× speedup?

\[\begin{array}{l} \\ \frac{2}{\frac{t}{\frac{\ell \cdot \ell}{{k}^{4}}}} \end{array} \]
(FPCore (t l k) :precision binary64 (/ 2.0 (/ t (/ (* l l) (pow k 4.0)))))
double code(double t, double l, double k) {
	return 2.0 / (t / ((l * l) / pow(k, 4.0)));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (t / ((l * l) / (k ** 4.0d0)))
end function
public static double code(double t, double l, double k) {
	return 2.0 / (t / ((l * l) / Math.pow(k, 4.0)));
}
def code(t, l, k):
	return 2.0 / (t / ((l * l) / math.pow(k, 4.0)))
function code(t, l, k)
	return Float64(2.0 / Float64(t / Float64(Float64(l * l) / (k ^ 4.0))))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (t / ((l * l) / (k ^ 4.0)));
end
code[t_, l_, k_] := N[(2.0 / N[(t / N[(N[(l * l), $MachinePrecision] / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\frac{t}{\frac{\ell \cdot \ell}{{k}^{4}}}}
\end{array}
Derivation
  1. Initial program 36.8%

    \[\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)} \]
  2. Simplified42.5%

    \[\leadsto \color{blue}{\frac{2}{\frac{{t}^{3}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)}} \]
  3. Step-by-step derivation
    1. unpow342.5%

      \[\leadsto \frac{2}{\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    2. times-frac52.2%

      \[\leadsto \frac{2}{\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
    3. pow252.2%

      \[\leadsto \frac{2}{\left(\frac{\color{blue}{{t}^{2}}}{\ell} \cdot \frac{t}{\ell}\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  4. Applied egg-rr52.2%

    \[\leadsto \frac{2}{\color{blue}{\left(\frac{{t}^{2}}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{k}{t}\right)}^{2}\right)\right)} \]
  5. Taylor expanded in k around 0 62.1%

    \[\leadsto \frac{2}{\color{blue}{\frac{{k}^{4} \cdot t}{{\ell}^{2}}}} \]
  6. Step-by-step derivation
    1. *-commutative62.1%

      \[\leadsto \frac{2}{\frac{\color{blue}{t \cdot {k}^{4}}}{{\ell}^{2}}} \]
    2. associate-/l*61.8%

      \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  7. Simplified61.8%

    \[\leadsto \frac{2}{\color{blue}{\frac{t}{\frac{{\ell}^{2}}{{k}^{4}}}}} \]
  8. Step-by-step derivation
    1. pow261.8%

      \[\leadsto \frac{2}{\frac{t}{\frac{\color{blue}{\ell \cdot \ell}}{{k}^{4}}}} \]
  9. Applied egg-rr61.8%

    \[\leadsto \frac{2}{\frac{t}{\frac{\color{blue}{\ell \cdot \ell}}{{k}^{4}}}} \]
  10. Final simplification61.8%

    \[\leadsto \frac{2}{\frac{t}{\frac{\ell \cdot \ell}{{k}^{4}}}} \]

Reproduce

?
herbie shell --seed 2023318 
(FPCore (t l k)
  :name "Toniolo and Linder, Equation (10-)"
  :precision binary64
  (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))