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;
}



# Try it out

Results

 In Out
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)))