Average Error: 0 → 0
Time: 1.7m
Precision: 64
\[\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(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\right)\right))\]
\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(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\right)\right))
double f() {
        double r1495786 = -1.0;
        double r1495787 = 1.0;
        double r1495788 = /* ERROR: no complex support in C */;
        double r1495789 = r1495788 * r1495788;
        double r1495790 = r1495789 * r1495788;
        double r1495791 = r1495790 * r1495788;
        double r1495792 = r1495791 * r1495788;
        double r1495793 = r1495792 * r1495788;
        double r1495794 = 6.0;
        double r1495795 = 0.0;
        double r1495796 = /* ERROR: no complex support in C */;
        double r1495797 = r1495796 * r1495788;
        double r1495798 = r1495797 * r1495788;
        double r1495799 = r1495798 * r1495788;
        double r1495800 = r1495799 * r1495788;
        double r1495801 = r1495800 * r1495788;
        double r1495802 = r1495793 + r1495801;
        double r1495803 = 15.0;
        double r1495804 = /* ERROR: no complex support in C */;
        double r1495805 = r1495804 * r1495788;
        double r1495806 = r1495805 * r1495788;
        double r1495807 = r1495806 * r1495788;
        double r1495808 = r1495807 * r1495788;
        double r1495809 = r1495802 + r1495808;
        double r1495810 = 20.0;
        double r1495811 = /* ERROR: no complex support in C */;
        double r1495812 = r1495811 * r1495788;
        double r1495813 = r1495812 * r1495788;
        double r1495814 = r1495813 * r1495788;
        double r1495815 = r1495809 + r1495814;
        double r1495816 = r1495815 + r1495806;
        double r1495817 = r1495816 + r1495797;
        double r1495818 = /* ERROR: no complex support in C */;
        double r1495819 = r1495817 + r1495818;
        double r1495820 = /* ERROR: no complex support in C */;
        return r1495820;
}

double f() {
        double r1495821 = -1.0;
        double r1495822 = 1.0;
        double r1495823 = r1495821 - r1495822;
        double r1495824 = r1495822 + r1495821;
        double r1495825 = r1495823 * r1495824;
        double r1495826 = r1495821 + r1495821;
        double r1495827 = r1495822 * r1495826;
        double r1495828 = /* ERROR: no complex support in C */;
        double r1495829 = 15.0;
        double r1495830 = 0.0;
        double r1495831 = /* ERROR: no complex support in C */;
        double r1495832 = 20.0;
        double r1495833 = r1495821 * r1495832;
        double r1495834 = r1495830 * r1495822;
        double r1495835 = r1495833 - r1495834;
        double r1495836 = r1495830 * r1495821;
        double r1495837 = fma(r1495822, r1495832, r1495836);
        double r1495838 = /* ERROR: no complex support in C */;
        double r1495839 = r1495831 + r1495838;
        double r1495840 = 6.0;
        double r1495841 = r1495840 * r1495821;
        double r1495842 = r1495841 - r1495834;
        double r1495843 = r1495842 + r1495829;
        double r1495844 = r1495822 * r1495840;
        double r1495845 = fma(r1495821, r1495830, r1495844);
        double r1495846 = r1495845 + r1495830;
        double r1495847 = /* ERROR: no complex support in C */;
        double r1495848 = r1495828 * r1495847;
        double r1495849 = r1495839 + r1495848;
        double r1495850 = r1495828 * r1495849;
        double r1495851 = r1495822 + r1495842;
        double r1495852 = r1495825 * r1495825;
        double r1495853 = r1495827 * r1495827;
        double r1495854 = r1495852 - r1495853;
        double r1495855 = r1495825 * r1495854;
        double r1495856 = r1495827 * r1495825;
        double r1495857 = r1495856 + r1495856;
        double r1495858 = r1495827 * r1495857;
        double r1495859 = r1495855 - r1495858;
        double r1495860 = r1495851 + r1495859;
        double r1495861 = r1495854 * r1495827;
        double r1495862 = r1495857 * r1495825;
        double r1495863 = r1495861 + r1495862;
        double r1495864 = r1495863 + r1495846;
        double r1495865 = /* ERROR: no complex support in C */;
        double r1495866 = r1495850 + r1495865;
        double r1495867 = /* ERROR: no complex support in C */;
        return r1495867;
}

Error

Derivation

  1. Initial program 0

    \[\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))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(\left(\left(1 + \left(-1 \cdot 6 - 0.0 \cdot 1\right)\right) + \left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right)\right) + \left(\left(\mathsf{fma}\left(-1, 0.0, 6 \cdot 1\right) + 0.0\right) + \left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right)\right)\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(-1 \cdot 6 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 6 \cdot 1\right) + 0.0\right) i\right)\right) + \left(\left(\left(20 \cdot -1 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right) + \left(15 + 0.0 i\right)\right)\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\right)\right))\]

Reproduce

herbie shell --seed 2019200 +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))))