Average Error: 0.0 → 0.4
Time: 4.6s
Precision: 64
\[\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b\]
\[\begin{array}{l} \mathbf{if}\;t \le -6.2465934987282541 \cdot 10^{84} \lor \neg \left(t \le 895764.5183397294\right):\\ \;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, y, \mathsf{fma}\left(b, t, x\right)\right) - \left(t - 1\right) \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \frac{\left(t \cdot t - 1 \cdot 1\right) \cdot a}{t + 1}\right)\\ \end{array}\]
\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b
\begin{array}{l}
\mathbf{if}\;t \le -6.2465934987282541 \cdot 10^{84} \lor \neg \left(t \le 895764.5183397294\right):\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, y, \mathsf{fma}\left(b, t, x\right)\right) - \left(t - 1\right) \cdot a\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \frac{\left(t \cdot t - 1 \cdot 1\right) \cdot a}{t + 1}\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b) {
        double r30153 = x;
        double r30154 = y;
        double r30155 = 1.0;
        double r30156 = r30154 - r30155;
        double r30157 = z;
        double r30158 = r30156 * r30157;
        double r30159 = r30153 - r30158;
        double r30160 = t;
        double r30161 = r30160 - r30155;
        double r30162 = a;
        double r30163 = r30161 * r30162;
        double r30164 = r30159 - r30163;
        double r30165 = r30154 + r30160;
        double r30166 = 2.0;
        double r30167 = r30165 - r30166;
        double r30168 = b;
        double r30169 = r30167 * r30168;
        double r30170 = r30164 + r30169;
        return r30170;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r30171 = t;
        double r30172 = -6.246593498728254e+84;
        bool r30173 = r30171 <= r30172;
        double r30174 = 895764.5183397294;
        bool r30175 = r30171 <= r30174;
        double r30176 = !r30175;
        bool r30177 = r30173 || r30176;
        double r30178 = 1.0;
        double r30179 = y;
        double r30180 = r30178 - r30179;
        double r30181 = z;
        double r30182 = b;
        double r30183 = x;
        double r30184 = fma(r30182, r30171, r30183);
        double r30185 = fma(r30182, r30179, r30184);
        double r30186 = r30171 - r30178;
        double r30187 = a;
        double r30188 = r30186 * r30187;
        double r30189 = r30185 - r30188;
        double r30190 = fma(r30180, r30181, r30189);
        double r30191 = r30179 + r30171;
        double r30192 = 2.0;
        double r30193 = r30191 - r30192;
        double r30194 = fma(r30182, r30193, r30183);
        double r30195 = r30171 * r30171;
        double r30196 = r30178 * r30178;
        double r30197 = r30195 - r30196;
        double r30198 = r30197 * r30187;
        double r30199 = r30171 + r30178;
        double r30200 = r30198 / r30199;
        double r30201 = r30194 - r30200;
        double r30202 = fma(r30180, r30181, r30201);
        double r30203 = r30177 ? r30190 : r30202;
        return r30203;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Derivation

  1. Split input into 2 regimes
  2. if t < -6.246593498728254e+84 or 895764.5183397294 < t

    1. Initial program 0.0

      \[\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \left(t - 1\right) \cdot a\right)}\]
    3. Taylor expanded around inf 0.2

      \[\leadsto \mathsf{fma}\left(1 - y, z, \color{blue}{\left(y \cdot b + \left(x + t \cdot b\right)\right)} - \left(t - 1\right) \cdot a\right)\]
    4. Simplified0.2

      \[\leadsto \mathsf{fma}\left(1 - y, z, \color{blue}{\mathsf{fma}\left(b, y, \mathsf{fma}\left(b, t, x\right)\right)} - \left(t - 1\right) \cdot a\right)\]

    if -6.246593498728254e+84 < t < 895764.5183397294

    1. Initial program 0.0

      \[\left(\left(x - \left(y - 1\right) \cdot z\right) - \left(t - 1\right) \cdot a\right) + \left(\left(y + t\right) - 2\right) \cdot b\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \left(t - 1\right) \cdot a\right)}\]
    3. Using strategy rm
    4. Applied flip--0.0

      \[\leadsto \mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \color{blue}{\frac{t \cdot t - 1 \cdot 1}{t + 1}} \cdot a\right)\]
    5. Applied associate-*l/0.5

      \[\leadsto \mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \color{blue}{\frac{\left(t \cdot t - 1 \cdot 1\right) \cdot a}{t + 1}}\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -6.2465934987282541 \cdot 10^{84} \lor \neg \left(t \le 895764.5183397294\right):\\ \;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, y, \mathsf{fma}\left(b, t, x\right)\right) - \left(t - 1\right) \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \frac{\left(t \cdot t - 1 \cdot 1\right) \cdot a}{t + 1}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z t a b)
  :name "Statistics.Distribution.Beta:$centropy from math-functions-0.1.5.2"
  :precision binary64
  (+ (- (- x (* (- y 1) z)) (* (- t 1) a)) (* (- (+ y t) 2) b)))