Average Error: 0.1 → 0.1
Time: 8.5s
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 r86858 = a;
        double r86859 = 1.0;
        double r86860 = 3.0;
        double r86861 = r86859 / r86860;
        double r86862 = r86858 - r86861;
        double r86863 = 9.0;
        double r86864 = r86863 * r86862;
        double r86865 = sqrt(r86864);
        double r86866 = r86859 / r86865;
        double r86867 = rand;
        double r86868 = r86866 * r86867;
        double r86869 = r86859 + r86868;
        double r86870 = r86862 * r86869;
        return r86870;
}

double f(double a, double rand) {
        double r86871 = a;
        double r86872 = 1.0;
        double r86873 = 3.0;
        double r86874 = r86872 / r86873;
        double r86875 = r86871 - r86874;
        double r86876 = rand;
        double r86877 = r86872 * r86876;
        double r86878 = 9.0;
        double r86879 = r86878 * r86875;
        double r86880 = sqrt(r86879);
        double r86881 = r86877 / r86880;
        double r86882 = r86872 + r86881;
        double r86883 = r86875 * r86882;
        return r86883;
}

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 2020065 +o rules:numerics
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  :precision binary64
  (* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))