Toniolo and Linder, Equation (10-)

?

Percentage Accurate: 35.3% → 99.0%
Time: 25.9s
Precision: binary64
Cost: 13760

?

\[\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)} \]
\[\frac{\frac{2 \cdot \frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k} \]
(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))))
(FPCore (t l k)
 :precision binary64
 (/ (* (/ (* 2.0 (/ l k)) (sin k)) (/ (/ l k) t)) (tan k)))
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));
}
double code(double t, double l, double k) {
	return (((2.0 * (l / k)) / sin(k)) * ((l / k) / t)) / tan(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 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
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 / k)) / sin(k)) * ((l / k) / t)) / tan(k)
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));
}
public static double code(double t, double l, double k) {
	return (((2.0 * (l / k)) / Math.sin(k)) * ((l / k) / t)) / Math.tan(k);
}
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))
def code(t, l, k):
	return (((2.0 * (l / k)) / math.sin(k)) * ((l / k) / t)) / math.tan(k)
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 code(t, l, k)
	return Float64(Float64(Float64(Float64(2.0 * Float64(l / k)) / sin(k)) * Float64(Float64(l / k) / t)) / tan(k))
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
function tmp = code(t, l, k)
	tmp = (((2.0 * (l / k)) / sin(k)) * ((l / k) / t)) / tan(k);
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]
code[t_, l_, k_] := N[(N[(N[(N[(2.0 * N[(l / k), $MachinePrecision]), $MachinePrecision] / N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(l / k), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision] / N[Tan[k], $MachinePrecision]), $MachinePrecision]
\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)}
\frac{\frac{2 \cdot \frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k}

Local Percentage Accuracy?

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.

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation?

  1. Initial program 33.2%

    \[\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. Simplified45.0%

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

    [Start]33.2

    \[ \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)} \]

    associate-*l* [=>]33.2

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

    associate-*l* [=>]33.2

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

    associate-/r* [=>]33.2

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

    associate-/r/ [=>]33.5

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

    *-commutative [=>]33.5

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

    times-frac [=>]34.0

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

    +-commutative [=>]34.0

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

    associate--l+ [=>]42.0

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

    metadata-eval [=>]42.0

    \[ \frac{\frac{2}{{t}^{3}}}{{\left(\frac{k}{t}\right)}^{2} + \color{blue}{0}} \cdot \frac{\ell \cdot \ell}{\sin k \cdot \tan k} \]

    +-rgt-identity [=>]42.0

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

    times-frac [=>]45.0

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

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

    [Start]45.0

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

    associate-*r* [=>]46.2

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

    associate-*r/ [=>]46.1

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

    div-inv [=>]45.6

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

    associate-*l* [=>]45.1

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

    div-inv [=>]45.1

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

    pow-flip [=>]45.9

    \[ \frac{\left(\left(2 \cdot \color{blue}{{t}^{\left(-3\right)}}\right) \cdot \left(\frac{1}{{\left(\frac{k}{t}\right)}^{2}} \cdot \frac{\ell}{\sin k}\right)\right) \cdot \ell}{\tan k} \]

    metadata-eval [=>]45.9

    \[ \frac{\left(\left(2 \cdot {t}^{\color{blue}{-3}}\right) \cdot \left(\frac{1}{{\left(\frac{k}{t}\right)}^{2}} \cdot \frac{\ell}{\sin k}\right)\right) \cdot \ell}{\tan k} \]

    pow-flip [=>]46.3

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

    metadata-eval [=>]46.3

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

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

    \[\leadsto \frac{\color{blue}{\frac{\frac{\left(2 \cdot \ell\right) \cdot \ell}{k \cdot k}}{\sin k \cdot t}}}{\tan k} \]
    Step-by-step derivation

    [Start]73.0

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

    associate-*r/ [=>]73.0

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

    associate-/r* [=>]73.1

    \[ \frac{\color{blue}{\frac{\frac{2 \cdot {\ell}^{2}}{{k}^{2}}}{\sin k \cdot t}}}{\tan k} \]

    unpow2 [=>]73.1

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

    associate-*r* [=>]73.2

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

    unpow2 [=>]73.2

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

    \[\leadsto \frac{\color{blue}{\frac{2 \cdot \frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}}{\tan k} \]
    Step-by-step derivation

    [Start]73.2

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

    times-frac [=>]92.2

    \[ \frac{\frac{\color{blue}{\frac{2 \cdot \ell}{k} \cdot \frac{\ell}{k}}}{\sin k \cdot t}}{\tan k} \]

    times-frac [=>]99.2

    \[ \frac{\color{blue}{\frac{\frac{2 \cdot \ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}}{\tan k} \]

    *-un-lft-identity [=>]99.2

    \[ \frac{\frac{\frac{2 \cdot \ell}{\color{blue}{1 \cdot k}}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k} \]

    times-frac [=>]99.2

    \[ \frac{\frac{\color{blue}{\frac{2}{1} \cdot \frac{\ell}{k}}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k} \]

    metadata-eval [=>]99.2

    \[ \frac{\frac{\color{blue}{2} \cdot \frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k} \]
  7. Final simplification99.2%

    \[\leadsto \frac{\frac{2 \cdot \frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{t}}{\tan k} \]

Alternatives

Alternative 1
Accuracy93.8%
Cost14025
\[\begin{array}{l} \mathbf{if}\;k \leq -1.18 \cdot 10^{-129} \lor \neg \left(k \leq 9.4 \cdot 10^{-105}\right):\\ \;\;\;\;\ell \cdot \left(\frac{\frac{\ell}{k \cdot t}}{\sin k} \cdot \frac{\frac{2}{k}}{\tan k}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2 \cdot {\left(\frac{\ell}{k}\right)}^{2}}{k \cdot t}}{k}\\ \end{array} \]
Alternative 2
Accuracy94.3%
Cost14020
\[\begin{array}{l} \mathbf{if}\;\ell \cdot \ell \leq 5 \cdot 10^{+212}:\\ \;\;\;\;\frac{2}{k} \cdot \frac{\frac{\ell}{\sin k}}{\frac{k \cdot t}{\frac{\ell}{\tan k}}}\\ \mathbf{else}:\\ \;\;\;\;\ell \cdot \left(\frac{\frac{\ell}{k \cdot t}}{\sin k} \cdot \frac{\frac{2}{k}}{\tan k}\right)\\ \end{array} \]
Alternative 3
Accuracy99.1%
Cost13760
\[\frac{2 \cdot \frac{\ell}{k}}{\tan k} \cdot \frac{\frac{\ell}{k}}{\sin k \cdot t} \]
Alternative 4
Accuracy72.8%
Cost7620
\[\begin{array}{l} \mathbf{if}\;\ell \cdot \ell \leq 5 \cdot 10^{+289}:\\ \;\;\;\;\frac{\ell \cdot \frac{2}{k}}{\left(k \cdot t\right) \cdot \frac{k}{\frac{\ell}{k}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{k \cdot \left(k \cdot t\right)} \cdot \left(\frac{\ell}{k} \cdot \frac{\ell}{\sin k}\right)\\ \end{array} \]
Alternative 5
Accuracy72.9%
Cost7360
\[\frac{\frac{\frac{2}{k}}{\left(k \cdot t\right) \cdot \frac{\sin k}{\ell}}}{\frac{k}{\ell}} \]
Alternative 6
Accuracy70.0%
Cost960
\[\frac{2}{k \cdot \left(k \cdot t\right)} \cdot \left(\frac{\ell}{k} \cdot \frac{\ell}{k}\right) \]
Alternative 7
Accuracy70.3%
Cost960
\[\frac{2}{\frac{k \cdot \left(\left(k \cdot t\right) \cdot \frac{k}{\frac{\ell}{k}}\right)}{\ell}} \]
Alternative 8
Accuracy70.4%
Cost960
\[\frac{2 \cdot \ell}{k \cdot \left(\left(k \cdot t\right) \cdot \frac{k}{\frac{\ell}{k}}\right)} \]
Alternative 9
Accuracy72.3%
Cost960
\[\frac{\ell \cdot \frac{2}{k}}{\left(k \cdot t\right) \cdot \frac{k}{\frac{\ell}{k}}} \]
Alternative 10
Accuracy33.3%
Cost704
\[-0.3333333333333333 \cdot \frac{\ell \cdot \ell}{k \cdot \left(k \cdot t\right)} \]

Error

Reproduce?

herbie shell --seed 2023160 
(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))))