#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 r8629 = 1;
        float r8630 = -r8629;
        float r8631 = 2;
        float r8632 = r8630 / r8631;
        float r8633 = 3;
        float r8634 = sqrt(r8633);
        float r8635 = r8634 / r8631;
        float r8636 = /* ERROR: no complex support in C */;
        float r8637 = r8636 * r8636;
        float r8638 = r8637 * r8636;
        float r8639 = r8638 * r8636;
        float r8640 = -r8631;
        float r8641 = 0;
        float r8642 = /* ERROR: no complex support in C */;
        float r8643 = r8642 * r8636;
        float r8644 = r8643 * r8636;
        float r8645 = r8644 * r8636;
        float r8646 = r8639 + r8645;
        float r8647 = 5;
        float r8648 = /* ERROR: no complex support in C */;
        float r8649 = r8648 * r8636;
        float r8650 = r8649 * r8636;
        float r8651 = r8646 + r8650;
        float r8652 = 4;
        float r8653 = /* ERROR: no complex support in C */;
        float r8654 = r8653 * r8636;
        float r8655 = r8651 + r8654;
        float r8656 = 7;
        float r8657 = /* ERROR: no complex support in C */;
        float r8658 = r8655 + r8657;
        float r8659 = /* ERROR: no complex support in C */;
        return r8659;
}

double f_id() {
        double r8660 = 1;
        double r8661 = -r8660;
        double r8662 = 2;
        double r8663 = r8661 / r8662;
        double r8664 = 3;
        double r8665 = sqrt(r8664);
        double r8666 = r8665 / r8662;
        double r8667 = /* ERROR: no complex support in C */;
        double r8668 = r8667 * r8667;
        double r8669 = r8668 * r8667;
        double r8670 = r8669 * r8667;
        double r8671 = -r8662;
        double r8672 = 0;
        double r8673 = /* ERROR: no complex support in C */;
        double r8674 = r8673 * r8667;
        double r8675 = r8674 * r8667;
        double r8676 = r8675 * r8667;
        double r8677 = r8670 + r8676;
        double r8678 = 5;
        double r8679 = /* ERROR: no complex support in C */;
        double r8680 = r8679 * r8667;
        double r8681 = r8680 * r8667;
        double r8682 = r8677 + r8681;
        double r8683 = 4;
        double r8684 = /* ERROR: no complex support in C */;
        double r8685 = r8684 * r8667;
        double r8686 = r8682 + r8685;
        double r8687 = 7;
        double r8688 = /* ERROR: no complex support in C */;
        double r8689 = r8686 + r8688;
        double r8690 = /* ERROR: no complex support in C */;
        return r8690;
}


double f_of() {
        float r8691 = 1;
        float r8692 = -r8691;
        float r8693 = 2;
        float r8694 = r8692 / r8693;
        float r8695 = 3;
        float r8696 = sqrt(r8695);
        float r8697 = r8696 / r8693;
        float r8698 = /* ERROR: no complex support in C */;
        float r8699 = r8698 * r8698;
        float r8700 = r8699 * r8698;
        float r8701 = r8700 * r8698;
        float r8702 = -r8693;
        float r8703 = 0;
        float r8704 = /* ERROR: no complex support in C */;
        float r8705 = r8704 * r8698;
        float r8706 = r8705 * r8698;
        float r8707 = r8706 * r8698;
        float r8708 = r8701 + r8707;
        float r8709 = 5;
        float r8710 = /* ERROR: no complex support in C */;
        float r8711 = r8710 * r8698;
        float r8712 = r8711 * r8698;
        float r8713 = r8708 + r8712;
        float r8714 = 4;
        float r8715 = /* ERROR: no complex support in C */;
        float r8716 = r8715 * r8698;
        float r8717 = r8713 + r8716;
        float r8718 = 7;
        float r8719 = /* ERROR: no complex support in C */;
        float r8720 = r8717 + r8719;
        float r8721 = /* ERROR: no complex support in C */;
        return r8721;
}

