Average Error: 0.0 → 0.0
Time: 7.4s
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 r18691 = x;
        double r18692 = y;
        double r18693 = 1.0;
        double r18694 = r18692 - r18693;
        double r18695 = z;
        double r18696 = r18694 * r18695;
        double r18697 = r18691 - r18696;
        double r18698 = t;
        double r18699 = r18698 - r18693;
        double r18700 = a;
        double r18701 = r18699 * r18700;
        double r18702 = r18697 - r18701;
        double r18703 = r18692 + r18698;
        double r18704 = 2.0;
        double r18705 = r18703 - r18704;
        double r18706 = b;
        double r18707 = r18705 * r18706;
        double r18708 = r18702 + r18707;
        return r18708;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r18709 = b;
        double r18710 = y;
        double r18711 = t;
        double r18712 = r18710 + r18711;
        double r18713 = 2.0;
        double r18714 = r18712 - r18713;
        double r18715 = 1.0;
        double r18716 = r18715 - r18710;
        double r18717 = z;
        double r18718 = a;
        double r18719 = r18715 - r18711;
        double r18720 = x;
        double r18721 = fma(r18718, r18719, r18720);
        double r18722 = fma(r18716, r18717, r18721);
        double r18723 = fma(r18709, r18714, r18722);
        return r18723;
}

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