\Im(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(\left(\left(\left(6 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(20 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0.0 i\right)\right))
\Im(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(\left(-1 + 1 i\right) \cdot \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(20 + 0.0 i\right)\right)\right) + \left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(6 + 0.0 i\right) + \left(-1 + 1 i\right)\right)\right)\right)\right) + \left(\left(-1 + 1 i\right) \cdot \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(6 + 0.0 i\right)\right)\right)\right) + \left(1 + 0.0 i\right)\right))
double f() {
double r29855 = -1.0;
double r29856 = 1.0;
double r29857 = /* ERROR: no complex support in C */;
double r29858 = r29857 * r29857;
double r29859 = r29858 * r29857;
double r29860 = r29859 * r29857;
double r29861 = r29860 * r29857;
double r29862 = r29861 * r29857;
double r29863 = 6.0;
double r29864 = 0.0;
double r29865 = /* ERROR: no complex support in C */;
double r29866 = r29865 * r29857;
double r29867 = r29866 * r29857;
double r29868 = r29867 * r29857;
double r29869 = r29868 * r29857;
double r29870 = r29869 * r29857;
double r29871 = r29862 + r29870;
double r29872 = 15.0;
double r29873 = /* ERROR: no complex support in C */;
double r29874 = r29873 * r29857;
double r29875 = r29874 * r29857;
double r29876 = r29875 * r29857;
double r29877 = r29876 * r29857;
double r29878 = r29871 + r29877;
double r29879 = 20.0;
double r29880 = /* ERROR: no complex support in C */;
double r29881 = r29880 * r29857;
double r29882 = r29881 * r29857;
double r29883 = r29882 * r29857;
double r29884 = r29878 + r29883;
double r29885 = r29884 + r29875;
double r29886 = r29885 + r29866;
double r29887 = /* ERROR: no complex support in C */;
double r29888 = r29886 + r29887;
double r29889 = /* ERROR: no complex support in C */;
return r29889;
}
double f() {
double r29890 = -1.0;
double r29891 = 1.0;
double r29892 = /* ERROR: no complex support in C */;
double r29893 = r29892 * r29892;
double r29894 = 15.0;
double r29895 = 0.0;
double r29896 = /* ERROR: no complex support in C */;
double r29897 = r29896 * r29892;
double r29898 = 20.0;
double r29899 = /* ERROR: no complex support in C */;
double r29900 = r29897 + r29899;
double r29901 = r29892 * r29900;
double r29902 = r29893 * r29892;
double r29903 = 6.0;
double r29904 = /* ERROR: no complex support in C */;
double r29905 = r29904 + r29892;
double r29906 = r29902 * r29905;
double r29907 = r29901 + r29906;
double r29908 = r29893 * r29907;
double r29909 = r29897 + r29904;
double r29910 = r29892 * r29909;
double r29911 = r29908 + r29910;
double r29912 = /* ERROR: no complex support in C */;
double r29913 = r29911 + r29912;
double r29914 = /* ERROR: no complex support in C */;
return r29914;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019198 +o rules:numerics
(FPCore ()
:name "3.9.1 imaginary part (p56)"
(im (+ (+ (+ (+ (+ (+ (* (* (* (* (* (complex -1.0 1.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (* (* (* (* (* (complex 6.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))