Average Error: 0 → 0
Time: 17.8s
Precision: 64
\[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))\]
\[\Im(\left(\left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) + \left(6 + \frac{\sqrt{3}}{-1} i\right)\right)\right) + \left(5 + \frac{\sqrt{3}}{\frac{1}{2}} i\right)\right))\]
\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))
\Im(\left(\left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) + \left(6 + \frac{\sqrt{3}}{-1} i\right)\right)\right) + \left(5 + \frac{\sqrt{3}}{\frac{1}{2}} i\right)\right))
double f() {
        double r453972 = 1.0;
        double r453973 = -r453972;
        double r453974 = 2.0;
        double r453975 = r453973 / r453974;
        double r453976 = 3.0;
        double r453977 = sqrt(r453976);
        double r453978 = r453977 / r453974;
        double r453979 = /* ERROR: no complex support in C */;
        double r453980 = r453979 * r453979;
        double r453981 = r453980 * r453979;
        double r453982 = r453981 * r453979;
        double r453983 = -r453974;
        double r453984 = 0.0;
        double r453985 = /* ERROR: no complex support in C */;
        double r453986 = r453985 * r453979;
        double r453987 = r453986 * r453979;
        double r453988 = r453987 * r453979;
        double r453989 = r453982 + r453988;
        double r453990 = 5.0;
        double r453991 = /* ERROR: no complex support in C */;
        double r453992 = r453991 * r453979;
        double r453993 = r453992 * r453979;
        double r453994 = r453989 + r453993;
        double r453995 = 4.0;
        double r453996 = /* ERROR: no complex support in C */;
        double r453997 = r453996 * r453979;
        double r453998 = r453994 + r453997;
        double r453999 = 7.0;
        double r454000 = /* ERROR: no complex support in C */;
        double r454001 = r453998 + r454000;
        double r454002 = /* ERROR: no complex support in C */;
        return r454002;
}

double f() {
        double r454003 = -0.5;
        double r454004 = 3.0;
        double r454005 = sqrt(r454004);
        double r454006 = -r454005;
        double r454007 = 2.0;
        double r454008 = r454006 / r454007;
        double r454009 = /* ERROR: no complex support in C */;
        double r454010 = 6.0;
        double r454011 = -1.0;
        double r454012 = r454005 / r454011;
        double r454013 = /* ERROR: no complex support in C */;
        double r454014 = r454009 + r454013;
        double r454015 = r454009 * r454014;
        double r454016 = 5.0;
        double r454017 = 0.5;
        double r454018 = r454005 / r454017;
        double r454019 = /* ERROR: no complex support in C */;
        double r454020 = r454015 + r454019;
        double r454021 = /* ERROR: no complex support in C */;
        return r454021;
}

Error

Derivation

  1. Initial program 0

    \[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(5 + \frac{\sqrt{3}}{\frac{1}{2}} i\right) + \left(\left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(6 + \frac{\sqrt{3}}{-1} i\right) + \left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \frac{-\sqrt{3}}{2} i\right)\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) + \left(6 + \frac{\sqrt{3}}{-1} i\right)\right)\right) + \left(5 + \frac{\sqrt{3}}{\frac{1}{2}} i\right)\right))\]

Reproduce

herbie shell --seed 2019164 +o rules:numerics
(FPCore ()
  :name "3.9.2 imaginary part (p56)"
  (im (+.c (+.c (+.c (+.c (*.c (*.c (*.c (complex (/ (- 1) 2) (/ (sqrt 3) 2)) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (*.c (*.c (*.c (complex (- 2) 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (*.c (*.c (complex 5 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (*.c (complex 4 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (complex 7 0))))