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

char *name = "Octave 3.8, jcobi/2";

double f_if(float alpha, float beta, float i) {
        float r9814 = alpha;
        float r9815 = beta;
        float r9816 = r9814 + r9815;
        float r9817 = r9815 - r9814;
        float r9818 = r9816 * r9817;
        float r9819 = 2;
        float r9820 = i;
        float r9821 = r9819 * r9820;
        float r9822 = r9816 + r9821;
        float r9823 = r9818 / r9822;
        float r9824 = 2.0;
        float r9825 = r9822 + r9824;
        float r9826 = r9823 / r9825;
        float r9827 = 1.0;
        float r9828 = r9826 + r9827;
        float r9829 = r9828 / r9824;
        return r9829;
}

double f_id(double alpha, double beta, double i) {
        double r9830 = alpha;
        double r9831 = beta;
        double r9832 = r9830 + r9831;
        double r9833 = r9831 - r9830;
        double r9834 = r9832 * r9833;
        double r9835 = 2;
        double r9836 = i;
        double r9837 = r9835 * r9836;
        double r9838 = r9832 + r9837;
        double r9839 = r9834 / r9838;
        double r9840 = 2.0;
        double r9841 = r9838 + r9840;
        double r9842 = r9839 / r9841;
        double r9843 = 1.0;
        double r9844 = r9842 + r9843;
        double r9845 = r9844 / r9840;
        return r9845;
}


double f_of(float alpha, float beta, float i) {
        float r9846 = beta;
        float r9847 = alpha;
        float r9848 = r9846 + r9847;
        float r9849 = r9846 - r9847;
        float r9850 = cbrt(r9849);
        float r9851 = r9850 * r9850;
        float r9852 = r9847 + r9846;
        float r9853 = 2;
        float r9854 = i;
        float r9855 = r9853 * r9854;
        float r9856 = r9852 + r9855;
        float r9857 = r9850 / r9856;
        float r9858 = r9851 * r9857;
        float r9859 = r9848 * r9858;
        float r9860 = 2.0;
        float r9861 = r9856 + r9860;
        float r9862 = r9859 / r9861;
        float r9863 = 1.0;
        float r9864 = r9862 + r9863;
        float r9865 = r9864 / r9860;
        float r9866 = 3.365363543395006e-16;
        bool r9867 = r9865 <= r9866;
        float r9868 = 1;
        float r9869 = r9868 / r9847;
        float r9870 = r9860 * r9869;
        float r9871 = 8.0;
        float r9872 = 3;
        float r9873 = pow(r9847, r9872);
        float r9874 = r9868 / r9873;
        float r9875 = r9871 * r9874;
        float r9876 = r9870 + r9875;
        float r9877 = 4.0;
        float r9878 = pow(r9847, r9853);
        float r9879 = r9868 / r9878;
        float r9880 = r9877 * r9879;
        float r9881 = r9876 - r9880;
        float r9882 = r9881 / r9860;
        float r9883 = r9849 / r9856;
        float r9884 = r9883 / r9861;
        float r9885 = r9848 * r9884;
        float r9886 = r9885 + r9863;
        float r9887 = r9886 / r9860;
        float r9888 = r9867 ? r9882 : r9887;
        return r9888;
}

