#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 r8621 = 1;
        float r8622 = -r8621;
        float r8623 = 2;
        float r8624 = r8622 / r8623;
        float r8625 = 3;
        float r8626 = sqrt(r8625);
        float r8627 = r8626 / r8623;
        float r8628 = /* ERROR: no complex support in C */;
        float r8629 = r8628 * r8628;
        float r8630 = r8629 * r8628;
        float r8631 = r8630 * r8628;
        float r8632 = -r8623;
        float r8633 = 0;
        float r8634 = /* ERROR: no complex support in C */;
        float r8635 = r8634 * r8628;
        float r8636 = r8635 * r8628;
        float r8637 = r8636 * r8628;
        float r8638 = r8631 + r8637;
        float r8639 = 5;
        float r8640 = /* ERROR: no complex support in C */;
        float r8641 = r8640 * r8628;
        float r8642 = r8641 * r8628;
        float r8643 = r8638 + r8642;
        float r8644 = 4;
        float r8645 = /* ERROR: no complex support in C */;
        float r8646 = r8645 * r8628;
        float r8647 = r8643 + r8646;
        float r8648 = 7;
        float r8649 = /* ERROR: no complex support in C */;
        float r8650 = r8647 + r8649;
        float r8651 = /* ERROR: no complex support in C */;
        return r8651;
}

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


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

double f_od() {
        double r8714 = 1;
        double r8715 = -r8714;
        double r8716 = 2;
        double r8717 = r8715 / r8716;
        double r8718 = 3;
        double r8719 = sqrt(r8718);
        double r8720 = r8719 / r8716;
        double r8721 = /* ERROR: no complex support in C */;
        double r8722 = r8721 * r8721;
        double r8723 = r8722 * r8721;
        double r8724 = r8723 * r8721;
        double r8725 = -r8716;
        double r8726 = 0;
        double r8727 = /* ERROR: no complex support in C */;
        double r8728 = r8727 * r8721;
        double r8729 = r8728 * r8721;
        double r8730 = r8729 * r8721;
        double r8731 = r8724 + r8730;
        double r8732 = 5;
        double r8733 = /* ERROR: no complex support in C */;
        double r8734 = r8733 * r8721;
        double r8735 = r8734 * r8721;
        double r8736 = r8731 + r8735;
        double r8737 = 4;
        double r8738 = /* ERROR: no complex support in C */;
        double r8739 = r8738 * r8721;
        double r8740 = r8736 + r8739;
        double r8741 = 7;
        double r8742 = /* ERROR: no complex support in C */;
        double r8743 = r8740 + r8742;
        double r8744 = /* ERROR: no complex support in C */;
        return r8744;
}

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 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, r8771, r8772, r8773, r8774, r8775;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8745, "1", 10, MPFR_RNDN);
        mpfr_init(r8746);
        mpfr_init_set_str(r8747, "2", 10, MPFR_RNDN);
        mpfr_init(r8748);
        mpfr_init_set_str(r8749, "3", 10, MPFR_RNDN);
        mpfr_init(r8750);
        mpfr_init(r8751);
        mpfr_init(r8752);
        mpfr_init(r8753);
        mpfr_init(r8754);
        mpfr_init(r8755);
        mpfr_init(r8756);
        mpfr_init_set_str(r8757, "0", 10, MPFR_RNDN);
        mpfr_init(r8758);
        mpfr_init(r8759);
        mpfr_init(r8760);
        mpfr_init(r8761);
        mpfr_init(r8762);
        mpfr_init_set_str(r8763, "5", 10, MPFR_RNDN);
        mpfr_init(r8764);
        mpfr_init(r8765);
        mpfr_init(r8766);
        mpfr_init(r8767);
        mpfr_init_set_str(r8768, "4", 10, MPFR_RNDN);
        mpfr_init(r8769);
        mpfr_init(r8770);
        mpfr_init(r8771);
        mpfr_init_set_str(r8772, "7", 10, MPFR_RNDN);
        mpfr_init(r8773);
        mpfr_init(r8774);
        mpfr_init(r8775);
}

double f_im() {
        ;
        mpfr_neg(r8746, r8745, MPFR_RNDN);
        ;
        mpfr_div(r8748, r8746, r8747, MPFR_RNDN);
        ;
        mpfr_sqrt(r8750, r8749, MPFR_RNDN);
        mpfr_div(r8751, r8750, r8747, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8753, r8752, r8752, MPFR_RNDN);
        mpfr_mul(r8754, r8753, r8752, MPFR_RNDN);
        mpfr_mul(r8755, r8754, r8752, MPFR_RNDN);
        mpfr_neg(r8756, r8747, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8759, r8758, r8752, MPFR_RNDN);
        mpfr_mul(r8760, r8759, r8752, MPFR_RNDN);
        mpfr_mul(r8761, r8760, r8752, MPFR_RNDN);
        mpfr_add(r8762, r8755, r8761, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8765, r8764, r8752, MPFR_RNDN);
        mpfr_mul(r8766, r8765, r8752, MPFR_RNDN);
        mpfr_add(r8767, r8762, r8766, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8770, r8769, r8752, MPFR_RNDN);
        mpfr_add(r8771, r8767, r8770, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8774, r8771, r8773, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8775, MPFR_RNDN);
}

