Average Error: 0.0 → 0.0
Time: 13.5s
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 r36970 = x;
        double r36971 = y;
        double r36972 = 1.0;
        double r36973 = r36971 - r36972;
        double r36974 = z;
        double r36975 = r36973 * r36974;
        double r36976 = r36970 - r36975;
        double r36977 = t;
        double r36978 = r36977 - r36972;
        double r36979 = a;
        double r36980 = r36978 * r36979;
        double r36981 = r36976 - r36980;
        double r36982 = r36971 + r36977;
        double r36983 = 2.0;
        double r36984 = r36982 - r36983;
        double r36985 = b;
        double r36986 = r36984 * r36985;
        double r36987 = r36981 + r36986;
        return r36987;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r36988 = b;
        double r36989 = y;
        double r36990 = t;
        double r36991 = r36989 + r36990;
        double r36992 = 2.0;
        double r36993 = r36991 - r36992;
        double r36994 = 1.0;
        double r36995 = r36994 - r36989;
        double r36996 = z;
        double r36997 = a;
        double r36998 = r36994 - r36990;
        double r36999 = x;
        double r37000 = fma(r36997, r36998, r36999);
        double r37001 = fma(r36995, r36996, r37000);
        double r37002 = fma(r36988, r36993, r37001);
        return r37002;
}

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 2019303 +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)))