\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{2 \cdot 2 - \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right) \cdot \left(\left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}{\left(\mathsf{fma}\left(\cos y, \frac{3 - \sqrt{5}}{2}, \mathsf{fma}\left(\cos x, \frac{\sqrt{5} - 1}{2}, 1\right)\right) \cdot 3\right) \cdot \left(2 - \left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\sqrt{2} \cdot \left(\sin x - \frac{\sin y}{16}\right)\right)\right) \cdot \left(\cos x - \cos y\right)\right)}double f(double x, double y) {
double r145986 = 2.0;
double r145987 = sqrt(r145986);
double r145988 = x;
double r145989 = sin(r145988);
double r145990 = y;
double r145991 = sin(r145990);
double r145992 = 16.0;
double r145993 = r145991 / r145992;
double r145994 = r145989 - r145993;
double r145995 = r145987 * r145994;
double r145996 = r145989 / r145992;
double r145997 = r145991 - r145996;
double r145998 = r145995 * r145997;
double r145999 = cos(r145988);
double r146000 = cos(r145990);
double r146001 = r145999 - r146000;
double r146002 = r145998 * r146001;
double r146003 = r145986 + r146002;
double r146004 = 3.0;
double r146005 = 1.0;
double r146006 = 5.0;
double r146007 = sqrt(r146006);
double r146008 = r146007 - r146005;
double r146009 = r146008 / r145986;
double r146010 = r146009 * r145999;
double r146011 = r146005 + r146010;
double r146012 = r146004 - r146007;
double r146013 = r146012 / r145986;
double r146014 = r146013 * r146000;
double r146015 = r146011 + r146014;
double r146016 = r146004 * r146015;
double r146017 = r146003 / r146016;
return r146017;
}
double f(double x, double y) {
double r146018 = 2.0;
double r146019 = r146018 * r146018;
double r146020 = y;
double r146021 = sin(r146020);
double r146022 = x;
double r146023 = sin(r146022);
double r146024 = 16.0;
double r146025 = r146023 / r146024;
double r146026 = r146021 - r146025;
double r146027 = sqrt(r146018);
double r146028 = r146021 / r146024;
double r146029 = r146023 - r146028;
double r146030 = r146027 * r146029;
double r146031 = r146026 * r146030;
double r146032 = cos(r146022);
double r146033 = cos(r146020);
double r146034 = r146032 - r146033;
double r146035 = r146031 * r146034;
double r146036 = r146035 * r146035;
double r146037 = r146019 - r146036;
double r146038 = 3.0;
double r146039 = 5.0;
double r146040 = sqrt(r146039);
double r146041 = r146038 - r146040;
double r146042 = r146041 / r146018;
double r146043 = 1.0;
double r146044 = r146040 - r146043;
double r146045 = r146044 / r146018;
double r146046 = fma(r146032, r146045, r146043);
double r146047 = fma(r146033, r146042, r146046);
double r146048 = r146047 * r146038;
double r146049 = r146018 - r146035;
double r146050 = r146048 * r146049;
double r146051 = r146037 / r146050;
return r146051;
}



Bits error versus x



Bits error versus y
Initial program 0.5
rmApplied flip-+0.5
Applied associate-/l/0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019174 +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))))))