double f_od() {
        double r8722 = 1;
        double r8723 = -r8722;
        double r8724 = 2;
        double r8725 = r8723 / r8724;
        double r8726 = 3;
        double r8727 = sqrt(r8726);
        double r8728 = r8727 / r8724;
        double r8729 = /* ERROR: no complex support in C */;
        double r8730 = r8729 * r8729;
        double r8731 = r8730 * r8729;
        double r8732 = r8731 * r8729;
        double r8733 = -r8724;
        double r8734 = 0;
        double r8735 = /* ERROR: no complex support in C */;
        double r8736 = r8735 * r8729;
        double r8737 = r8736 * r8729;
        double r8738 = r8737 * r8729;
        double r8739 = r8732 + r8738;
        double r8740 = 5;
        double r8741 = /* ERROR: no complex support in C */;
        double r8742 = r8741 * r8729;
        double r8743 = r8742 * r8729;
        double r8744 = r8739 + r8743;
        double r8745 = 4;
        double r8746 = /* ERROR: no complex support in C */;
        double r8747 = r8746 * r8729;
        double r8748 = r8744 + r8747;
        double r8749 = 7;
        double r8750 = /* ERROR: no complex support in C */;
        double r8751 = r8748 + r8750;
        double r8752 = /* ERROR: no complex support in C */;
        return r8752;
}

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 r8753, r8754, r8755, r8756, r8757, r8758, r8759, r8760, r8761, r8762, r8763, r8764, r8765, r8766, r8767, r8768, r8769, r8770, r8771, r8772, r8773, r8774, r8775, r8776, r8777, r8778, r8779, r8780, r8781, r8782, r8783;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8753, "1", 10, MPFR_RNDN);
        mpfr_init(r8754);
        mpfr_init_set_str(r8755, "2", 10, MPFR_RNDN);
        mpfr_init(r8756);
        mpfr_init_set_str(r8757, "3", 10, MPFR_RNDN);
        mpfr_init(r8758);
        mpfr_init(r8759);
        mpfr_init(r8760);
        mpfr_init(r8761);
        mpfr_init(r8762);
        mpfr_init(r8763);
        mpfr_init(r8764);
        mpfr_init_set_str(r8765, "0", 10, MPFR_RNDN);
        mpfr_init(r8766);
        mpfr_init(r8767);
        mpfr_init(r8768);
        mpfr_init(r8769);
        mpfr_init(r8770);
        mpfr_init_set_str(r8771, "5", 10, MPFR_RNDN);
        mpfr_init(r8772);
        mpfr_init(r8773);
        mpfr_init(r8774);
        mpfr_init(r8775);
        mpfr_init_set_str(r8776, "4", 10, MPFR_RNDN);
        mpfr_init(r8777);
        mpfr_init(r8778);
        mpfr_init(r8779);
        mpfr_init_set_str(r8780, "7", 10, MPFR_RNDN);
        mpfr_init(r8781);
        mpfr_init(r8782);
        mpfr_init(r8783);
}

double f_im() {
        ;
        mpfr_neg(r8754, r8753, MPFR_RNDN);
        ;
        mpfr_div(r8756, r8754, r8755, MPFR_RNDN);
        ;
        mpfr_sqrt(r8758, r8757, MPFR_RNDN);
        mpfr_div(r8759, r8758, r8755, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8761, r8760, r8760, MPFR_RNDN);
        mpfr_mul(r8762, r8761, r8760, MPFR_RNDN);
        mpfr_mul(r8763, r8762, r8760, MPFR_RNDN);
        mpfr_neg(r8764, r8755, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8767, r8766, r8760, MPFR_RNDN);
        mpfr_mul(r8768, r8767, r8760, MPFR_RNDN);
        mpfr_mul(r8769, r8768, r8760, MPFR_RNDN);
        mpfr_add(r8770, r8763, r8769, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8773, r8772, r8760, MPFR_RNDN);
        mpfr_mul(r8774, r8773, r8760, MPFR_RNDN);
        mpfr_add(r8775, r8770, r8774, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8778, r8777, r8760, MPFR_RNDN);
        mpfr_add(r8779, r8775, r8778, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8782, r8779, r8781, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8783, MPFR_RNDN);
}

static mpfr_t r8784, r8785, r8786, r8787, r8788, r8789, r8790, r8791, r8792, r8793, r8794, r8795, r8796, r8797, r8798, r8799, r8800, r8801, r8802, r8803, r8804, r8805, r8806, r8807, r8808, r8809, r8810, r8811, r8812, r8813, r8814;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8784, "1", 10, MPFR_RNDN);
        mpfr_init(r8785);
        mpfr_init_set_str(r8786, "2", 10, MPFR_RNDN);
        mpfr_init(r8787);
        mpfr_init_set_str(r8788, "3", 10, MPFR_RNDN);
        mpfr_init(r8789);
        mpfr_init(r8790);
        mpfr_init(r8791);
        mpfr_init(r8792);
        mpfr_init(r8793);
        mpfr_init(r8794);
        mpfr_init(r8795);
        mpfr_init_set_str(r8796, "0", 10, MPFR_RNDN);
        mpfr_init(r8797);
        mpfr_init(r8798);
        mpfr_init(r8799);
        mpfr_init(r8800);
        mpfr_init(r8801);
        mpfr_init_set_str(r8802, "5", 10, MPFR_RNDN);
        mpfr_init(r8803);
        mpfr_init(r8804);
        mpfr_init(r8805);
        mpfr_init(r8806);
        mpfr_init_set_str(r8807, "4", 10, MPFR_RNDN);
        mpfr_init(r8808);
        mpfr_init(r8809);
        mpfr_init(r8810);
        mpfr_init_set_str(r8811, "7", 10, MPFR_RNDN);
        mpfr_init(r8812);
        mpfr_init(r8813);
        mpfr_init(r8814);
}

