\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\]
(FPCore (x y z t a b c i)
:precision binary64
(/
(+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t)
(+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))
↓
(FPCore (x y z t a b c i)
:precision binary64
(let* ((t_1 (+ i (* y (+ c (* y (+ (* y (+ y a)) b))))))
(t_2
(* y (+ (* y (+ (* y (+ (* x y) z)) 27464.7644705)) 230661.510616))))
(if (<= (/ (+ t_2 t) t_1) 2e+294)
(+ (/ t t_1) (/ t_2 t_1))
(+ x (- (/ z y) (/ x (/ y a)))))))
\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
if (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i)) < 2.00000000000000013e294
Initial program 5.3
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\]
Simplified5.3
\[\leadsto \color{blue}{\frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(x, y, z\right), 27464.7644705\right), 230661.510616\right), t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}}
\]
Proof
(/.f64 (fma.f64 y (fma.f64 y (fma.f64 y (fma.f64 x y z) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 x y) z)) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 54929528941/2000000)) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 x y) z) y)) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000)) 28832688827/125000)) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 1 points increase in error, 1 points decrease in error
(/.f64 (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y)) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000)) t)) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 1 points decrease in error
(/.f64 (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y)) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 y a)) b)) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 y a) y)) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 y a) y) b)) c)) i)): 1 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y)) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c)) i))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y)) i)): 0 points increase in error, 0 points decrease in error
Taylor expanded in t around inf 5.3
\[\leadsto \color{blue}{\frac{t}{y \cdot \left(c + y \cdot \left(\left(y + a\right) \cdot y + b\right)\right) + i} + \frac{\left(230661.510616 + y \cdot \left(27464.7644705 + \left(y \cdot x + z\right) \cdot y\right)\right) \cdot y}{y \cdot \left(c + y \cdot \left(\left(y + a\right) \cdot y + b\right)\right) + i}}
\]
if 2.00000000000000013e294 < (/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y) i))
Initial program 63.8
\[\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}
\]
Simplified63.8
\[\leadsto \color{blue}{\frac{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(x, y, z\right), 27464.7644705\right), 230661.510616\right), t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(y, \mathsf{fma}\left(y, y + a, b\right), c\right), i\right)}}
\]
Proof
(/.f64 (fma.f64 y (fma.f64 y (fma.f64 y (fma.f64 x y z) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 x y) z)) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 x y) z)) 54929528941/2000000)) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 x y) z) y)) 54929528941/2000000) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000)) 28832688827/125000)) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 1 points increase in error, 1 points decrease in error
(/.f64 (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y)) 28832688827/125000) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000)) t)) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 1 points decrease in error
(/.f64 (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y)) t) (fma.f64 y (fma.f64 y (fma.f64 y (+.f64 y a) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 y a)) b)) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 y a) y)) b) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 y a) y) b)) c)) i)): 1 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (fma.f64 y (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y)) c) i)): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c)) i))): 0 points increase in error, 0 points decrease in error
(/.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x y) z) y) 54929528941/2000000) y) 28832688827/125000) y) t) (+.f64 (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 y a) y) b) y) c) y)) i)): 0 points increase in error, 0 points decrease in error
herbie shell --seed 2022308
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
:precision binary64
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))