\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 + \left(\left(\sin y - \frac{\sin x}{16}\right) \cdot \left(\left(\sin x - \frac{\sin y}{16}\right) \cdot \sqrt{2}\right)\right) \cdot \left(\cos x - \cos y\right)}{3 \cdot \left(\left(\cos x \cdot \frac{\sqrt{5} - 1}{2} + 1\right) + \cos y \cdot \frac{3 - \sqrt{5}}{2}\right)}double f(double x, double y) {
double r12553096 = 2.0;
double r12553097 = sqrt(r12553096);
double r12553098 = x;
double r12553099 = sin(r12553098);
double r12553100 = y;
double r12553101 = sin(r12553100);
double r12553102 = 16.0;
double r12553103 = r12553101 / r12553102;
double r12553104 = r12553099 - r12553103;
double r12553105 = r12553097 * r12553104;
double r12553106 = r12553099 / r12553102;
double r12553107 = r12553101 - r12553106;
double r12553108 = r12553105 * r12553107;
double r12553109 = cos(r12553098);
double r12553110 = cos(r12553100);
double r12553111 = r12553109 - r12553110;
double r12553112 = r12553108 * r12553111;
double r12553113 = r12553096 + r12553112;
double r12553114 = 3.0;
double r12553115 = 1.0;
double r12553116 = 5.0;
double r12553117 = sqrt(r12553116);
double r12553118 = r12553117 - r12553115;
double r12553119 = r12553118 / r12553096;
double r12553120 = r12553119 * r12553109;
double r12553121 = r12553115 + r12553120;
double r12553122 = r12553114 - r12553117;
double r12553123 = r12553122 / r12553096;
double r12553124 = r12553123 * r12553110;
double r12553125 = r12553121 + r12553124;
double r12553126 = r12553114 * r12553125;
double r12553127 = r12553113 / r12553126;
return r12553127;
}
double f(double x, double y) {
double r12553128 = 2.0;
double r12553129 = y;
double r12553130 = sin(r12553129);
double r12553131 = x;
double r12553132 = sin(r12553131);
double r12553133 = 16.0;
double r12553134 = r12553132 / r12553133;
double r12553135 = r12553130 - r12553134;
double r12553136 = r12553130 / r12553133;
double r12553137 = r12553132 - r12553136;
double r12553138 = sqrt(r12553128);
double r12553139 = r12553137 * r12553138;
double r12553140 = r12553135 * r12553139;
double r12553141 = cos(r12553131);
double r12553142 = cos(r12553129);
double r12553143 = r12553141 - r12553142;
double r12553144 = r12553140 * r12553143;
double r12553145 = r12553128 + r12553144;
double r12553146 = 3.0;
double r12553147 = 5.0;
double r12553148 = sqrt(r12553147);
double r12553149 = 1.0;
double r12553150 = r12553148 - r12553149;
double r12553151 = r12553150 / r12553128;
double r12553152 = r12553141 * r12553151;
double r12553153 = r12553152 + r12553149;
double r12553154 = r12553146 - r12553148;
double r12553155 = r12553154 / r12553128;
double r12553156 = r12553142 * r12553155;
double r12553157 = r12553153 + r12553156;
double r12553158 = r12553146 * r12553157;
double r12553159 = r12553145 / r12553158;
return r12553159;
}



Bits error versus x



Bits error versus y
Results
Initial program 0.5
Final simplification0.5
herbie shell --seed 2019200 +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))))))