\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 r37020 = 333.75;
double r37021 = y;
double r37022 = 6.0;
double r37023 = pow(r37021, r37022);
double r37024 = r37020 * r37023;
double r37025 = x;
double r37026 = r37025 * r37025;
double r37027 = 11.0;
double r37028 = r37027 * r37025;
double r37029 = r37028 * r37025;
double r37030 = r37029 * r37021;
double r37031 = r37030 * r37021;
double r37032 = r37031 - r37023;
double r37033 = 121.0;
double r37034 = 4.0;
double r37035 = pow(r37021, r37034);
double r37036 = r37033 * r37035;
double r37037 = r37032 - r37036;
double r37038 = 2.0;
double r37039 = r37037 - r37038;
double r37040 = r37026 * r37039;
double r37041 = r37024 + r37040;
double r37042 = 5.5;
double r37043 = 8.0;
double r37044 = pow(r37021, r37043);
double r37045 = r37042 * r37044;
double r37046 = r37041 + r37045;
double r37047 = r37038 * r37021;
double r37048 = r37025 / r37047;
double r37049 = r37046 + r37048;
return r37049;
}
double f(double x, double y) {
double r37050 = y;
double r37051 = 6.0;
double r37052 = pow(r37050, r37051);
double r37053 = 333.75;
double r37054 = r37052 * r37053;
double r37055 = log1p(r37054);
double r37056 = expm1(r37055);
double r37057 = 11.0;
double r37058 = x;
double r37059 = r37057 * r37058;
double r37060 = r37059 * r37058;
double r37061 = r37060 * r37050;
double r37062 = r37061 * r37050;
double r37063 = 4.0;
double r37064 = pow(r37050, r37063);
double r37065 = 121.0;
double r37066 = 2.0;
double r37067 = fma(r37064, r37065, r37066);
double r37068 = r37052 + r37067;
double r37069 = r37062 - r37068;
double r37070 = r37058 * r37058;
double r37071 = 5.5;
double r37072 = 8.0;
double r37073 = pow(r37050, r37072);
double r37074 = r37066 * r37050;
double r37075 = r37058 / r37074;
double r37076 = fma(r37071, r37073, r37075);
double r37077 = fma(r37069, r37070, r37076);
double r37078 = r37056 + r37077;
return r37078;
}
Initial program 58.1
Simplified58.1
rmApplied fma-udef58.1
rmApplied expm1-log1p-u58.1
Final simplification58.1
herbie shell --seed 2019351 +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))))