Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I

Percentage Accurate: 94.3% → 96.2%
Time: 17.8s
Alternatives: 9
Speedup: 0.7×

Specification

?
\[\begin{array}{l} \\ \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \end{array} \]
(FPCore (x y z t a b c)
 :precision binary64
 (/
  x
  (+
   x
   (*
    y
    (exp
     (*
      2.0
      (-
       (/ (* z (sqrt (+ t a))) t)
       (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
	return x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
real(8) function code(x, y, z, t, a, b, c)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8), intent (in) :: c
    code = x / (x + (y * exp((2.0d0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
	return x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
def code(x, y, z, t, a, b, c):
	return x / (x + (y * math.exp((2.0 * (((z * math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))))
function code(x, y, z, t, a, b, c)
	return Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0))))))))))
end
function tmp = code(x, y, z, t, a, b, c)
	tmp = x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
end
code[x_, y_, z_, t_, a_, b_, c_] := N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 9 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 94.3% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \end{array} \]
(FPCore (x y z t a b c)
 :precision binary64
 (/
  x
  (+
   x
   (*
    y
    (exp
     (*
      2.0
      (-
       (/ (* z (sqrt (+ t a))) t)
       (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
	return x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
real(8) function code(x, y, z, t, a, b, c)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8), intent (in) :: c
    code = x / (x + (y * exp((2.0d0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
end function
public static double code(double x, double y, double z, double t, double a, double b, double c) {
	return x / (x + (y * Math.exp((2.0 * (((z * Math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
}
def code(x, y, z, t, a, b, c):
	return x / (x + (y * math.exp((2.0 * (((z * math.sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))))
function code(x, y, z, t, a, b, c)
	return Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0))))))))))
end
function tmp = code(x, y, z, t, a, b, c)
	tmp = x / (x + (y * exp((2.0 * (((z * sqrt((t + a))) / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
end
code[x_, y_, z_, t_, a_, b_, c_] := N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\end{array}

Alternative 1: 96.2% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\\ \mathbf{if}\;t\_1 \leq \infty:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot t\_1}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{a}\right)}}\\ \end{array} \end{array} \]
(FPCore (x y z t a b c)
 :precision binary64
 (let* ((t_1
         (+
          (/ (* z (sqrt (+ t a))) t)
          (* (- b c) (- (/ 2.0 (* t 3.0)) (+ a (/ 5.0 6.0)))))))
   (if (<= t_1 INFINITY)
     (/ x (+ x (* y (exp (* 2.0 t_1)))))
     (/ x (+ x (* y (exp (* 2.0 (* (/ z t) (sqrt a))))))))))
double code(double x, double y, double z, double t, double a, double b, double c) {
	double t_1 = ((z * sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + (5.0 / 6.0))));
	double tmp;
	if (t_1 <= ((double) INFINITY)) {
		tmp = x / (x + (y * exp((2.0 * t_1))));
	} else {
		tmp = x / (x + (y * exp((2.0 * ((z / t) * sqrt(a))))));
	}
	return tmp;
}
public static double code(double x, double y, double z, double t, double a, double b, double c) {
	double t_1 = ((z * Math.sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + (5.0 / 6.0))));
	double tmp;
	if (t_1 <= Double.POSITIVE_INFINITY) {
		tmp = x / (x + (y * Math.exp((2.0 * t_1))));
	} else {
		tmp = x / (x + (y * Math.exp((2.0 * ((z / t) * Math.sqrt(a))))));
	}
	return tmp;
}
def code(x, y, z, t, a, b, c):
	t_1 = ((z * math.sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + (5.0 / 6.0))))
	tmp = 0
	if t_1 <= math.inf:
		tmp = x / (x + (y * math.exp((2.0 * t_1))))
	else:
		tmp = x / (x + (y * math.exp((2.0 * ((z / t) * math.sqrt(a))))))
	return tmp
function code(x, y, z, t, a, b, c)
	t_1 = Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) + Float64(Float64(b - c) * Float64(Float64(2.0 / Float64(t * 3.0)) - Float64(a + Float64(5.0 / 6.0)))))
	tmp = 0.0
	if (t_1 <= Inf)
		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * t_1)))));
	else
		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(z / t) * sqrt(a)))))));
	end
	return tmp
