Average Error: 33.8 → 24.6
Time: 43.4s
Precision: 64
Internal Precision: 128
\[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
\[\begin{array}{l} \mathbf{if}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 4.920922692120039 \cdot 10^{-149}:\\ \;\;\;\;\left|\sqrt{(\left((\left(\frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(2 \cdot \ell\right))_*\right) \cdot \left(\frac{\left(U \cdot -2\right) \cdot \ell}{\frac{Om}{n}}\right) + \left(\left(U \cdot 2\right) \cdot \left(t \cdot n\right)\right))_*}\right|\\ \mathbf{elif}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 9.019480211418147 \cdot 10^{+151}:\\ \;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\left|\sqrt{(\left((\left(U - U*\right) \cdot \left(n \cdot \frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*\right) \cdot \left(\frac{\left(\ell \cdot n\right) \cdot \left(U \cdot -2\right)}{Om}\right) + \left(\left(2 \cdot n\right) \cdot \left(U \cdot t\right)\right))_*}\right|\\ \end{array}\]

Error

Bits error versus n

Bits error versus U

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus U*

Derivation

  1. Split input into 3 regimes
  2. if (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 4.920922692120039e-149

    1. Initial program 53.9

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    2. Initial simplification54.0

      \[\leadsto \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t - (\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right)}\]
    3. Using strategy rm
    4. Applied sub-neg54.0

      \[\leadsto \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \color{blue}{\left(t + \left(-(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right)\right)}}\]
    5. Applied distribute-rgt-in54.0

      \[\leadsto \sqrt{\color{blue}{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(-(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right) \cdot \left(2 \cdot \left(U \cdot n\right)\right)}}\]
    6. Simplified54.2

      \[\leadsto \sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \color{blue}{\left(\left(n \cdot \left(U \cdot -2\right)\right) \cdot \frac{\ell}{Om}\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}}\]
    7. Using strategy rm
    8. Applied associate-*l*51.7

      \[\leadsto \sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \color{blue}{\left(n \cdot \left(\left(U \cdot -2\right) \cdot \frac{\ell}{Om}\right)\right)} \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt51.7

      \[\leadsto \sqrt{\color{blue}{\sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(n \cdot \left(\left(U \cdot -2\right) \cdot \frac{\ell}{Om}\right)\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*} \cdot \sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(n \cdot \left(\left(U \cdot -2\right) \cdot \frac{\ell}{Om}\right)\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}}}\]
    11. Applied rem-sqrt-square51.7

      \[\leadsto \color{blue}{\left|\sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(n \cdot \left(\left(U \cdot -2\right) \cdot \frac{\ell}{Om}\right)\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}\right|}\]
    12. Simplified39.8

      \[\leadsto \left|\color{blue}{\sqrt{(\left((\left(\frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(2 \cdot \ell\right))_*\right) \cdot \left(\frac{\ell \cdot \left(-2 \cdot U\right)}{\frac{Om}{n}}\right) + \left(\left(U \cdot 2\right) \cdot \left(n \cdot t\right)\right))_*}}\right|\]

    if 4.920922692120039e-149 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 9.019480211418147e+151

    1. Initial program 1.3

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]

    if 9.019480211418147e+151 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))))

    1. Initial program 60.4

      \[\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    2. Initial simplification53.9

      \[\leadsto \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \left(t - (\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right)}\]
    3. Using strategy rm
    4. Applied sub-neg53.9

      \[\leadsto \sqrt{\left(2 \cdot \left(U \cdot n\right)\right) \cdot \color{blue}{\left(t + \left(-(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right)\right)}}\]
    5. Applied distribute-rgt-in53.9

      \[\leadsto \sqrt{\color{blue}{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(-(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right))_*\right) \cdot \left(2 \cdot \left(U \cdot n\right)\right)}}\]
    6. Simplified45.9

      \[\leadsto \sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \color{blue}{\left(\left(n \cdot \left(U \cdot -2\right)\right) \cdot \frac{\ell}{Om}\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}}\]
    7. Using strategy rm
    8. Applied add-sqr-sqrt45.9

      \[\leadsto \sqrt{\color{blue}{\sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(\left(n \cdot \left(U \cdot -2\right)\right) \cdot \frac{\ell}{Om}\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*} \cdot \sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(\left(n \cdot \left(U \cdot -2\right)\right) \cdot \frac{\ell}{Om}\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}}}\]
    9. Applied rem-sqrt-square45.9

      \[\leadsto \color{blue}{\left|\sqrt{t \cdot \left(2 \cdot \left(U \cdot n\right)\right) + \left(\left(n \cdot \left(U \cdot -2\right)\right) \cdot \frac{\ell}{Om}\right) \cdot (\left(n \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*}\right|}\]
    10. Simplified43.4

      \[\leadsto \left|\color{blue}{\sqrt{(\left((\left(U - U*\right) \cdot \left(\frac{\ell}{Om} \cdot n\right) + \left(\ell \cdot 2\right))_*\right) \cdot \left(\frac{\left(\ell \cdot n\right) \cdot \left(-2 \cdot U\right)}{Om}\right) + \left(\left(t \cdot U\right) \cdot \left(n \cdot 2\right)\right))_*}}\right|\]
  3. Recombined 3 regimes into one program.
  4. Final simplification24.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 4.920922692120039 \cdot 10^{-149}:\\ \;\;\;\;\left|\sqrt{(\left((\left(\frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot n\right) + \left(2 \cdot \ell\right))_*\right) \cdot \left(\frac{\left(U \cdot -2\right) \cdot \ell}{\frac{Om}{n}}\right) + \left(\left(U \cdot 2\right) \cdot \left(t \cdot n\right)\right))_*}\right|\\ \mathbf{elif}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 9.019480211418147 \cdot 10^{+151}:\\ \;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\left|\sqrt{(\left((\left(U - U*\right) \cdot \left(n \cdot \frac{\ell}{Om}\right) + \left(2 \cdot \ell\right))_*\right) \cdot \left(\frac{\left(\ell \cdot n\right) \cdot \left(U \cdot -2\right)}{Om}\right) + \left(\left(2 \cdot n\right) \cdot \left(U \cdot t\right)\right))_*}\right|\\ \end{array}\]

Reproduce

herbie shell --seed 2018365 +o rules:numerics
(FPCore (n U t l Om U*)
  :name "Toniolo and Linder, Equation (13)"
  (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))

Details

Time bar (total: 28.7s)Debug log

start824.0ms

Algorithm
intervals

setup142.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 29.9b

localize60.0ms

Local error

Found 4 expressions with local error:

16.4b
(sqrt (* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l))))))
14.0b
(fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))
12.0b
(* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))))
0.2b
(* (/ l Om) (/ l Om))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
4 → 73
Calls