double f_od(double alpha, double beta, double i) {
        double r9889 = beta;
        double r9890 = alpha;
        double r9891 = r9889 + r9890;
        double r9892 = r9889 - r9890;
        double r9893 = cbrt(r9892);
        double r9894 = r9893 * r9893;
        double r9895 = r9890 + r9889;
        double r9896 = 2;
        double r9897 = i;
        double r9898 = r9896 * r9897;
        double r9899 = r9895 + r9898;
        double r9900 = r9893 / r9899;
        double r9901 = r9894 * r9900;
        double r9902 = r9891 * r9901;
        double r9903 = 2.0;
        double r9904 = r9899 + r9903;
        double r9905 = r9902 / r9904;
        double r9906 = 1.0;
        double r9907 = r9905 + r9906;
        double r9908 = r9907 / r9903;
        double r9909 = 3.365363543395006e-16;
        bool r9910 = r9908 <= r9909;
        double r9911 = 1;
        double r9912 = r9911 / r9890;
        double r9913 = r9903 * r9912;
        double r9914 = 8.0;
        double r9915 = 3;
        double r9916 = pow(r9890, r9915);
        double r9917 = r9911 / r9916;
        double r9918 = r9914 * r9917;
        double r9919 = r9913 + r9918;
        double r9920 = 4.0;
        double r9921 = pow(r9890, r9896);
        double r9922 = r9911 / r9921;
        double r9923 = r9920 * r9922;
        double r9924 = r9919 - r9923;
        double r9925 = r9924 / r9903;
        double r9926 = r9892 / r9899;
        double r9927 = r9926 / r9904;
        double r9928 = r9891 * r9927;
        double r9929 = r9928 + r9906;
        double r9930 = r9929 / r9903;
        double r9931 = r9910 ? r9925 : r9930;
        return r9931;
}

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 r9932, r9933, r9934, r9935, r9936, r9937, r9938, r9939, r9940, r9941, r9942, r9943, r9944, r9945, r9946, r9947;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9932);
        mpfr_init(r9933);
        mpfr_init(r9934);
        mpfr_init(r9935);
        mpfr_init(r9936);
        mpfr_init_set_str(r9937, "2", 10, MPFR_RNDN);
        mpfr_init(r9938);
        mpfr_init(r9939);
        mpfr_init(r9940);
        mpfr_init(r9941);
        mpfr_init_set_str(r9942, "2.0", 10, MPFR_RNDN);
        mpfr_init(r9943);
        mpfr_init(r9944);
        mpfr_init_set_str(r9945, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9946);
        mpfr_init(r9947);
}

double f_im(double alpha, double beta, double i) {
        mpfr_set_d(r9932, alpha, MPFR_RNDN);
        mpfr_set_d(r9933, beta, MPFR_RNDN);
        mpfr_add(r9934, r9932, r9933, MPFR_RNDN);
        mpfr_sub(r9935, r9933, r9932, MPFR_RNDN);
        mpfr_mul(r9936, r9934, r9935, MPFR_RNDN);
        ;
        mpfr_set_d(r9938, i, MPFR_RNDN);
        mpfr_mul(r9939, r9937, r9938, MPFR_RNDN);
        mpfr_add(r9940, r9934, r9939, MPFR_RNDN);
        mpfr_div(r9941, r9936, r9940, MPFR_RNDN);
        ;
        mpfr_add(r9943, r9940, r9942, MPFR_RNDN);
        mpfr_div(r9944, r9941, r9943, MPFR_RNDN);
        ;
        mpfr_add(r9946, r9944, r9945, MPFR_RNDN);
        mpfr_div(r9947, r9946, r9942, MPFR_RNDN);
        return mpfr_get_d(r9947, MPFR_RNDN);
}

static mpfr_t r9948, r9949, r9950, r9951, r9952, r9953, r9954, r9955, r9956, r9957, r9958, r9959, r9960, r9961, r9962, r9963, r9964, r9965, r9966, r9967, r9968, r9969, r9970, r9971, r9972, r9973, r9974, r9975, r9976, r9977, r9978, r9979, r9980, r9981, r9982, r9983, r9984, r9985, r9986, r9987, r9988, r9989, r9990;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9948);
        mpfr_init(r9949);
        mpfr_init(r9950);
        mpfr_init(r9951);
        mpfr_init(r9952);
        mpfr_init(r9953);
        mpfr_init(r9954);
        mpfr_init_set_str(r9955, "2", 10, MPFR_RNDN);
        mpfr_init(r9956);
        mpfr_init(r9957);
        mpfr_init(r9958);
        mpfr_init(r9959);
        mpfr_init(r9960);
        mpfr_init(r9961);
        mpfr_init_set_str(r9962, "2.0", 10, MPFR_RNDN);
        mpfr_init(r9963);
        mpfr_init(r9964);
        mpfr_init_set_str(r9965, "1.0", 10, MPFR_RNDN);
        mpfr_init(r9966);
        mpfr_init(r9967);
        mpfr_init_set_str(r9968, "3.365363543395006e-16", 10, MPFR_RNDN);
        mpfr_init(r9969);
        mpfr_init_set_str(r9970, "1", 10, MPFR_RNDN);
        mpfr_init(r9971);
        mpfr_init(r9972);
        mpfr_init_set_str(r9973, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r9974, "3", 10, MPFR_RNDN);
        mpfr_init(r9975);
        mpfr_init(r9976);
        mpfr_init(r9977);
        mpfr_init(r9978);
        mpfr_init_set_str(r9979, "4.0", 10, MPFR_RNDN);
        mpfr_init(r9980);
        mpfr_init(r9981);
        mpfr_init(r9982);
        mpfr_init(r9983);
        mpfr_init(r9984);
        mpfr_init(r9985);
        mpfr_init(r9986);
        mpfr_init(r9987);
        mpfr_init(r9988);
        mpfr_init(r9989);
        mpfr_init(r9990);
}

