\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 r44907 = 333.75;
double r44908 = y;
double r44909 = 6.0;
double r44910 = pow(r44908, r44909);
double r44911 = r44907 * r44910;
double r44912 = x;
double r44913 = r44912 * r44912;
double r44914 = 11.0;
double r44915 = r44914 * r44912;
double r44916 = r44915 * r44912;
double r44917 = r44916 * r44908;
double r44918 = r44917 * r44908;
double r44919 = r44918 - r44910;
double r44920 = 121.0;
double r44921 = 4.0;
double r44922 = pow(r44908, r44921);
double r44923 = r44920 * r44922;
double r44924 = r44919 - r44923;
double r44925 = 2.0;
double r44926 = r44924 - r44925;
double r44927 = r44913 * r44926;
double r44928 = r44911 + r44927;
double r44929 = 5.5;
double r44930 = 8.0;
double r44931 = pow(r44908, r44930);
double r44932 = r44929 * r44931;
double r44933 = r44928 + r44932;
double r44934 = r44925 * r44908;
double r44935 = r44912 / r44934;
double r44936 = r44933 + r44935;
return r44936;
}
double f(double x, double y) {
double r44937 = y;
double r44938 = 6.0;
double r44939 = pow(r44937, r44938);
double r44940 = 333.75;
double r44941 = r44939 * r44940;
double r44942 = log1p(r44941);
double r44943 = expm1(r44942);
double r44944 = 11.0;
double r44945 = x;
double r44946 = r44944 * r44945;
double r44947 = r44946 * r44945;
double r44948 = r44947 * r44937;
double r44949 = r44948 * r44937;
double r44950 = 4.0;
double r44951 = pow(r44937, r44950);
double r44952 = 121.0;
double r44953 = 2.0;
double r44954 = fma(r44951, r44952, r44953);
double r44955 = r44939 + r44954;
double r44956 = r44949 - r44955;
double r44957 = r44945 * r44945;
double r44958 = 5.5;
double r44959 = 8.0;
double r44960 = pow(r44937, r44959);
double r44961 = r44953 * r44937;
double r44962 = r44945 / r44961;
double r44963 = fma(r44958, r44960, r44962);
double r44964 = fma(r44956, r44957, r44963);
double r44965 = r44943 + r44964;
return r44965;
}
Initial program 58.1
Simplified58.1
rmApplied fma-udef58.1
rmApplied expm1-log1p-u58.1
Final simplification58.1
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x y)
:name "Rump's expression from Stadtherr's award speech"
:precision binary64
:pre (and (== x 77617) (== y 33096))
(+ (+ (+ (* 333.75 (pow y 6)) (* (* x x) (- (- (- (* (* (* (* 11 x) x) y) y) (pow y 6)) (* 121 (pow y 4))) 2))) (* 5.5 (pow y 8))) (/ x (* 2 y))))