\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\frac{\mathsf{fma}\left(\pi \cdot \pi, \frac{1}{4}, \left(-1\right) \cdot {\left(\sqrt[3]{\sin^{-1} \left({\left(\log \left(e^{\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)}\right)}^{6}\right)}{\mathsf{fma}\left(\pi, \frac{1}{2}, \sin^{-1} \left({\left(\left(\cosh a\right) \bmod \left({a}^{2}\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\right)}double f(double a) {
double r4820 = a;
double r4821 = cosh(r4820);
double r4822 = r4820 * r4820;
double r4823 = fmod(r4821, r4822);
double r4824 = log1p(r4820);
double r4825 = pow(r4823, r4824);
double r4826 = acos(r4825);
return r4826;
}
double f(double a) {
double r4827 = atan2(1.0, 0.0);
double r4828 = r4827 * r4827;
double r4829 = 0.25;
double r4830 = 1.0;
double r4831 = -r4830;
double r4832 = a;
double r4833 = cosh(r4832);
double r4834 = r4832 * r4832;
double r4835 = fmod(r4833, r4834);
double r4836 = exp(r4835);
double r4837 = log(r4836);
double r4838 = log1p(r4832);
double r4839 = pow(r4837, r4838);
double r4840 = asin(r4839);
double r4841 = cbrt(r4840);
double r4842 = 6.0;
double r4843 = pow(r4841, r4842);
double r4844 = r4831 * r4843;
double r4845 = fma(r4828, r4829, r4844);
double r4846 = 0.5;
double r4847 = 2.0;
double r4848 = pow(r4832, r4847);
double r4849 = fmod(r4833, r4848);
double r4850 = pow(r4849, r4838);
double r4851 = asin(r4850);
double r4852 = fma(r4827, r4846, r4851);
double r4853 = r4845 / r4852;
return r4853;
}



Bits error versus a
Initial program 61.2
rmApplied add-log-exp60.2
rmApplied acos-asin60.2
rmApplied flip--60.2
Simplified60.2
Simplified60.2
Final simplification60.2
herbie shell --seed 2019346 +o rules:numerics
(FPCore (a)
:name "Random Jason Timeout Test 012"
:precision binary64
(acos (pow (fmod (cosh a) (* a a)) (log1p a))))