Average Error: 42.0 → 9.3
Time: 40.8s
Precision: 64
Internal Precision: 128
\[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -5.794477429976132 \cdot 10^{+47}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{t}{x \cdot x}\right) \cdot \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) + \left((\left(\frac{2}{x}\right) \cdot \left(\frac{-t}{\sqrt{2}}\right) + \left(\left(-t\right) \cdot \sqrt{2}\right))_*\right))_*}\\ \mathbf{elif}\;t \le -3.7665317815387335 \cdot 10^{-159}:\\ \;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\left(4 \cdot t\right) \cdot \frac{t}{x}\right))_*}}\\ \mathbf{elif}\;t \le -3.86239255768365 \cdot 10^{-214}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{t}{x \cdot x}\right) \cdot \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) + \left((\left(\frac{2}{x}\right) \cdot \left(\frac{-t}{\sqrt{2}}\right) + \left(\left(-t\right) \cdot \sqrt{2}\right))_*\right))_*}\\ \mathbf{elif}\;t \le 8.117102443425849 \cdot 10^{+104}:\\ \;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\left(4 \cdot t\right) \cdot \frac{t}{x}\right))_*}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{2}{\sqrt{2}}\right) \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \left((\left(\frac{-1}{\sqrt{2}}\right) \cdot \left(\frac{t}{x \cdot x}\right) + \left(\sqrt{2} \cdot t\right))_*\right))_*}\\ \end{array}\]

Error

Bits error versus x

Bits error versus l

Bits error versus t

Derivation

  1. Split input into 3 regimes
  2. if t < -5.794477429976132e+47 or -3.7665317815387335e-159 < t < -3.86239255768365e-214

    1. Initial program 46.2

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around -inf 8.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \left(2 \cdot \frac{t}{\sqrt{2} \cdot {x}^{2}} + \left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)\right)}}\]
    3. Simplified8.1

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{(\left(\frac{t}{x \cdot x}\right) \cdot \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) + \left((\left(\frac{2}{x}\right) \cdot \left(\frac{-t}{\sqrt{2}}\right) + \left(\left(-t\right) \cdot \sqrt{2}\right))_*\right))_*}}\]

    if -5.794477429976132e+47 < t < -3.7665317815387335e-159 or -3.86239255768365e-214 < t < 8.117102443425849e+104

    1. Initial program 36.5

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around inf 16.2

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\color{blue}{2 \cdot {t}^{2} + \left(2 \cdot \frac{{\ell}^{2}}{x} + 4 \cdot \frac{{t}^{2}}{x}\right)}}}\]
    3. Simplified12.3

      \[\leadsto \frac{\sqrt{2} \cdot t}{\sqrt{\color{blue}{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\frac{t}{x} \cdot \left(t \cdot 4\right)\right))_*}}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt12.3

      \[\leadsto \frac{\color{blue}{\left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}\right)} \cdot t}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\frac{t}{x} \cdot \left(t \cdot 4\right)\right))_*}}\]
    6. Applied associate-*l*12.3

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot t\right)}}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\frac{t}{x} \cdot \left(t \cdot 4\right)\right))_*}}\]

    if 8.117102443425849e+104 < t

    1. Initial program 51.1

      \[\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\]
    2. Taylor expanded around inf 3.0

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot {x}^{2}} + \left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}}}\]
    3. Simplified3.0

      \[\leadsto \frac{\sqrt{2} \cdot t}{\color{blue}{(\left(\frac{2}{\sqrt{2}}\right) \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \left((\left(\frac{-1}{\sqrt{2}}\right) \cdot \left(\frac{t}{x \cdot x}\right) + \left(\sqrt{2} \cdot t\right))_*\right))_*}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -5.794477429976132 \cdot 10^{+47}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{t}{x \cdot x}\right) \cdot \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) + \left((\left(\frac{2}{x}\right) \cdot \left(\frac{-t}{\sqrt{2}}\right) + \left(\left(-t\right) \cdot \sqrt{2}\right))_*\right))_*}\\ \mathbf{elif}\;t \le -3.7665317815387335 \cdot 10^{-159}:\\ \;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\left(4 \cdot t\right) \cdot \frac{t}{x}\right))_*}}\\ \mathbf{elif}\;t \le -3.86239255768365 \cdot 10^{-214}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{t}{x \cdot x}\right) \cdot \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) + \left((\left(\frac{2}{x}\right) \cdot \left(\frac{-t}{\sqrt{2}}\right) + \left(\left(-t\right) \cdot \sqrt{2}\right))_*\right))_*}\\ \mathbf{elif}\;t \le 8.117102443425849 \cdot 10^{+104}:\\ \;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{(2 \cdot \left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) + \left(\left(4 \cdot t\right) \cdot \frac{t}{x}\right))_*}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{2} \cdot t}{(\left(\frac{2}{\sqrt{2}}\right) \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \left((\left(\frac{-1}{\sqrt{2}}\right) \cdot \left(\frac{t}{x \cdot x}\right) + \left(\sqrt{2} \cdot t\right))_*\right))_*}\\ \end{array}\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (x l t)
  :name "Toniolo and Linder, Equation (7)"
  (/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))

