\[\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}\]
Test:
Octave 3.8, jcobi/2
Bits:
128 bits
Bits error versus alpha
Bits error versus beta
Bits error versus i
Time: 37.5 s
Input Error: 11.1
Output Error: 4.3
Log:
Profile: 🕒
\(\frac{\frac{\left({\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2 - {\left(\frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2\right) \cdot \left(\alpha + \beta\right)}{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} + \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right) \cdot (2 * i + \left(\alpha + \beta\right))_*} + 1.0}{2.0}\)
  1. Started with
    \[\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}\]
    11.1
  2. Applied simplify to get
    \[\color{red}{\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}} \leadsto \color{blue}{\frac{(\left(\frac{\beta - \alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right) * \left(\frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*}\right) + 1.0)_*}{2.0}}\]
    4.9
  3. Using strategy rm
    4.9
  4. Applied fma-udef to get
    \[\frac{\color{red}{(\left(\frac{\beta - \alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right) * \left(\frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*}\right) + 1.0)_*}}{2.0} \leadsto \frac{\color{blue}{\frac{\beta - \alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*} + 1.0}}{2.0}\]
    4.5
  5. Using strategy rm
    4.5
  6. Applied div-sub to get
    \[\frac{\color{red}{\frac{\beta - \alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*} + 1.0}{2.0} \leadsto \frac{\color{blue}{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} - \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*} + 1.0}{2.0}\]
    4.2
  7. Using strategy rm
    4.2
  8. Applied flip-- to get
    \[\frac{\color{red}{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} - \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*} + 1.0}{2.0} \leadsto \frac{\color{blue}{\frac{{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2 - {\left(\frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2}{\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} + \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}}} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*} + 1.0}{2.0}\]
    4.3
  9. Applied frac-times to get
    \[\frac{\color{red}{\frac{{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2 - {\left(\frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2}{\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} + \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}} \cdot \frac{\alpha + \beta}{(2 * i + \left(\alpha + \beta\right))_*}} + 1.0}{2.0} \leadsto \frac{\color{blue}{\frac{\left({\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2 - {\left(\frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right)}^2\right) \cdot \left(\alpha + \beta\right)}{\left(\frac{\beta}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)} + \frac{\alpha}{(i * 2 + \beta)_* + \left(2.0 + \alpha\right)}\right) \cdot (2 * i + \left(\alpha + \beta\right))_*}} + 1.0}{2.0}\]
    4.3

  10. Removed slow pow expressions

Original test:


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