Average Error: 0.1 → 0.1
Time: 9.4s
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 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}\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 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}\right)
double f(double a, double rand) {
        double r76034 = a;
        double r76035 = 1.0;
        double r76036 = 3.0;
        double r76037 = r76035 / r76036;
        double r76038 = r76034 - r76037;
        double r76039 = 9.0;
        double r76040 = r76039 * r76038;
        double r76041 = sqrt(r76040);
        double r76042 = r76035 / r76041;
        double r76043 = rand;
        double r76044 = r76042 * r76043;
        double r76045 = r76035 + r76044;
        double r76046 = r76038 * r76045;
        return r76046;
}

double f(double a, double rand) {
        double r76047 = a;
        double r76048 = 1.0;
        double r76049 = 3.0;
        double r76050 = r76048 / r76049;
        double r76051 = r76047 - r76050;
        double r76052 = rand;
        double r76053 = r76048 * r76052;
        double r76054 = 9.0;
        double r76055 = r76054 * r76051;
        double r76056 = sqrt(r76055);
        double r76057 = r76053 / r76056;
        double r76058 = r76048 + r76057;
        double r76059 = r76051 * r76058;
        return r76059;
}

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. Final simplification0.1

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

Reproduce

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