Details

Time bar (total: 39.6s)Debug log

sample399.0ms

Algorithm
intervals

simplify932.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
932.0ms
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))

prune21.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 40.3b

localize44.0ms

Local error

Found 4 expressions with local error:

18.9b
(sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))
10.6b
(- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))
0.4b
(* (sqrt 2) t)
0.0b
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))

rewrite41.0ms

Algorithm
rewrite-expression-head
Rules
11×add-sqr-sqrt
10×add-cube-cbrt
10×*-un-lft-identity
sqrt-prod
add-log-exp
add-exp-log
add-cbrt-cube
times-frac
associate-/r*
log1p-expm1-u
sqrt-div
pow1
expm1-log1p-u
flip--
associate-*l*
flip3--
associate-/r/
associate--l+
associate-/l*
div-inv
*-commutative
prod-diff
div-exp
diff-log
fma-neg
pow1/2
distribute-lft-in
frac-2neg
sub-neg
clear-num
rem-sqrt-square
cbrt-undiv
distribute-rgt-in
Counts
4 → 76
Calls
4 calls:
Slowest
17.0ms
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))
12.0ms
(sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))
8.0ms
(- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))
2.0ms
(* (sqrt 2) t)

series1.3s

Counts
4 → 12
Calls
4 calls:
Slowest
872.0ms
(sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))
263.0ms
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))
149.0ms
(- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))
38.0ms
(* (sqrt 2) t)

simplify14.0s

Counts
49 → 88
Calls
49 calls:
Slowest
628.0ms
(/ (sqrt 2) (sqrt (* (cbrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))) (cbrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))))
615.0ms
(/ (sqrt 2) (* (cbrt (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))) (cbrt (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))))
585.0ms
(sqrt (+ (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))
570.0ms
(sqrt (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))))
560.0ms
(sqrt (* (cbrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l))) (cbrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))

prune1.5s

Pruning

5 alts after pruning (5 fresh and 0 done)

Merged error: 4.1b

localize27.0ms

Local error

Found 4 expressions with local error:

25.0b
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
3.8b
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
0.4b
(* (sqrt 2) t)
0.1b
(* (/ t x) (* t 4))

rewrite7.0ms

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt
add-cube-cbrt
associate-*l*
*-un-lft-identity
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
expm1-log1p-u
sqrt-prod
*-commutative
div-inv
fma-udef
cbrt-unprod
prod-exp
associate-*l/
pow-prod-down
associate-*r*
pow1/2
rem-sqrt-square
Counts
4 → 56
Calls
4 calls:
Slowest
3.0ms
(* (/ t x) (* t 4))
2.0ms
(* (sqrt 2) t)
1.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
0.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))

series373.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
269.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
64.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
29.0ms
(* (sqrt 2) t)
12.0ms
(* (/ t x) (* t 4))

simplify1.4s

Counts
24 → 68
Calls
24 calls:
Slowest
589.0ms
(* (* (* (/ t x) (/ t x)) (/ t x)) (* (* (* t 4) (* t 4)) (* t 4)))
135.0ms
(sqrt (sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))))
124.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
110.0ms
(+ (* 2 (pow t 2)) (+ (* 2 (/ (pow l 2) x)) (* 4 (/ (pow t 2) x))))
107.0ms
(sqrt (* (cbrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))) (cbrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))))

prune1.0s

Pruning

7 alts after pruning (7 fresh and 0 done)

Merged error: 4.0b

localize28.0ms

Local error

Found 4 expressions with local error:

25.0b
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
3.8b
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
0.3b
(* (* (cbrt (sqrt 2)) (cbrt (sqrt 2))) (* (cbrt (sqrt 2)) t))
0.2b
(* (cbrt (sqrt 2)) t)

rewrite41.0ms

