#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "3.9.2 imaginary part (p56)";

double f_if() {
        float r8585 = 1;
        float r8586 = -r8585;
        float r8587 = 2;
        float r8588 = r8586 / r8587;
        float r8589 = 3;
        float r8590 = sqrt(r8589);
        float r8591 = r8590 / r8587;
        float r8592 = /* ERROR: no complex support in C */;
        float r8593 = r8592 * r8592;
        float r8594 = r8593 * r8592;
        float r8595 = r8594 * r8592;
        float r8596 = -r8587;
        float r8597 = 0;
        float r8598 = /* ERROR: no complex support in C */;
        float r8599 = r8598 * r8592;
        float r8600 = r8599 * r8592;
        float r8601 = r8600 * r8592;
        float r8602 = r8595 + r8601;
        float r8603 = 5;
        float r8604 = /* ERROR: no complex support in C */;
        float r8605 = r8604 * r8592;
        float r8606 = r8605 * r8592;
        float r8607 = r8602 + r8606;
        float r8608 = 4;
        float r8609 = /* ERROR: no complex support in C */;
        float r8610 = r8609 * r8592;
        float r8611 = r8607 + r8610;
        float r8612 = 7;
        float r8613 = /* ERROR: no complex support in C */;
        float r8614 = r8611 + r8613;
        float r8615 = /* ERROR: no complex support in C */;
        return r8615;
}

double f_id() {
        double r8616 = 1;
        double r8617 = -r8616;
        double r8618 = 2;
        double r8619 = r8617 / r8618;
        double r8620 = 3;
        double r8621 = sqrt(r8620);
        double r8622 = r8621 / r8618;
        double r8623 = /* ERROR: no complex support in C */;
        double r8624 = r8623 * r8623;
        double r8625 = r8624 * r8623;
        double r8626 = r8625 * r8623;
        double r8627 = -r8618;
        double r8628 = 0;
        double r8629 = /* ERROR: no complex support in C */;
        double r8630 = r8629 * r8623;
        double r8631 = r8630 * r8623;
        double r8632 = r8631 * r8623;
        double r8633 = r8626 + r8632;
        double r8634 = 5;
        double r8635 = /* ERROR: no complex support in C */;
        double r8636 = r8635 * r8623;
        double r8637 = r8636 * r8623;
        double r8638 = r8633 + r8637;
        double r8639 = 4;
        double r8640 = /* ERROR: no complex support in C */;
        double r8641 = r8640 * r8623;
        double r8642 = r8638 + r8641;
        double r8643 = 7;
        double r8644 = /* ERROR: no complex support in C */;
        double r8645 = r8642 + r8644;
        double r8646 = /* ERROR: no complex support in C */;
        return r8646;
}


double f_of() {
        float r8647 = 1;
        float r8648 = -r8647;
        float r8649 = 2;
        float r8650 = r8648 / r8649;
        float r8651 = 3;
        float r8652 = sqrt(r8651);
        float r8653 = r8652 / r8649;
        float r8654 = /* ERROR: no complex support in C */;
        float r8655 = r8654 * r8654;
        float r8656 = r8655 * r8654;
        float r8657 = r8656 * r8654;
        float r8658 = -r8649;
        float r8659 = 0;
        float r8660 = /* ERROR: no complex support in C */;
        float r8661 = r8660 * r8654;
        float r8662 = r8661 * r8654;
        float r8663 = r8662 * r8654;
        float r8664 = r8657 + r8663;
        float r8665 = 5;
        float r8666 = /* ERROR: no complex support in C */;
        float r8667 = r8666 * r8654;
        float r8668 = r8667 * r8654;
        float r8669 = r8664 + r8668;
        float r8670 = 4;
        float r8671 = /* ERROR: no complex support in C */;
        float r8672 = r8671 * r8654;
        float r8673 = r8669 + r8672;
        float r8674 = 7;
        float r8675 = /* ERROR: no complex support in C */;
        float r8676 = r8673 + r8675;
        float r8677 = /* ERROR: no complex support in C */;
        return r8677;
}