static mpfr_t 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, r8802, r8803, r8804, r8805, r8806;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8776, "1", 10, MPFR_RNDN);
        mpfr_init(r8777);
        mpfr_init_set_str(r8778, "2", 10, MPFR_RNDN);
        mpfr_init(r8779);
        mpfr_init_set_str(r8780, "3", 10, MPFR_RNDN);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init(r8783);
        mpfr_init(r8784);
        mpfr_init(r8785);
        mpfr_init(r8786);
        mpfr_init(r8787);
        mpfr_init_set_str(r8788, "0", 10, MPFR_RNDN);
        mpfr_init(r8789);
        mpfr_init(r8790);
        mpfr_init(r8791);
        mpfr_init(r8792);
        mpfr_init(r8793);
        mpfr_init_set_str(r8794, "5", 10, MPFR_RNDN);
        mpfr_init(r8795);
        mpfr_init(r8796);
        mpfr_init(r8797);
        mpfr_init(r8798);
        mpfr_init_set_str(r8799, "4", 10, MPFR_RNDN);
        mpfr_init(r8800);
        mpfr_init(r8801);
        mpfr_init(r8802);
        mpfr_init_set_str(r8803, "7", 10, MPFR_RNDN);
        mpfr_init(r8804);
        mpfr_init(r8805);
        mpfr_init(r8806);
}

double f_fm() {
        ;
        mpfr_neg(r8777, r8776, MPFR_RNDN);
        ;
        mpfr_div(r8779, r8777, r8778, MPFR_RNDN);
        ;
        mpfr_sqrt(r8781, r8780, MPFR_RNDN);
        mpfr_div(r8782, r8781, r8778, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8784, r8783, r8783, MPFR_RNDN);
        mpfr_mul(r8785, r8784, r8783, MPFR_RNDN);
        mpfr_mul(r8786, r8785, r8783, MPFR_RNDN);
        mpfr_neg(r8787, r8778, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8790, r8789, r8783, MPFR_RNDN);
        mpfr_mul(r8791, r8790, r8783, MPFR_RNDN);
        mpfr_mul(r8792, r8791, r8783, MPFR_RNDN);
        mpfr_add(r8793, r8786, r8792, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8796, r8795, r8783, MPFR_RNDN);
        mpfr_mul(r8797, r8796, r8783, MPFR_RNDN);
        mpfr_add(r8798, r8793, r8797, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8801, r8800, r8783, MPFR_RNDN);
        mpfr_add(r8802, r8798, r8801, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8805, r8802, r8804, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8806, MPFR_RNDN);
}

static mpfr_t r8807, r8808, r8809, r8810, r8811, r8812, r8813, r8814, r8815, r8816, r8817, r8818, r8819, r8820, r8821, r8822, r8823, r8824, r8825, r8826, r8827, r8828, r8829, r8830, r8831, r8832, r8833, r8834, r8835, r8836, r8837;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8807, "1", 10, MPFR_RNDN);
        mpfr_init(r8808);
        mpfr_init_set_str(r8809, "2", 10, MPFR_RNDN);
        mpfr_init(r8810);
        mpfr_init_set_str(r8811, "3", 10, MPFR_RNDN);
        mpfr_init(r8812);
        mpfr_init(r8813);
        mpfr_init(r8814);
        mpfr_init(r8815);
        mpfr_init(r8816);
        mpfr_init(r8817);
        mpfr_init(r8818);
        mpfr_init_set_str(r8819, "0", 10, MPFR_RNDN);
        mpfr_init(r8820);
        mpfr_init(r8821);
        mpfr_init(r8822);
        mpfr_init(r8823);
        mpfr_init(r8824);
        mpfr_init_set_str(r8825, "5", 10, MPFR_RNDN);
        mpfr_init(r8826);
        mpfr_init(r8827);
        mpfr_init(r8828);
        mpfr_init(r8829);
        mpfr_init_set_str(r8830, "4", 10, MPFR_RNDN);
        mpfr_init(r8831);
        mpfr_init(r8832);
        mpfr_init(r8833);
        mpfr_init_set_str(r8834, "7", 10, MPFR_RNDN);
        mpfr_init(r8835);
        mpfr_init(r8836);
        mpfr_init(r8837);
}

double f_dm() {
        ;
        mpfr_neg(r8808, r8807, MPFR_RNDN);
        ;
        mpfr_div(r8810, r8808, r8809, MPFR_RNDN);
        ;
        mpfr_sqrt(r8812, r8811, MPFR_RNDN);
        mpfr_div(r8813, r8812, r8809, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8815, r8814, r8814, MPFR_RNDN);
        mpfr_mul(r8816, r8815, r8814, MPFR_RNDN);
        mpfr_mul(r8817, r8816, r8814, MPFR_RNDN);
        mpfr_neg(r8818, r8809, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8821, r8820, r8814, MPFR_RNDN);
        mpfr_mul(r8822, r8821, r8814, MPFR_RNDN);
        mpfr_mul(r8823, r8822, r8814, MPFR_RNDN);
        mpfr_add(r8824, r8817, r8823, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8827, r8826, r8814, MPFR_RNDN);
        mpfr_mul(r8828, r8827, r8814, MPFR_RNDN);
        mpfr_add(r8829, r8824, r8828, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8832, r8831, r8814, MPFR_RNDN);
        mpfr_add(r8833, r8829, r8832, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8836, r8833, r8835, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8837, MPFR_RNDN);
}

