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

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

double f_if(float alpha, float beta) {
        float r17953 = beta;
        float r17954 = alpha;
        float r17955 = r17953 - r17954;
        float r17956 = r17954 + r17953;
        float r17957 = 2.0f;
        float r17958 = r17956 + r17957;
        float r17959 = r17955 / r17958;
        float r17960 = 1.0f;
        float r17961 = r17959 + r17960;
        float r17962 = r17961 / r17957;
        return r17962;
}

double f_id(double alpha, double beta) {
        double r17963 = beta;
        double r17964 = alpha;
        double r17965 = r17963 - r17964;
        double r17966 = r17964 + r17963;
        double r17967 = 2.0;
        double r17968 = r17966 + r17967;
        double r17969 = r17965 / r17968;
        double r17970 = 1.0;
        double r17971 = r17969 + r17970;
        double r17972 = r17971 / r17967;
        return r17972;
}


double f_of(float alpha, float beta) {
        float r17973 = beta;
        float r17974 = alpha;
        float r17975 = r17973 - r17974;
        float r17976 = r17974 + r17973;
        float r17977 = 2.0f;
        float r17978 = r17976 + r17977;
        float r17979 = r17975 / r17978;
        float r17980 = -0.7971406904761135f;
        bool r17981 = r17979 <= r17980;
        float r17982 = 8.0f;
        float r17983 = r17982 / r17974;
        float r17984 = r17983 / r17974;
        float r17985 = r17977 + r17984;
        float r17986 = r17977 * r17974;
        float r17987 = r17985 / r17986;
        float r17988 = r17973 / r17977;
        float r17989 = r17977 + r17973;
        float r17990 = r17974 + r17989;
        float r17991 = r17988 / r17990;
        float r17992 = 4.0f;
        float r17993 = r17974 * r17974;
        float r17994 = r17992 / r17993;
        float r17995 = r17994 / r17977;
        float r17996 = r17991 - r17995;
        float r17997 = r17987 + r17996;
        float r17998 = r17973 / r17978;
        float r17999 = cbrt(r17998);
        float r18000 = exp(r17999);
        float r18001 = log(r18000);
        float r18002 = r18001 * (r18001 * r18001);
        float r18003 = r17974 / r17978;
        float r18004 = 1.0f;
        float r18005 = r18003 - r18004;
        float r18006 = r18002 - r18005;
        float r18007 = r18006 / r17977;
        float r18008 = r17981 ? r17997 : r18007;
        return r18008;
}

double f_od(double alpha, double beta) {
        double r18009 = beta;
        double r18010 = alpha;
        double r18011 = r18009 - r18010;
        double r18012 = r18010 + r18009;
        double r18013 = 2.0;
        double r18014 = r18012 + r18013;
        double r18015 = r18011 / r18014;
        double r18016 = -0.7971406904761135;
        bool r18017 = r18015 <= r18016;
        double r18018 = 8.0;
        double r18019 = r18018 / r18010;
        double r18020 = r18019 / r18010;
        double r18021 = r18013 + r18020;
        double r18022 = r18013 * r18010;
        double r18023 = r18021 / r18022;
        double r18024 = r18009 / r18013;
        double r18025 = r18013 + r18009;
        double r18026 = r18010 + r18025;
        double r18027 = r18024 / r18026;
        double r18028 = 4.0;
        double r18029 = r18010 * r18010;
        double r18030 = r18028 / r18029;
        double r18031 = r18030 / r18013;
        double r18032 = r18027 - r18031;
        double r18033 = r18023 + r18032;
        double r18034 = r18009 / r18014;
        double r18035 = cbrt(r18034);
        double r18036 = exp(r18035);
        double r18037 = log(r18036);
        double r18038 = r18037 * (r18037 * r18037);
        double r18039 = r18010 / r18014;
        double r18040 = 1.0;
        double r18041 = r18039 - r18040;
        double r18042 = r18038 - r18041;
        double r18043 = r18042 / r18013;
        double r18044 = r18017 ? r18033 : r18043;
        return r18044;
}

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 r18045, r18046, r18047, r18048, r18049, r18050, r18051, r18052, r18053, r18054;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r18045);
        mpfr_init(r18046);
        mpfr_init(r18047);
        mpfr_init(r18048);
        mpfr_init_set_str(r18049, "2.0", 10, MPFR_RNDN);
        mpfr_init(r18050);
        mpfr_init(r18051);
        mpfr_init_set_str(r18052, "1.0", 10, MPFR_RNDN);
        mpfr_init(r18053);
        mpfr_init(r18054);
}