double f_od() {
        double r8678 = 1;
        double r8679 = -r8678;
        double r8680 = 2;
        double r8681 = r8679 / r8680;
        double r8682 = 3;
        double r8683 = sqrt(r8682);
        double r8684 = r8683 / r8680;
        double r8685 = /* ERROR: no complex support in C */;
        double r8686 = r8685 * r8685;
        double r8687 = r8686 * r8685;
        double r8688 = r8687 * r8685;
        double r8689 = -r8680;
        double r8690 = 0;
        double r8691 = /* ERROR: no complex support in C */;
        double r8692 = r8691 * r8685;
        double r8693 = r8692 * r8685;
        double r8694 = r8693 * r8685;
        double r8695 = r8688 + r8694;
        double r8696 = 5;
        double r8697 = /* ERROR: no complex support in C */;
        double r8698 = r8697 * r8685;
        double r8699 = r8698 * r8685;
        double r8700 = r8695 + r8699;
        double r8701 = 4;
        double r8702 = /* ERROR: no complex support in C */;
        double r8703 = r8702 * r8685;
        double r8704 = r8700 + r8703;
        double r8705 = 7;
        double r8706 = /* ERROR: no complex support in C */;
        double r8707 = r8704 + r8706;
        double r8708 = /* ERROR: no complex support in C */;
        return r8708;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r8709, r8710, r8711, r8712, r8713, r8714, r8715, r8716, r8717, r8718, r8719, r8720, r8721, r8722, r8723, r8724, r8725, r8726, r8727, r8728, r8729, r8730, r8731, r8732, r8733, r8734, r8735, r8736, r8737, r8738, r8739;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8709, "1", 10, MPFR_RNDN);
        mpfr_init(r8710);
        mpfr_init_set_str(r8711, "2", 10, MPFR_RNDN);
        mpfr_init(r8712);
        mpfr_init_set_str(r8713, "3", 10, MPFR_RNDN);
        mpfr_init(r8714);
        mpfr_init(r8715);
        mpfr_init(r8716);
        mpfr_init(r8717);
        mpfr_init(r8718);
        mpfr_init(r8719);
        mpfr_init(r8720);
        mpfr_init_set_str(r8721, "0", 10, MPFR_RNDN);
        mpfr_init(r8722);
        mpfr_init(r8723);
        mpfr_init(r8724);
        mpfr_init(r8725);
        mpfr_init(r8726);
        mpfr_init_set_str(r8727, "5", 10, MPFR_RNDN);
        mpfr_init(r8728);
        mpfr_init(r8729);
        mpfr_init(r8730);
        mpfr_init(r8731);
        mpfr_init_set_str(r8732, "4", 10, MPFR_RNDN);
        mpfr_init(r8733);
        mpfr_init(r8734);
        mpfr_init(r8735);
        mpfr_init_set_str(r8736, "7", 10, MPFR_RNDN);
        mpfr_init(r8737);
        mpfr_init(r8738);
        mpfr_init(r8739);
}

double f_im() {
        ;
        mpfr_neg(r8710, r8709, MPFR_RNDN);
        ;
        mpfr_div(r8712, r8710, r8711, MPFR_RNDN);
        ;
        mpfr_sqrt(r8714, r8713, MPFR_RNDN);
        mpfr_div(r8715, r8714, r8711, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8717, r8716, r8716, MPFR_RNDN);
        mpfr_mul(r8718, r8717, r8716, MPFR_RNDN);
        mpfr_mul(r8719, r8718, r8716, MPFR_RNDN);
        mpfr_neg(r8720, r8711, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8723, r8722, r8716, MPFR_RNDN);
        mpfr_mul(r8724, r8723, r8716, MPFR_RNDN);
        mpfr_mul(r8725, r8724, r8716, MPFR_RNDN);
        mpfr_add(r8726, r8719, r8725, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8729, r8728, r8716, MPFR_RNDN);
        mpfr_mul(r8730, r8729, r8716, MPFR_RNDN);
        mpfr_add(r8731, r8726, r8730, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8734, r8733, r8716, MPFR_RNDN);
        mpfr_add(r8735, r8731, r8734, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8738, r8735, r8737, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8739, MPFR_RNDN);
}

static mpfr_t r8740, r8741, r8742, r8743, r8744, r8745, r8746, r8747, r8748, r8749, r8750, r8751, r8752, r8753, r8754, r8755, r8756, r8757, r8758, r8759, r8760, r8761, r8762, r8763, r8764, r8765, r8766, r8767, r8768, r8769, r8770;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8740, "1", 10, MPFR_RNDN);
        mpfr_init(r8741);
        mpfr_init_set_str(r8742, "2", 10, MPFR_RNDN);
        mpfr_init(r8743);
        mpfr_init_set_str(r8744, "3", 10, MPFR_RNDN);
        mpfr_init(r8745);
        mpfr_init(r8746);
        mpfr_init(r8747);
        mpfr_init(r8748);
        mpfr_init(r8749);
        mpfr_init(r8750);
        mpfr_init(r8751);
        mpfr_init_set_str(r8752, "0", 10, MPFR_RNDN);
        mpfr_init(r8753);
        mpfr_init(r8754);
        mpfr_init(r8755);
        mpfr_init(r8756);
        mpfr_init(r8757);
        mpfr_init_set_str(r8758, "5", 10, MPFR_RNDN);
        mpfr_init(r8759);
        mpfr_init(r8760);
        mpfr_init(r8761);
        mpfr_init(r8762);
        mpfr_init_set_str(r8763, "4", 10, MPFR_RNDN);
        mpfr_init(r8764);
        mpfr_init(r8765);
        mpfr_init(r8766);
        mpfr_init_set_str(r8767, "7", 10, MPFR_RNDN);
        mpfr_init(r8768);
        mpfr_init(r8769);
        mpfr_init(r8770);
}

