Average Error: 0.1 → 0.1
Time: 9.2s
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}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\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}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)
double f(double a, double rand) {
        double r142366 = a;
        double r142367 = 1.0;
        double r142368 = 3.0;
        double r142369 = r142367 / r142368;
        double r142370 = r142366 - r142369;
        double r142371 = 9.0;
        double r142372 = r142371 * r142370;
        double r142373 = sqrt(r142372);
        double r142374 = r142367 / r142373;
        double r142375 = rand;
        double r142376 = r142374 * r142375;
        double r142377 = r142367 + r142376;
        double r142378 = r142370 * r142377;
        return r142378;
}

double f(double a, double rand) {
        double r142379 = a;
        double r142380 = 1.0;
        double r142381 = 3.0;
        double r142382 = r142380 / r142381;
        double r142383 = r142379 - r142382;
        double r142384 = 9.0;
        double r142385 = r142384 * r142383;
        double r142386 = sqrt(r142385);
        double r142387 = r142380 / r142386;
        double r142388 = rand;
        double r142389 = r142387 * r142388;
        double r142390 = r142380 + r142389;
        double r142391 = r142383 * r142390;
        return r142391;
}

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

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

Reproduce

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