double f_fm() {
        ;
        mpfr_neg(r8785, r8784, MPFR_RNDN);
        ;
        mpfr_div(r8787, r8785, r8786, MPFR_RNDN);
        ;
        mpfr_sqrt(r8789, r8788, MPFR_RNDN);
        mpfr_div(r8790, r8789, r8786, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8792, r8791, r8791, MPFR_RNDN);
        mpfr_mul(r8793, r8792, r8791, MPFR_RNDN);
        mpfr_mul(r8794, r8793, r8791, MPFR_RNDN);
        mpfr_neg(r8795, r8786, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8798, r8797, r8791, MPFR_RNDN);
        mpfr_mul(r8799, r8798, r8791, MPFR_RNDN);
        mpfr_mul(r8800, r8799, r8791, MPFR_RNDN);
        mpfr_add(r8801, r8794, r8800, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8804, r8803, r8791, MPFR_RNDN);
        mpfr_mul(r8805, r8804, r8791, MPFR_RNDN);
        mpfr_add(r8806, r8801, r8805, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8809, r8808, r8791, MPFR_RNDN);
        mpfr_add(r8810, r8806, r8809, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8813, r8810, r8812, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8814, MPFR_RNDN);
}

static mpfr_t r8815, r8816, r8817, r8818, r8819, r8820, r8821, r8822, r8823, r8824, r8825, r8826, r8827, r8828, r8829, r8830, r8831, r8832, r8833, r8834, r8835, r8836, r8837, r8838, r8839, r8840, r8841, r8842, r8843, r8844, r8845;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8815, "1", 10, MPFR_RNDN);
        mpfr_init(r8816);
        mpfr_init_set_str(r8817, "2", 10, MPFR_RNDN);
        mpfr_init(r8818);
        mpfr_init_set_str(r8819, "3", 10, MPFR_RNDN);
        mpfr_init(r8820);
        mpfr_init(r8821);
        mpfr_init(r8822);
        mpfr_init(r8823);
        mpfr_init(r8824);
        mpfr_init(r8825);
        mpfr_init(r8826);
        mpfr_init_set_str(r8827, "0", 10, MPFR_RNDN);
        mpfr_init(r8828);
        mpfr_init(r8829);
        mpfr_init(r8830);
        mpfr_init(r8831);
        mpfr_init(r8832);
        mpfr_init_set_str(r8833, "5", 10, MPFR_RNDN);
        mpfr_init(r8834);
        mpfr_init(r8835);
        mpfr_init(r8836);
        mpfr_init(r8837);
        mpfr_init_set_str(r8838, "4", 10, MPFR_RNDN);
        mpfr_init(r8839);
        mpfr_init(r8840);
        mpfr_init(r8841);
        mpfr_init_set_str(r8842, "7", 10, MPFR_RNDN);
        mpfr_init(r8843);
        mpfr_init(r8844);
        mpfr_init(r8845);
}

double f_dm() {
        ;
        mpfr_neg(r8816, r8815, MPFR_RNDN);
        ;
        mpfr_div(r8818, r8816, r8817, MPFR_RNDN);
        ;
        mpfr_sqrt(r8820, r8819, MPFR_RNDN);
        mpfr_div(r8821, r8820, r8817, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8823, r8822, r8822, MPFR_RNDN);
        mpfr_mul(r8824, r8823, r8822, MPFR_RNDN);
        mpfr_mul(r8825, r8824, r8822, MPFR_RNDN);
        mpfr_neg(r8826, r8817, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8829, r8828, r8822, MPFR_RNDN);
        mpfr_mul(r8830, r8829, r8822, MPFR_RNDN);
        mpfr_mul(r8831, r8830, r8822, MPFR_RNDN);
        mpfr_add(r8832, r8825, r8831, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8835, r8834, r8822, MPFR_RNDN);
        mpfr_mul(r8836, r8835, r8822, MPFR_RNDN);
        mpfr_add(r8837, r8832, r8836, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8840, r8839, r8822, MPFR_RNDN);
        mpfr_add(r8841, r8837, r8840, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8844, r8841, r8843, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8845, MPFR_RNDN);
}

