\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 r45006 = 333.75;
double r45007 = y;
double r45008 = 6.0;
double r45009 = pow(r45007, r45008);
double r45010 = r45006 * r45009;
double r45011 = x;
double r45012 = r45011 * r45011;
double r45013 = 11.0;
double r45014 = r45013 * r45011;
double r45015 = r45014 * r45011;
double r45016 = r45015 * r45007;
double r45017 = r45016 * r45007;
double r45018 = r45017 - r45009;
double r45019 = 121.0;
double r45020 = 4.0;
double r45021 = pow(r45007, r45020);
double r45022 = r45019 * r45021;
double r45023 = r45018 - r45022;
double r45024 = 2.0;
double r45025 = r45023 - r45024;
double r45026 = r45012 * r45025;
double r45027 = r45010 + r45026;
double r45028 = 5.5;
double r45029 = 8.0;
double r45030 = pow(r45007, r45029);
double r45031 = r45028 * r45030;
double r45032 = r45027 + r45031;
double r45033 = r45024 * r45007;
double r45034 = r45011 / r45033;
double r45035 = r45032 + r45034;
return r45035;
}
double f(double x, double y) {
double r45036 = y;
double r45037 = 6.0;
double r45038 = pow(r45036, r45037);
double r45039 = 333.75;
double r45040 = r45038 * r45039;
double r45041 = log1p(r45040);
double r45042 = expm1(r45041);
double r45043 = 11.0;
double r45044 = x;
double r45045 = r45043 * r45044;
double r45046 = r45045 * r45044;
double r45047 = r45046 * r45036;
double r45048 = r45047 * r45036;
double r45049 = 4.0;
double r45050 = pow(r45036, r45049);
double r45051 = 121.0;
double r45052 = 2.0;
double r45053 = fma(r45050, r45051, r45052);
double r45054 = r45038 + r45053;
double r45055 = r45048 - r45054;
double r45056 = r45044 * r45044;
double r45057 = 5.5;
double r45058 = 8.0;
double r45059 = pow(r45036, r45058);
double r45060 = r45052 * r45036;
double r45061 = r45044 / r45060;
double r45062 = fma(r45057, r45059, r45061);
double r45063 = fma(r45055, r45056, r45062);
double r45064 = r45042 + r45063;
return r45064;
}
Initial program 58.1
Simplified58.1
rmApplied fma-udef58.1
rmApplied expm1-log1p-u58.1
Final simplification58.1
herbie shell --seed 2019303 +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))))