Average Error: 0.0 → 0.0
Time: 7.1s
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\]
\[\mathsf{fma}\left(b, \left(y + t\right) - 2, \mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(a, 1 - t, x\right)\right)\right)\]
\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
\mathsf{fma}\left(b, \left(y + t\right) - 2, \mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(a, 1 - t, x\right)\right)\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r13271 = x;
        double r13272 = y;
        double r13273 = 1.0;
        double r13274 = r13272 - r13273;
        double r13275 = z;
        double r13276 = r13274 * r13275;
        double r13277 = r13271 - r13276;
        double r13278 = t;
        double r13279 = r13278 - r13273;
        double r13280 = a;
        double r13281 = r13279 * r13280;
        double r13282 = r13277 - r13281;
        double r13283 = r13272 + r13278;
        double r13284 = 2.0;
        double r13285 = r13283 - r13284;
        double r13286 = b;
        double r13287 = r13285 * r13286;
        double r13288 = r13282 + r13287;
        return r13288;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r13289 = b;
        double r13290 = y;
        double r13291 = t;
        double r13292 = r13290 + r13291;
        double r13293 = 2.0;
        double r13294 = r13292 - r13293;
        double r13295 = 1.0;
        double r13296 = r13295 - r13290;
        double r13297 = z;
        double r13298 = a;
        double r13299 = r13295 - r13291;
        double r13300 = x;
        double r13301 = fma(r13298, r13299, r13300);
        double r13302 = fma(r13296, r13297, r13301);
        double r13303 = fma(r13289, r13294, r13302);
        return r13303;
}

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. 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(b, \left(y + t\right) - 2, \mathsf{fma}\left(1 - y, z, \mathsf{fma}\left(a, 1 - t, x\right)\right)\right)}\]
  3. Final simplification0.0

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

Reproduce

herbie shell --seed 2019323 +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)))