Average Error: 0.0 → 0.0
Time: 12.0s
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 r25140 = x;
        double r25141 = y;
        double r25142 = 1.0;
        double r25143 = r25141 - r25142;
        double r25144 = z;
        double r25145 = r25143 * r25144;
        double r25146 = r25140 - r25145;
        double r25147 = t;
        double r25148 = r25147 - r25142;
        double r25149 = a;
        double r25150 = r25148 * r25149;
        double r25151 = r25146 - r25150;
        double r25152 = r25141 + r25147;
        double r25153 = 2.0;
        double r25154 = r25152 - r25153;
        double r25155 = b;
        double r25156 = r25154 * r25155;
        double r25157 = r25151 + r25156;
        return r25157;
}

double f(double x, double y, double z, double t, double a, double b) {
        double r25158 = b;
        double r25159 = y;
        double r25160 = t;
        double r25161 = r25159 + r25160;
        double r25162 = 2.0;
        double r25163 = r25161 - r25162;
        double r25164 = 1.0;
        double r25165 = r25164 - r25159;
        double r25166 = z;
        double r25167 = a;
        double r25168 = r25164 - r25160;
        double r25169 = x;
        double r25170 = fma(r25167, r25168, r25169);
        double r25171 = fma(r25165, r25166, r25170);
        double r25172 = fma(r25158, r25163, r25171);
        return r25172;
}

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