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

char *name = "From Warwick Tucker's Validated Numerics";

double f_if() {
        float r8925 = 333.75;
        float r8926 = 33096;
        float r8927 = 6;
        float r8928 = pow(r8926, r8927);
        float r8929 = r8925 * r8928;
        float r8930 = 77617;
        float r8931 = r8930 * r8930;
        float r8932 = 11;
        float r8933 = r8932 * r8931;
        float r8934 = r8926 * r8926;
        float r8935 = r8933 * r8934;
        float r8936 = -r8928;
        float r8937 = r8935 + r8936;
        float r8938 = -121;
        float r8939 = 4;
        float r8940 = pow(r8926, r8939);
        float r8941 = r8938 * r8940;
        float r8942 = r8937 + r8941;
        float r8943 = -2;
        float r8944 = r8942 + r8943;
        float r8945 = r8931 * r8944;
        float r8946 = r8929 + r8945;
        float r8947 = 5.5;
        float r8948 = 8;
        float r8949 = pow(r8926, r8948);
        float r8950 = r8947 * r8949;
        float r8951 = r8946 + r8950;
        float r8952 = 2;
        float r8953 = r8952 * r8926;
        float r8954 = r8930 / r8953;
        float r8955 = r8951 + r8954;
        return r8955;
}

double f_id() {
        double r8956 = 333.75;
        double r8957 = 33096;
        double r8958 = 6;
        double r8959 = pow(r8957, r8958);
        double r8960 = r8956 * r8959;
        double r8961 = 77617;
        double r8962 = r8961 * r8961;
        double r8963 = 11;
        double r8964 = r8963 * r8962;
        double r8965 = r8957 * r8957;
        double r8966 = r8964 * r8965;
        double r8967 = -r8959;
        double r8968 = r8966 + r8967;
        double r8969 = -121;
        double r8970 = 4;
        double r8971 = pow(r8957, r8970);
        double r8972 = r8969 * r8971;
        double r8973 = r8968 + r8972;
        double r8974 = -2;
        double r8975 = r8973 + r8974;
        double r8976 = r8962 * r8975;
        double r8977 = r8960 + r8976;
        double r8978 = 5.5;
        double r8979 = 8;
        double r8980 = pow(r8957, r8979);
        double r8981 = r8978 * r8980;
        double r8982 = r8977 + r8981;
        double r8983 = 2;
        double r8984 = r8983 * r8957;
        double r8985 = r8961 / r8984;
        double r8986 = r8982 + r8985;
        return r8986;
}


double f_of() {
        float r8987 = 77617;
        float r8988 = r8987 * r8987;
        float r8989 = 33096;
        float r8990 = r8989 * r8989;
        float r8991 = 11;
        float r8992 = r8991 * r8987;
        float r8993 = r8987 * r8992;
        float r8994 = r8990 * r8993;
        float r8995 = 6;
        float r8996 = pow(r8989, r8995);
        float r8997 = 4;
        float r8998 = pow(r8989, r8997);
        float r8999 = -121;
        float r9000 = -2;
        float r9001 = fma(r8998, r8999, r9000);
        float r9002 = r8996 - r9001;
        float r9003 = r8994 - r9002;
        float r9004 = 333.75;
        float r9005 = 8;
        float r9006 = pow(r8989, r9005);
        float r9007 = 5.5;
        float r9008 = 2;
        float r9009 = r8987 / r9008;
        float r9010 = r9009 / r8989;
        float r9011 = fma(r9006, r9007, r9010);
        float r9012 = fma(r9004, r8996, r9011);
        float r9013 = fma(r8988, r9003, r9012);
        return r9013;
}

