Average Error: 0.0 → 0.0
Time: 1.9s
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(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \left(t - 1\right) \cdot a\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(1 - y, z, \mathsf{fma}\left(b, \left(y + t\right) - 2, x\right) - \left(t - 1\right) \cdot a\right)
double f(double x, double y, double z, double t, double a, double b) {
        double r24310 = x;
        double r24311 = y;
        double r24312 = 1.0;
        double r24313 = r24311 - r24312;
        double r24314 = z;
        double r24315 = r24313 * r24314;
        double r24316 = r24310 - r24315;
        double r24317 = t;
        double r24318 = r24317 - r24312;
        double r24319 = a;
        double r24320 = r24318 * r24319;
        double r24321 = r24316 - r24320;
        double r24322 = r24311 + r24317;
        double r24323 = 2.0;
        double r24324 = r24322 - r24323;
        double r24325 = b;
        double r24326 = r24324 * r24325;
        double r24327 = r24321 + r24326;
        return r24327;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r24328 = 1.0;
        double r24329 = y;
        double r24330 = r24328 - r24329;
        double r24331 = z;
        double r24332 = b;
        double r24333 = t;
        double r24334 = r24329 + r24333;
        double r24335 = 2.0;
        double r24336 = r24334 - r24335;
        double r24337 = x;
        double r24338 = fma(r24332, r24336, r24337);
        double r24339 = r24333 - r24328;
        double r24340 = a;
        double r24341 = r24339 * r24340;
        double r24342 = r24338 - r24341;
        double r24343 = fma(r24330, r24331, r24342);
        return r24343;
}

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

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

Reproduce

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