Average Error: 13.3 → 8.1
Time: 45.7s
Precision: 64
Internal Precision: 128
\[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
\[\begin{array}{l} \mathbf{if}\;\frac{M \cdot D}{2 \cdot d} \le -1.0301112861049044 \cdot 10^{+93}:\\ \;\;\;\;\sqrt{1 - \frac{\frac{M}{2} \cdot \frac{D}{d}}{\frac{\frac{\ell}{h}}{\frac{M}{2} \cdot \frac{D}{d}}}} \cdot w0\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 1.6479509164934052 \cdot 10^{+123}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{\frac{M \cdot D}{2 \cdot d}}} \cdot \left(\frac{h}{2 \cdot d} \cdot \left(M \cdot D\right)\right)}\\ \end{array}\]

Error

Bits error versus w0

Bits error versus M

Bits error versus D

Bits error versus h

Bits error versus l

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if (/ (* M D) (* 2 d)) < -1.0301112861049044e+93

    1. Initial program 48.2

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Initial simplification48.3

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\frac{\ell}{h}}} \cdot w0\]
    3. Using strategy rm
    4. Applied div-inv48.3

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\color{blue}{\ell \cdot \frac{1}{h}}}} \cdot w0\]
    5. Applied associate-/r*50.1

      \[\leadsto \sqrt{1 - \color{blue}{\frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}}} \cdot w0\]
    6. Using strategy rm
    7. Applied div-inv50.1

      \[\leadsto \sqrt{1 - \frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\color{blue}{1 \cdot \frac{1}{h}}}} \cdot w0\]
    8. Applied *-un-lft-identity50.1

      \[\leadsto \sqrt{1 - \frac{\color{blue}{1 \cdot \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}}{1 \cdot \frac{1}{h}}} \cdot w0\]
    9. Applied times-frac50.1

      \[\leadsto \sqrt{1 - \color{blue}{\frac{1}{1} \cdot \frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}}} \cdot w0\]
    10. Simplified50.1

      \[\leadsto \sqrt{1 - \color{blue}{1} \cdot \frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}} \cdot w0\]
    11. Simplified39.3

      \[\leadsto \sqrt{1 - 1 \cdot \color{blue}{\frac{\frac{M}{2} \cdot \frac{D}{d}}{\frac{\frac{\ell}{h}}{\frac{M}{2} \cdot \frac{D}{d}}}}} \cdot w0\]

    if -1.0301112861049044e+93 < (/ (* M D) (* 2 d)) < 1.6479509164934052e+123

    1. Initial program 6.5

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Initial simplification6.0

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\frac{\ell}{h}}} \cdot w0\]
    3. Using strategy rm
    4. Applied div-inv6.0

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\color{blue}{\ell \cdot \frac{1}{h}}}} \cdot w0\]
    5. Applied associate-/r*2.2

      \[\leadsto \sqrt{1 - \color{blue}{\frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}}} \cdot w0\]

    if 1.6479509164934052e+123 < (/ (* M D) (* 2 d))

    1. Initial program 53.8

      \[w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}\]
    2. Initial simplification53.8

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\frac{\ell}{h}}} \cdot w0\]
    3. Using strategy rm
    4. Applied div-inv53.8

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\color{blue}{\ell \cdot \frac{1}{h}}}} \cdot w0\]
    5. Applied times-frac41.7

      \[\leadsto \sqrt{1 - \color{blue}{\frac{\frac{M \cdot D}{2 \cdot d}}{\ell} \cdot \frac{\frac{M \cdot D}{2 \cdot d}}{\frac{1}{h}}}} \cdot w0\]
    6. Simplified42.2

      \[\leadsto \sqrt{1 - \frac{\frac{M \cdot D}{2 \cdot d}}{\ell} \cdot \color{blue}{\left(\frac{h}{2 \cdot d} \cdot \left(M \cdot D\right)\right)}} \cdot w0\]
    7. Using strategy rm
    8. Applied *-un-lft-identity42.2

      \[\leadsto \sqrt{1 - \frac{\color{blue}{1 \cdot \frac{M \cdot D}{2 \cdot d}}}{\ell} \cdot \left(\frac{h}{2 \cdot d} \cdot \left(M \cdot D\right)\right)} \cdot w0\]
    9. Applied associate-/l*42.2

      \[\leadsto \sqrt{1 - \color{blue}{\frac{1}{\frac{\ell}{\frac{M \cdot D}{2 \cdot d}}}} \cdot \left(\frac{h}{2 \cdot d} \cdot \left(M \cdot D\right)\right)} \cdot w0\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{M \cdot D}{2 \cdot d} \le -1.0301112861049044 \cdot 10^{+93}:\\ \;\;\;\;\sqrt{1 - \frac{\frac{M}{2} \cdot \frac{D}{d}}{\frac{\frac{\ell}{h}}{\frac{M}{2} \cdot \frac{D}{d}}}} \cdot w0\\ \mathbf{elif}\;\frac{M \cdot D}{2 \cdot d} \le 1.6479509164934052 \cdot 10^{+123}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{\frac{\frac{M \cdot D}{2 \cdot d} \cdot \frac{M \cdot D}{2 \cdot d}}{\ell}}{\frac{1}{h}}}\\ \mathbf{else}:\\ \;\;\;\;w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{\frac{M \cdot D}{2 \cdot d}}} \cdot \left(\frac{h}{2 \cdot d} \cdot \left(M \cdot D\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2018360 
(FPCore (w0 M D h l d)
  :name "Henrywood and Agarwal, Equation (9a)"
  (* w0 (sqrt (- 1 (* (pow (/ (* M D) (* 2 d)) 2) (/ h l))))))

Details

Time bar (total: 38.3s)Debug log

start230.0ms

Algorithm
intervals

setup147.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 13.7b

localize27.0ms

Local error

Found 4 expressions with local error:

12.2b
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ l h))
6.9b
(/ (* M D) (* 2 d))
6.9b
(/ (* M D) (* 2 d))
3.8b
(sqrt (- 1 (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ l h))))

