\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(\sin x - \frac{\sin y}{16}, \frac{\left(\left({\left(\cos x\right)}^{3} - {\left(\cos y\right)}^{3}\right) \cdot \left(\sin y - \frac{\sin x}{16}\right)\right) \cdot \sqrt{2}}{\left(\cos y \cdot \cos y + \cos x \cdot \cos y\right) + \cos x \cdot \cos x}, 2\right)}{\mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, \mathsf{fma}\left(\frac{\cos y}{2}, 3 - \sqrt{5}, 1\right)\right)}}{3}double f(double x, double y) {
double r183043 = 2.0;
double r183044 = sqrt(r183043);
double r183045 = x;
double r183046 = sin(r183045);
double r183047 = y;
double r183048 = sin(r183047);
double r183049 = 16.0;
double r183050 = r183048 / r183049;
double r183051 = r183046 - r183050;
double r183052 = r183044 * r183051;
double r183053 = r183046 / r183049;
double r183054 = r183048 - r183053;
double r183055 = r183052 * r183054;
double r183056 = cos(r183045);
double r183057 = cos(r183047);
double r183058 = r183056 - r183057;
double r183059 = r183055 * r183058;
double r183060 = r183043 + r183059;
double r183061 = 3.0;
double r183062 = 1.0;
double r183063 = 5.0;
double r183064 = sqrt(r183063);
double r183065 = r183064 - r183062;
double r183066 = r183065 / r183043;
double r183067 = r183066 * r183056;
double r183068 = r183062 + r183067;
double r183069 = r183061 - r183064;
double r183070 = r183069 / r183043;
double r183071 = r183070 * r183057;
double r183072 = r183068 + r183071;
double r183073 = r183061 * r183072;
double r183074 = r183060 / r183073;
return r183074;
}
double f(double x, double y) {
double r183075 = x;
double r183076 = sin(r183075);
double r183077 = y;
double r183078 = sin(r183077);
double r183079 = 16.0;
double r183080 = r183078 / r183079;
double r183081 = r183076 - r183080;
double r183082 = cos(r183075);
double r183083 = 3.0;
double r183084 = pow(r183082, r183083);
double r183085 = cos(r183077);
double r183086 = pow(r183085, r183083);
double r183087 = r183084 - r183086;
double r183088 = r183076 / r183079;
double r183089 = r183078 - r183088;
double r183090 = r183087 * r183089;
double r183091 = 2.0;
double r183092 = sqrt(r183091);
double r183093 = r183090 * r183092;
double r183094 = r183085 * r183085;
double r183095 = r183082 * r183085;
double r183096 = r183094 + r183095;
double r183097 = r183082 * r183082;
double r183098 = r183096 + r183097;
double r183099 = r183093 / r183098;
double r183100 = fma(r183081, r183099, r183091);
double r183101 = 5.0;
double r183102 = sqrt(r183101);
double r183103 = 1.0;
double r183104 = r183102 - r183103;
double r183105 = r183104 / r183091;
double r183106 = r183085 / r183091;
double r183107 = 3.0;
double r183108 = r183107 - r183102;
double r183109 = fma(r183106, r183108, r183103);
double r183110 = fma(r183105, r183082, r183109);
double r183111 = r183100 / r183110;
double r183112 = r183111 / r183107;
return r183112;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
Simplified0.5
rmApplied flip3--0.5
Applied associate-*r/0.5
Applied associate-*r/0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019194 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Path.Metafont.Internal:hobbyF from diagrams-contrib-1.3.0.5"
(/ (+ 2.0 (* (* (* (sqrt 2.0) (- (sin x) (/ (sin y) 16.0))) (- (sin y) (/ (sin x) 16.0))) (- (cos x) (cos y)))) (* 3.0 (+ (+ 1.0 (* (/ (- (sqrt 5.0) 1.0) 2.0) (cos x))) (* (/ (- 3.0 (sqrt 5.0)) 2.0) (cos y))))))