Average Error: 18.8 → 12.1
Time: 9.6s
Precision: 64
Internal Precision: 128
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le -4.0535736734388494 \cdot 10^{+269}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\ell} \cdot \frac{A}{V}}\\ \mathbf{elif}\;V \cdot \ell \le -2.1321935225071826 \cdot 10^{-126}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{V \cdot \ell} \cdot A}\\ \mathbf{elif}\;V \cdot \ell \le 6.544003844490601 \cdot 10^{-268} \lor \neg \left(V \cdot \ell \le 1.122723686449294 \cdot 10^{+265}\right):\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\ell} \cdot \frac{A}{V}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{A} \cdot c0}{\sqrt{V \cdot \ell}}\\ \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 (* V l) < -4.0535736734388494e+269 or -2.1321935225071826e-126 < (* V l) < 6.544003844490601e-268 or 1.122723686449294e+265 < (* V l)

    1. Initial program 36.6

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

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

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

    if -4.0535736734388494e+269 < (* V l) < -2.1321935225071826e-126

    1. Initial program 7.9

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied div-inv7.9

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

    if 6.544003844490601e-268 < (* V l) < 1.122723686449294e+265

    1. Initial program 9.0

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Using strategy rm
    3. Applied sqrt-div0.4

      \[\leadsto c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}\]
    4. Applied associate-*r/2.8

      \[\leadsto \color{blue}{\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification12.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le -4.0535736734388494 \cdot 10^{+269}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\ell} \cdot \frac{A}{V}}\\ \mathbf{elif}\;V \cdot \ell \le -2.1321935225071826 \cdot 10^{-126}:\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{V \cdot \ell} \cdot A}\\ \mathbf{elif}\;V \cdot \ell \le 6.544003844490601 \cdot 10^{-268} \lor \neg \left(V \cdot \ell \le 1.122723686449294 \cdot 10^{+265}\right):\\ \;\;\;\;c0 \cdot \sqrt{\frac{1}{\ell} \cdot \frac{A}{V}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{A} \cdot c0}{\sqrt{V \cdot \ell}}\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 8.0s)Debug log

sample99.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: 22.5b

localize39.0ms

Local error

Found 3 expressions with local error:

18.0b
(sqrt (/ A (* V l)))
5.4b
(/ A (* V l))
1.9b
(* c0 (sqrt (/ A (* V l))))

rewrite6.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))

series65.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

32.0ms
(* c0 (sqrt (/ A (* V l))))
20.0ms
(sqrt (/ A (* V l)))
13.0ms
(/ A (* V l))

simplify331.0ms

Counts
23 → 56
Calls

23 calls. Slowest were:

286.0ms
(sqrt (sqrt (/ A (* V l))))
6.0ms
(sqrt (/ 1 (* V l)))
5.0ms
(sqrt (sqrt (/ A (* V l))))

prune417.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 13.1b

localize10.0ms

Local error

Found 3 expressions with local error:

18.0b
(sqrt (/ (/ A V) l))
5.2b
(/ (/ A V) l)
1.9b
(* c0 (sqrt (/ (/ A V) l)))

rewrite6.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))

series94.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

51.0ms
(* c0 (sqrt (/ (/ A V) l)))
23.0ms
(/ (/ A V) l)
20.0ms
(sqrt (/ (/ A V) l))

simplify92.0ms

Counts
25 → 60
Calls

25 calls. Slowest were:

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

prune659.0ms

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 8.9b

localize10.0ms

Local error

Found 3 expressions with local error:

18.0b
(sqrt (* (/ A V) (/ 1 l)))
5.2b
(* (/ A V) (/ 1 l))
1.9b
(* c0 (sqrt (* (/ A V) (/ 1 l))))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
3 → 58
Calls

3 calls. Slowest were:

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

series70.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

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

simplify409.0ms

Counts
34 → 67
Calls

34 calls. Slowest were:

220.0ms
(* (* (* (/ A V) (/ A V)) (/ A V)) (* (* (/ 1 l) (/ 1 l)) (/ 1 l)))
44.0ms
(cbrt (sqrt (* (/ A V) (/ 1 l))))
35.0ms
(+ (log (/ A V)) (log (/ 1 l)))

prune473.0ms

Pruning

14 alts after pruning (13 fresh and 1 done)

Merged error: 7.0b

localize8.0ms

Local error

Found 4 expressions with local error:

18.0b
(sqrt (* (/ A V) (/ 1 l)))
18.0b
(sqrt (* (/ A V) (/ 1 l)))
5.2b
(* (/ A V) (/ 1 l))
5.2b
(* (/ A V) (/ 1 l))

rewrite13.0ms

Algorithm
rewrite-expression-head
Counts
4 → 80
Calls

4 calls. Slowest were:

6.0ms
(* (/ A V) (/ 1 l))
3.0ms
(* (/ A V) (/ 1 l))
2.0ms
(sqrt (* (/ A V) (/ 1 l)))

series65.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

20.0ms
(sqrt (* (/ A V) (/ 1 l)))
19.0ms
(sqrt (* (/ A V) (/ 1 l)))
13.0ms
(* (/ A V) (/ 1 l))
13.0ms
(* (/ A V) (/ 1 l))

simplify579.0ms

Counts
46 → 92
Calls

46 calls. Slowest were:

190.0ms
(* (* (* (/ A V) (/ A V)) (/ A V)) (* (* (/ 1 l) (/ 1 l)) (/ 1 l)))
188.0ms
(* (* (* (/ A V) (/ A V)) (/ A V)) (* (* (/ 1 l) (/ 1 l)) (/ 1 l)))
34.0ms
(+ (log (/ A V)) (log (/ 1 l)))

prune1.1s

Pruning

14 alts after pruning (12 fresh and 2 done)

Merged error: 7.0b

regimes624.0ms

Accuracy

50.1% (6.7b remaining)

Error of 12.1b against oracle of 5.4b and baseline of 18.8b

bsearch9.0ms

end0.0ms

sample2.8s

Algorithm
intervals