Average Error: 0.1 → 0.1
Time: 25.9s
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)\]
\[1 \cdot \left(a - \frac{1}{3}\right) + \left(\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot 1\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)
1 \cdot \left(a - \frac{1}{3}\right) + \left(\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot 1\right) \cdot \left(a - \frac{1}{3}\right)
double f(double a, double rand) {
        double r3744052 = a;
        double r3744053 = 1.0;
        double r3744054 = 3.0;
        double r3744055 = r3744053 / r3744054;
        double r3744056 = r3744052 - r3744055;
        double r3744057 = 9.0;
        double r3744058 = r3744057 * r3744056;
        double r3744059 = sqrt(r3744058);
        double r3744060 = r3744053 / r3744059;
        double r3744061 = rand;
        double r3744062 = r3744060 * r3744061;
        double r3744063 = r3744053 + r3744062;
        double r3744064 = r3744056 * r3744063;
        return r3744064;
}

double f(double a, double rand) {
        double r3744065 = 1.0;
        double r3744066 = a;
        double r3744067 = 3.0;
        double r3744068 = r3744065 / r3744067;
        double r3744069 = r3744066 - r3744068;
        double r3744070 = r3744065 * r3744069;
        double r3744071 = rand;
        double r3744072 = 9.0;
        double r3744073 = r3744072 * r3744069;
        double r3744074 = sqrt(r3744073);
        double r3744075 = r3744071 / r3744074;
        double r3744076 = r3744075 * r3744065;
        double r3744077 = r3744076 * r3744069;
        double r3744078 = r3744070 + r3744077;
        return r3744078;
}

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. Using strategy rm
  5. Applied div-inv0.1

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

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

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

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

Reproduce

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