\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
Test:
Octave 3.8, jcobi/1
Bits:
128 bits
Bits error versus alpha
Bits error versus beta
Time: 8.6 s
Input Error: 6.8
Output Error: 6.4
Log:
Profile: 🕒
\(\frac{0.5}{(1 * \left(\beta + \alpha\right) + 2.0)_*} \cdot \left(\beta - \alpha\right) + 0.5\)
  1. Started with
    \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    6.8
  2. Using strategy rm
    6.8
  3. Applied *-un-lft-identity to get
    \[\frac{\frac{\beta - \alpha}{\color{red}{\left(\alpha + \beta\right)} + 2.0} + 1.0}{2.0} \leadsto \frac{\frac{\beta - \alpha}{\color{blue}{1 \cdot \left(\alpha + \beta\right)} + 2.0} + 1.0}{2.0}\]
    6.8
  4. Applied fma-def to get
    \[\frac{\frac{\beta - \alpha}{\color{red}{1 \cdot \left(\alpha + \beta\right) + 2.0}} + 1.0}{2.0} \leadsto \frac{\frac{\beta - \alpha}{\color{blue}{(1 * \left(\alpha + \beta\right) + 2.0)_*}} + 1.0}{2.0}\]
    6.5
  5. Applied taylor to get
    \[\frac{\frac{\beta - \alpha}{(1 * \left(\alpha + \beta\right) + 2.0)_*} + 1.0}{2.0} \leadsto \left(0.5 \cdot \frac{\beta}{(1 * \left(\beta + \alpha\right) + 2.0)_*} + 0.5\right) - 0.5 \cdot \frac{\alpha}{(1 * \left(\beta + \alpha\right) + 2.0)_*}\]
    6.3
  6. Taylor expanded around 0 to get
    \[\color{red}{\left(0.5 \cdot \frac{\beta}{(1 * \left(\beta + \alpha\right) + 2.0)_*} + 0.5\right) - 0.5 \cdot \frac{\alpha}{(1 * \left(\beta + \alpha\right) + 2.0)_*}} \leadsto \color{blue}{\left(0.5 \cdot \frac{\beta}{(1 * \left(\beta + \alpha\right) + 2.0)_*} + 0.5\right) - 0.5 \cdot \frac{\alpha}{(1 * \left(\beta + \alpha\right) + 2.0)_*}}\]
    6.3
  7. Applied simplify to get
    \[\color{red}{\left(0.5 \cdot \frac{\beta}{(1 * \left(\beta + \alpha\right) + 2.0)_*} + 0.5\right) - 0.5 \cdot \frac{\alpha}{(1 * \left(\beta + \alpha\right) + 2.0)_*}} \leadsto \color{blue}{\frac{0.5}{(1 * \left(\beta + \alpha\right) + 2.0)_*} \cdot \left(\beta - \alpha\right) + 0.5}\]
    6.4

  8. Removed slow pow expressions

Original test:


(lambda ((alpha default) (beta default))
  #:name "Octave 3.8, jcobi/1"
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))