Average Error: 0.9 → 0.6
Time: 37.5s
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 r2027212 = alpha;
        double r2027213 = beta;
        double r2027214 = r2027212 + r2027213;
        double r2027215 = r2027213 - r2027212;
        double r2027216 = r2027214 * r2027215;
        double r2027217 = 2.0;
        double r2027218 = i;
        double r2027219 = r2027217 * r2027218;
        double r2027220 = r2027214 + r2027219;
        double r2027221 = r2027216 / r2027220;
        double r2027222 = 2.0;
        double r2027223 = r2027220 + r2027222;
        double r2027224 = r2027221 / r2027223;
        double r2027225 = 1.0;
        double r2027226 = r2027224 + r2027225;
        double r2027227 = r2027226 / r2027222;
        return r2027227;
}

double f(double alpha, double beta, double i) {
        double r2027228 = beta;
        double r2027229 = alpha;
        double r2027230 = r2027228 - r2027229;
        double r2027231 = r2027228 + r2027229;
        double r2027232 = 2.0;
        double r2027233 = r2027229 + r2027232;
        double r2027234 = r2027228 + r2027233;
        double r2027235 = 2.0;
        double r2027236 = i;
        double r2027237 = r2027235 * r2027236;
        double r2027238 = r2027234 + r2027237;
        double r2027239 = r2027231 / r2027238;
        double r2027240 = r2027230 * r2027239;
        double r2027241 = r2027237 + r2027231;
        double r2027242 = r2027240 / r2027241;
        double r2027243 = 1.0;
        double r2027244 = r2027242 + r2027243;
        double r2027245 = r2027244 / r2027232;
        return r2027245;
}

\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 
(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)))