Average Error: 0.9 → 0.6
Time: 37.3s
Precision: 64
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
\[\frac{\frac{\left(\beta - \alpha\right) \cdot \frac{\beta + \alpha}{\left(\beta + \left(\alpha + 2.0\right)\right) + 2 \cdot i}}{2 \cdot i + \left(\beta + \alpha\right)} + 1.0}{2.0}\]
double f(double alpha, double beta, double i) {
        double r2032234 = alpha;
        double r2032235 = beta;
        double r2032236 = r2032234 + r2032235;
        double r2032237 = r2032235 - r2032234;
        double r2032238 = r2032236 * r2032237;
        double r2032239 = 2.0;
        double r2032240 = i;
        double r2032241 = r2032239 * r2032240;
        double r2032242 = r2032236 + r2032241;
        double r2032243 = r2032238 / r2032242;
        double r2032244 = 2.0;
        double r2032245 = r2032242 + r2032244;
        double r2032246 = r2032243 / r2032245;
        double r2032247 = 1.0;
        double r2032248 = r2032246 + r2032247;
        double r2032249 = r2032248 / r2032244;
        return r2032249;
}

double f(double alpha, double beta, double i) {
        double r2032250 = beta;
        double r2032251 = alpha;
        double r2032252 = r2032250 - r2032251;
        double r2032253 = r2032250 + r2032251;
        double r2032254 = 2.0;
        double r2032255 = r2032251 + r2032254;
        double r2032256 = r2032250 + r2032255;
        double r2032257 = 2.0;
        double r2032258 = i;
        double r2032259 = r2032257 * r2032258;
        double r2032260 = r2032256 + r2032259;
        double r2032261 = r2032253 / r2032260;
        double r2032262 = r2032252 * r2032261;
        double r2032263 = r2032259 + r2032253;
        double r2032264 = r2032262 / r2032263;
        double r2032265 = 1.0;
        double r2032266 = r2032264 + r2032265;
        double r2032267 = r2032266 / r2032254;
        return r2032267;
}

\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}
\frac{\frac{\left(\beta - \alpha\right) \cdot \frac{\beta + \alpha}{\left(\beta + \left(\alpha + 2.0\right)\right) + 2 \cdot i}}{2 \cdot i + \left(\beta + \alpha\right)} + 1.0}{2.0}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 0.9

    \[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  2. Simplified1.0

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(\frac{\left(\left(\beta - \alpha\right) \cdot \left(\frac{\beta}{\alpha}\right)\right)}{\left(\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right) \cdot \left(\frac{\left(\frac{\beta}{\left(\frac{\alpha}{\left(2.0\right)}\right)}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}}\]
  3. Using strategy rm
  4. Applied p16-times-frac0.6

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \left(\frac{\left(\frac{\beta}{\alpha}\right)}{\left(\frac{\left(\frac{\beta}{\left(\frac{\alpha}{\left(2.0\right)}\right)}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)\right)}}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  5. Using strategy rm
  6. Applied associate-*l/0.6

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\frac{\left(\left(\beta - \alpha\right) \cdot \left(\frac{\left(\frac{\beta}{\alpha}\right)}{\left(\frac{\left(\frac{\beta}{\left(\frac{\alpha}{\left(2.0\right)}\right)}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)}}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  7. Final simplification0.6

    \[\leadsto \frac{\frac{\left(\beta - \alpha\right) \cdot \frac{\beta + \alpha}{\left(\beta + \left(\alpha + 2.0\right)\right) + 2 \cdot i}}{2 \cdot i + \left(\beta + \alpha\right)} + 1.0}{2.0}\]

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 0)))
  (/.p16 (+.p16 (/.p16 (/.p16 (*.p16 (+.p16 alpha beta) (-.p16 beta alpha)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))