double f_od() {
        double r9014 = 77617;
        double r9015 = r9014 * r9014;
        double r9016 = 33096;
        double r9017 = r9016 * r9016;
        double r9018 = 11;
        double r9019 = r9018 * r9014;
        double r9020 = r9014 * r9019;
        double r9021 = r9017 * r9020;
        double r9022 = 6;
        double r9023 = pow(r9016, r9022);
        double r9024 = 4;
        double r9025 = pow(r9016, r9024);
        double r9026 = -121;
        double r9027 = -2;
        double r9028 = fma(r9025, r9026, r9027);
        double r9029 = r9023 - r9028;
        double r9030 = r9021 - r9029;
        double r9031 = 333.75;
        double r9032 = 8;
        double r9033 = pow(r9016, r9032);
        double r9034 = 5.5;
        double r9035 = 2;
        double r9036 = r9014 / r9035;
        double r9037 = r9036 / r9016;
        double r9038 = fma(r9033, r9034, r9037);
        double r9039 = fma(r9031, r9023, r9038);
        double r9040 = fma(r9015, r9030, r9039);
        return r9040;
}

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 r9041, r9042, r9043, r9044, r9045, r9046, r9047, r9048, r9049, r9050, r9051, r9052, r9053, r9054, r9055, r9056, r9057, r9058, r9059, r9060, r9061, r9062, r9063, r9064, r9065, r9066, r9067, r9068, r9069, r9070, r9071;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9041, "333.75", 10, MPFR_RNDN);
        mpfr_init_set_str(r9042, "33096", 10, MPFR_RNDN);
        mpfr_init_set_str(r9043, "6", 10, MPFR_RNDN);
        mpfr_init(r9044);
        mpfr_init(r9045);
        mpfr_init_set_str(r9046, "77617", 10, MPFR_RNDN);
        mpfr_init(r9047);
        mpfr_init_set_str(r9048, "11", 10, MPFR_RNDN);
        mpfr_init(r9049);
        mpfr_init(r9050);
        mpfr_init(r9051);
        mpfr_init(r9052);
        mpfr_init(r9053);
        mpfr_init_set_str(r9054, "-121", 10, MPFR_RNDN);
        mpfr_init_set_str(r9055, "4", 10, MPFR_RNDN);
        mpfr_init(r9056);
        mpfr_init(r9057);
        mpfr_init(r9058);
        mpfr_init_set_str(r9059, "-2", 10, MPFR_RNDN);
        mpfr_init(r9060);
        mpfr_init(r9061);
        mpfr_init(r9062);
        mpfr_init_set_str(r9063, "5.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r9064, "8", 10, MPFR_RNDN);
        mpfr_init(r9065);
        mpfr_init(r9066);
        mpfr_init(r9067);
        mpfr_init_set_str(r9068, "2", 10, MPFR_RNDN);
        mpfr_init(r9069);
        mpfr_init(r9070);
        mpfr_init(r9071);
}

double f_im() {
        ;
        ;
        ;
        mpfr_pow(r9044, r9042, r9043, MPFR_RNDN);
        mpfr_mul(r9045, r9041, r9044, MPFR_RNDN);
        ;
        mpfr_mul(r9047, r9046, r9046, MPFR_RNDN);
        ;
        mpfr_mul(r9049, r9048, r9047, MPFR_RNDN);
        mpfr_mul(r9050, r9042, r9042, MPFR_RNDN);
        mpfr_mul(r9051, r9049, r9050, MPFR_RNDN);
        mpfr_neg(r9052, r9044, MPFR_RNDN);
        mpfr_add(r9053, r9051, r9052, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9056, r9042, r9055, MPFR_RNDN);
        mpfr_mul(r9057, r9054, r9056, MPFR_RNDN);
        mpfr_add(r9058, r9053, r9057, MPFR_RNDN);
        ;
        mpfr_add(r9060, r9058, r9059, MPFR_RNDN);
        mpfr_mul(r9061, r9047, r9060, MPFR_RNDN);
        mpfr_add(r9062, r9045, r9061, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9065, r9042, r9064, MPFR_RNDN);
        mpfr_mul(r9066, r9063, r9065, MPFR_RNDN);
        mpfr_add(r9067, r9062, r9066, MPFR_RNDN);
        ;
        mpfr_mul(r9069, r9068, r9042, MPFR_RNDN);
        mpfr_div(r9070, r9046, r9069, MPFR_RNDN);
        mpfr_add(r9071, r9067, r9070, MPFR_RNDN);
        return mpfr_get_d(r9071, MPFR_RNDN);
}

static mpfr_t r9072, r9073, r9074, r9075, r9076, r9077, r9078, r9079, r9080, r9081, r9082, r9083, r9084, r9085, r9086, r9087, r9088, r9089, r9090, r9091, r9092, r9093, r9094, r9095, r9096, r9097, r9098;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9072, "77617", 10, MPFR_RNDN);
        mpfr_init(r9073);
        mpfr_init_set_str(r9074, "33096", 10, MPFR_RNDN);
        mpfr_init(r9075);
        mpfr_init_set_str(r9076, "11", 10, MPFR_RNDN);
        mpfr_init(r9077);
        mpfr_init(r9078);
        mpfr_init(r9079);
        mpfr_init_set_str(r9080, "6", 10, MPFR_RNDN);
        mpfr_init(r9081);
        mpfr_init_set_str(r9082, "4", 10, MPFR_RNDN);
        mpfr_init(r9083);
        mpfr_init_set_str(r9084, "-121", 10, MPFR_RNDN);
        mpfr_init_set_str(r9085, "-2", 10, MPFR_RNDN);
        mpfr_init(r9086);
        mpfr_init(r9087);
        mpfr_init(r9088);
        mpfr_init_set_str(r9089, "333.75", 10, MPFR_RNDN);
        mpfr_init_set_str(r9090, "8", 10, MPFR_RNDN);
        mpfr_init(r9091);
        mpfr_init_set_str(r9092, "5.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r9093, "2", 10, MPFR_RNDN);
        mpfr_init(r9094);
        mpfr_init(r9095);
        mpfr_init(r9096);
        mpfr_init(r9097);
        mpfr_init(r9098);
}

