\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(0.1049934947\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(0.0424060604\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0072644182\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0005064034\right) \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0001789971\right) \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(0.7715471019\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(0.2909738639\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0694555761\right) \cdot \left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0140005442\right) \cdot \left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(0.0008327945\right) \cdot \left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\left(\left(2\right) \cdot \left(0.0001789971\right)\right) \cdot \left(\left(\left(\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}\right) \cdot x\left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\left(\frac{\left(1\right)}{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\frac{\left(0.7715471019\right)}{\left(\left(0.2909738639\right) \cdot \left(x \cdot x\right)\right)}\right)}{\left(\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right) \cdot \left(\frac{\left(0.0694555761\right)}{\left(\left(\frac{\left(\left(\left(0.0001789971\right) \cdot \left(x \cdot x\right)\right) \cdot \left(2\right)\right)}{\left(0.0008327945\right)}\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)\right)}\right)\right)}\right)}{\left(\left(\left(0.0140005442\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right) \cdot \left(\left(x \cdot x\right) \cdot \left(x \cdot x\right)\right)\right)}\right)}{\left(\frac{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(0.1049934947\right)}{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(\left(x \cdot x\right) \cdot \left(\frac{\left(0.0005064034\right)}{\left(\left(0.0001789971\right) \cdot \left(x \cdot x\right)\right)}\right)\right)}{\left(0.0072644182\right)}\right)\right)}{\left(0.0424060604\right)}\right)\right)}\right)\right)}{\left(1\right)}\right)}\right)}\right) \cdot xdouble f(double x) {
double r5782701 = 1.0;
double r5782702 = /* ERROR: no posit support in C */;
double r5782703 = 0.1049934947;
double r5782704 = /* ERROR: no posit support in C */;
double r5782705 = x;
double r5782706 = r5782705 * r5782705;
double r5782707 = r5782704 * r5782706;
double r5782708 = r5782702 + r5782707;
double r5782709 = 0.0424060604;
double r5782710 = /* ERROR: no posit support in C */;
double r5782711 = r5782706 * r5782706;
double r5782712 = r5782710 * r5782711;
double r5782713 = r5782708 + r5782712;
double r5782714 = 0.0072644182;
double r5782715 = /* ERROR: no posit support in C */;
double r5782716 = r5782711 * r5782706;
double r5782717 = r5782715 * r5782716;
double r5782718 = r5782713 + r5782717;
double r5782719 = 0.0005064034;
double r5782720 = /* ERROR: no posit support in C */;
double r5782721 = r5782716 * r5782706;
double r5782722 = r5782720 * r5782721;
double r5782723 = r5782718 + r5782722;
double r5782724 = 0.0001789971;
double r5782725 = /* ERROR: no posit support in C */;
double r5782726 = r5782721 * r5782706;
double r5782727 = r5782725 * r5782726;
double r5782728 = r5782723 + r5782727;
double r5782729 = 0.7715471019;
double r5782730 = /* ERROR: no posit support in C */;
double r5782731 = r5782730 * r5782706;
double r5782732 = r5782702 + r5782731;
double r5782733 = 0.2909738639;
double r5782734 = /* ERROR: no posit support in C */;
double r5782735 = r5782734 * r5782711;
double r5782736 = r5782732 + r5782735;
double r5782737 = 0.0694555761;
double r5782738 = /* ERROR: no posit support in C */;
double r5782739 = r5782738 * r5782716;
double r5782740 = r5782736 + r5782739;
double r5782741 = 0.0140005442;
double r5782742 = /* ERROR: no posit support in C */;
double r5782743 = r5782742 * r5782721;
double r5782744 = r5782740 + r5782743;
double r5782745 = 0.0008327945;
double r5782746 = /* ERROR: no posit support in C */;
double r5782747 = r5782746 * r5782726;
double r5782748 = r5782744 + r5782747;
double r5782749 = 2.0;
double r5782750 = /* ERROR: no posit support in C */;
double r5782751 = r5782750 * r5782725;
double r5782752 = r5782726 * r5782706;
double r5782753 = r5782751 * r5782752;
double r5782754 = r5782748 + r5782753;
double r5782755 = r5782728 / r5782754;
double r5782756 = r5782755 * r5782705;
return r5782756;
}
double f(double x) {
double r5782757 = 1.0;
double r5782758 = /* ERROR: no posit support in C */;
double r5782759 = 1.0;
double r5782760 = /* ERROR: no posit support in C */;
double r5782761 = x;
double r5782762 = r5782761 * r5782761;
double r5782763 = 0.7715471019;
double r5782764 = /* ERROR: no posit support in C */;
double r5782765 = 0.2909738639;
double r5782766 = /* ERROR: no posit support in C */;
double r5782767 = r5782766 * r5782762;
double r5782768 = r5782764 + r5782767;
double r5782769 = r5782762 * r5782762;
double r5782770 = 0.0694555761;
double r5782771 = /* ERROR: no posit support in C */;
double r5782772 = 0.0001789971;
double r5782773 = /* ERROR: no posit support in C */;
double r5782774 = r5782773 * r5782762;
double r5782775 = 2.0;
double r5782776 = /* ERROR: no posit support in C */;
double r5782777 = r5782774 * r5782776;
double r5782778 = 0.0008327945;
double r5782779 = /* ERROR: no posit support in C */;
double r5782780 = r5782777 + r5782779;
double r5782781 = r5782780 * r5782769;
double r5782782 = r5782771 + r5782781;
double r5782783 = r5782769 * r5782782;
double r5782784 = r5782768 + r5782783;
double r5782785 = r5782762 * r5782784;
double r5782786 = r5782760 + r5782785;
double r5782787 = 0.0140005442;
double r5782788 = /* ERROR: no posit support in C */;
double r5782789 = r5782788 * r5782769;
double r5782790 = r5782789 * r5782769;
double r5782791 = r5782786 + r5782790;
double r5782792 = 0.1049934947;
double r5782793 = /* ERROR: no posit support in C */;
double r5782794 = 0.0005064034;
double r5782795 = /* ERROR: no posit support in C */;
double r5782796 = r5782795 + r5782774;
double r5782797 = r5782762 * r5782796;
double r5782798 = 0.0072644182;
double r5782799 = /* ERROR: no posit support in C */;
double r5782800 = r5782797 + r5782799;
double r5782801 = r5782762 * r5782800;
double r5782802 = 0.0424060604;
double r5782803 = /* ERROR: no posit support in C */;
double r5782804 = r5782801 + r5782803;
double r5782805 = r5782762 * r5782804;
double r5782806 = r5782793 + r5782805;
double r5782807 = r5782762 * r5782806;
double r5782808 = r5782807 + r5782760;
double r5782809 = r5782791 / r5782808;
double r5782810 = r5782758 / r5782809;
double r5782811 = r5782810 * r5782761;
return r5782811;
}



