Average Error: 0.1 → 0.1
Time: 29.7s
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(a - \frac{1}{3}\right) \cdot \frac{1 \cdot rand}{\sqrt{9 \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(a - \frac{1}{3}\right) \cdot \frac{1 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}
double f(double a, double rand) {
        double r8546095 = a;
        double r8546096 = 1.0;
        double r8546097 = 3.0;
        double r8546098 = r8546096 / r8546097;
        double r8546099 = r8546095 - r8546098;
        double r8546100 = 9.0;
        double r8546101 = r8546100 * r8546099;
        double r8546102 = sqrt(r8546101);
        double r8546103 = r8546096 / r8546102;
        double r8546104 = rand;
        double r8546105 = r8546103 * r8546104;
        double r8546106 = r8546096 + r8546105;
        double r8546107 = r8546099 * r8546106;
        return r8546107;
}

double f(double a, double rand) {
        double r8546108 = a;
        double r8546109 = 1.0;
        double r8546110 = 3.0;
        double r8546111 = r8546109 / r8546110;
        double r8546112 = r8546108 - r8546111;
        double r8546113 = r8546112 * r8546109;
        double r8546114 = rand;
        double r8546115 = r8546109 * r8546114;
        double r8546116 = 9.0;
        double r8546117 = r8546116 * r8546112;
        double r8546118 = sqrt(r8546117);
        double r8546119 = r8546115 / r8546118;
        double r8546120 = r8546112 * r8546119;
        double r8546121 = r8546113 + r8546120;
        return r8546121;
}

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 associate-*l/0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \color{blue}{\frac{1 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}}\right)\]
  4. Using strategy rm
  5. Applied distribute-lft-in0.1

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

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

Reproduce

herbie shell --seed 2019173 
(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))))