double f_im(double alpha, double beta) {
        mpfr_set_d(r18045, beta, MPFR_RNDN);
        mpfr_set_d(r18046, alpha, MPFR_RNDN);
        mpfr_sub(r18047, r18045, r18046, MPFR_RNDN);
        mpfr_add(r18048, r18046, r18045, MPFR_RNDN);
        ;
        mpfr_add(r18050, r18048, r18049, MPFR_RNDN);
        mpfr_div(r18051, r18047, r18050, MPFR_RNDN);
        ;
        mpfr_add(r18053, r18051, r18052, MPFR_RNDN);
        mpfr_div(r18054, r18053, r18049, MPFR_RNDN);
        return mpfr_get_d(r18054, MPFR_RNDN);
}

static mpfr_t r18055, r18056, r18057, r18058, r18059, r18060, r18061, r18062, r18063, r18064, r18065, r18066, r18067, r18068, r18069, r18070, r18071, r18072, r18073, r18074, r18075, r18076, r18077, r18078, r18079, r18080, r18081, r18082, r18083, r18084, r18085, r18086, r18087, r18088, r18089, r18090;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18055);
        mpfr_init(r18056);
        mpfr_init(r18057);
        mpfr_init(r18058);
        mpfr_init_set_str(r18059, "2.0", 10, MPFR_RNDN);
        mpfr_init(r18060);
        mpfr_init(r18061);
        mpfr_init_set_str(r18062, "-0.7971406904761135", 10, MPFR_RNDN);
        mpfr_init(r18063);
        mpfr_init_set_str(r18064, "8.0", 10, MPFR_RNDN);
        mpfr_init(r18065);
        mpfr_init(r18066);
        mpfr_init(r18067);
        mpfr_init(r18068);
        mpfr_init(r18069);
        mpfr_init(r18070);
        mpfr_init(r18071);
        mpfr_init(r18072);
        mpfr_init(r18073);
        mpfr_init_set_str(r18074, "4.0", 10, MPFR_RNDN);
        mpfr_init(r18075);
        mpfr_init(r18076);
        mpfr_init(r18077);
        mpfr_init(r18078);
        mpfr_init(r18079);
        mpfr_init(r18080);
        mpfr_init(r18081);
        mpfr_init(r18082);
        mpfr_init(r18083);
        mpfr_init(r18084);
        mpfr_init(r18085);
        mpfr_init_set_str(r18086, "1.0", 10, MPFR_RNDN);
        mpfr_init(r18087);
        mpfr_init(r18088);
        mpfr_init(r18089);
        mpfr_init(r18090);
}

double f_fm(double alpha, double beta) {
        mpfr_set_d(r18055, beta, MPFR_RNDN);
        mpfr_set_d(r18056, alpha, MPFR_RNDN);
        mpfr_sub(r18057, r18055, r18056, MPFR_RNDN);
        mpfr_add(r18058, r18056, r18055, MPFR_RNDN);
        ;
        mpfr_add(r18060, r18058, r18059, MPFR_RNDN);
        mpfr_div(r18061, r18057, r18060, MPFR_RNDN);
        ;
        mpfr_set_si(r18063, mpfr_cmp(r18061, r18062) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18065, r18064, r18056, MPFR_RNDN);
        mpfr_div(r18066, r18065, r18056, MPFR_RNDN);
        mpfr_add(r18067, r18059, r18066, MPFR_RNDN);
        mpfr_mul(r18068, r18059, r18056, MPFR_RNDN);
        mpfr_div(r18069, r18067, r18068, MPFR_RNDN);
        mpfr_div(r18070, r18055, r18059, MPFR_RNDN);
        mpfr_add(r18071, r18059, r18055, MPFR_RNDN);
        mpfr_add(r18072, r18056, r18071, MPFR_RNDN);
        mpfr_div(r18073, r18070, r18072, MPFR_RNDN);
        ;
        mpfr_mul(r18075, r18056, r18056, MPFR_RNDN);
        mpfr_div(r18076, r18074, r18075, MPFR_RNDN);
        mpfr_div(r18077, r18076, r18059, MPFR_RNDN);
        mpfr_sub(r18078, r18073, r18077, MPFR_RNDN);
        mpfr_add(r18079, r18069, r18078, MPFR_RNDN);
        mpfr_div(r18080, r18055, r18060, MPFR_RNDN);
        mpfr_cbrt(r18081, r18080, MPFR_RNDN);
        mpfr_exp(r18082, r18081, MPFR_RNDN);
        mpfr_log(r18083, r18082, MPFR_RNDN);
        mpfr_mul(r18084, r18083, r18083, MPFR_RNDN); mpfr_mul(r18084, r18084, r18083, MPFR_RNDN);
        mpfr_div(r18085, r18056, r18060, MPFR_RNDN);
        ;
        mpfr_sub(r18087, r18085, r18086, MPFR_RNDN);
        mpfr_sub(r18088, r18084, r18087, MPFR_RNDN);
        mpfr_div(r18089, r18088, r18059, MPFR_RNDN);
        if (mpfr_get_si(r18063, MPFR_RNDN)) { mpfr_set(r18090, r18079, MPFR_RNDN); } else { mpfr_set(r18090, r18089, MPFR_RNDN); };
        return mpfr_get_d(r18090, MPFR_RNDN);
}

