Average Error: 0.1 → 0.1
Time: 22.6s
Precision: 64
\[\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
\[\left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left({\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\frac{-1}{2}} \cdot a\right) + \left(-\frac{1.0}{3.0}\right) \cdot \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}\right)\]
\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)
\left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left({\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\frac{-1}{2}} \cdot a\right) + \left(-\frac{1.0}{3.0}\right) \cdot \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}\right)
double f(double a, double rand) {
        double r1648802 = a;
        double r1648803 = 1.0;
        double r1648804 = 3.0;
        double r1648805 = r1648803 / r1648804;
        double r1648806 = r1648802 - r1648805;
        double r1648807 = 1.0;
        double r1648808 = 9.0;
        double r1648809 = r1648808 * r1648806;
        double r1648810 = sqrt(r1648809);
        double r1648811 = r1648807 / r1648810;
        double r1648812 = rand;
        double r1648813 = r1648811 * r1648812;
        double r1648814 = r1648807 + r1648813;
        double r1648815 = r1648806 * r1648814;
        return r1648815;
}

double f(double a, double rand) {
        double r1648816 = a;
        double r1648817 = 1.0;
        double r1648818 = 3.0;
        double r1648819 = r1648817 / r1648818;
        double r1648820 = r1648816 - r1648819;
        double r1648821 = rand;
        double r1648822 = 9.0;
        double r1648823 = r1648822 * r1648820;
        double r1648824 = -0.5;
        double r1648825 = pow(r1648823, r1648824);
        double r1648826 = r1648825 * r1648816;
        double r1648827 = r1648821 * r1648826;
        double r1648828 = -r1648819;
        double r1648829 = sqrt(r1648823);
        double r1648830 = r1648821 / r1648829;
        double r1648831 = r1648828 * r1648830;
        double r1648832 = r1648827 + r1648831;
        double r1648833 = r1648820 + r1648832;
        return r1648833;
}

Error

Bits error versus a

Bits error versus rand

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
  2. Using strategy rm
  3. Applied distribute-lft-in0.1

    \[\leadsto \color{blue}{\left(a - \frac{1.0}{3.0}\right) \cdot 1 + \left(a - \frac{1.0}{3.0}\right) \cdot \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)}\]
  4. Simplified0.1

    \[\leadsto \color{blue}{\left(a - \frac{1.0}{3.0}\right)} + \left(a - \frac{1.0}{3.0}\right) \cdot \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
  5. Simplified0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \color{blue}{\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(a - \frac{1.0}{3.0}\right)}\]
  6. Using strategy rm
  7. Applied sub-neg0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \color{blue}{\left(a + \left(-\frac{1.0}{3.0}\right)\right)}\]
  8. Applied distribute-lft-in0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \color{blue}{\left(\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot a + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)}\]
  9. Using strategy rm
  10. Applied div-inv0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(\color{blue}{\left(rand \cdot \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}\right)} \cdot a + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)\]
  11. Applied associate-*l*0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(\color{blue}{rand \cdot \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot a\right)} + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)\]
  12. Using strategy rm
  13. Applied pow1/20.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left(\frac{1}{\color{blue}{{\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\frac{1}{2}}}} \cdot a\right) + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)\]
  14. Applied pow-flip0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left(\color{blue}{{\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\left(-\frac{1}{2}\right)}} \cdot a\right) + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)\]
  15. Simplified0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left({\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\color{blue}{\frac{-1}{2}}} \cdot a\right) + \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot \left(-\frac{1.0}{3.0}\right)\right)\]
  16. Final simplification0.1

    \[\leadsto \left(a - \frac{1.0}{3.0}\right) + \left(rand \cdot \left({\left(9 \cdot \left(a - \frac{1.0}{3.0}\right)\right)}^{\frac{-1}{2}} \cdot a\right) + \left(-\frac{1.0}{3.0}\right) \cdot \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}}\right)\]

Reproduce

herbie shell --seed 2019155 
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))