double f_fm() {
        ;
        mpfr_mul(r9073, r9072, r9072, MPFR_RNDN);
        ;
        mpfr_mul(r9075, r9074, r9074, MPFR_RNDN);
        ;
        mpfr_mul(r9077, r9076, r9072, MPFR_RNDN);
        mpfr_mul(r9078, r9072, r9077, MPFR_RNDN);
        mpfr_mul(r9079, r9075, r9078, MPFR_RNDN);
        ;
        mpfr_pow(r9081, r9074, r9080, MPFR_RNDN);
        ;
        mpfr_pow(r9083, r9074, r9082, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r9086, r9083, r9084, r9085, MPFR_RNDN);
        mpfr_sub(r9087, r9081, r9086, MPFR_RNDN);
        mpfr_sub(r9088, r9079, r9087, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9091, r9074, r9090, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9094, r9072, r9093, MPFR_RNDN);
        mpfr_div(r9095, r9094, r9074, MPFR_RNDN);
        mpfr_fma(r9096, r9091, r9092, r9095, MPFR_RNDN);
        mpfr_fma(r9097, r9089, r9081, r9096, MPFR_RNDN);
        mpfr_fma(r9098, r9073, r9088, r9097, MPFR_RNDN);
        return mpfr_get_d(r9098, MPFR_RNDN);
}

static mpfr_t r9099, r9100, r9101, r9102, r9103, r9104, r9105, r9106, r9107, r9108, r9109, r9110, r9111, r9112, r9113, r9114, r9115, r9116, r9117, r9118, r9119, r9120, r9121, r9122, r9123, r9124, r9125;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r9099, "77617", 10, MPFR_RNDN);
        mpfr_init(r9100);
        mpfr_init_set_str(r9101, "33096", 10, MPFR_RNDN);
        mpfr_init(r9102);
        mpfr_init_set_str(r9103, "11", 10, MPFR_RNDN);
        mpfr_init(r9104);
        mpfr_init(r9105);
        mpfr_init(r9106);
        mpfr_init_set_str(r9107, "6", 10, MPFR_RNDN);
        mpfr_init(r9108);
        mpfr_init_set_str(r9109, "4", 10, MPFR_RNDN);
        mpfr_init(r9110);
        mpfr_init_set_str(r9111, "-121", 10, MPFR_RNDN);
        mpfr_init_set_str(r9112, "-2", 10, MPFR_RNDN);
        mpfr_init(r9113);
        mpfr_init(r9114);
        mpfr_init(r9115);
        mpfr_init_set_str(r9116, "333.75", 10, MPFR_RNDN);
        mpfr_init_set_str(r9117, "8", 10, MPFR_RNDN);
        mpfr_init(r9118);
        mpfr_init_set_str(r9119, "5.5", 10, MPFR_RNDN);
        mpfr_init_set_str(r9120, "2", 10, MPFR_RNDN);
        mpfr_init(r9121);
        mpfr_init(r9122);
        mpfr_init(r9123);
        mpfr_init(r9124);
        mpfr_init(r9125);
}

double f_dm() {
        ;
        mpfr_mul(r9100, r9099, r9099, MPFR_RNDN);
        ;
        mpfr_mul(r9102, r9101, r9101, MPFR_RNDN);
        ;
        mpfr_mul(r9104, r9103, r9099, MPFR_RNDN);
        mpfr_mul(r9105, r9099, r9104, MPFR_RNDN);
        mpfr_mul(r9106, r9102, r9105, MPFR_RNDN);
        ;
        mpfr_pow(r9108, r9101, r9107, MPFR_RNDN);
        ;
        mpfr_pow(r9110, r9101, r9109, MPFR_RNDN);
        ;
        ;
        mpfr_fma(r9113, r9110, r9111, r9112, MPFR_RNDN);
        mpfr_sub(r9114, r9108, r9113, MPFR_RNDN);
        mpfr_sub(r9115, r9106, r9114, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r9118, r9101, r9117, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9121, r9099, r9120, MPFR_RNDN);
        mpfr_div(r9122, r9121, r9101, MPFR_RNDN);
        mpfr_fma(r9123, r9118, r9119, r9122, MPFR_RNDN);
        mpfr_fma(r9124, r9116, r9108, r9123, MPFR_RNDN);
        mpfr_fma(r9125, r9100, r9115, r9124, MPFR_RNDN);
        return mpfr_get_d(r9125, MPFR_RNDN);
}