double f_fm(double alpha, double beta, double i) {
        mpfr_set_d(r9948, beta, MPFR_RNDN);
        mpfr_set_d(r9949, alpha, MPFR_RNDN);
        mpfr_add(r9950, r9948, r9949, MPFR_RNDN);
        mpfr_sub(r9951, r9948, r9949, MPFR_RNDN);
        mpfr_cbrt(r9952, r9951, MPFR_RNDN);
        mpfr_mul(r9953, r9952, r9952, MPFR_RNDN);
        mpfr_add(r9954, r9949, r9948, MPFR_RNDN);
        ;
        mpfr_set_d(r9956, i, MPFR_RNDN);
        mpfr_mul(r9957, r9955, r9956, MPFR_RNDN);
        mpfr_add(r9958, r9954, r9957, MPFR_RNDN);
        mpfr_div(r9959, r9952, r9958, MPFR_RNDN);
        mpfr_mul(r9960, r9953, r9959, MPFR_RNDN);
        mpfr_mul(r9961, r9950, r9960, MPFR_RNDN);
        ;
        mpfr_add(r9963, r9958, r9962, MPFR_RNDN);
        mpfr_div(r9964, r9961, r9963, MPFR_RNDN);
        ;
        mpfr_add(r9966, r9964, r9965, MPFR_RNDN);
        mpfr_div(r9967, r9966, r9962, MPFR_RNDN);
        ;
        mpfr_set_si(r9969, mpfr_cmp(r9967, r9968) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9971, r9970, r9949, MPFR_RNDN);
        mpfr_mul(r9972, r9962, r9971, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9975, r9949, r9974, MPFR_RNDN);
        mpfr_div(r9976, r9970, r9975, MPFR_RNDN);
        mpfr_mul(r9977, r9973, r9976, MPFR_RNDN);
        mpfr_add(r9978, r9972, r9977, MPFR_RNDN);
        ;
        mpfr_pow(r9980, r9949, r9955, MPFR_RNDN);
        mpfr_div(r9981, r9970, r9980, MPFR_RNDN);
        mpfr_mul(r9982, r9979, r9981, MPFR_RNDN);
        mpfr_sub(r9983, r9978, r9982, MPFR_RNDN);
        mpfr_div(r9984, r9983, r9962, MPFR_RNDN);
        mpfr_div(r9985, r9951, r9958, MPFR_RNDN);
        mpfr_div(r9986, r9985, r9963, MPFR_RNDN);
        mpfr_mul(r9987, r9950, r9986, MPFR_RNDN);
        mpfr_add(r9988, r9987, r9965, MPFR_RNDN);
        mpfr_div(r9989, r9988, r9962, MPFR_RNDN);
        if (mpfr_get_si(r9969, MPFR_RNDN)) { mpfr_set(r9990, r9984, MPFR_RNDN); } else { mpfr_set(r9990, r9989, MPFR_RNDN); };
        return mpfr_get_d(r9990, MPFR_RNDN);
}

