\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 \mathsf{fma}\left(1, \sin x, -\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}} \cdot \frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) + \sqrt{2} \cdot \left(\frac{\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(\left(-\frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right) + \frac{\sqrt[3]{\sin y}}{\sqrt[3]{16}}\right)\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{3}}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}double f(double x, double y) {
double r189006 = 2.0;
double r189007 = sqrt(r189006);
double r189008 = x;
double r189009 = sin(r189008);
double r189010 = y;
double r189011 = sin(r189010);
double r189012 = 16.0;
double r189013 = r189011 / r189012;
double r189014 = r189009 - r189013;
double r189015 = r189007 * r189014;
double r189016 = r189009 / r189012;
double r189017 = r189011 - r189016;
double r189018 = r189015 * r189017;
double r189019 = cos(r189008);
double r189020 = cos(r189010);
double r189021 = r189019 - r189020;
double r189022 = r189018 * r189021;
double r189023 = r189006 + r189022;
double r189024 = 3.0;
double r189025 = 1.0;
double r189026 = 5.0;
double r189027 = sqrt(r189026);
double r189028 = r189027 - r189025;
double r189029 = r189028 / r189006;
double r189030 = r189029 * r189019;
double r189031 = r189025 + r189030;
double r189032 = r189024 - r189027;
double r189033 = r189032 / r189006;
double r189034 = r189033 * r189020;
double r189035 = r189031 + r189034;
double r189036 = r189024 * r189035;
double r189037 = r189023 / r189036;
return r189037;
}
double f(double x, double y) {
double r189038 = 2.0;
double r189039 = sqrt(r189038);
double r189040 = 1.0;
double r189041 = x;
double r189042 = sin(r189041);
double r189043 = y;
double r189044 = sin(r189043);
double r189045 = cbrt(r189044);
double r189046 = 16.0;
double r189047 = cbrt(r189046);
double r189048 = r189045 / r189047;
double r189049 = r189045 * r189045;
double r189050 = r189047 * r189047;
double r189051 = r189049 / r189050;
double r189052 = r189048 * r189051;
double r189053 = -r189052;
double r189054 = fma(r189040, r189042, r189053);
double r189055 = r189039 * r189054;
double r189056 = -r189048;
double r189057 = r189056 + r189048;
double r189058 = r189051 * r189057;
double r189059 = r189039 * r189058;
double r189060 = r189055 + r189059;
double r189061 = r189042 / r189046;
double r189062 = r189044 - r189061;
double r189063 = cos(r189041);
double r189064 = cos(r189043);
double r189065 = r189063 - r189064;
double r189066 = r189062 * r189065;
double r189067 = fma(r189060, r189066, r189038);
double r189068 = 3.0;
double r189069 = r189067 / r189068;
double r189070 = 5.0;
double r189071 = sqrt(r189070);
double r189072 = r189068 - r189071;
double r189073 = r189072 / r189038;
double r189074 = 1.0;
double r189075 = r189071 - r189074;
double r189076 = r189075 / r189038;
double r189077 = fma(r189076, r189063, r189074);
double r189078 = fma(r189073, r189064, r189077);
double r189079 = r189069 / r189078;
return r189079;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.4
rmApplied add-cbrt-cube0.4
Applied add-cbrt-cube0.5
Applied cbrt-unprod0.4
Simplified0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied add-cube-cbrt0.4
Applied times-frac0.4
Applied add-sqr-sqrt32.0
Applied prod-diff32.0
Applied distribute-lft-in32.0
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020046 +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))))))