Average Error: 18.7 → 12.7
Time: 15.7s
Precision: 64
Internal Precision: 128
\[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
\[\begin{array}{l} \mathbf{if}\;V \cdot \ell \le 1.19787663429483 \cdot 10^{-310} \lor \neg \left(V \cdot \ell \le 2.1944054542886264 \cdot 10^{+306}\right):\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V \cdot \ell}} \cdot \sqrt{A}\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 2 regimes
  2. if (* V l) < 1.19787663429483e-310 or 2.1944054542886264e+306 < (* V l)

    1. Initial program 24.4

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Initial simplification20.3

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

    if 1.19787663429483e-310 < (* V l) < 2.1944054542886264e+306

    1. Initial program 9.5

      \[c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}\]
    2. Taylor expanded around inf 9.5

      \[\leadsto c0 \cdot \sqrt{\color{blue}{\frac{A}{\ell \cdot V}}}\]
    3. Using strategy rm
    4. Applied div-inv9.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;V \cdot \ell \le 1.19787663429483 \cdot 10^{-310} \lor \neg \left(V \cdot \ell \le 2.1944054542886264 \cdot 10^{+306}\right):\\ \;\;\;\;\sqrt{\frac{\frac{A}{V}}{\ell}} \cdot c0\\ \mathbf{else}:\\ \;\;\;\;c0 \cdot \left(\sqrt{\frac{1}{V \cdot \ell}} \cdot \sqrt{A}\right)\\ \end{array}\]

Runtime

Time bar (total: 15.7s)Debug logProfile

BaselineHerbieOracleSpan%
Regimes19.112.710.19.070.9%
herbie shell --seed 2018351 +o rules:numerics
(FPCore (c0 A V l)
  :name "Henrywood and Agarwal, Equation (3)"
  (* c0 (sqrt (/ A (* V l)))))