4 calls. Slowest were:

5.0ms
(* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))))
4.0ms
(sqrt (* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l))))))
4.0ms
(* (/ l Om) (/ l Om))

series1.9s

Counts
4 → 12
Calls

4 calls. Slowest were:

1.4s
(sqrt (* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l))))))
349.0ms
(* (* 2 (* U n)) (- t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))))
98.0ms
(fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))
23.0ms
(* (/ l Om) (/ l Om))

simplify5.0s

Counts
42 → 85
Calls

42 calls. Slowest were:

890.0ms
(* (* (* (/ l Om) (/ l Om)) (/ l Om)) (* (* (/ l Om) (/ l Om)) (/ l Om)))
536.0ms
(+ (* t t) (+ (* (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l))) (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))) (* t (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l))))))
324.0ms
(* (- (fma (* (/ l Om) (/ l Om)) (* (- U U*) n) (* (/ l Om) (* 2 l)))) (* 2 (* U n)))

prune1.6s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 18.7b

localize52.0ms

Local error

Found 4 expressions with local error:

16.4b
(sqrt (+ (* t (* 2 (* U n))) (* (* (* n (* U -2)) (/ l Om)) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
10.4b
(* (* n (* U -2)) (/ l Om))
8.3b
(fma (* n (- U U*)) (/ l Om) (* 2 l))
6.5b
(* t (* 2 (* U n)))

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

8.0ms
(* (* n (* U -2)) (/ l Om))
5.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* (* n (* U -2)) (/ l Om)) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
5.0ms
(* t (* 2 (* U n)))

series914.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

781.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* (* n (* U -2)) (/ l Om)) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
61.0ms
(fma (* n (- U U*)) (/ l Om) (* 2 l))
41.0ms
(* (* n (* U -2)) (/ l Om))
30.0ms
(* t (* 2 (* U n)))

simplify2.6s

Counts
26 → 68
Calls

26 calls. Slowest were:

306.0ms
(* -2 (/ (* U (* n l)) Om))
302.0ms
(+ (log (* n (* U -2))) (log (/ l Om)))
240.0ms
(* -2 (/ (* U (* n l)) Om))

prune1.5s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 15.2b

localize25.0ms

Local error

Found 4 expressions with local error:

16.4b
(sqrt (+ (* t (* 2 (* U n))) (* (* n (* (* U -2) (/ l Om))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
8.3b
(fma (* n (- U U*)) (/ l Om) (* 2 l))
6.5b
(* t (* 2 (* U n)))
6.1b
(* n (* (* U -2) (/ l Om)))

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
4 → 49
Calls

4 calls. Slowest were:

4.0ms
(* n (* (* U -2) (/ l Om)))
3.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* n (* (* U -2) (/ l Om))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
2.0ms
(* t (* 2 (* U n)))

series947.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

806.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* n (* (* U -2) (/ l Om))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
62.0ms
(fma (* n (- U U*)) (/ l Om) (* 2 l))
48.0ms
(* n (* (* U -2) (/ l Om)))
31.0ms
(* t (* 2 (* U n)))

simplify2.3s

Counts
20 → 61
Calls

20 calls. Slowest were:

297.0ms
(* -2 (/ (* U (* n l)) Om))
263.0ms
(* -2 (/ (* U (* n l)) Om))
257.0ms
(* -2 (/ (* U (* n l)) Om))

prune1.3s

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 15.2b

localize18.0ms

Local error

Found 4 expressions with local error:

17.6b
(cbrt (* n (* (* U -2) (/ l Om))))
17.6b
(cbrt (* n (* (* U -2) (/ l Om))))
17.6b
(cbrt (* n (* (* U -2) (/ l Om))))
16.4b
(sqrt (+ (* t (* 2 (* U n))) (* (* (* (cbrt (* n (* (* U -2) (/ l Om)))) (cbrt (* n (* (* U -2) (/ l Om))))) (cbrt (* n (* (* U -2) (/ l Om))))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
4 → 52
Calls

4 calls. Slowest were:

2.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* (* (cbrt (* n (* (* U -2) (/ l Om)))) (cbrt (* n (* (* U -2) (/ l Om))))) (cbrt (* n (* (* U -2) (/ l Om))))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
2.0ms
(cbrt (* n (* (* U -2) (/ l Om))))
2.0ms
(cbrt (* n (* (* U -2) (/ l Om))))

series1.3s

Counts
4 → 12
Calls

4 calls. Slowest were:

919.0ms
(sqrt (+ (* t (* 2 (* U n))) (* (* (* (cbrt (* n (* (* U -2) (/ l Om)))) (cbrt (* n (* (* U -2) (/ l Om))))) (cbrt (* n (* (* U -2) (/ l Om))))) (fma (* n (- U U*)) (/ l Om) (* 2 l)))))
148.0ms
(cbrt (* n (* (* U -2) (/ l Om))))
137.0ms
(cbrt (* n (* (* U -2) (/ l Om))))
125.0ms
(cbrt (* n (* (* U -2) (/ l Om))))

simplify4.6s

Counts
24 → 64
Calls

24 calls. Slowest were:

477.0ms
(* (cbrt -2) (exp (* 1/3 (- (+ (log l) (+ (log U) (log n))) (log Om)))))
427.0ms
(* (cbrt -2) (exp (* 1/3 (- (log (/ -1 Om)) (+ (log (/ -1 l)) (+ (log (/ -1 n)) (log (/ -1 U))))))))
424.0ms
(* (cbrt -2) (exp (* 1/3 (- (log (/ -1 Om)) (+ (log (/ -1 l)) (+ (log (/ -1 n)) (log (/ -1 U))))))))

prune1.9s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 15.2b

regimes1.6s

Accuracy

36.9% (6.4b remaining)

Error of 24.6b against oracle of 18.2b and baseline of 28.3b

bsearch11.0ms