\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{\sin y}{\sqrt[3]{16}} \cdot \frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}}\right) + \sqrt{2} \cdot \left(\frac{1}{\sqrt[3]{16} \cdot \sqrt[3]{16}} \cdot \left(\left(-\frac{\sin y}{\sqrt[3]{16}}\right) + \frac{\sin y}{\sqrt[3]{16}}\right)\right), \left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\cos x - \cos y\right), 2\right)}{\mathsf{fma}\left(\frac{3 - \sqrt{5}}{2}, \cos y, \mathsf{fma}\left(\frac{\sqrt{5} - 1}{2}, \cos x, 1\right)\right)}}{3}double f(double x, double y) {
double r166047 = 2.0;
double r166048 = sqrt(r166047);
double r166049 = x;
double r166050 = sin(r166049);
double r166051 = y;
double r166052 = sin(r166051);
double r166053 = 16.0;
double r166054 = r166052 / r166053;
double r166055 = r166050 - r166054;
double r166056 = r166048 * r166055;
double r166057 = r166050 / r166053;
double r166058 = r166052 - r166057;
double r166059 = r166056 * r166058;
double r166060 = cos(r166049);
double r166061 = cos(r166051);
double r166062 = r166060 - r166061;
double r166063 = r166059 * r166062;
double r166064 = r166047 + r166063;
double r166065 = 3.0;
double r166066 = 1.0;
double r166067 = 5.0;
double r166068 = sqrt(r166067);
double r166069 = r166068 - r166066;
double r166070 = r166069 / r166047;
double r166071 = r166070 * r166060;
double r166072 = r166066 + r166071;
double r166073 = r166065 - r166068;
double r166074 = r166073 / r166047;
double r166075 = r166074 * r166061;
double r166076 = r166072 + r166075;
double r166077 = r166065 * r166076;
double r166078 = r166064 / r166077;
return r166078;
}
double f(double x, double y) {
double r166079 = 2.0;
double r166080 = sqrt(r166079);
double r166081 = 1.0;
double r166082 = x;
double r166083 = sin(r166082);
double r166084 = y;
double r166085 = sin(r166084);
double r166086 = 16.0;
double r166087 = cbrt(r166086);
double r166088 = r166085 / r166087;
double r166089 = r166087 * r166087;
double r166090 = r166081 / r166089;
double r166091 = r166088 * r166090;
double r166092 = -r166091;
double r166093 = fma(r166081, r166083, r166092);
double r166094 = r166080 * r166093;
double r166095 = -r166088;
double r166096 = r166095 + r166088;
double r166097 = r166090 * r166096;
double r166098 = r166080 * r166097;
double r166099 = r166094 + r166098;
double r166100 = r166083 / r166086;
double r166101 = r166085 - r166100;
double r166102 = cos(r166082);
double r166103 = cos(r166084);
double r166104 = r166102 - r166103;
double r166105 = r166101 * r166104;
double r166106 = fma(r166099, r166105, r166079);
double r166107 = 3.0;
double r166108 = 5.0;
double r166109 = sqrt(r166108);
double r166110 = r166107 - r166109;
double r166111 = r166110 / r166079;
double r166112 = 1.0;
double r166113 = r166109 - r166112;
double r166114 = r166113 / r166079;
double r166115 = fma(r166114, r166102, r166112);
double r166116 = fma(r166111, r166103, r166115);
double r166117 = r166106 / r166116;
double r166118 = r166117 / r166107;
return r166118;
}



Bits error versus x



Bits error versus y
Initial program 0.5
Simplified0.5
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt32.1
Applied times-frac32.1
Applied add-sqr-sqrt48.5
Applied prod-diff48.5
Applied distribute-lft-in48.5
Simplified32.1
Simplified0.4
Final simplification0.4
herbie shell --seed 2020018 +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))))))