Average Error: 47.7 → 0.4
Time: 26.9s
Precision: binary64
Cost: 13888
\[\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)} \]
\[\left(\frac{\frac{\ell}{k}}{\tan k} \cdot \frac{2}{t}\right) \cdot \left(\frac{\ell}{k} \cdot \frac{1}{\sin k}\right) \]
(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
 (* (* (/ (/ l k) (tan k)) (/ 2.0 t)) (* (/ l k) (/ 1.0 (sin 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 (((l / k) / tan(k)) * (2.0 / t)) * ((l / k) * (1.0 / sin(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 = (((l / k) / tan(k)) * (2.0d0 / t)) * ((l / k) * (1.0d0 / sin(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 (((l / k) / Math.tan(k)) * (2.0 / t)) * ((l / k) * (1.0 / Math.sin(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 (((l / k) / math.tan(k)) * (2.0 / t)) * ((l / k) * (1.0 / math.sin(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(l / k) / tan(k)) * Float64(2.0 / t)) * Float64(Float64(l / k) * Float64(1.0 / sin(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 = (((l / k) / tan(k)) * (2.0 / t)) * ((l / k) * (1.0 / sin(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[(l / k), $MachinePrecision] / N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(2.0 / t), $MachinePrecision]), $MachinePrecision] * N[(N[(l / k), $MachinePrecision] * N[(1.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision]), $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)}
\left(\frac{\frac{\ell}{k}}{\tan k} \cdot \frac{2}{t}\right) \cdot \left(\frac{\ell}{k} \cdot \frac{1}{\sin k}\right)

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 47.7

    \[\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. Simplified40.4

    \[\leadsto \color{blue}{\frac{\frac{\frac{2}{\tan k}}{{t}^{3}}}{\sin k} \cdot \frac{\ell \cdot \ell}{{\left(\frac{k}{t}\right)}^{2}}} \]
    Proof
    (*.f64 (/.f64 (/.f64 (/.f64 2 (tan.f64 k)) (pow.f64 t 3)) (sin.f64 k)) (/.f64 (*.f64 l l) (pow.f64 (/.f64 k t) 2))): 0 points increase in error, 0 points decrease in error
    (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 (/.f64 2 (tan.f64 k)) (*.f64 (pow.f64 t 3) (sin.f64 k)))) (/.f64 (*.f64 l l) (pow.f64 (/.f64 k t) 2))): 1 points increase in error, 2 points decrease in error
    (*.f64 (Rewrite=> associate-/l/_binary64 (/.f64 2 (*.f64 (*.f64 (pow.f64 t 3) (sin.f64 k)) (tan.f64 k)))) (/.f64 (*.f64 l l) (pow.f64 (/.f64 k t) 2))): 2 points increase in error, 3 points decrease in error
    (*.f64 (/.f64 2 (Rewrite=> associate-*l*_binary64 (*.f64 (pow.f64 t 3) (*.f64 (sin.f64 k) (tan.f64 k))))) (/.f64 (*.f64 l l) (pow.f64 (/.f64 k t) 2))): 0 points increase in error, 1 points decrease in error
    (*.f64 (Rewrite=> associate-/r*_binary64 (/.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 (sin.f64 k) (tan.f64 k)))) (/.f64 (*.f64 l l) (pow.f64 (/.f64 k t) 2))): 0 points increase in error, 1 points decrease in error
    (*.f64 (/.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 (sin.f64 k) (tan.f64 k))) (/.f64 (*.f64 l l) (Rewrite<= +-rgt-identity_binary64 (+.f64 (pow.f64 (/.f64 k t) 2) 0)))): 0 points increase in error, 0 points decrease in error
    (*.f64 (/.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 (sin.f64 k) (tan.f64 k))) (/.f64 (*.f64 l l) (+.f64 (pow.f64 (/.f64 k t) 2) (Rewrite<= metadata-eval (-.f64 1 1))))): 0 points increase in error, 0 points decrease in error
    (*.f64 (/.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 (sin.f64 k) (tan.f64 k))) (/.f64 (*.f64 l l) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (pow.f64 (/.f64 k t) 2) 1) 1)))): 27 points increase in error, 0 points decrease in error
    (*.f64 (/.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 (sin.f64 k) (tan.f64 k))) (/.f64 (*.f64 l l) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 1 (pow.f64 (/.f64 k t) 2))) 1))): 0 points increase in error, 0 points decrease in error
    (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (/.f64 2 (pow.f64 t 3)) (*.f64 l l)) (*.f64 (*.f64 (sin.f64 k) (tan.f64 k)) (-.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)))): 4 points increase in error, 4 points decrease in error
    (/.f64 (Rewrite<= associate-/r/_binary64 (/.f64 2 (/.f64 (pow.f64 t 3) (*.f64 l l)))) (*.f64 (*.f64 (sin.f64 k) (tan.f64 k)) (-.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1))): 0 points increase in error, 5 points decrease in error
    (Rewrite<= associate-/r*_binary64 (/.f64 2 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (*.f64 (*.f64 (sin.f64 k) (tan.f64 k)) (-.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1))))): 3 points increase in error, 1 points decrease in error
    (/.f64 2 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (*.f64 (sin.f64 k) (tan.f64 k))) (-.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)))): 3 points increase in error, 1 points decrease in error
    (/.f64 2 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k))) (-.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1))): 4 points increase in error, 1 points decrease in error
  3. Applied egg-rr33.1

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

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

    \[\leadsto \frac{\color{blue}{\left(\frac{\ell}{k} \cdot \frac{\ell}{k}\right) \cdot \left(\frac{\frac{\cos k}{t}}{\sin k} \cdot 2\right)}}{\sin k} \]
    Proof
    (*.f64 (*.f64 (/.f64 l k) (/.f64 l k)) (*.f64 (/.f64 (/.f64 (cos.f64 k) t) (sin.f64 k)) 2)): 0 points increase in error, 0 points decrease in error
    (*.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 l l) (*.f64 k k))) (*.f64 (/.f64 (/.f64 (cos.f64 k) t) (sin.f64 k)) 2)): 79 points increase in error, 24 points decrease in error
    (*.f64 (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 l 2)) (*.f64 k k)) (*.f64 (/.f64 (/.f64 (cos.f64 k) t) (sin.f64 k)) 2)): 0 points increase in error, 0 points decrease in error
    (*.f64 (/.f64 (pow.f64 l 2) (Rewrite<= unpow2_binary64 (pow.f64 k 2))) (*.f64 (/.f64 (/.f64 (cos.f64 k) t) (sin.f64 k)) 2)): 0 points increase in error, 0 points decrease in error
    (*.f64 (/.f64 (pow.f64 l 2) (pow.f64 k 2)) (*.f64 (Rewrite<= associate-/r*_binary64 (/.f64 (cos.f64 k) (*.f64 t (sin.f64 k)))) 2)): 6 points increase in error, 5 points decrease in error
    (*.f64 (/.f64 (pow.f64 l 2) (pow.f64 k 2)) (*.f64 (/.f64 (cos.f64 k) (Rewrite<= *-commutative_binary64 (*.f64 (sin.f64 k) t))) 2)): 0 points increase in error, 0 points decrease in error
    (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (/.f64 (pow.f64 l 2) (pow.f64 k 2)) (/.f64 (cos.f64 k) (*.f64 (sin.f64 k) t))) 2)): 0 points increase in error, 0 points decrease in error
    (*.f64 (Rewrite<= times-frac_binary64 (/.f64 (*.f64 (pow.f64 l 2) (cos.f64 k)) (*.f64 (pow.f64 k 2) (*.f64 (sin.f64 k) t)))) 2): 30 points increase in error, 11 points decrease in error
    (*.f64 (/.f64 (Rewrite<= *-commutative_binary64 (*.f64 (cos.f64 k) (pow.f64 l 2))) (*.f64 (pow.f64 k 2) (*.f64 (sin.f64 k) t))) 2): 0 points increase in error, 0 points decrease in error
    (Rewrite<= *-commutative_binary64 (*.f64 2 (/.f64 (*.f64 (cos.f64 k) (pow.f64 l 2)) (*.f64 (pow.f64 k 2) (*.f64 (sin.f64 k) t))))): 0 points increase in error, 0 points decrease in error
  6. Applied egg-rr1.5

    \[\leadsto \frac{\color{blue}{\frac{\frac{\ell}{k} \cdot \frac{2}{\tan k \cdot t}}{\frac{k}{\ell}}}}{\sin k} \]
  7. Applied egg-rr0.4

    \[\leadsto \color{blue}{\left(\frac{\frac{\ell}{k}}{\tan k} \cdot \frac{2}{t}\right) \cdot \left(\frac{\ell}{k} \cdot \frac{1}{\sin k}\right)} \]
  8. Final simplification0.4

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

Alternatives

Alternative 1
Error0.4
Cost13760
\[\left(\frac{\frac{\ell}{k}}{\tan k} \cdot \frac{2}{t}\right) \cdot \frac{\frac{\ell}{k}}{\sin k} \]
Alternative 2
Error24.2
Cost7360
\[\frac{\frac{\frac{\ell}{k} \cdot \frac{2}{k \cdot t}}{\frac{k}{\ell}}}{\sin k} \]
Alternative 3
Error24.5
Cost7300
\[\begin{array}{l} \mathbf{if}\;\ell \cdot \ell \leq 1.5 \cdot 10^{-271}:\\ \;\;\;\;2 \cdot \frac{{\left(k \cdot \frac{k}{\ell}\right)}^{-2}}{t}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{k \cdot k} \cdot \left(\ell \cdot \frac{\ell}{k \cdot \left(k \cdot t\right)}\right)\\ \end{array} \]
Alternative 4
Error29.0
Cost960
\[\frac{\frac{\frac{2}{\frac{\frac{t}{\ell}}{\ell}}}{k \cdot k}}{k \cdot k} \]

Error

Reproduce

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