Algorithm
rewrite-expression-head
Rules
add-exp-log
pow1
add-sqr-sqrt
add-cube-cbrt
associate-*l*
add-cbrt-cube
*-un-lft-identity
add-log-exp
log1p-expm1-u
expm1-log1p-u
cbrt-unprod
sqrt-prod
prod-exp
pow-prod-down
cbrt-prod
*-commutative
fma-udef
associate-*r*
pow1/2
rem-sqrt-square
Counts
4 → 58
Calls
4 calls:
Slowest
31.0ms
(* (* (cbrt (sqrt 2)) (cbrt (sqrt 2))) (* (cbrt (sqrt 2)) t))
6.0ms
(* (cbrt (sqrt 2)) t)
2.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
0.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))

series804.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
484.0ms
(* (cbrt (sqrt 2)) t)
215.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
63.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
42.0ms
(* (* (cbrt (sqrt 2)) (cbrt (sqrt 2))) (* (cbrt (sqrt 2)) t))

simplify1.5s

Counts
28 → 70
Calls
28 calls:
Slowest
430.0ms
(* (* (* (* (cbrt (sqrt 2)) (cbrt (sqrt 2))) (* (cbrt (sqrt 2)) (cbrt (sqrt 2)))) (* (cbrt (sqrt 2)) (cbrt (sqrt 2)))) (* (* (* (cbrt (sqrt 2)) t) (* (cbrt (sqrt 2)) t)) (* (cbrt (sqrt 2)) t)))
325.0ms
(* (* (sqrt 2) (sqrt 2)) (* (* (* (cbrt (sqrt 2)) t) (* (cbrt (sqrt 2)) t)) (* (cbrt (sqrt 2)) t)))
140.0ms
(+ (* 2 (pow t 2)) (+ (* 2 (/ (pow l 2) x)) (* 4 (/ (pow t 2) x))))
137.0ms
(+ (* 2 (pow t 2)) (+ (* 2 (/ (pow l 2) x)) (* 4 (/ (pow t 2) x))))
123.0ms
(sqrt (sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))))

prune1.1s

Pruning

8 alts after pruning (7 fresh and 1 done)

Merged error: 4.0b

localize17.0ms

Local error

Found 4 expressions with local error:

25.0b
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
3.8b
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
0.3b
(* (sqrt (sqrt 2)) (* (sqrt (sqrt 2)) t))
0.2b
(* (sqrt (sqrt 2)) t)

rewrite25.0ms

Algorithm
rewrite-expression-head
Rules
12×associate-*l*
10×add-sqr-sqrt
sqrt-prod
add-cube-cbrt
*-un-lft-identity
add-exp-log
add-cbrt-cube
pow1
add-log-exp
log1p-expm1-u
expm1-log1p-u
*-commutative
fma-udef
cbrt-unprod
prod-exp
pow-prod-down
associate-*r*
pow1/2
rem-sqrt-square
Counts
4 → 60
Calls
4 calls:
Slowest
19.0ms
(* (sqrt (sqrt 2)) (* (sqrt (sqrt 2)) t))
3.0ms
(* (sqrt (sqrt 2)) t)
2.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
0.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))

series378.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
230.0ms
(sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))
67.0ms
(* (sqrt (sqrt 2)) t)
46.0ms
(fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))
34.0ms
(* (sqrt (sqrt 2)) (* (sqrt (sqrt 2)) t))

simplify1.2s

Counts
29 → 72
Calls
29 calls:
Slowest
378.0ms
(* (* (* (sqrt (sqrt 2)) (sqrt (sqrt 2))) (sqrt (sqrt 2))) (* (* (* (sqrt (sqrt 2)) t) (* (sqrt (sqrt 2)) t)) (* (sqrt (sqrt 2)) t)))
147.0ms
(+ (* 2 (pow t 2)) (+ (* 2 (/ (pow l 2) x)) (* 4 (/ (pow t 2) x))))
142.0ms
(+ (* 2 (pow t 2)) (+ (* 2 (/ (pow l 2) x)) (* 4 (/ (pow t 2) x))))
141.0ms
(sqrt (sqrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))))
115.0ms
(sqrt (* (cbrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4)))) (cbrt (fma 2 (fma (/ l x) l (* t t)) (* (/ t x) (* t 4))))))

prune1.2s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 4.0b

regimes360.0ms

Accuracy

77.3% (5.2b remaining)

Error of 9.3b against oracle of 4.1b and baseline of 26.9b

bsearch2.3s

end0.0ms

sample9.7s

Algorithm
intervals