\Re(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1.0 + 1.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) + \left(\left(\left(\left(\left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(20.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(1.0 + 0.0 i\right)\right))
\Re(\left(\left(\left(\left(1.0 + 0.0 i\right) + \left(\left(-1.0 \cdot 6.0 - 1.0 \cdot 0.0\right) + \left(1.0 \cdot 6.0 + 0.0 \cdot -1.0\right) i\right)\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) i\right) \cdot \left(\left(\left(-1.0 \cdot 20.0 - 1.0 \cdot 0.0\right) + 15.0\right) + \left(0.0 + \left(0.0 \cdot -1.0 + 20.0 \cdot 1.0\right)\right) i\right)\right)\right) + \left(\left(\left(\left(15.0 + 0.0 i\right) + \left(\left(-1.0 \cdot 6.0 - 1.0 \cdot 0.0\right) + \left(1.0 \cdot 6.0 + 0.0 \cdot -1.0\right) i\right)\right) \cdot \left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) i\right)\right) + \left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) + \left(\left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) + \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) i\right)\right)\right))
double f() {
double r3130070 = -1.0;
double r3130071 = 1.0;
double r3130072 = /* ERROR: no complex support in C */;
double r3130073 = r3130072 * r3130072;
double r3130074 = r3130073 * r3130072;
double r3130075 = r3130074 * r3130072;
double r3130076 = r3130075 * r3130072;
double r3130077 = r3130076 * r3130072;
double r3130078 = 6.0;
double r3130079 = 0.0;
double r3130080 = /* ERROR: no complex support in C */;
double r3130081 = r3130080 * r3130072;
double r3130082 = r3130081 * r3130072;
double r3130083 = r3130082 * r3130072;
double r3130084 = r3130083 * r3130072;
double r3130085 = r3130084 * r3130072;
double r3130086 = r3130077 + r3130085;
double r3130087 = 15.0;
double r3130088 = /* ERROR: no complex support in C */;
double r3130089 = r3130088 * r3130072;
double r3130090 = r3130089 * r3130072;
double r3130091 = r3130090 * r3130072;
double r3130092 = r3130091 * r3130072;
double r3130093 = r3130086 + r3130092;
double r3130094 = 20.0;
double r3130095 = /* ERROR: no complex support in C */;
double r3130096 = r3130095 * r3130072;
double r3130097 = r3130096 * r3130072;
double r3130098 = r3130097 * r3130072;
double r3130099 = r3130093 + r3130098;
double r3130100 = r3130099 + r3130090;
double r3130101 = r3130100 + r3130081;
double r3130102 = /* ERROR: no complex support in C */;
double r3130103 = r3130101 + r3130102;
double r3130104 = /* ERROR: no complex support in C */;
return r3130104;
}
double f() {
double r3130105 = 1.0;
double r3130106 = 0.0;
double r3130107 = /* ERROR: no complex support in C */;
double r3130108 = -1.0;
double r3130109 = 6.0;
double r3130110 = r3130108 * r3130109;
double r3130111 = r3130105 * r3130106;
double r3130112 = r3130110 - r3130111;
double r3130113 = r3130105 * r3130109;
double r3130114 = r3130106 * r3130108;
double r3130115 = r3130113 + r3130114;
double r3130116 = /* ERROR: no complex support in C */;
double r3130117 = r3130107 + r3130116;
double r3130118 = r3130105 + r3130108;
double r3130119 = r3130108 - r3130105;
double r3130120 = r3130118 * r3130119;
double r3130121 = r3130105 * r3130108;
double r3130122 = r3130121 + r3130121;
double r3130123 = /* ERROR: no complex support in C */;
double r3130124 = 20.0;
double r3130125 = r3130108 * r3130124;
double r3130126 = r3130125 - r3130111;
double r3130127 = 15.0;
double r3130128 = r3130126 + r3130127;
double r3130129 = r3130124 * r3130105;
double r3130130 = r3130114 + r3130129;
double r3130131 = r3130106 + r3130130;
double r3130132 = /* ERROR: no complex support in C */;
double r3130133 = r3130123 * r3130132;
double r3130134 = r3130117 + r3130133;
double r3130135 = /* ERROR: no complex support in C */;
double r3130136 = r3130135 + r3130116;
double r3130137 = r3130122 + r3130120;
double r3130138 = r3130120 - r3130122;
double r3130139 = r3130137 * r3130138;
double r3130140 = r3130120 * r3130122;
double r3130141 = r3130140 + r3130140;
double r3130142 = /* ERROR: no complex support in C */;
double r3130143 = r3130136 * r3130142;
double r3130144 = r3130120 * r3130139;
double r3130145 = r3130122 * r3130141;
double r3130146 = r3130144 - r3130145;
double r3130147 = r3130139 * r3130122;
double r3130148 = r3130141 * r3130120;
double r3130149 = r3130147 + r3130148;
double r3130150 = /* ERROR: no complex support in C */;
double r3130151 = r3130143 + r3130150;
double r3130152 = r3130134 + r3130151;
double r3130153 = /* ERROR: no complex support in C */;
return r3130153;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019165
(FPCore ()
:name "3.9.1 real part (p56)"
(re (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (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)) (*.c (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))