#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 r8593 = 1;
        float r8594 = -r8593;
        float r8595 = 2;
        float r8596 = r8594 / r8595;
        float r8597 = 3;
        float r8598 = sqrt(r8597);
        float r8599 = r8598 / r8595;
        float r8600 = /* ERROR: no complex support in C */;
        float r8601 = r8600 * r8600;
        float r8602 = r8601 * r8600;
        float r8603 = r8602 * r8600;
        float r8604 = -r8595;
        float r8605 = 0;
        float r8606 = /* ERROR: no complex support in C */;
        float r8607 = r8606 * r8600;
        float r8608 = r8607 * r8600;
        float r8609 = r8608 * r8600;
        float r8610 = r8603 + r8609;
        float r8611 = 5;
        float r8612 = /* ERROR: no complex support in C */;
        float r8613 = r8612 * r8600;
        float r8614 = r8613 * r8600;
        float r8615 = r8610 + r8614;
        float r8616 = 4;
        float r8617 = /* ERROR: no complex support in C */;
        float r8618 = r8617 * r8600;
        float r8619 = r8615 + r8618;
        float r8620 = 7;
        float r8621 = /* ERROR: no complex support in C */;
        float r8622 = r8619 + r8621;
        float r8623 = /* ERROR: no complex support in C */;
        return r8623;
}

double f_id() {
        double r8624 = 1;
        double r8625 = -r8624;
        double r8626 = 2;
        double r8627 = r8625 / r8626;
        double r8628 = 3;
        double r8629 = sqrt(r8628);
        double r8630 = r8629 / r8626;
        double r8631 = /* ERROR: no complex support in C */;
        double r8632 = r8631 * r8631;
        double r8633 = r8632 * r8631;
        double r8634 = r8633 * r8631;
        double r8635 = -r8626;
        double r8636 = 0;
        double r8637 = /* ERROR: no complex support in C */;
        double r8638 = r8637 * r8631;
        double r8639 = r8638 * r8631;
        double r8640 = r8639 * r8631;
        double r8641 = r8634 + r8640;
        double r8642 = 5;
        double r8643 = /* ERROR: no complex support in C */;
        double r8644 = r8643 * r8631;
        double r8645 = r8644 * r8631;
        double r8646 = r8641 + r8645;
        double r8647 = 4;
        double r8648 = /* ERROR: no complex support in C */;
        double r8649 = r8648 * r8631;
        double r8650 = r8646 + r8649;
        double r8651 = 7;
        double r8652 = /* ERROR: no complex support in C */;
        double r8653 = r8650 + r8652;
        double r8654 = /* ERROR: no complex support in C */;
        return r8654;
}


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

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

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 r8717, r8718, r8719, r8720, r8721, r8722, r8723, r8724, r8725, r8726, r8727, r8728, r8729, r8730, r8731, r8732, r8733, r8734, r8735, r8736, r8737, r8738, r8739, r8740, r8741, r8742, r8743, r8744, r8745, r8746, r8747;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8717, "1", 10, MPFR_RNDN);
        mpfr_init(r8718);
        mpfr_init_set_str(r8719, "2", 10, MPFR_RNDN);
        mpfr_init(r8720);
        mpfr_init_set_str(r8721, "3", 10, MPFR_RNDN);
        mpfr_init(r8722);
        mpfr_init(r8723);
        mpfr_init(r8724);
        mpfr_init(r8725);
        mpfr_init(r8726);
        mpfr_init(r8727);
        mpfr_init(r8728);
        mpfr_init_set_str(r8729, "0", 10, MPFR_RNDN);
        mpfr_init(r8730);
        mpfr_init(r8731);
        mpfr_init(r8732);
        mpfr_init(r8733);
        mpfr_init(r8734);
        mpfr_init_set_str(r8735, "5", 10, MPFR_RNDN);
        mpfr_init(r8736);
        mpfr_init(r8737);
        mpfr_init(r8738);
        mpfr_init(r8739);
        mpfr_init_set_str(r8740, "4", 10, MPFR_RNDN);
        mpfr_init(r8741);
        mpfr_init(r8742);
        mpfr_init(r8743);
        mpfr_init_set_str(r8744, "7", 10, MPFR_RNDN);
        mpfr_init(r8745);
        mpfr_init(r8746);
        mpfr_init(r8747);
}

