Average Error: 0 → 0
Time: 25.3s
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 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 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 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 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0 i\right)\right))\]
\[\Im(\left(\left(40 + 48 i\right) + \left(\left(-36 + -24 i\right) + \left(-5 + -24 i\right)\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 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 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 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 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0 i\right)\right))
\Im(\left(\left(40 + 48 i\right) + \left(\left(-36 + -24 i\right) + \left(-5 + -24 i\right)\right)\right))
double f() {
        double r877777 = -1.0;
        double r877778 = 1.0;
        double r877779 = /* ERROR: no complex support in C */;
        double r877780 = r877779 * r877779;
        double r877781 = r877780 * r877779;
        double r877782 = r877781 * r877779;
        double r877783 = r877782 * r877779;
        double r877784 = r877783 * r877779;
        double r877785 = 6.0;
        double r877786 = 0.0;
        double r877787 = /* ERROR: no complex support in C */;
        double r877788 = r877787 * r877779;
        double r877789 = r877788 * r877779;
        double r877790 = r877789 * r877779;
        double r877791 = r877790 * r877779;
        double r877792 = r877791 * r877779;
        double r877793 = r877784 + r877792;
        double r877794 = 15.0;
        double r877795 = /* ERROR: no complex support in C */;
        double r877796 = r877795 * r877779;
        double r877797 = r877796 * r877779;
        double r877798 = r877797 * r877779;
        double r877799 = r877798 * r877779;
        double r877800 = r877793 + r877799;
        double r877801 = 20.0;
        double r877802 = /* ERROR: no complex support in C */;
        double r877803 = r877802 * r877779;
        double r877804 = r877803 * r877779;
        double r877805 = r877804 * r877779;
        double r877806 = r877800 + r877805;
        double r877807 = r877806 + r877797;
        double r877808 = r877807 + r877788;
        double r877809 = /* ERROR: no complex support in C */;
        double r877810 = r877808 + r877809;
        double r877811 = /* ERROR: no complex support in C */;
        return r877811;
}

double f() {
        double r877812 = 40.0;
        double r877813 = 48.0;
        double r877814 = /* ERROR: no complex support in C */;
        double r877815 = -36.0;
        double r877816 = -24.0;
        double r877817 = /* ERROR: no complex support in C */;
        double r877818 = -5.0;
        double r877819 = /* ERROR: no complex support in C */;
        double r877820 = r877817 + r877819;
        double r877821 = r877814 + r877820;
        double r877822 = /* ERROR: no complex support in C */;
        return r877822;
}

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 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 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 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 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0 i\right)\right))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(\left(-5 + -24 i\right) + \left(-36 + -24 i\right)\right) + \left(40 + 48 i\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(40 + 48 i\right) + \left(\left(-36 + -24 i\right) + \left(-5 + -24 i\right)\right)\right))\]

Reproduce

herbie shell --seed 2019129 
(FPCore ()
  :name "3.9.1 imaginary part (p56)"
  (im (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (*.c (*.c (*.c (*.c (*.c (complex 6 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (complex 20 0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1))) (*.c (complex 6 0) (complex -1 1))) (complex 1 0))))