static mpfr_t r9991, r9992, r9993, r9994, r9995, r9996, r9997, r9998, r9999, r10000, r10001, r10002, r10003, r10004, r10005, r10006, r10007, r10008, r10009, r10010, r10011, r10012, r10013, r10014, r10015, r10016, r10017, r10018, r10019, r10020, r10021, r10022, r10023, r10024, r10025, r10026, r10027, r10028, r10029, r10030, r10031, r10032, r10033;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init(r9991);
        mpfr_init(r9992);
        mpfr_init(r9993);
        mpfr_init(r9994);
        mpfr_init(r9995);
        mpfr_init(r9996);
        mpfr_init(r9997);
        mpfr_init_set_str(r9998, "2", 10, MPFR_RNDN);
        mpfr_init(r9999);
        mpfr_init(r10000);
        mpfr_init(r10001);
        mpfr_init(r10002);
        mpfr_init(r10003);
        mpfr_init(r10004);
        mpfr_init_set_str(r10005, "2.0", 10, MPFR_RNDN);
        mpfr_init(r10006);
        mpfr_init(r10007);
        mpfr_init_set_str(r10008, "1.0", 10, MPFR_RNDN);
        mpfr_init(r10009);
        mpfr_init(r10010);
        mpfr_init_set_str(r10011, "3.365363543395006e-16", 10, MPFR_RNDN);
        mpfr_init(r10012);
        mpfr_init_set_str(r10013, "1", 10, MPFR_RNDN);
        mpfr_init(r10014);
        mpfr_init(r10015);
        mpfr_init_set_str(r10016, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r10017, "3", 10, MPFR_RNDN);
        mpfr_init(r10018);
        mpfr_init(r10019);
        mpfr_init(r10020);
        mpfr_init(r10021);
        mpfr_init_set_str(r10022, "4.0", 10, MPFR_RNDN);
        mpfr_init(r10023);
        mpfr_init(r10024);
        mpfr_init(r10025);
        mpfr_init(r10026);
        mpfr_init(r10027);
        mpfr_init(r10028);
        mpfr_init(r10029);
        mpfr_init(r10030);
        mpfr_init(r10031);
        mpfr_init(r10032);
        mpfr_init(r10033);
}

double f_dm(double alpha, double beta, double i) {
        mpfr_set_d(r9991, beta, MPFR_RNDN);
        mpfr_set_d(r9992, alpha, MPFR_RNDN);
        mpfr_add(r9993, r9991, r9992, MPFR_RNDN);
        mpfr_sub(r9994, r9991, r9992, MPFR_RNDN);
        mpfr_cbrt(r9995, r9994, MPFR_RNDN);
        mpfr_mul(r9996, r9995, r9995, MPFR_RNDN);
        mpfr_add(r9997, r9992, r9991, MPFR_RNDN);
        ;
        mpfr_set_d(r9999, i, MPFR_RNDN);
        mpfr_mul(r10000, r9998, r9999, MPFR_RNDN);
        mpfr_add(r10001, r9997, r10000, MPFR_RNDN);
        mpfr_div(r10002, r9995, r10001, MPFR_RNDN);
        mpfr_mul(r10003, r9996, r10002, MPFR_RNDN);
        mpfr_mul(r10004, r9993, r10003, MPFR_RNDN);
        ;
        mpfr_add(r10006, r10001, r10005, MPFR_RNDN);
        mpfr_div(r10007, r10004, r10006, MPFR_RNDN);
        ;
        mpfr_add(r10009, r10007, r10008, MPFR_RNDN);
        mpfr_div(r10010, r10009, r10005, MPFR_RNDN);
        ;
        mpfr_set_si(r10012, mpfr_cmp(r10010, r10011) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r10014, r10013, r9992, MPFR_RNDN);
        mpfr_mul(r10015, r10005, r10014, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r10018, r9992, r10017, MPFR_RNDN);
        mpfr_div(r10019, r10013, r10018, MPFR_RNDN);
        mpfr_mul(r10020, r10016, r10019, MPFR_RNDN);
        mpfr_add(r10021, r10015, r10020, MPFR_RNDN);
        ;
        mpfr_pow(r10023, r9992, r9998, MPFR_RNDN);
        mpfr_div(r10024, r10013, r10023, MPFR_RNDN);
        mpfr_mul(r10025, r10022, r10024, MPFR_RNDN);
        mpfr_sub(r10026, r10021, r10025, MPFR_RNDN);
        mpfr_div(r10027, r10026, r10005, MPFR_RNDN);
        mpfr_div(r10028, r9994, r10001, MPFR_RNDN);
        mpfr_div(r10029, r10028, r10006, MPFR_RNDN);
        mpfr_mul(r10030, r9993, r10029, MPFR_RNDN);
        mpfr_add(r10031, r10030, r10008, MPFR_RNDN);
        mpfr_div(r10032, r10031, r10005, MPFR_RNDN);
        if (mpfr_get_si(r10012, MPFR_RNDN)) { mpfr_set(r10033, r10027, MPFR_RNDN); } else { mpfr_set(r10033, r10032, MPFR_RNDN); };
        return mpfr_get_d(r10033, MPFR_RNDN);
}