rewrite40.0ms

Algorithm
rewrite-expression-head
Counts
4 → 77
Calls

4 calls. Slowest were:

18.0ms
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ l h))
13.0ms
(/ (* M D) (* 2 d))
5.0ms
(/ (* M D) (* 2 d))

series253.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

129.0ms
(sqrt (- 1 (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ l h))))
81.0ms
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ l h))
26.0ms
(/ (* M D) (* 2 d))
17.0ms
(/ (* M D) (* 2 d))

simplify10.1s

Counts
52 → 89
Calls

52 calls. Slowest were:

1.3s
(/ (* (* (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ (* M D) (* 2 d))) (/ (* (* (* M D) (* M D)) (* M D)) (* (* (* 2 d) (* 2 d)) (* 2 d)))) (* (* (/ l h) (/ l h)) (/ l h)))
943.0ms
(/ (* (/ (* (* (* M D) (* M D)) (* M D)) (* (* (* 2 d) (* 2 d)) (* 2 d))) (* (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) (/ (* M D) (* 2 d)))) (* (* (/ l h) (/ l h)) (/ l h)))
809.0ms
(/ (* (/ (* (* (* M D) (* M D)) (* M D)) (* (* (* 2 d) (* 2 d)) (* 2 d))) (/ (* (* (* M D) (* M D)) (* M D)) (* (* (* 2 d) (* 2 d)) (* 2 d)))) (* (* (/ l h) (/ l h)) (/ l h)))

prune1.7s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 8.0b

localize20.0ms

Local error

Found 4 expressions with local error:

6.9b
(/ (* M D) (* 2 d))
6.9b
(/ (* M D) (* 2 d))
6.1b
(/ (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l) (/ 1 h))
5.6b
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l)

rewrite36.0ms

Algorithm
rewrite-expression-head
Counts
4 → 82
Calls

4 calls. Slowest were:

17.0ms
(/ (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l) (/ 1 h))
9.0ms
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l)
5.0ms
(/ (* M D) (* 2 d))

series211.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

101.0ms
(/ (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l) (/ 1 h))
64.0ms
(/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l)
30.0ms
(/ (* M D) (* 2 d))
17.0ms
(/ (* M D) (* 2 d))

simplify6.2s

Counts
66 → 94
Calls

66 calls. Slowest were:

714.0ms
(* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d)))
647.0ms
(* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d)))
251.0ms
(/ (* (* (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l) (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l)) (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l)) (* (* (/ 1 h) (/ 1 h)) (/ 1 h)))

prune1.8s

Pruning

7 alts after pruning (5 fresh and 2 done)

Merged error: 7.3b

localize48.0ms

Local error

Found 4 expressions with local error:

31.2b
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
31.2b
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
31.2b
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
6.9b
(/ (* M D) (* 2 d))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 54
Calls

4 calls. Slowest were:

3.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
3.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
3.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))

series565.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

185.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
182.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
180.0ms
(cbrt (/ (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))) l))
18.0ms
(/ (* M D) (* 2 d))

simplify7.7s

Counts
31 → 66
Calls

31 calls. Slowest were:

1.0s
(cbrt (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))))
671.0ms
(cbrt (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))))
660.0ms
(cbrt (* (/ (* M D) (* 2 d)) (/ (* M D) (* 2 d))))

prune1.8s

Pruning

7 alts after pruning (4 fresh and 3 done)

Merged error: 7.3b

localize36.0ms

Local error

Found 4 expressions with local error:

9.1b
(* (/ h (* 2 d)) (* M D))
6.9b
(/ (* M D) (* 2 d))
3.8b
(/ (/ (* M D) (* 2 d)) l)
3.8b
(sqrt (- 1 (* (/ (/ (* M D) (* 2 d)) l) (* (/ h (* 2 d)) (* M D)))))

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
4 → 62
Calls

4 calls. Slowest were:

9.0ms
(/ (/ (* M D) (* 2 d)) l)
7.0ms
(* (/ h (* 2 d)) (* M D))
5.0ms
(/ (* M D) (* 2 d))

series274.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

154.0ms
(sqrt (- 1 (* (/ (/ (* M D) (* 2 d)) l) (* (/ h (* 2 d)) (* M D)))))
60.0ms
(/ (/ (* M D) (* 2 d)) l)
34.0ms
(* (/ h (* 2 d)) (* M D))
26.0ms
(/ (* M D) (* 2 d))

simplify4.6s

Counts
33 → 74
Calls

33 calls. Slowest were:

487.0ms
(* 1/2 (/ (* M D) (* l d)))
480.0ms
(+ (log (/ h (* 2 d))) (log (* M D)))
404.0ms
(* 1/2 (/ (* M D) (* l d)))

prune1.2s

Pruning

8 alts after pruning (6 fresh and 2 done)

Merged error: 7.1b

regimes1.2s

Accuracy

51.7% (1.6b remaining)

Error of 8.1b against oracle of 6.4b and baseline of 9.8b

bsearch7.0ms