Average Error: 18.6 → 13.9
Time: 9.5s
Precision: 64
Internal Precision: 128
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;\frac{A}{\ell \cdot V} \le 8.6955553668059 \cdot 10^{-322}:\\ \;\;\;\;\sqrt{\frac{A}{V} \cdot \frac{1}{\ell}} \cdot c0\\ \mathbf{elif}\;\frac{A}{\ell \cdot V} \le 3.528095059673412 \cdot 10^{+291}:\\ \;\;\;\;\sqrt{\frac{A}{\frac{\ell}{\frac{1}{V}}}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{\ell}} \cdot \left(\sqrt{\frac{A}{V}} \cdot c0\right)\\ \end{array}\]

Error

Bits error versus c0

Bits error versus A

Bits error versus V

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if (/ A (* V l)) < 8.6955553668059e-322

    1. Initial program 40.8

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied associate-/r*30.0

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}}\]
    4. Using strategy rm
    5. Applied div-inv30.0

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{A}{V} \cdot \frac{1}{\ell}}}\]

    if 8.6955553668059e-322 < (/ A (* V l)) < 3.528095059673412e+291

    1. Initial program 0.7

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied associate-/r*8.2

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}}\]
    4. Using strategy rm
    5. Applied div-inv8.2

      \[\leadsto c0 \cdot \sqrt{\frac{\color{blue}{A \cdot \frac{1}{V}}}{\ell}}\]
    6. Applied associate-/l*0.8

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{A}{\frac{\ell}{\frac{1}{V}}}}}\]

    if 3.528095059673412e+291 < (/ A (* V l))

    1. Initial program 57.3

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied associate-/r*46.0

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}}\]
    4. Using strategy rm
    5. Applied div-inv46.0

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{A}{V} \cdot \frac{1}{\ell}}}\]
    6. Applied sqrt-prod42.6

      \[\leadsto c0 \cdot \color{blue}{\left(\sqrt{\frac{A}{V}} \cdot \sqrt{\frac{1}{\ell}}\right)}\]
    7. Applied associate-*r*42.8

      \[\leadsto \color{blue}{\left(c0 \cdot \sqrt{\frac{A}{V}}\right) \cdot \sqrt{\frac{1}{\ell}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification13.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{A}{\ell \cdot V} \le 8.6955553668059 \cdot 10^{-322}:\\ \;\;\;\;\sqrt{\frac{A}{V} \cdot \frac{1}{\ell}} \cdot c0\\ \mathbf{elif}\;\frac{A}{\ell \cdot V} \le 3.528095059673412 \cdot 10^{+291}:\\ \;\;\;\;\sqrt{\frac{A}{\frac{\ell}{\frac{1}{V}}}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\frac{1}{\ell}} \cdot \left(\sqrt{\frac{A}{V}} \cdot c0\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019002 +o rules:numerics
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  (* c0 (sqrt (/ A (* V l)))))

Details

Time bar (total: 8.1s)Debug log

sample78.0ms

Algorithm
intervals

simplify3.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

3.0ms
(* c0 (sqrt (/ A (* V l))))

prune6.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 20.9b

localize14.0ms

Local error

Found 3 expressions with local error:

17.8b
(sqrt (/ A (* V l)))
4.1b
(/ A (* V l))
1.1b
(* c0 (sqrt (/ A (* V l))))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
3 → 47
Calls

3 calls. Slowest were:

3.0ms
(* c0 (sqrt (/ A (* V l))))
2.0ms
(sqrt (/ A (* V l)))
1.0ms
(/ A (* V l))

series117.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

60.0ms
(* c0 (sqrt (/ A (* V l))))
34.0ms
(sqrt (/ A (* V l)))
23.0ms
(/ A (* V l))

simplify78.0ms

Counts
23 → 56
Calls

23 calls. Slowest were:

6.0ms
(sqrt (* (cbrt (/ A (* V l))) (cbrt (/ A (* V l)))))
5.0ms
(sqrt (/ A (* V l)))
5.0ms
(sqrt (sqrt (/ A (* V l))))

prune709.0ms

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 12.3b

localize3.0ms

Local error

Found 3 expressions with local error:

17.8b
(sqrt (/ A (* V l)))
4.1b
(/ A (* V l))
1.1b
(* (sqrt (/ A (* V l))) c0)

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
3 → 47
Calls

3 calls. Slowest were:

7.0ms
(* (sqrt (/ A (* V l))) c0)
1.0ms
(sqrt (/ A (* V l)))
0.0ms
(/ A (* V l))

series103.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

66.0ms
(* (sqrt (/ A (* V l))) c0)
20.0ms
(sqrt (/ A (* V l)))
17.0ms
(/ A (* V l))

simplify38.0ms

Counts
22 → 56
Calls

22 calls. Slowest were:

4.0ms
(/ A (* l V))
4.0ms
(sqrt (sqrt (/ A (* V l))))
3.0ms
(/ A (* l V))

prune577.0ms

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 12.3b

localize10.0ms

Local error

Found 3 expressions with local error:

17.8b
(sqrt (/ (/ A V) l))
5.0b
(/ (/ A V) l)
1.1b
(* c0 (sqrt (/ (/ A V) l)))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
3 → 51
Calls

3 calls. Slowest were:

2.0ms
(/ (/ A V) l)
2.0ms
(* c0 (sqrt (/ (/ A V) l)))
1.0ms
(sqrt (/ (/ A V) l))

series87.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

55.0ms
(* c0 (sqrt (/ (/ A V) l)))
19.0ms
(sqrt (/ (/ A V) l))
13.0ms
(/ (/ A V) l)

simplify73.0ms

Counts
25 → 60
Calls

25 calls. Slowest were:

10.0ms
(sqrt (* (cbrt (/ (/ A V) l)) (cbrt (/ (/ A V) l))))
8.0ms
(sqrt (sqrt (/ (/ A V) l)))
8.0ms
(sqrt (/ (/ A V) l))

prune706.0ms

Pruning

13 alts after pruning (12 fresh and 1 done)

Merged error: 8.5b

localize27.0ms

Local error

Found 4 expressions with local error:

17.8b
(sqrt (/ A (/ l (/ 1 V))))
4.1b
(/ A (/ l (/ 1 V)))
1.1b
(* c0 (sqrt (/ A (/ l (/ 1 V)))))
0.3b
(/ l (/ 1 V))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
4 → 71
Calls

4 calls. Slowest were:

3.0ms
(* c0 (sqrt (/ A (/ l (/ 1 V)))))
1.0ms
(sqrt (/ A (/ l (/ 1 V))))
1.0ms
(/ A (/ l (/ 1 V)))

series129.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

60.0ms
(* c0 (sqrt (/ A (/ l (/ 1 V)))))
34.0ms
(sqrt (/ A (/ l (/ 1 V))))
22.0ms
(/ A (/ l (/ 1 V)))
14.0ms
(/ l (/ 1 V))

simplify504.0ms

Counts
37 → 83
Calls

37 calls. Slowest were:

61.0ms
(cbrt (sqrt (/ A (/ l (/ 1 V)))))
58.0ms
(sqrt (/ A (/ l (/ 1 V))))
56.0ms
(sqrt (* (cbrt (/ A (/ l (/ 1 V)))) (cbrt (/ A (/ l (/ 1 V))))))

prune900.0ms

Pruning

12 alts after pruning (11 fresh and 1 done)

Merged error: 5.7b

regimes983.0ms

Accuracy

35.3% (8.7b remaining)

Error of 13.9b against oracle of 5.3b and baseline of 18.6b

bsearch4.0ms

end0.0ms

sample2.9s

Algorithm
intervals