Average Error: 0.0 → 0.0
Time: 9.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(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 r51712 = x;
        double r51713 = y;
        double r51714 = 1.0;
        double r51715 = r51713 - r51714;
        double r51716 = z;
        double r51717 = r51715 * r51716;
        double r51718 = r51712 - r51717;
        double r51719 = t;
        double r51720 = r51719 - r51714;
        double r51721 = a;
        double r51722 = r51720 * r51721;
        double r51723 = r51718 - r51722;
        double r51724 = r51713 + r51719;
        double r51725 = 2.0;
        double r51726 = r51724 - r51725;
        double r51727 = b;
        double r51728 = r51726 * r51727;
        double r51729 = r51723 + r51728;
        return r51729;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r51730 = b;
        double r51731 = y;
        double r51732 = t;
        double r51733 = r51731 + r51732;
        double r51734 = 2.0;
        double r51735 = r51733 - r51734;
        double r51736 = 1.0;
        double r51737 = r51736 - r51731;
        double r51738 = z;
        double r51739 = a;
        double r51740 = r51736 - r51732;
        double r51741 = x;
        double r51742 = fma(r51739, r51740, r51741);
        double r51743 = fma(r51737, r51738, r51742);
        double r51744 = fma(r51730, r51735, r51743);
        return r51744;
}

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