Average Error: 0 → 0
Time: 5.8s
Precision: 64
\[\left(\left(\left(0.0 \le t \le 1 \land 0.0 \le a \le 1\right) \land 0.0 \le b \le 1\right) \land 0.0 \le c \le 1\right) \land 0.0 \le d \le 1\]
\[\left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d\]
\[\left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d\]
\left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d
\left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d
double f(double t, double a, double b, double c, double d) {
        double r2088303 = 1.0;
        double r2088304 = t;
        double r2088305 = r2088303 - r2088304;
        double r2088306 = 3.0;
        double r2088307 = pow(r2088305, r2088306);
        double r2088308 = a;
        double r2088309 = r2088307 * r2088308;
        double r2088310 = 2.0;
        double r2088311 = pow(r2088305, r2088310);
        double r2088312 = r2088306 * r2088311;
        double r2088313 = r2088312 * r2088304;
        double r2088314 = b;
        double r2088315 = r2088313 * r2088314;
        double r2088316 = r2088309 + r2088315;
        double r2088317 = r2088306 * r2088305;
        double r2088318 = pow(r2088304, r2088310);
        double r2088319 = r2088317 * r2088318;
        double r2088320 = c;
        double r2088321 = r2088319 * r2088320;
        double r2088322 = r2088316 + r2088321;
        double r2088323 = pow(r2088304, r2088306);
        double r2088324 = d;
        double r2088325 = r2088323 * r2088324;
        double r2088326 = r2088322 + r2088325;
        return r2088326;
}

double f(double t, double a, double b, double c, double d) {
        double r2088327 = 1.0;
        double r2088328 = t;
        double r2088329 = r2088327 - r2088328;
        double r2088330 = 3.0;
        double r2088331 = pow(r2088329, r2088330);
        double r2088332 = a;
        double r2088333 = r2088331 * r2088332;
        double r2088334 = 2.0;
        double r2088335 = pow(r2088329, r2088334);
        double r2088336 = r2088330 * r2088335;
        double r2088337 = r2088336 * r2088328;
        double r2088338 = b;
        double r2088339 = r2088337 * r2088338;
        double r2088340 = r2088333 + r2088339;
        double r2088341 = r2088330 * r2088329;
        double r2088342 = pow(r2088328, r2088334);
        double r2088343 = r2088341 * r2088342;
        double r2088344 = c;
        double r2088345 = r2088343 * r2088344;
        double r2088346 = r2088340 + r2088345;
        double r2088347 = pow(r2088328, r2088330);
        double r2088348 = d;
        double r2088349 = r2088347 * r2088348;
        double r2088350 = r2088346 + r2088349;
        return r2088350;
}

Error

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0

    \[\left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d\]
  2. Final simplification0

    \[\leadsto \left(\left({\left(1 - t\right)}^{3} \cdot a + \left(\left(3 \cdot {\left(1 - t\right)}^{2}\right) \cdot t\right) \cdot b\right) + \left(\left(3 \cdot \left(1 - t\right)\right) \cdot {t}^{2}\right) \cdot c\right) + {t}^{3} \cdot d\]

Reproduce

herbie shell --seed 1 
(FPCore (t a b c d)
  :name "pow(1-t,3)*a+3*pow(1-t,2)*t*b+3*(1-t)*pow(t,2)*c+pow(t,3)*d"
  :precision binary32
  :pre (and (and (and (and (<= 0.0 t 1) (<= 0.0 a 1)) (<= 0.0 b 1)) (<= 0.0 c 1)) (<= 0.0 d 1))
  (+ (+ (+ (* (pow (- 1 t) 3) a) (* (* (* 3 (pow (- 1 t) 2)) t) b)) (* (* (* 3 (- 1 t)) (pow t 2)) c)) (* (pow t 3) d)))