\frac{2 + \left(\left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \left(\cos x - \cos y\right)}{3 \cdot \left(\left(1 + \frac{\sqrt{5} - 1}{2} \cdot \cos x\right) + \frac{3 - \sqrt{5}}{2} \cdot \cos y\right)}\frac{\frac{\mathsf{fma}\left(\sqrt{2} \cdot \left(\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \sqrt[3]{\sin x} - {\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right) + \left({\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3} + \left(-{\left(\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)}^{3}\right)\right) \cdot \sqrt{2}, \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right)}double f(double x, double y) {
double r280016 = 2.0;
double r280017 = sqrt(r280016);
double r280018 = x;
double r280019 = sin(r280018);
double r280020 = y;
double r280021 = sin(r280020);
double r280022 = 16.0;
double r280023 = r280021 / r280022;
double r280024 = r280019 - r280023;
double r280025 = r280017 * r280024;
double r280026 = r280019 / r280022;
double r280027 = r280021 - r280026;
double r280028 = r280025 * r280027;
double r280029 = cos(r280018);
double r280030 = cos(r280020);
double r280031 = r280029 - r280030;
double r280032 = r280028 * r280031;
double r280033 = r280016 + r280032;
double r280034 = 3.0;
double r280035 = 1.0;
double r280036 = 5.0;
double r280037 = sqrt(r280036);
double r280038 = r280037 - r280035;
double r280039 = r280038 / r280016;
double r280040 = r280039 * r280029;
double r280041 = r280035 + r280040;
double r280042 = r280034 - r280037;
double r280043 = r280042 / r280016;
double r280044 = r280043 * r280030;
double r280045 = r280041 + r280044;
double r280046 = r280034 * r280045;
double r280047 = r280033 / r280046;
return r280047;
}
double f(double x, double y) {
double r280048 = 2.0;
double r280049 = sqrt(r280048);
double r280050 = x;
double r280051 = sin(r280050);
double r280052 = cbrt(r280051);
double r280053 = r280052 * r280052;
double r280054 = r280053 * r280052;
double r280055 = y;
double r280056 = sin(r280055);
double r280057 = cbrt(r280056);
double r280058 = 16.0;
double r280059 = cbrt(r280058);
double r280060 = r280057 / r280059;
double r280061 = 3.0;
double r280062 = pow(r280060, r280061);
double r280063 = r280054 - r280062;
double r280064 = r280049 * r280063;
double r280065 = -r280062;
double r280066 = r280062 + r280065;
double r280067 = r280066 * r280049;
double r280068 = r280064 + r280067;
double r280069 = r280051 / r280058;
double r280070 = r280056 - r280069;
double r280071 = cos(r280050);
double r280072 = cos(r280055);
double r280073 = r280071 - r280072;
double r280074 = r280070 * r280073;
double r280075 = fma(r280068, r280074, r280048);
double r280076 = 3.0;
double r280077 = r280075 / r280076;
double r280078 = 5.0;
double r280079 = sqrt(r280078);
double r280080 = r280076 - r280079;
double r280081 = r280080 / r280048;
double r280082 = 1.0;
double r280083 = r280079 - r280082;
double r280084 = r280083 / r280048;
double r280085 = fma(r280071, r280084, r280082);
double r280086 = fma(r280072, r280081, r280085);
double r280087 = r280077 / r280086;
return r280087;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-cube-cbrt0.5
Applied prod-diff0.5
Applied distribute-lft-in0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
:precision binary64
(/ (+ 2 (* (* (* (sqrt 2) (- (sin x) (/ (sin y) 16))) (- (sin y) (/ (sin x) 16))) (- (cos x) (cos y)))) (* 3 (+ (+ 1 (* (/ (- (sqrt 5) 1) 2) (cos x))) (* (/ (- 3 (sqrt 5)) 2) (cos y))))))