\[\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}
\]
↓
\[\begin{array}{l}
t_1 := y \cdot \left(c + y \cdot \left(y \cdot \left(y + a\right) + b\right)\right) + i\\
t_2 := x + \left(\frac{z}{y} + \frac{27464.7644705}{y \cdot y}\right)\\
\mathbf{if}\;y \leq -2.9144796754912003 \cdot 10^{+40}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq 2.955388695141755 \cdot 10^{+36}:\\
\;\;\;\;\frac{t}{t_1} + \frac{y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot \left(z + y \cdot x\right)\right)\right)}{t_1}\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
\]
(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 (+ (* y (+ c (* y (+ (* y (+ y a)) b)))) i))
(t_2 (+ x (+ (/ z y) (/ 27464.7644705 (* y y))))))
(if (<= y -2.9144796754912003e+40)
t_2
(if (<= y 2.955388695141755e+36)
(+
(/ t t_1)
(/
(* y (+ 230661.510616 (* y (+ 27464.7644705 (* y (+ z (* y x)))))))
t_1))
t_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}
↓
\begin{array}{l}
t_1 := y \cdot \left(c + y \cdot \left(y \cdot \left(y + a\right) + b\right)\right) + i\\
t_2 := x + \left(\frac{z}{y} + \frac{27464.7644705}{y \cdot y}\right)\\
\mathbf{if}\;y \leq -2.9144796754912003 \cdot 10^{+40}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;y \leq 2.955388695141755 \cdot 10^{+36}:\\
\;\;\;\;\frac{t}{t_1} + \frac{y \cdot \left(230661.510616 + y \cdot \left(27464.7644705 + y \cdot \left(z + y \cdot x\right)\right)\right)}{t_1}\\
\mathbf{else}:\\
\;\;\;\;t_2\\
\end{array}
Error
Try it out
Results
Enter valid numbers for all inputs
Derivation
Split input into 2 regimes
if y < -2.91447967549120032e40 or 2.9553886951417548e36 < y
Initial program 61.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 y around inf 62.3
\[\leadsto \frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644705\right) \cdot y + 230661.510616\right) \cdot y + t}{\left(\color{blue}{{y}^{3}} + c\right) \cdot y + i}
\]
(+.f64 x (+.f64 (/.f64 z y) (/.f64 54929528941/2000000 (*.f64 y y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (+.f64 (/.f64 z y) (/.f64 (Rewrite<= metadata-eval (*.f64 54929528941/2000000 1)) (*.f64 y y)))): 0 points increase in error, 0 points decrease in error
(+.f64 x (+.f64 (/.f64 z y) (/.f64 (*.f64 54929528941/2000000 1) (Rewrite<= unpow2_binary64 (pow.f64 y 2))))): 0 points increase in error, 0 points decrease in error
(+.f64 x (+.f64 (/.f64 z y) (Rewrite<= associate-*r/_binary64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2)))))): 8 points increase in error, 2 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 (+.f64 (/.f64 z y) (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2)))) x)): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+r+_binary64 (+.f64 (/.f64 z y) (+.f64 (*.f64 54929528941/2000000 (/.f64 1 (pow.f64 y 2))) x))): 0 points increase in error, 0 points decrease in error
if -2.91447967549120032e40 < y < 2.9553886951417548e36
Initial program 2.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}
\]
Taylor expanded in t around inf 2.8
\[\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}}
\]
herbie shell --seed 2022316
(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)))