static mpfr_t r18091, r18092, r18093, r18094, r18095, r18096, r18097, r18098, r18099, r18100, r18101, r18102, r18103, r18104, r18105, r18106, r18107, r18108, r18109, r18110, r18111, r18112, r18113, r18114, r18115, r18116, r18117, r18118, r18119, r18120, r18121, r18122, r18123, r18124, r18125, r18126;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18091);
        mpfr_init(r18092);
        mpfr_init(r18093);
        mpfr_init(r18094);
        mpfr_init_set_str(r18095, "2.0", 10, MPFR_RNDN);
        mpfr_init(r18096);
        mpfr_init(r18097);
        mpfr_init_set_str(r18098, "-0.7971406904761135", 10, MPFR_RNDN);
        mpfr_init(r18099);
        mpfr_init_set_str(r18100, "8.0", 10, MPFR_RNDN);
        mpfr_init(r18101);
        mpfr_init(r18102);
        mpfr_init(r18103);
        mpfr_init(r18104);
        mpfr_init(r18105);
        mpfr_init(r18106);
        mpfr_init(r18107);
        mpfr_init(r18108);
        mpfr_init(r18109);
        mpfr_init_set_str(r18110, "4.0", 10, MPFR_RNDN);
        mpfr_init(r18111);
        mpfr_init(r18112);
        mpfr_init(r18113);
        mpfr_init(r18114);
        mpfr_init(r18115);
        mpfr_init(r18116);
        mpfr_init(r18117);
        mpfr_init(r18118);
        mpfr_init(r18119);
        mpfr_init(r18120);
        mpfr_init(r18121);
        mpfr_init_set_str(r18122, "1.0", 10, MPFR_RNDN);
        mpfr_init(r18123);
        mpfr_init(r18124);
        mpfr_init(r18125);
        mpfr_init(r18126);
}

double f_dm(double alpha, double beta) {
        mpfr_set_d(r18091, beta, MPFR_RNDN);
        mpfr_set_d(r18092, alpha, MPFR_RNDN);
        mpfr_sub(r18093, r18091, r18092, MPFR_RNDN);
        mpfr_add(r18094, r18092, r18091, MPFR_RNDN);
        ;
        mpfr_add(r18096, r18094, r18095, MPFR_RNDN);
        mpfr_div(r18097, r18093, r18096, MPFR_RNDN);
        ;
        mpfr_set_si(r18099, mpfr_cmp(r18097, r18098) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r18101, r18100, r18092, MPFR_RNDN);
        mpfr_div(r18102, r18101, r18092, MPFR_RNDN);
        mpfr_add(r18103, r18095, r18102, MPFR_RNDN);
        mpfr_mul(r18104, r18095, r18092, MPFR_RNDN);
        mpfr_div(r18105, r18103, r18104, MPFR_RNDN);
        mpfr_div(r18106, r18091, r18095, MPFR_RNDN);
        mpfr_add(r18107, r18095, r18091, MPFR_RNDN);
        mpfr_add(r18108, r18092, r18107, MPFR_RNDN);
        mpfr_div(r18109, r18106, r18108, MPFR_RNDN);
        ;
        mpfr_mul(r18111, r18092, r18092, MPFR_RNDN);
        mpfr_div(r18112, r18110, r18111, MPFR_RNDN);
        mpfr_div(r18113, r18112, r18095, MPFR_RNDN);
        mpfr_sub(r18114, r18109, r18113, MPFR_RNDN);
        mpfr_add(r18115, r18105, r18114, MPFR_RNDN);
        mpfr_div(r18116, r18091, r18096, MPFR_RNDN);
        mpfr_cbrt(r18117, r18116, MPFR_RNDN);
        mpfr_exp(r18118, r18117, MPFR_RNDN);
        mpfr_log(r18119, r18118, MPFR_RNDN);
        mpfr_mul(r18120, r18119, r18119, MPFR_RNDN); mpfr_mul(r18120, r18120, r18119, MPFR_RNDN);
        mpfr_div(r18121, r18092, r18096, MPFR_RNDN);
        ;
        mpfr_sub(r18123, r18121, r18122, MPFR_RNDN);
        mpfr_sub(r18124, r18120, r18123, MPFR_RNDN);
        mpfr_div(r18125, r18124, r18095, MPFR_RNDN);
        if (mpfr_get_si(r18099, MPFR_RNDN)) { mpfr_set(r18126, r18115, MPFR_RNDN); } else { mpfr_set(r18126, r18125, MPFR_RNDN); };
        return mpfr_get_d(r18126, MPFR_RNDN);
}

