\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}\mathsf{expm1}\left(\mathsf{log1p}\left({y}^{6} \cdot 333.75\right)\right) + \mathsf{fma}\left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - \left({y}^{6} + \mathsf{fma}\left({y}^{4}, 121, 2\right)\right), x \cdot x, \mathsf{fma}\left(5.5, {y}^{8}, \frac{x}{2 \cdot y}\right)\right)double f(double x, double y) {
double r44908 = 333.75;
double r44909 = y;
double r44910 = 6.0;
double r44911 = pow(r44909, r44910);
double r44912 = r44908 * r44911;
double r44913 = x;
double r44914 = r44913 * r44913;
double r44915 = 11.0;
double r44916 = r44915 * r44913;
double r44917 = r44916 * r44913;
double r44918 = r44917 * r44909;
double r44919 = r44918 * r44909;
double r44920 = r44919 - r44911;
double r44921 = 121.0;
double r44922 = 4.0;
double r44923 = pow(r44909, r44922);
double r44924 = r44921 * r44923;
double r44925 = r44920 - r44924;
double r44926 = 2.0;
double r44927 = r44925 - r44926;
double r44928 = r44914 * r44927;
double r44929 = r44912 + r44928;
double r44930 = 5.5;
double r44931 = 8.0;
double r44932 = pow(r44909, r44931);
double r44933 = r44930 * r44932;
double r44934 = r44929 + r44933;
double r44935 = r44926 * r44909;
double r44936 = r44913 / r44935;
double r44937 = r44934 + r44936;
return r44937;
}
double f(double x, double y) {
double r44938 = y;
double r44939 = 6.0;
double r44940 = pow(r44938, r44939);
double r44941 = 333.75;
double r44942 = r44940 * r44941;
double r44943 = log1p(r44942);
double r44944 = expm1(r44943);
double r44945 = 11.0;
double r44946 = x;
double r44947 = r44945 * r44946;
double r44948 = r44947 * r44946;
double r44949 = r44948 * r44938;
double r44950 = r44949 * r44938;
double r44951 = 4.0;
double r44952 = pow(r44938, r44951);
double r44953 = 121.0;
double r44954 = 2.0;
double r44955 = fma(r44952, r44953, r44954);
double r44956 = r44940 + r44955;
double r44957 = r44950 - r44956;
double r44958 = r44946 * r44946;
double r44959 = 5.5;
double r44960 = 8.0;
double r44961 = pow(r44938, r44960);
double r44962 = r44954 * r44938;
double r44963 = r44946 / r44962;
double r44964 = fma(r44959, r44961, r44963);
double r44965 = fma(r44957, r44958, r44964);
double r44966 = r44944 + r44965;
return r44966;
}
Initial program 58.1
Simplified58.1
rmApplied fma-udef58.1
rmApplied expm1-log1p-u58.1
Final simplification58.1
herbie shell --seed 2019199 +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))))