Average Error: 45.7 → 0.1
Time: 2.3m
Precision: 64
Internal Precision: 384
\[\frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1.0} \le 0.06250000000347093:\\ \;\;\;\;\frac{i \cdot \frac{i}{4}}{\left(4 \cdot i\right) \cdot i - 1.0}\\ \mathbf{else}:\\ \;\;\;\;e^{\log \left(\frac{\frac{i}{4}}{4 \cdot i - \frac{1.0}{i}}\right)}\\ \end{array}\]

Error

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if (/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1.0)) < 0.06250000000347093

    1. Initial program 20.1

      \[\frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1.0}\]
    2. Applied simplify0.0

      \[\leadsto \color{blue}{\frac{i \cdot \frac{i}{4}}{\left(4 \cdot i\right) \cdot i - 1.0}}\]

    if 0.06250000000347093 < (/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1.0))

    1. Initial program 61.5

      \[\frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1.0}\]
    2. Applied simplify25.3

      \[\leadsto \color{blue}{\frac{i \cdot \frac{i}{4}}{\left(4 \cdot i\right) \cdot i - 1.0}}\]
    3. Using strategy rm
    4. Applied add-exp-log25.3

      \[\leadsto \color{blue}{e^{\log \left(\frac{i \cdot \frac{i}{4}}{\left(4 \cdot i\right) \cdot i - 1.0}\right)}}\]
    5. Applied simplify0.1

      \[\leadsto e^{\color{blue}{\log \left(\frac{\frac{i}{4}}{4 \cdot i - \frac{1.0}{i}}\right)}}\]
  3. Recombined 2 regimes into one program.

Runtime

Time bar (total: 2.3m)Debug logProfile

herbie shell --seed '#(1070991898 1055468627 4280279443 640792587 928206309 3646738750)' 
(FPCore (i)
  :name "Octave 3.8, jcobi/4, as called"
  :pre (and (> i 0))
  (/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1.0)))