end
function tmp_2 = code(x, y, z, t, a, b, c)
	t_1 = ((z * sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + (5.0 / 6.0))));
	tmp = 0.0;
	if (t_1 <= Inf)
		tmp = x / (x + (y * exp((2.0 * t_1))));
	else
		tmp = x / (x + (y * exp((2.0 * ((z / t) * sqrt(a))))));
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] + N[(N[(b - c), $MachinePrecision] * N[(N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision] - N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, Infinity], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * t$95$1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(z / t), $MachinePrecision] * N[Sqrt[a], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\\
\mathbf{if}\;t\_1 \leq \infty:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot t\_1}}\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{a}\right)}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64)))))) < +inf.0

    1. Initial program 98.4%

      \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \]
    2. Add Preprocessing

    if +inf.0 < (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64))))))

    1. Initial program 0.0%

      \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(\frac{z}{t} \cdot \sqrt{a + t}\right)}}} \]
    4. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(\frac{z}{t} \cdot \sqrt{a + t}\right)}}} \]
      2. lower-/.f64N/A

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\color{blue}{\frac{z}{t}} \cdot \sqrt{a + t}\right)}} \]
      3. lower-sqrt.f64N/A

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \color{blue}{\sqrt{a + t}}\right)}} \]
      4. +-commutativeN/A

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{\color{blue}{t + a}}\right)}} \]
      5. lower-+.f6458.5

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{\color{blue}{t + a}}\right)}} \]
    5. Applied rewrites58.5%

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(\frac{z}{t} \cdot \sqrt{t + a}\right)}}} \]
    6. Taylor expanded in t around 0

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{a}\right)}} \]
    7. Step-by-step derivation
      1. Applied rewrites58.5%

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{a}\right)}} \]
    8. Recombined 2 regimes into one program.
    9. Final simplification96.2%

      \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right) \leq \infty:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{t} \cdot \sqrt{a}\right)}}\\ \end{array} \]
    10. Add Preprocessing

    Alternative 2: 72.2% accurate, 0.4× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_1 := y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\right)}\\ \mathbf{if}\;t\_1 \leq -1 \cdot 10^{-262}:\\ \;\;\;\;\frac{x}{\mathsf{fma}\left(e^{2 \cdot \frac{b}{t \cdot 1.5}}, y, x\right)}\\ \mathbf{elif}\;t\_1 \leq 0:\\ \;\;\;\;1\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a + 0.8333333333333334\right) \cdot \left(-b\right)\right)}}\\ \end{array} \end{array} \]
    (FPCore (x y z t a b c)
     :precision binary64
     (let* ((t_1
             (*
              y
              (exp
               (*
                2.0
                (+
                 (/ (* z (sqrt (+ t a))) t)
                 (* (- b c) (- (/ 2.0 (* t 3.0)) (+ a (/ 5.0 6.0))))))))))
       (if (<= t_1 -1e-262)
         (/ x (fma (exp (* 2.0 (/ b (* t 1.5)))) y x))
         (if (<= t_1 0.0)
           1.0
           (/ x (+ x (* y (exp (* 2.0 (* (+ a 0.8333333333333334) (- b)))))))))))
    double code(double x, double y, double z, double t, double a, double b, double c) {
    	double t_1 = y * exp((2.0 * (((z * sqrt((t + a))) / t) + ((b - c) * ((2.0 / (t * 3.0)) - (a + (5.0 / 6.0)))))));
    	double tmp;
    	if (t_1 <= -1e-262) {
    		tmp = x / fma(exp((2.0 * (b / (t * 1.5)))), y, x);
    	} else if (t_1 <= 0.0) {
    		tmp = 1.0;
    	} else {
    		tmp = x / (x + (y * exp((2.0 * ((a + 0.8333333333333334) * -b)))));
    	}
    	return tmp;
    }
    
    function code(x, y, z, t, a, b, c)
    	t_1 = Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(z * sqrt(Float64(t + a))) / t) + Float64(Float64(b - c) * Float64(Float64(2.0 / Float64(t * 3.0)) - Float64(a + Float64(5.0 / 6.0))))))))
    	tmp = 0.0
    	if (t_1 <= -1e-262)
    		tmp = Float64(x / fma(exp(Float64(2.0 * Float64(b / Float64(t * 1.5)))), y, x));
    	elseif (t_1 <= 0.0)
    		tmp = 1.0;
    	else
    		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(a + 0.8333333333333334) * Float64(-b)))))));
    	end
    	return tmp
    end
    
    code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(y * N[Exp[N[(2.0 * N[(N[(N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] + N[(N[(b - c), $MachinePrecision] * N[(N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision] - N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, -1e-262], N[(x / N[(N[Exp[N[(2.0 * N[(b / N[(t * 1.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * y + x), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, 0.0], 1.0, N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(a + 0.8333333333333334), $MachinePrecision] * (-b)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_1 := y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\right)}\\
    \mathbf{if}\;t\_1 \leq -1 \cdot 10^{-262}:\\
    \;\;\;\;\frac{x}{\mathsf{fma}\left(e^{2 \cdot \frac{b}{t \cdot 1.5}}, y, x\right)}\\
    
    \mathbf{elif}\;t\_1 \leq 0:\\
    \;\;\;\;1\\
    
    \mathbf{else}:\\
    \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a + 0.8333333333333334\right) \cdot \left(-b\right)\right)}}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if (*.f64 y (exp.f64 (*.f64 #s(literal 2 binary64) (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64))))))))) < -1.00000000000000001e-262

      1. Initial program 98.8%

        \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \]
      2. Add Preprocessing
      3. Taylor expanded in b around inf

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
      4. Step-by-step derivation
        1. lower-*.f64N/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
        2. lower--.f64N/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \color{blue}{\left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)}\right)}} \]
        3. associate-*r/N/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3} \cdot 1}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
        4. metadata-evalN/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\color{blue}{\frac{2}{3}}}{t} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
        5. lower-/.f64N/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3}}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
        6. +-commutativeN/A

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\frac{2}{3}}{t} - \color{blue}{\left(a + \frac{5}{6}\right)}\right)\right)}} \]
        7. lower-+.f6466.2

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \color{blue}{\left(a + 0.8333333333333334\right)}\right)\right)}} \]
      5. Applied rewrites66.2%

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}} \]
      6. Taylor expanded in t around 0

        \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{2}{3} \cdot \color{blue}{\frac{b}{t}}\right)}} \]
      7. Step-by-step derivation
        1. Applied rewrites46.2%

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \frac{b \cdot 0.6666666666666666}{\color{blue}{t}}}} \]
        2. Step-by-step derivation
          1. lift-+.f64N/A

            \[\leadsto \frac{x}{\color{blue}{x + y \cdot e^{2 \cdot \frac{b \cdot \frac{2}{3}}{t}}}} \]
          2. +-commutativeN/A

            \[\leadsto \frac{x}{\color{blue}{y \cdot e^{2 \cdot \frac{b \cdot \frac{2}{3}}{t}} + x}} \]
          3. lift-*.f64N/A

            \[\leadsto \frac{x}{\color{blue}{y \cdot e^{2 \cdot \frac{b \cdot \frac{2}{3}}{t}}} + x} \]
          4. *-commutativeN/A

            \[\leadsto \frac{x}{\color{blue}{e^{2 \cdot \frac{b \cdot \frac{2}{3}}{t}} \cdot y} + x} \]
          5. lower-fma.f6446.2

            \[\leadsto \frac{x}{\color{blue}{\mathsf{fma}\left(e^{2 \cdot \frac{b \cdot 0.6666666666666666}{t}}, y, x\right)}} \]
        3. Applied rewrites46.2%

          \[\leadsto \frac{x}{\color{blue}{\mathsf{fma}\left(e^{2 \cdot \frac{b}{t \cdot 1.5}}, y, x\right)}} \]

        if -1.00000000000000001e-262 < (*.f64 y (exp.f64 (*.f64 #s(literal 2 binary64) (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64))))))))) < -0.0

        1. Initial program 98.8%

          \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \]
        2. Add Preprocessing
        3. Taylor expanded in b around inf

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
        4. Step-by-step derivation
          1. lower-*.f64N/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
          2. lower--.f64N/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \color{blue}{\left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)}\right)}} \]
          3. associate-*r/N/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3} \cdot 1}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
          4. metadata-evalN/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\color{blue}{\frac{2}{3}}}{t} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
          5. lower-/.f64N/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3}}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
          6. +-commutativeN/A

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\frac{2}{3}}{t} - \color{blue}{\left(a + \frac{5}{6}\right)}\right)\right)}} \]
          7. lower-+.f6469.9

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \color{blue}{\left(a + 0.8333333333333334\right)}\right)\right)}} \]
        5. Applied rewrites69.9%

          \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}} \]
        6. Taylor expanded in x around inf

          \[\leadsto \color{blue}{1} \]
        7. Step-by-step derivation
          1. Applied rewrites98.8%

            \[\leadsto \color{blue}{1} \]

          if -0.0 < (*.f64 y (exp.f64 (*.f64 #s(literal 2 binary64) (-.f64 (/.f64 (*.f64 z (sqrt.f64 (+.f64 t a))) t) (*.f64 (-.f64 b c) (-.f64 (+.f64 a (/.f64 #s(literal 5 binary64) #s(literal 6 binary64))) (/.f64 #s(literal 2 binary64) (*.f64 t #s(literal 3 binary64)))))))))

          1. Initial program 83.7%

            \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}} \]
          2. Add Preprocessing
          3. Taylor expanded in b around inf

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
          4. Step-by-step derivation
            1. lower-*.f64N/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)\right)}}} \]
            2. lower--.f64N/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \color{blue}{\left(\frac{2}{3} \cdot \frac{1}{t} - \left(\frac{5}{6} + a\right)\right)}\right)}} \]
            3. associate-*r/N/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3} \cdot 1}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
            4. metadata-evalN/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\color{blue}{\frac{2}{3}}}{t} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
            5. lower-/.f64N/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\color{blue}{\frac{\frac{2}{3}}{t}} - \left(\frac{5}{6} + a\right)\right)\right)}} \]
            6. +-commutativeN/A

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{\frac{2}{3}}{t} - \color{blue}{\left(a + \frac{5}{6}\right)}\right)\right)}} \]
            7. lower-+.f6463.9

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(b \cdot \left(\frac{0.6666666666666666}{t} - \color{blue}{\left(a + 0.8333333333333334\right)}\right)\right)}} \]
          5. Applied rewrites63.9%

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\left(b \cdot \left(\frac{0.6666666666666666}{t} - \left(a + 0.8333333333333334\right)\right)\right)}}} \]
          6. Taylor expanded in t around inf

            \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(-1 \cdot \color{blue}{\left(b \cdot \left(\frac{5}{6} + a\right)\right)}\right)}} \]
          7. Step-by-step derivation
            1. Applied rewrites52.9%

              \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(-b \cdot \left(a + 0.8333333333333334\right)\right)}} \]
          8. Recombined 3 regimes into one program.
          9. Final simplification72.2%

            \[\leadsto \begin{array}{l} \mathbf{if}\;y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\right)} \leq -1 \cdot 10^{-262}:\\ \;\;\;\;\frac{x}{\mathsf{fma}\left(e^{2 \cdot \frac{b}{t \cdot 1.5}}, y, x\right)}\\ \mathbf{elif}\;y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} + \left(b - c\right) \cdot \left(\frac{2}{t \cdot 3} - \left(a + \frac{5}{6}\right)\right)\right)} \leq 0:\\ \;\;\;\;1\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a + 0.8333333333333334\right) \cdot \left(-b\right)\right)}}\\ \end{array} \]
          10. Add Preprocessing

          Developer Target 1: 95.5% accurate, 0.7× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} t_1 := z \cdot \sqrt{t + a}\\ t_2 := a - \frac{5}{6}\\ \mathbf{if}\;t < -2.118326644891581 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333334 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t < 5.196588770651547 \cdot 10^{-123}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{t\_1 \cdot \left(\left(3 \cdot t\right) \cdot t\_2\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(t\_2 \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot t\_2}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{t\_1}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \end{array} \end{array} \]
          (FPCore (x y z t a b c)
           :precision binary64
           (let* ((t_1 (* z (sqrt (+ t a)))) (t_2 (- a (/ 5.0 6.0))))
             (if (< t -2.118326644891581e-50)
               (/
                x
                (+
                 x
                 (* y (exp (* 2.0 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b)))))))
               (if (< t 5.196588770651547e-123)
                 (/
                  x
                  (+
                   x
                   (*
                    y
                    (exp
                     (*
                      2.0
                      (/
                       (-
                        (* t_1 (* (* 3.0 t) t_2))
                        (*
                         (- (* (+ (/ 5.0 6.0) a) (* 3.0 t)) 2.0)
                         (* t_2 (* (- b c) t))))
                       (* (* (* t t) 3.0) t_2)))))))
                 (/
                  x
                  (+
                   x
                   (*
                    y
                    (exp
                     (*
                      2.0
                      (-
                       (/ t_1 t)
                       (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0))))))))))))))
          double code(double x, double y, double z, double t, double a, double b, double c) {
          	double t_1 = z * sqrt((t + a));
          	double t_2 = a - (5.0 / 6.0);
          	double tmp;
          	if (t < -2.118326644891581e-50) {
          		tmp = x / (x + (y * exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))));
          	} else if (t < 5.196588770651547e-123) {
          		tmp = x / (x + (y * exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))));
          	} else {
          		tmp = x / (x + (y * exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
          	}
          	return tmp;
          }
          
          real(8) function code(x, y, z, t, a, b, c)
              real(8), intent (in) :: x
              real(8), intent (in) :: y
              real(8), intent (in) :: z
              real(8), intent (in) :: t
              real(8), intent (in) :: a
              real(8), intent (in) :: b
              real(8), intent (in) :: c
              real(8) :: t_1
              real(8) :: t_2
              real(8) :: tmp
              t_1 = z * sqrt((t + a))
              t_2 = a - (5.0d0 / 6.0d0)
              if (t < (-2.118326644891581d-50)) then
                  tmp = x / (x + (y * exp((2.0d0 * (((a * c) + (0.8333333333333334d0 * c)) - (a * b))))))
              else if (t < 5.196588770651547d-123) then
                  tmp = x / (x + (y * exp((2.0d0 * (((t_1 * ((3.0d0 * t) * t_2)) - (((((5.0d0 / 6.0d0) + a) * (3.0d0 * t)) - 2.0d0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0d0) * t_2))))))
              else
                  tmp = x / (x + (y * exp((2.0d0 * ((t_1 / t) - ((b - c) * ((a + (5.0d0 / 6.0d0)) - (2.0d0 / (t * 3.0d0)))))))))
              end if
              code = tmp
          end function
          
          public static double code(double x, double y, double z, double t, double a, double b, double c) {
          	double t_1 = z * Math.sqrt((t + a));
          	double t_2 = a - (5.0 / 6.0);
          	double tmp;
          	if (t < -2.118326644891581e-50) {
          		tmp = x / (x + (y * Math.exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))));
          	} else if (t < 5.196588770651547e-123) {
          		tmp = x / (x + (y * Math.exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))));
          	} else {
          		tmp = x / (x + (y * Math.exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
          	}
          	return tmp;
          }
          
          def code(x, y, z, t, a, b, c):
          	t_1 = z * math.sqrt((t + a))
          	t_2 = a - (5.0 / 6.0)
          	tmp = 0
          	if t < -2.118326644891581e-50:
          		tmp = x / (x + (y * math.exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))))
          	elif t < 5.196588770651547e-123:
          		tmp = x / (x + (y * math.exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))))
          	else:
          		tmp = x / (x + (y * math.exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))))
          	return tmp
          
          function code(x, y, z, t, a, b, c)
          	t_1 = Float64(z * sqrt(Float64(t + a)))
          	t_2 = Float64(a - Float64(5.0 / 6.0))
          	tmp = 0.0
          	if (t < -2.118326644891581e-50)
          		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(a * c) + Float64(0.8333333333333334 * c)) - Float64(a * b)))))));
          	elseif (t < 5.196588770651547e-123)
          		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(Float64(t_1 * Float64(Float64(3.0 * t) * t_2)) - Float64(Float64(Float64(Float64(Float64(5.0 / 6.0) + a) * Float64(3.0 * t)) - 2.0) * Float64(t_2 * Float64(Float64(b - c) * t)))) / Float64(Float64(Float64(t * t) * 3.0) * t_2)))))));
          	else
          		tmp = Float64(x / Float64(x + Float64(y * exp(Float64(2.0 * Float64(Float64(t_1 / t) - Float64(Float64(b - c) * Float64(Float64(a + Float64(5.0 / 6.0)) - Float64(2.0 / Float64(t * 3.0))))))))));
          	end
          	return tmp
          end
          
          function tmp_2 = code(x, y, z, t, a, b, c)
          	t_1 = z * sqrt((t + a));
          	t_2 = a - (5.0 / 6.0);
          	tmp = 0.0;
          	if (t < -2.118326644891581e-50)
          		tmp = x / (x + (y * exp((2.0 * (((a * c) + (0.8333333333333334 * c)) - (a * b))))));
          	elseif (t < 5.196588770651547e-123)
          		tmp = x / (x + (y * exp((2.0 * (((t_1 * ((3.0 * t) * t_2)) - (((((5.0 / 6.0) + a) * (3.0 * t)) - 2.0) * (t_2 * ((b - c) * t)))) / (((t * t) * 3.0) * t_2))))));
          	else
          		tmp = x / (x + (y * exp((2.0 * ((t_1 / t) - ((b - c) * ((a + (5.0 / 6.0)) - (2.0 / (t * 3.0)))))))));
          	end
          	tmp_2 = tmp;
          end
          
          code[x_, y_, z_, t_, a_, b_, c_] := Block[{t$95$1 = N[(z * N[Sqrt[N[(t + a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(a - N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision]}, If[Less[t, -2.118326644891581e-50], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(a * c), $MachinePrecision] + N[(0.8333333333333334 * c), $MachinePrecision]), $MachinePrecision] - N[(a * b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Less[t, 5.196588770651547e-123], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(N[(t$95$1 * N[(N[(3.0 * t), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision] - N[(N[(N[(N[(N[(5.0 / 6.0), $MachinePrecision] + a), $MachinePrecision] * N[(3.0 * t), $MachinePrecision]), $MachinePrecision] - 2.0), $MachinePrecision] * N[(t$95$2 * N[(N[(b - c), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(t * t), $MachinePrecision] * 3.0), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x / N[(x + N[(y * N[Exp[N[(2.0 * N[(N[(t$95$1 / t), $MachinePrecision] - N[(N[(b - c), $MachinePrecision] * N[(N[(a + N[(5.0 / 6.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 / N[(t * 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          t_1 := z \cdot \sqrt{t + a}\\
          t_2 := a - \frac{5}{6}\\
          \mathbf{if}\;t < -2.118326644891581 \cdot 10^{-50}:\\
          \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333334 \cdot c\right) - a \cdot b\right)}}\\
          
          \mathbf{elif}\;t < 5.196588770651547 \cdot 10^{-123}:\\
          \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{t\_1 \cdot \left(\left(3 \cdot t\right) \cdot t\_2\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(t\_2 \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot t\_2}}}\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{t\_1}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\
          
          
          \end{array}
          \end{array}
          

          Reproduce

          ?
          herbie shell --seed 2024228 
          (FPCore (x y z t a b c)
            :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
            :precision binary64
          
            :alt
            (! :herbie-platform default (if (< t -2118326644891581/100000000000000000000000000000000000000000000000000000000000000000) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 4166666666666667/5000000000000000 c)) (* a b))))))) (if (< t 5196588770651547/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))))
          
            (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))