\[\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 (+ b (* y (+ y a))))
(t_2 (* t_1 t_1))
(t_3 (+ 27464.7644705 (* y (+ z (* y x)))))
(t_4
(-
(-
(+ x (+ (/ z y) (/ (/ 27464.7644705 y) y)))
(* (/ a y) (/ (- z (* x a)) y)))
(+ (* x (/ a y)) (/ b (/ y (/ x y))))))
(t_5 (* y t_1))
(t_6 (+ (* y (+ c t_5)) i))
(t_7 (/ t t_6)))
(if (<= y -7.669510878221144e+62)
t_4
(if (<= y 2.6566715646524415)
(+ t_7 (/ (* y (+ 230661.510616 (* y t_3))) t_6))
(if (<= y 1.9770035460998272e+93)
(+
t_7
(+
(/ t_3 t_1)
(+
(* 230661.510616 (/ 1.0 t_5))
(*
c
(-
(+
(* 27464.7644705 (/ -1.0 (* t_1 t_5)))
(-
(* (/ 1.0 (* t_1 (* t_1 (pow y 2.0)))) -230661.510616)
(/ (* y x) t_2)))
(/ z t_2))))))
t_4)))))
\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 y < -7.6695108782211436e62 or 1.97700354609982721e93 < y
Initial program 63.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}
\]
Simplified63.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)): 0 points increase in error, 0 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, 0 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)): 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 (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)): 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 (+.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
(-.f64 (-.f64 (+.f64 x (+.f64 (/.f64 z y) (/.f64 (/.f64 54929528941/2000000 y) y))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 x (+.f64 (/.f64 z y) (Rewrite<= associate-/r*_binary64 (/.f64 54929528941/2000000 (*.f64 y y))))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 1 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 x (+.f64 (/.f64 z y) (/.f64 (Rewrite<= metadata-eval (*.f64 54929528941/2000000 1)) (*.f64 y y)))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 x (+.f64 (/.f64 z y) (/.f64 (*.f64 54929528941/2000000 1) (Rewrite<= unpow2_binary64 (pow.f64 y 2))))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 x (+.f64 (/.f64 z y) (Rewrite<= associate-*r/_binary64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2)))))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 1 points increase in error, 4 points decrease in error
(-.f64 (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (+.f64 (/.f64 z y) (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2)))) x)) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (Rewrite<= associate-+r+_binary64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x))) (*.f64 (/.f64 a y) (/.f64 (-.f64 z (*.f64 a x)) y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (Rewrite<= times-frac_binary64 (/.f64 (*.f64 a (-.f64 z (*.f64 a x))) (*.f64 y y)))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 25 points increase in error, 5 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (Rewrite=> *-commutative_binary64 (*.f64 (-.f64 z (*.f64 a x)) a)) (*.f64 y y))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (Rewrite<= unpow2_binary64 (pow.f64 y 2)))) (+.f64 (*.f64 (/.f64 a y) x) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2))) (+.f64 (Rewrite<= associate-/r/_binary64 (/.f64 a (/.f64 y x))) (/.f64 b (/.f64 y (/.f64 x y))))): 0 points increase in error, 1 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2))) (+.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 a x) y)) (/.f64 b (/.f64 y (/.f64 x y))))): 1 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2))) (+.f64 (/.f64 (*.f64 a x) y) (/.f64 b (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 y y) x))))): 0 points increase in error, 1 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2))) (+.f64 (/.f64 (*.f64 a x) y) (/.f64 b (/.f64 (Rewrite<= unpow2_binary64 (pow.f64 y 2)) x)))): 0 points increase in error, 0 points decrease in error
(-.f64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2))) (+.f64 (/.f64 (*.f64 a x) y) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 b x) (pow.f64 y 2))))): 12 points increase in error, 4 points decrease in error
(Rewrite<= associate--r+_binary64 (-.f64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x)) (+.f64 (/.f64 (*.f64 (-.f64 z (*.f64 a x)) a) (pow.f64 y 2)) (+.f64 (/.f64 (*.f64 a x) y) (/.f64 (*.f64 b x) (pow.f64 y 2)))))): 0 points increase in error, 0 points decrease in error
if -7.6695108782211436e62 < y < 2.656671564652441
Initial program 3.2
\[\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}
\]
Taylor expanded in t around inf 3.2
\[\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.656671564652441 < y < 1.97700354609982721e93
Initial program 39.6
\[\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}
\]
Taylor expanded in t around inf 39.6
\[\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}}
\]
Taylor expanded in i around 0 34.8
\[\leadsto \frac{t}{y \cdot \left(c + y \cdot \left(\left(y + a\right) \cdot y + b\right)\right) + i} + \color{blue}{\frac{230661.510616 + y \cdot \left(27464.7644705 + \left(y \cdot x + z\right) \cdot y\right)}{c + y \cdot \left(\left(y + a\right) \cdot y + b\right)}}
\]
Taylor expanded in c around 0 30.3
\[\leadsto \frac{t}{y \cdot \left(c + y \cdot \left(\left(y + a\right) \cdot y + b\right)\right) + i} + \color{blue}{\left(\frac{27464.7644705 + \left(y \cdot x + z\right) \cdot y}{\left(y + a\right) \cdot y + b} + \left(230661.510616 \cdot \frac{1}{y \cdot \left(\left(y + a\right) \cdot y + b\right)} + -1 \cdot \left(c \cdot \left(\frac{z}{\left(b + y \cdot \left(a + y\right)\right) \cdot \left(\left(y + a\right) \cdot y + b\right)} + \left(27464.7644705 \cdot \frac{1}{\left(b + y \cdot \left(a + y\right)\right) \cdot \left(y \cdot \left(\left(y + a\right) \cdot y + b\right)\right)} + \left(230661.510616 \cdot \frac{1}{\left(b + y \cdot \left(a + y\right)\right) \cdot \left({y}^{2} \cdot \left(\left(y + a\right) \cdot y + b\right)\right)} + \frac{y \cdot x}{\left(b + y \cdot \left(a + y\right)\right) \cdot \left(\left(y + a\right) \cdot y + b\right)}\right)\right)\right)\right)\right)\right)}
\]
Recombined 3 regimes into one program.
Final simplification10.8
\[\leadsto \begin{array}{l}
\mathbf{if}\;y \leq -7.669510878221144 \cdot 10^{+62}:\\
\;\;\;\;\left(\left(x + \left(\frac{z}{y} + \frac{\frac{27464.7644705}{y}}{y}\right)\right) - \frac{a}{y} \cdot \frac{z - x \cdot a}{y}\right) - \left(x \cdot \frac{a}{y} + \frac{b}{\frac{y}{\frac{x}{y}}}\right)\\
\mathbf{elif}\;y \leq 2.6566715646524415:\\
\;\;\;\;\frac{t}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i} + \frac{y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot \left(z + y \cdot x\right)\right)\right)}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i}\\
\mathbf{elif}\;y \leq 1.9770035460998272 \cdot 10^{+93}:\\
\;\;\;\;\frac{t}{y \cdot \left(c + y \cdot \left(b + y \cdot \left(y + a\right)\right)\right) + i} + \left(\frac{27464.7644705 + y \cdot \left(z + y \cdot x\right)}{b + y \cdot \left(y + a\right)} + \left(230661.510616 \cdot \frac{1}{y \cdot \left(b + y \cdot \left(y + a\right)\right)} + c \cdot \left(\left(27464.7644705 \cdot \frac{-1}{\left(b + y \cdot \left(y + a\right)\right) \cdot \left(y \cdot \left(b + y \cdot \left(y + a\right)\right)\right)} + \left(\frac{1}{\left(b + y \cdot \left(y + a\right)\right) \cdot \left(\left(b + y \cdot \left(y + a\right)\right) \cdot {y}^{2}\right)} \cdot -230661.510616 - \frac{y \cdot x}{\left(b + y \cdot \left(y + a\right)\right) \cdot \left(b + y \cdot \left(y + a\right)\right)}\right)\right) - \frac{z}{\left(b + y \cdot \left(y + a\right)\right) \cdot \left(b + y \cdot \left(y + a\right)\right)}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(x + \left(\frac{z}{y} + \frac{\frac{27464.7644705}{y}}{y}\right)\right) - \frac{a}{y} \cdot \frac{z - x \cdot a}{y}\right) - \left(x \cdot \frac{a}{y} + \frac{b}{\frac{y}{\frac{x}{y}}}\right)\\
\end{array}
\]
herbie shell --seed 2022294
(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)))