double f_im() {
        ;
        mpfr_neg(r8718, r8717, MPFR_RNDN);
        ;
        mpfr_div(r8720, r8718, r8719, MPFR_RNDN);
        ;
        mpfr_sqrt(r8722, r8721, MPFR_RNDN);
        mpfr_div(r8723, r8722, r8719, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8725, r8724, r8724, MPFR_RNDN);
        mpfr_mul(r8726, r8725, r8724, MPFR_RNDN);
        mpfr_mul(r8727, r8726, r8724, MPFR_RNDN);
        mpfr_neg(r8728, r8719, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8731, r8730, r8724, MPFR_RNDN);
        mpfr_mul(r8732, r8731, r8724, MPFR_RNDN);
        mpfr_mul(r8733, r8732, r8724, MPFR_RNDN);
        mpfr_add(r8734, r8727, r8733, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8737, r8736, r8724, MPFR_RNDN);
        mpfr_mul(r8738, r8737, r8724, MPFR_RNDN);
        mpfr_add(r8739, r8734, r8738, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8742, r8741, r8724, MPFR_RNDN);
        mpfr_add(r8743, r8739, r8742, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8746, r8743, r8745, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8747, MPFR_RNDN);
}

static mpfr_t 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, r8776, r8777, r8778;

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

double f_fm() {
        ;
        mpfr_neg(r8749, r8748, MPFR_RNDN);
        ;
        mpfr_div(r8751, r8749, r8750, MPFR_RNDN);
        ;
        mpfr_sqrt(r8753, r8752, MPFR_RNDN);
        mpfr_div(r8754, r8753, r8750, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8756, r8755, r8755, MPFR_RNDN);
        mpfr_mul(r8757, r8756, r8755, MPFR_RNDN);
        mpfr_mul(r8758, r8757, r8755, MPFR_RNDN);
        mpfr_neg(r8759, r8750, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8762, r8761, r8755, MPFR_RNDN);
        mpfr_mul(r8763, r8762, r8755, MPFR_RNDN);
        mpfr_mul(r8764, r8763, r8755, MPFR_RNDN);
        mpfr_add(r8765, r8758, r8764, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8768, r8767, r8755, MPFR_RNDN);
        mpfr_mul(r8769, r8768, r8755, MPFR_RNDN);
        mpfr_add(r8770, r8765, r8769, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8773, r8772, r8755, MPFR_RNDN);
        mpfr_add(r8774, r8770, r8773, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8777, r8774, r8776, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8778, MPFR_RNDN);
}

static mpfr_t 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, r8807, r8808, r8809;

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

double f_dm() {
        ;
        mpfr_neg(r8780, r8779, MPFR_RNDN);
        ;
        mpfr_div(r8782, r8780, r8781, MPFR_RNDN);
        ;
        mpfr_sqrt(r8784, r8783, MPFR_RNDN);
        mpfr_div(r8785, r8784, r8781, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r8787, r8786, r8786, MPFR_RNDN);
        mpfr_mul(r8788, r8787, r8786, MPFR_RNDN);
        mpfr_mul(r8789, r8788, r8786, MPFR_RNDN);
        mpfr_neg(r8790, r8781, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8793, r8792, r8786, MPFR_RNDN);
        mpfr_mul(r8794, r8793, r8786, MPFR_RNDN);
        mpfr_mul(r8795, r8794, r8786, MPFR_RNDN);
        mpfr_add(r8796, r8789, r8795, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8799, r8798, r8786, MPFR_RNDN);
        mpfr_mul(r8800, r8799, r8786, MPFR_RNDN);
        mpfr_add(r8801, r8796, r8800, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r8804, r8803, r8786, MPFR_RNDN);
        mpfr_add(r8805, r8801, r8804, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r8808, r8805, r8807, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8809, MPFR_RNDN);
}

