Average Error: 15.4 → 15.4
Time: 3.3s
Precision: binary64
\[\frac{\left(\left(12 \cdot a\right) \cdot p\right) \cdot \left(\left(-1\right) + {p}^{n}\right) + \left(\left(\left(-1\right) + p\right) \cdot {p}^{n}\right) \cdot s}{\left(-1\right) + p}\]
\[\frac{\left(\left(12 \cdot a\right) \cdot p\right) \cdot \left(\left(-1\right) + {p}^{n}\right) + \left(\left(\left(-1\right) + p\right) \cdot {p}^{n}\right) \cdot s}{\left(-1\right) + p}\]

Error

Bits error versus a

Bits error versus p

Bits error versus n

Bits error versus s

Derivation

  1. Initial program 15.4

    \[\frac{\left(\left(12 \cdot a\right) \cdot p\right) \cdot \left(\left(-1\right) + {p}^{n}\right) + \left(\left(\left(-1\right) + p\right) \cdot {p}^{n}\right) \cdot s}{\left(-1\right) + p}\]
  2. Final simplification15.4

    \[\leadsto \frac{\left(\left(12 \cdot a\right) \cdot p\right) \cdot \left(\left(-1\right) + {p}^{n}\right) + \left(\left(\left(-1\right) + p\right) \cdot {p}^{n}\right) \cdot s}{\left(-1\right) + p}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (a p n s)
  :name "(/ (+ (* (* (* 12 a) p) (+ (- 1) (pow p n))) (* (* (+ (- 1) p) (pow p n)) s)) (+ (- 1) p))"
  :precision binary64
  (/ (+ (* (* (* 12.0 a) p) (+ (neg 1.0) (pow p n))) (* (* (+ (neg 1.0) p) (pow p n)) s)) (+ (neg 1.0) p)))