\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}double f(double x, double y, double z, double t, double a, double b, double c) {
double r1805 = x;
double r1806 = y;
double r1807 = 2.0;
double r1808 = z;
double r1809 = t;
double r1810 = a;
double r1811 = r1809 + r1810;
double r1812 = sqrt(r1811);
double r1813 = r1808 * r1812;
double r1814 = r1813 / r1809;
double r1815 = b;
double r1816 = c;
double r1817 = r1815 - r1816;
double r1818 = 5.0;
double r1819 = 6.0;
double r1820 = r1818 / r1819;
double r1821 = r1810 + r1820;
double r1822 = 3.0;
double r1823 = r1809 * r1822;
double r1824 = r1807 / r1823;
double r1825 = r1821 - r1824;
double r1826 = r1817 * r1825;
double r1827 = r1814 - r1826;
double r1828 = r1807 * r1827;
double r1829 = exp(r1828);
double r1830 = r1806 * r1829;
double r1831 = r1805 + r1830;
double r1832 = r1805 / r1831;
return r1832;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r1833 = x;
double r1834 = y;
double r1835 = 2.0;
double r1836 = z;
double r1837 = t;
double r1838 = cbrt(r1837);
double r1839 = r1838 * r1838;
double r1840 = r1836 / r1839;
double r1841 = a;
double r1842 = r1837 + r1841;
double r1843 = sqrt(r1842);
double r1844 = r1843 / r1838;
double r1845 = r1840 * r1844;
double r1846 = b;
double r1847 = c;
double r1848 = r1846 - r1847;
double r1849 = 5.0;
double r1850 = 6.0;
double r1851 = r1849 / r1850;
double r1852 = r1841 + r1851;
double r1853 = 3.0;
double r1854 = r1837 * r1853;
double r1855 = r1835 / r1854;
double r1856 = r1852 - r1855;
double r1857 = r1848 * r1856;
double r1858 = r1845 - r1857;
double r1859 = r1835 * r1858;
double r1860 = exp(r1859);
double r1861 = r1834 * r1860;
double r1862 = r1833 + r1861;
double r1863 = r1833 / r1862;
return r1863;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 3.5 |
|---|---|
| Target | 2.9 |
| Herbie | 2.4 |
Initial program 3.5
rmApplied add-cube-cbrt3.5
Applied times-frac2.4
Final simplification2.4
herbie shell --seed 2020025
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
:precision binary64
:herbie-target
(if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))
(/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))