Average Error: 0 → 0
Time: 17.7s
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(\frac{-1}{2} + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right) \cdot \left(\left(\frac{-1}{2} + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right) + \left(6 + \left(-\sqrt{3}\right) i\right)\right) + \left(5 + \sqrt{3} \cdot 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(\frac{-1}{2} + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right) \cdot \left(\left(\frac{-1}{2} + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right) + \left(6 + \left(-\sqrt{3}\right) i\right)\right) + \left(5 + \sqrt{3} \cdot 2 i\right)\right))
double f() {
        double r463852 = 1.0;
        double r463853 = -r463852;
        double r463854 = 2.0;
        double r463855 = r463853 / r463854;
        double r463856 = 3.0;
        double r463857 = sqrt(r463856);
        double r463858 = r463857 / r463854;
        double r463859 = /* ERROR: no complex support in C */;
        double r463860 = r463859 * r463859;
        double r463861 = r463860 * r463859;
        double r463862 = r463861 * r463859;
        double r463863 = -r463854;
        double r463864 = 0.0;
        double r463865 = /* ERROR: no complex support in C */;
        double r463866 = r463865 * r463859;
        double r463867 = r463866 * r463859;
        double r463868 = r463867 * r463859;
        double r463869 = r463862 + r463868;
        double r463870 = 5.0;
        double r463871 = /* ERROR: no complex support in C */;
        double r463872 = r463871 * r463859;
        double r463873 = r463872 * r463859;
        double r463874 = r463869 + r463873;
        double r463875 = 4.0;
        double r463876 = /* ERROR: no complex support in C */;
        double r463877 = r463876 * r463859;
        double r463878 = r463874 + r463877;
        double r463879 = 7.0;
        double r463880 = /* ERROR: no complex support in C */;
        double r463881 = r463878 + r463880;
        double r463882 = /* ERROR: no complex support in C */;
        return r463882;
}

double f() {
        double r463883 = -0.5;
        double r463884 = 3.0;
        double r463885 = sqrt(r463884);
        double r463886 = -4.0;
        double r463887 = r463885 / r463886;
        double r463888 = r463887 + r463887;
        double r463889 = /* ERROR: no complex support in C */;
        double r463890 = 6.0;
        double r463891 = -r463885;
        double r463892 = /* ERROR: no complex support in C */;
        double r463893 = r463889 + r463892;
        double r463894 = r463889 * r463893;
        double r463895 = 5.0;
        double r463896 = 2.0;
        double r463897 = r463885 * r463896;
        double r463898 = /* ERROR: no complex support in C */;
        double r463899 = r463894 + r463898;
        double r463900 = /* ERROR: no complex support in C */;
        return r463900;
}

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 + 2 \cdot \sqrt{3} i\right) + \left(\left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right) \cdot \left(\left(6 + -1 \cdot \sqrt{3} i\right) + \left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \left(\frac{\sqrt{3}}{-4} + \frac{\sqrt{3}}{-4}\right) i\right)\right)\right)\right))}\]
  3. Final simplification0

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

Reproduce

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