Average Error: 0.0 → 0.0
Time: 7.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(z, 1 - y, \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(z, 1 - y, \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 r14804 = x;
        double r14805 = y;
        double r14806 = 1.0;
        double r14807 = r14805 - r14806;
        double r14808 = z;
        double r14809 = r14807 * r14808;
        double r14810 = r14804 - r14809;
        double r14811 = t;
        double r14812 = r14811 - r14806;
        double r14813 = a;
        double r14814 = r14812 * r14813;
        double r14815 = r14810 - r14814;
        double r14816 = r14805 + r14811;
        double r14817 = 2.0;
        double r14818 = r14816 - r14817;
        double r14819 = b;
        double r14820 = r14818 * r14819;
        double r14821 = r14815 + r14820;
        return r14821;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r14822 = b;
        double r14823 = y;
        double r14824 = t;
        double r14825 = r14823 + r14824;
        double r14826 = 2.0;
        double r14827 = r14825 - r14826;
        double r14828 = z;
        double r14829 = 1.0;
        double r14830 = r14829 - r14823;
        double r14831 = a;
        double r14832 = r14829 - r14824;
        double r14833 = x;
        double r14834 = fma(r14831, r14832, r14833);
        double r14835 = fma(r14828, r14830, r14834);
        double r14836 = fma(r14822, r14827, r14835);
        return r14836;
}

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(z, 1 - y, \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(z, 1 - y, \mathsf{fma}\left(a, 1 - t, x\right)\right)\right)\]

Reproduce

herbie shell --seed 2019198 +o rules:numerics
(FPCore (x y z t a b)
  :name "Statistics.Distribution.Beta:$centropy from math-functions-0.1.5.2"
  (+ (- (- x (* (- y 1.0) z)) (* (- t 1.0) a)) (* (- (+ y t) 2.0) b)))