double f_fm() {
        ;
        mpfr_neg(r8741, r8740, MPFR_RNDN);
        ;
        mpfr_div(r8743, r8741, r8742, MPFR_RNDN);
        ;
        mpfr_sqrt(r8745, r8744, MPFR_RNDN);
        mpfr_div(r8746, r8745, r8742, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8748, r8747, r8747, MPFR_RNDN);
        mpfr_mul(r8749, r8748, r8747, MPFR_RNDN);
        mpfr_mul(r8750, r8749, r8747, MPFR_RNDN);
        mpfr_neg(r8751, r8742, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8754, r8753, r8747, MPFR_RNDN);
        mpfr_mul(r8755, r8754, r8747, MPFR_RNDN);
        mpfr_mul(r8756, r8755, r8747, MPFR_RNDN);
        mpfr_add(r8757, r8750, r8756, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8760, r8759, r8747, MPFR_RNDN);
        mpfr_mul(r8761, r8760, r8747, MPFR_RNDN);
        mpfr_add(r8762, r8757, r8761, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8765, r8764, r8747, MPFR_RNDN);
        mpfr_add(r8766, r8762, r8765, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8769, r8766, r8768, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8770, MPFR_RNDN);
}

static mpfr_t r8771, r8772, r8773, r8774, r8775, r8776, r8777, r8778, r8779, r8780, r8781, r8782, r8783, r8784, r8785, r8786, r8787, r8788, r8789, r8790, r8791, r8792, r8793, r8794, r8795, r8796, r8797, r8798, r8799, r8800, r8801;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8771, "1", 10, MPFR_RNDN);
        mpfr_init(r8772);
        mpfr_init_set_str(r8773, "2", 10, MPFR_RNDN);
        mpfr_init(r8774);
        mpfr_init_set_str(r8775, "3", 10, MPFR_RNDN);
        mpfr_init(r8776);
        mpfr_init(r8777);
        mpfr_init(r8778);
        mpfr_init(r8779);
        mpfr_init(r8780);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init_set_str(r8783, "0", 10, MPFR_RNDN);
        mpfr_init(r8784);
        mpfr_init(r8785);
        mpfr_init(r8786);
        mpfr_init(r8787);
        mpfr_init(r8788);
        mpfr_init_set_str(r8789, "5", 10, MPFR_RNDN);
        mpfr_init(r8790);
        mpfr_init(r8791);
        mpfr_init(r8792);
        mpfr_init(r8793);
        mpfr_init_set_str(r8794, "4", 10, MPFR_RNDN);
        mpfr_init(r8795);
        mpfr_init(r8796);
        mpfr_init(r8797);
        mpfr_init_set_str(r8798, "7", 10, MPFR_RNDN);
        mpfr_init(r8799);
        mpfr_init(r8800);
        mpfr_init(r8801);
}

double f_dm() {
        ;
        mpfr_neg(r8772, r8771, MPFR_RNDN);
        ;
        mpfr_div(r8774, r8772, r8773, MPFR_RNDN);
        ;
        mpfr_sqrt(r8776, r8775, MPFR_RNDN);
        mpfr_div(r8777, r8776, r8773, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8779, r8778, r8778, MPFR_RNDN);
        mpfr_mul(r8780, r8779, r8778, MPFR_RNDN);
        mpfr_mul(r8781, r8780, r8778, MPFR_RNDN);
        mpfr_neg(r8782, r8773, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8785, r8784, r8778, MPFR_RNDN);
        mpfr_mul(r8786, r8785, r8778, MPFR_RNDN);
        mpfr_mul(r8787, r8786, r8778, MPFR_RNDN);
        mpfr_add(r8788, r8781, r8787, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8791, r8790, r8778, MPFR_RNDN);
        mpfr_mul(r8792, r8791, r8778, MPFR_RNDN);
        mpfr_add(r8793, r8788, r8792, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8796, r8795, r8778, MPFR_RNDN);
        mpfr_add(r8797, r8793, r8796, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8800, r8797, r8799, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8801, MPFR_RNDN);
}