Bits error versus x
Initial program 4.4
Simplified3.7
rmApplied *p16-rgt-identity-expand3.7
Applied associate-/l*3.7
Simplified3.6
rmApplied p16-*-un-lft-identity3.6
Applied associate-/l*3.6
rmApplied *p16-rgt-identity-expand3.6
Applied associate-/l*3.6
Simplified3.6
Final simplification3.6
herbie shell --seed 2019168
(FPCore (x)
:name "Jmat.Real.dawson"
(*.p16 (/.p16 (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (real->posit16 1) (*.p16 (real->posit16 0.1049934947) (*.p16 x x))) (*.p16 (real->posit16 0.0424060604) (*.p16 (*.p16 x x) (*.p16 x x)))) (*.p16 (real->posit16 0.0072644182) (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0005064034) (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0001789971) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (+.p16 (real->posit16 1) (*.p16 (real->posit16 0.7715471019) (*.p16 x x))) (*.p16 (real->posit16 0.2909738639) (*.p16 (*.p16 x x) (*.p16 x x)))) (*.p16 (real->posit16 0.0694555761) (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0140005442) (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (real->posit16 0.0008327945) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)))) (*.p16 (*.p16 (real->posit16 2) (real->posit16 0.0001789971)) (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 (*.p16 x x) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x)) (*.p16 x x))))) x))