Average Error: 25.7 → 22.1
Time: 1.5m
Precision: 64
Internal Precision: 128
\[\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
\[\begin{array}{l} \mathbf{if}\;d \le 1.531730286834337 \cdot 10^{-309}:\\ \;\;\;\;\left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot {\left(\frac{d}{h}\right)}^{\frac{1}{2}}\right) \cdot \left(1 - \frac{\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}}{\frac{\ell}{h}}\right)\\ \mathbf{elif}\;d \le 1.4093854383116356 \cdot 10^{+34}:\\ \;\;\;\;\left({\left(\frac{d}{h}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{\ell}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\\ \mathbf{elif}\;d \le 1.3648070140712452 \cdot 10^{+124}:\\ \;\;\;\;\left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right)}{\ell}\right) \cdot \left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{h}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left({\left(\frac{d}{h}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{\ell}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right) \cdot \left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right)}{\ell}\right)\\ \end{array}\]

Error

Bits error versus d

Bits error versus h

Bits error versus l

Bits error versus M

Bits error versus D

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 4 regimes
  2. if d < 1.531730286834337e-309

    1. Initial program 26.0

      \[\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    2. Using strategy rm
    3. Applied associate-*r/25.2

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \color{blue}{\frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}}\right)\]
    4. Using strategy rm
    5. Applied associate-/l*25.9

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \color{blue}{\frac{\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}}{\frac{\ell}{h}}}\right)\]

    if 1.531730286834337e-309 < d < 1.4093854383116356e+34

    1. Initial program 28.0

      \[\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    2. Using strategy rm
    3. Applied div-inv28.0

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\color{blue}{\left(d \cdot \frac{1}{\ell}\right)}}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    4. Applied unpow-prod-down22.6

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot \color{blue}{\left({d}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    5. Simplified22.6

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot \left(\color{blue}{\sqrt{d}} \cdot {\left(\frac{1}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right)\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]

    if 1.4093854383116356e+34 < d < 1.3648070140712452e+124

    1. Initial program 18.6

      \[\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    2. Using strategy rm
    3. Applied associate-*r/16.4

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \color{blue}{\frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}}\right)\]
    4. Using strategy rm
    5. Applied div-inv16.4

      \[\leadsto \left({\color{blue}{\left(d \cdot \frac{1}{h}\right)}}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)\]
    6. Applied unpow-prod-down8.9

      \[\leadsto \left(\color{blue}{\left({d}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{h}\right)}^{\left(\frac{1}{2}\right)}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)\]
    7. Simplified8.9

      \[\leadsto \left(\left(\color{blue}{\sqrt{d}} \cdot {\left(\frac{1}{h}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)\]

    if 1.3648070140712452e+124 < d

    1. Initial program 24.9

      \[\left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\]
    2. Using strategy rm
    3. Applied associate-*r/24.6

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{d}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \color{blue}{\frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}}\right)\]
    4. Using strategy rm
    5. Applied div-inv24.6

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot {\color{blue}{\left(d \cdot \frac{1}{\ell}\right)}}^{\left(\frac{1}{2}\right)}\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)\]
    6. Applied unpow-prod-down16.4

      \[\leadsto \left({\left(\frac{d}{h}\right)}^{\left(\frac{1}{2}\right)} \cdot \color{blue}{\left({d}^{\left(\frac{1}{2}\right)} \cdot {\left(\frac{1}{\ell}\right)}^{\left(\frac{1}{2}\right)}\right)}\right) \cdot \left(1 - \frac{\left(\frac{1}{2} \cdot {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2}\right) \cdot h}{\ell}\right)\]
    7. Simplified16.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;d \le 1.531730286834337 \cdot 10^{-309}:\\ \;\;\;\;\left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot {\left(\frac{d}{h}\right)}^{\frac{1}{2}}\right) \cdot \left(1 - \frac{\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}}{\frac{\ell}{h}}\right)\\ \mathbf{elif}\;d \le 1.4093854383116356 \cdot 10^{+34}:\\ \;\;\;\;\left({\left(\frac{d}{h}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{\ell}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right) \cdot \left(1 - \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right) \cdot \frac{h}{\ell}\right)\\ \mathbf{elif}\;d \le 1.3648070140712452 \cdot 10^{+124}:\\ \;\;\;\;\left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right)}{\ell}\right) \cdot \left({\left(\frac{d}{\ell}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{h}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left({\left(\frac{d}{h}\right)}^{\frac{1}{2}} \cdot \left({\left(\frac{1}{\ell}\right)}^{\frac{1}{2}} \cdot \sqrt{d}\right)\right) \cdot \left(1 - \frac{h \cdot \left(\frac{1}{2} \cdot {\left(\frac{D \cdot M}{d \cdot 2}\right)}^{2}\right)}{\ell}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2018360 +o rules:numerics
(FPCore (d h l M D)
  :name "Henrywood and Agarwal, Equation (12)"
  (* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l)))))

Details

Time bar (total: 44.6s)Debug log

start1.6s

Algorithm
intervals

setup231.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 25.3b

localize107.0ms

Local error

Found 4 expressions with local error:

15.4b
(pow (/ d l) (/ 1 2))
15.3b
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))
7.8b
(pow (/ d h) (/ 1 2))
6.1b
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))))

