\left(\left(333.75 \cdot {y}^{6} + \left(x \cdot x\right) \cdot \left(\left(\left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - {y}^{6}\right) - 121 \cdot {y}^{4}\right) - 2\right)\right) + 5.5 \cdot {y}^{8}\right) + \frac{x}{2 \cdot y}\frac{{\left(\mathsf{expm1}\left(\mathsf{log1p}\left({y}^{6} \cdot 333.75\right)\right)\right)}^{3} + {\left(\mathsf{fma}\left(\left(11 \cdot \left(\left(y \cdot x\right) \cdot \left(y \cdot x\right)\right) - \mathsf{fma}\left({y}^{4}, 121, {y}^{6}\right)\right) - 2, x \cdot x, \mathsf{fma}\left(5.5, {y}^{8}, \frac{x}{2 \cdot y}\right)\right)\right)}^{3}}{\mathsf{expm1}\left(\mathsf{log1p}\left({y}^{6} \cdot 333.75\right)\right) \cdot \mathsf{expm1}\left(\mathsf{log1p}\left({y}^{6} \cdot 333.75\right)\right) + \left(\left(\left(\left(11 \cdot \left(\left(y \cdot x\right) \cdot \left(y \cdot x\right)\right) - \mathsf{fma}\left({y}^{4}, 121, {y}^{6}\right)\right) - 2\right) \cdot \left(x \cdot x\right) + \mathsf{fma}\left(5.5, {y}^{8}, \frac{x}{2 \cdot y}\right)\right) \cdot \mathsf{fma}\left(\left(11 \cdot \left(\left(y \cdot x\right) \cdot \left(y \cdot x\right)\right) - \mathsf{fma}\left({y}^{4}, 121, {y}^{6}\right)\right) - 2, x \cdot x, \mathsf{fma}\left(5.5, {y}^{8}, \frac{x}{2 \cdot y}\right)\right) - \mathsf{fma}\left(\left(11 \cdot \left(\left(y \cdot x\right) \cdot \left(y \cdot x\right)\right) - \mathsf{fma}\left({y}^{4}, 121, {y}^{6}\right)\right) - 2, x \cdot x, \mathsf{fma}\left(5.5, {y}^{8}, \frac{x}{2 \cdot y}\right)\right) \cdot \mathsf{expm1}\left(\mathsf{log1p}\left({y}^{6} \cdot 333.75\right)\right)\right)}double f(double x, double y) {
double r2154667 = 333.75;
double r2154668 = y;
double r2154669 = 6.0;
double r2154670 = pow(r2154668, r2154669);
double r2154671 = r2154667 * r2154670;
double r2154672 = x;
double r2154673 = r2154672 * r2154672;
double r2154674 = 11.0;
double r2154675 = r2154674 * r2154672;
double r2154676 = r2154675 * r2154672;
double r2154677 = r2154676 * r2154668;
double r2154678 = r2154677 * r2154668;
double r2154679 = r2154678 - r2154670;
double r2154680 = 121.0;
double r2154681 = 4.0;
double r2154682 = pow(r2154668, r2154681);
double r2154683 = r2154680 * r2154682;
double r2154684 = r2154679 - r2154683;
double r2154685 = 2.0;
double r2154686 = r2154684 - r2154685;
double r2154687 = r2154673 * r2154686;
double r2154688 = r2154671 + r2154687;
double r2154689 = 5.5;
double r2154690 = 8.0;
double r2154691 = pow(r2154668, r2154690);
double r2154692 = r2154689 * r2154691;
double r2154693 = r2154688 + r2154692;
double r2154694 = r2154685 * r2154668;
double r2154695 = r2154672 / r2154694;
double r2154696 = r2154693 + r2154695;
return r2154696;
}
double f(double x, double y) {
double r2154697 = y;
double r2154698 = 6.0;
double r2154699 = pow(r2154697, r2154698);
double r2154700 = 333.75;
double r2154701 = r2154699 * r2154700;
double r2154702 = log1p(r2154701);
double r2154703 = expm1(r2154702);
double r2154704 = 3.0;
double r2154705 = pow(r2154703, r2154704);
double r2154706 = 11.0;
double r2154707 = x;
double r2154708 = r2154697 * r2154707;
double r2154709 = r2154708 * r2154708;
double r2154710 = r2154706 * r2154709;
double r2154711 = 4.0;
double r2154712 = pow(r2154697, r2154711);
double r2154713 = 121.0;
double r2154714 = fma(r2154712, r2154713, r2154699);
double r2154715 = r2154710 - r2154714;
double r2154716 = 2.0;
double r2154717 = r2154715 - r2154716;
double r2154718 = r2154707 * r2154707;
double r2154719 = 5.5;
double r2154720 = 8.0;
double r2154721 = pow(r2154697, r2154720);
double r2154722 = r2154716 * r2154697;
double r2154723 = r2154707 / r2154722;
double r2154724 = fma(r2154719, r2154721, r2154723);
double r2154725 = fma(r2154717, r2154718, r2154724);
double r2154726 = pow(r2154725, r2154704);
double r2154727 = r2154705 + r2154726;
double r2154728 = r2154703 * r2154703;
double r2154729 = r2154717 * r2154718;
double r2154730 = r2154729 + r2154724;
double r2154731 = r2154730 * r2154725;
double r2154732 = r2154725 * r2154703;
double r2154733 = r2154731 - r2154732;
double r2154734 = r2154728 + r2154733;
double r2154735 = r2154727 / r2154734;
return r2154735;
}
Initial program 58.1
Simplified58.1
rmApplied fma-udef58.1
rmApplied expm1-log1p-u58.1
rmApplied flip3-+58.1
rmApplied fma-udef58.1
Final simplification58.1
herbie shell --seed 2019200 +o rules:numerics
(FPCore (x y)
:name "Rump's expression from Stadtherr's award speech"
:pre (and (== x 77617.0) (== y 33096.0))
(+ (+ (+ (* 333.75 (pow y 6.0)) (* (* x x) (- (- (- (* (* (* (* 11.0 x) x) y) y) (pow y 6.0)) (* 121.0 (pow y 4.0))) 2.0))) (* 5.5 (pow y 8.0))) (/ x (* 2.0 y))))