Average Error: 0.1 → 0.1
Time: 27.6s
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 1 + \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \cdot \left(a - \frac{1}{3}\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 1 + \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \cdot \left(a - \frac{1}{3}\right)
double f(double a, double rand) {
        double r87804 = a;
        double r87805 = 1.0;
        double r87806 = 3.0;
        double r87807 = r87805 / r87806;
        double r87808 = r87804 - r87807;
        double r87809 = 9.0;
        double r87810 = r87809 * r87808;
        double r87811 = sqrt(r87810);
        double r87812 = r87805 / r87811;
        double r87813 = rand;
        double r87814 = r87812 * r87813;
        double r87815 = r87805 + r87814;
        double r87816 = r87808 * r87815;
        return r87816;
}

double f(double a, double rand) {
        double r87817 = a;
        double r87818 = 1.0;
        double r87819 = 3.0;
        double r87820 = r87818 / r87819;
        double r87821 = r87817 - r87820;
        double r87822 = r87821 * r87818;
        double r87823 = 9.0;
        double r87824 = r87823 * r87821;
        double r87825 = sqrt(r87824);
        double r87826 = r87818 / r87825;
        double r87827 = rand;
        double r87828 = r87826 * r87827;
        double r87829 = r87828 * r87821;
        double r87830 = r87822 + r87829;
        return r87830;
}

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}{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 distribute-lft-in0.1

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

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

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

Reproduce

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