rewrite61.0ms

Algorithm
rewrite-expression-head
Counts
4 → 99
Calls

4 calls. Slowest were:

30.0ms
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))))
23.0ms
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))
3.0ms
(pow (/ d l) (/ 1 2))

series506.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

234.0ms
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))))
99.0ms
(pow (/ d h) (/ 1 2))
88.0ms
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ h l))
85.0ms
(pow (/ d l) (/ 1 2))

simplify8.1s

Counts
71 → 111
Calls

71 calls. Slowest were:

570.0ms
(* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h)
477.0ms
(+ (+ (log (/ 1 2)) (log (pow (/ (* M D) (* 2 d)) 2))) (log (/ h l)))
430.0ms
(exp (* 1/2 (- (log (/ -1 l)) (log (/ -1 d)))))

prune2.5s

Pruning

19 alts after pruning (19 fresh and 0 done)

Merged error: 16.8b

localize24.0ms

Local error

Found 4 expressions with local error:

15.4b
(pow (/ d l) (/ 1 2))
8.6b
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)
7.8b
(pow (/ d h) (/ 1 2))
6.9b
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h)

rewrite54.0ms

Algorithm
rewrite-expression-head
Counts
4 → 66
Calls

4 calls. Slowest were:

24.0ms
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h)
23.0ms
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)
3.0ms
(pow (/ d l) (/ 1 2))

series321.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

100.0ms
(pow (/ d h) (/ 1 2))
82.0ms
(* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h)
76.0ms
(pow (/ d l) (/ 1 2))
64.0ms
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)

simplify4.7s

Counts
36 → 78
Calls

36 calls. Slowest were:

802.0ms
(* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2))
627.0ms
(* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h)
627.0ms
(* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h)

prune1.7s

Pruning

20 alts after pruning (20 fresh and 0 done)

Merged error: 15.8b

localize24.0ms

Local error

Found 4 expressions with local error:

15.6b
(/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))
15.4b
(pow (/ d l) (/ 1 2))
7.8b
(pow (/ d h) (/ 1 2))
6.1b
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))))

rewrite60.0ms

Algorithm
rewrite-expression-head
Counts
4 → 103
Calls

4 calls. Slowest were:

36.0ms
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))))
16.0ms
(/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))
3.0ms
(pow (/ d h) (/ 1 2))

series499.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

245.0ms
(* (* (pow (/ d h) (/ 1 2)) (pow (/ d l) (/ 1 2))) (- 1 (/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))))
99.0ms
(/ (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) (/ l h))
78.0ms
(pow (/ d l) (/ 1 2))
77.0ms
(pow (/ d h) (/ 1 2))

simplify9.9s

Counts
76 → 115
Calls

76 calls. Slowest were:

898.0ms
(- (+ (log (/ 1 2)) (log (pow (/ (* M D) (* 2 d)) 2))) (log (/ l h)))
891.0ms
(/ (pow (/ (* M D) (* 2 d)) 2) (/ 1 h))
556.0ms
(/ (pow (/ (* M D) (* 2 d)) 2) (/ l h))

prune2.6s

Pruning

20 alts after pruning (19 fresh and 1 done)

Merged error: 15.8b

localize12.0ms

Local error

Found 4 expressions with local error:

15.4b
(pow (/ d l) (/ 1 2))
8.6b
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)
7.8b
(pow (/ d h) (/ 1 2))
7.8b
(pow (/ d h) (/ 1 2))

rewrite27.0ms

Algorithm
rewrite-expression-head
Counts
4 → 74
Calls

4 calls. Slowest were:

19.0ms
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)
3.0ms
(pow (/ d h) (/ 1 2))
3.0ms
(pow (/ d h) (/ 1 2))

series310.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

96.0ms
(pow (/ d h) (/ 1 2))
87.0ms
(pow (/ d h) (/ 1 2))
72.0ms
(pow (/ d l) (/ 1 2))
55.0ms
(/ (* (* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2)) h) l)

simplify3.6s

Counts
44 → 86
Calls

44 calls. Slowest were:

719.0ms
(* (/ 1 2) (pow (/ (* M D) (* 2 d)) 2))
561.0ms
(* (* 1 (pow (/ (* M D) (* 2 d)) 2)) h)
451.0ms
(exp (* 1/2 (- (log (/ -1 h)) (log (/ -1 d)))))

prune1.9s

Pruning

20 alts after pruning (19 fresh and 1 done)

Merged error: 15.8b

regimes2.1s

Accuracy

34.8% (6.4b remaining)

Error of 22.1b against oracle of 15.7b and baseline of 25.6b

bsearch3.5s