Average Error: 0.1 → 0.1
Time: 8.3s
Precision: 64
\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)\]
\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\mathsf{fma}\left(a, 9, 9 \cdot \frac{-\frac{1}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + 9 \cdot \left(\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\left(-\frac{1}{\sqrt[3]{3}}\right) + \frac{1}{\sqrt[3]{3}}\right)\right)}} \cdot rand\right)\]
\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)
\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\mathsf{fma}\left(a, 9, 9 \cdot \frac{-\frac{1}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + 9 \cdot \left(\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\left(-\frac{1}{\sqrt[3]{3}}\right) + \frac{1}{\sqrt[3]{3}}\right)\right)}} \cdot rand\right)
double f(double a, double rand) {
        double r138805 = a;
        double r138806 = 1.0;
        double r138807 = 3.0;
        double r138808 = r138806 / r138807;
        double r138809 = r138805 - r138808;
        double r138810 = 9.0;
        double r138811 = r138810 * r138809;
        double r138812 = sqrt(r138811);
        double r138813 = r138806 / r138812;
        double r138814 = rand;
        double r138815 = r138813 * r138814;
        double r138816 = r138806 + r138815;
        double r138817 = r138809 * r138816;
        return r138817;
}

double f(double a, double rand) {
        double r138818 = a;
        double r138819 = 1.0;
        double r138820 = 3.0;
        double r138821 = r138819 / r138820;
        double r138822 = r138818 - r138821;
        double r138823 = 9.0;
        double r138824 = cbrt(r138820);
        double r138825 = r138819 / r138824;
        double r138826 = -r138825;
        double r138827 = r138824 * r138824;
        double r138828 = r138826 / r138827;
        double r138829 = r138823 * r138828;
        double r138830 = fma(r138818, r138823, r138829);
        double r138831 = 1.0;
        double r138832 = r138831 / r138827;
        double r138833 = r138826 + r138825;
        double r138834 = r138832 * r138833;
        double r138835 = r138823 * r138834;
        double r138836 = r138830 + r138835;
        double r138837 = sqrt(r138836);
        double r138838 = r138819 / r138837;
        double r138839 = rand;
        double r138840 = r138838 * r138839;
        double r138841 = r138819 + r138840;
        double r138842 = r138822 * r138841;
        return r138842;
}

Error

Bits error versus a

Bits error versus rand

Derivation

  1. Initial program 0.1

    \[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{\color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}}\right)}} \cdot rand\right)\]
  4. Applied add-sqr-sqrt0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}\right)}} \cdot rand\right)\]
  5. Applied times-frac0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \color{blue}{\frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3}}}\right)}} \cdot rand\right)\]
  6. Applied add-sqr-sqrt0.2

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(\color{blue}{\sqrt{a} \cdot \sqrt{a}} - \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3}}\right)}} \cdot rand\right)\]
  7. Applied prod-diff0.2

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt{a}, \sqrt{a}, -\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + \mathsf{fma}\left(-\frac{\sqrt{1}}{\sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)\right)}}} \cdot rand\right)\]
  8. Applied distribute-lft-in0.2

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\color{blue}{9 \cdot \mathsf{fma}\left(\sqrt{a}, \sqrt{a}, -\frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + 9 \cdot \mathsf{fma}\left(-\frac{\sqrt{1}}{\sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)}}} \cdot rand\right)\]
  9. Simplified0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\color{blue}{\mathsf{fma}\left(a, 9, 9 \cdot \frac{-\frac{1}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)} + 9 \cdot \mathsf{fma}\left(-\frac{\sqrt{1}}{\sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}, \frac{\sqrt{1}}{\sqrt[3]{3}} \cdot \frac{\sqrt{1}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)}} \cdot rand\right)\]
  10. Simplified0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\mathsf{fma}\left(a, 9, 9 \cdot \frac{-\frac{1}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + \color{blue}{9 \cdot \left(\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\left(-\frac{1}{\sqrt[3]{3}}\right) + \frac{1}{\sqrt[3]{3}}\right)\right)}}} \cdot rand\right)\]
  11. Final simplification0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{\mathsf{fma}\left(a, 9, 9 \cdot \frac{-\frac{1}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right) + 9 \cdot \left(\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \left(\left(-\frac{1}{\sqrt[3]{3}}\right) + \frac{1}{\sqrt[3]{3}}\right)\right)}} \cdot rand\right)\]

Reproduce

herbie shell --seed 2019362 +o rules:numerics
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  :precision binary64
  (* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))