\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 i\right) \cdot \left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(-1 + 1 i\right) + \left(6 + 0.0 i\right)\right)\right)\right)\right)\right) + \left(\left(-1 + 1 i\right) \cdot \left(\left(\left(-1 + 1 i\right) \cdot \left(\left(\left(20 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(15 + 0.0 i\right)\right)\right) + \left(6 + 0.0 i\right)\right)\right)\right) + \left(1 + 0.0 i\right)\right))
double f() {
double r36302 = -1.0;
double r36303 = 1.0;
double r36304 = /* ERROR: no complex support in C */;
double r36305 = r36304 * r36304;
double r36306 = r36305 * r36304;
double r36307 = r36306 * r36304;
double r36308 = r36307 * r36304;
double r36309 = r36308 * r36304;
double r36310 = 6.0;
double r36311 = 0.0;
double r36312 = /* ERROR: no complex support in C */;
double r36313 = r36312 * r36304;
double r36314 = r36313 * r36304;
double r36315 = r36314 * r36304;
double r36316 = r36315 * r36304;
double r36317 = r36316 * r36304;
double r36318 = r36309 + r36317;
double r36319 = 15.0;
double r36320 = /* ERROR: no complex support in C */;
double r36321 = r36320 * r36304;
double r36322 = r36321 * r36304;
double r36323 = r36322 * r36304;
double r36324 = r36323 * r36304;
double r36325 = r36318 + r36324;
double r36326 = 20.0;
double r36327 = /* ERROR: no complex support in C */;
double r36328 = r36327 * r36304;
double r36329 = r36328 * r36304;
double r36330 = r36329 * r36304;
double r36331 = r36325 + r36330;
double r36332 = r36331 + r36322;
double r36333 = r36332 + r36313;
double r36334 = /* ERROR: no complex support in C */;
double r36335 = r36333 + r36334;
double r36336 = /* ERROR: no complex support in C */;
return r36336;
}
double f() {
double r36337 = -1.0;
double r36338 = 1.0;
double r36339 = /* ERROR: no complex support in C */;
double r36340 = r36339 * r36339;
double r36341 = 15.0;
double r36342 = 0.0;
double r36343 = /* ERROR: no complex support in C */;
double r36344 = r36343 * r36339;
double r36345 = 6.0;
double r36346 = /* ERROR: no complex support in C */;
double r36347 = r36339 + r36346;
double r36348 = r36340 * r36347;
double r36349 = r36344 + r36348;
double r36350 = r36340 * r36349;
double r36351 = r36339 * r36350;
double r36352 = 20.0;
double r36353 = /* ERROR: no complex support in C */;
double r36354 = r36353 * r36339;
double r36355 = r36354 + r36343;
double r36356 = r36339 * r36355;
double r36357 = r36356 + r36346;
double r36358 = r36339 * r36357;
double r36359 = r36351 + r36358;
double r36360 = /* ERROR: no complex support in C */;
double r36361 = r36359 + r36360;
double r36362 = /* ERROR: no complex support in C */;
return r36362;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019350 +o rules:numerics
(FPCore ()
:name "3.9.1 imaginary part (p56)"
:precision binary64
(im (+ (+ (+ (+ (+ (+ (* (* (* (* (* (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (* (* (* (* (* (complex 6 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (* (* (complex 15 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (* (complex 20 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (complex 15 0.0) (complex -1 1)) (complex -1 1))) (* (complex 6 0.0) (complex -1 1))) (complex 1 0.0))))