\frac{1}{\sqrt{k}} \cdot {\left(\left(2 \cdot \pi\right) \cdot n\right)}^{\left(\frac{1 - k}{2}\right)}\frac{{k}^{\frac{-1}{2}}}{\frac{1}{{\pi}^{\left(\frac{1}{2} - \frac{k}{2}\right)}} \cdot \frac{1}{{\left(n \cdot 2\right)}^{\left(\frac{1}{2} - \frac{k}{2}\right)}}}double f(double k, double n) {
double r7800575 = 1.0;
double r7800576 = k;
double r7800577 = sqrt(r7800576);
double r7800578 = r7800575 / r7800577;
double r7800579 = 2.0;
double r7800580 = atan2(1.0, 0.0);
double r7800581 = r7800579 * r7800580;
double r7800582 = n;
double r7800583 = r7800581 * r7800582;
double r7800584 = r7800575 - r7800576;
double r7800585 = r7800584 / r7800579;
double r7800586 = pow(r7800583, r7800585);
double r7800587 = r7800578 * r7800586;
return r7800587;
}
double f(double k, double n) {
double r7800588 = k;
double r7800589 = -0.5;
double r7800590 = pow(r7800588, r7800589);
double r7800591 = 1.0;
double r7800592 = atan2(1.0, 0.0);
double r7800593 = 0.5;
double r7800594 = 2.0;
double r7800595 = r7800588 / r7800594;
double r7800596 = r7800593 - r7800595;
double r7800597 = pow(r7800592, r7800596);
double r7800598 = r7800591 / r7800597;
double r7800599 = n;
double r7800600 = r7800599 * r7800594;
double r7800601 = pow(r7800600, r7800596);
double r7800602 = r7800591 / r7800601;
double r7800603 = r7800598 * r7800602;
double r7800604 = r7800590 / r7800603;
return r7800604;
}



Bits error versus k



Bits error versus n
Results
Initial program 0.4
Simplified0.3
rmApplied clear-num0.4
rmApplied div-inv0.4
Applied associate-/r*0.4
rmApplied pow1/20.4
Applied pow-flip0.4
rmApplied unpow-prod-down0.5
Applied *-un-lft-identity0.5
Applied times-frac0.4
Final simplification0.4
herbie shell --seed 2019162 +o rules:numerics
(FPCore (k n)
:name "Migdal et al, Equation (51)"
(* (/ 1 (sqrt k)) (pow (* (* 2 PI) n) (/ (- 1 k) 2))))