\[\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\]
Test:
Octave 3.8, jcobi/4
Bits:
128 bits
Bits error versus alpha
Bits error versus beta
Bits error versus i
Time: 1.2 m
Input Error: 25.5
Output Error: 19.0
Log:
Profile: 🕒
\(\frac{\frac{i \cdot \left(\beta + \left(i + \alpha\right)\right)}{\frac{{\left(\left(\beta + \alpha\right) + 2 \cdot i\right)}^2}{\alpha \cdot \beta + i \cdot \left(\beta + \left(i + \alpha\right)\right)}}}{{\left(\left(\beta + \alpha\right) + 2 \cdot i\right)}^2 - 1.0}\)
  1. Started with
    \[\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\]
    25.5
  2. Applied simplify to get
    \[\color{red}{\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}} \leadsto \color{blue}{\frac{\frac{i \cdot \left(\beta + \left(i + \alpha\right)\right)}{\frac{{\left(\left(\beta + \alpha\right) + 2 \cdot i\right)}^2}{\alpha \cdot \beta + i \cdot \left(\beta + \left(i + \alpha\right)\right)}}}{{\left(\left(\beta + \alpha\right) + 2 \cdot i\right)}^2 - 1.0}}\]
    19.0

  3. Removed slow pow expressions

Original test:


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