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

char *name = "test04_dqmom9";

double f_if(float m0, float m1, float m2, float w0, float w1, float w2, float a0, float a1, float a2) {
        float r20885 = 0.0f;
        float r20886 = w0;
        float r20887 = 0.0f;
        float r20888 = m0;
        float r20889 = r20887 - r20888;
        float r20890 = r20886 * r20889;
        float r20891 = -3.0f;
        float r20892 = 1.0f;
        float r20893 = a0;
        float r20894 = r20893 / r20886;
        float r20895 = r20892 * r20894;
        float r20896 = r20895 * r20894;
        float r20897 = r20891 * r20896;
        float r20898 = r20890 * r20897;
        float r20899 = r20898 * r20892;
        float r20900 = w1;
        float r20901 = m1;
        float r20902 = r20887 - r20901;
        float r20903 = r20900 * r20902;
        float r20904 = a1;
        float r20905 = r20904 / r20900;
        float r20906 = r20892 * r20905;
        float r20907 = r20906 * r20905;
        float r20908 = r20891 * r20907;
        float r20909 = r20903 * r20908;
        float r20910 = r20909 * r20892;
        float r20911 = w2;
        float r20912 = m2;
        float r20913 = r20887 - r20912;
        float r20914 = r20911 * r20913;
        float r20915 = a2;
        float r20916 = r20915 / r20911;
        float r20917 = r20892 * r20916;
        float r20918 = r20917 * r20916;
        float r20919 = r20891 * r20918;
        float r20920 = r20914 * r20919;
        float r20921 = r20920 * r20892;
        float r20922 = r20921 + r20885;
        float r20923 = r20910 + r20922;
        float r20924 = r20899 + r20923;
        float r20925 = r20885 + r20924;
        return r20925;
}

double f_id(double m0, double m1, double m2, double w0, double w1, double w2, double a0, double a1, double a2) {
        double r20926 = 0.0;
        double r20927 = w0;
        double r20928 = 0.0;
        double r20929 = m0;
        double r20930 = r20928 - r20929;
        double r20931 = r20927 * r20930;
        double r20932 = -3.0;
        double r20933 = 1.0;
        double r20934 = a0;
        double r20935 = r20934 / r20927;
        double r20936 = r20933 * r20935;
        double r20937 = r20936 * r20935;
        double r20938 = r20932 * r20937;
        double r20939 = r20931 * r20938;
        double r20940 = r20939 * r20933;
        double r20941 = w1;
        double r20942 = m1;
        double r20943 = r20928 - r20942;
        double r20944 = r20941 * r20943;
        double r20945 = a1;
        double r20946 = r20945 / r20941;
        double r20947 = r20933 * r20946;
        double r20948 = r20947 * r20946;
        double r20949 = r20932 * r20948;
        double r20950 = r20944 * r20949;
        double r20951 = r20950 * r20933;
        double r20952 = w2;
        double r20953 = m2;
        double r20954 = r20928 - r20953;
        double r20955 = r20952 * r20954;
        double r20956 = a2;
        double r20957 = r20956 / r20952;
        double r20958 = r20933 * r20957;
        double r20959 = r20958 * r20957;
        double r20960 = r20932 * r20959;
        double r20961 = r20955 * r20960;
        double r20962 = r20961 * r20933;
        double r20963 = r20962 + r20926;
        double r20964 = r20951 + r20963;
        double r20965 = r20940 + r20964;
        double r20966 = r20926 + r20965;
        return r20966;
}


double f_of(float m0, float m1, float m2, float w0, float w1, float w2, float a0, float a1, float a2) {
        float r20967 = a1;
        float r20968 = w1;
        float r20969 = r20967 / r20968;
        float r20970 = 1.0f;
        float r20971 = r20967 / r20970;
        float r20972 = m1;
        float r20973 = -r20972;
        float r20974 = r20971 * r20973;
        float r20975 = -3.0f;
        float r20976 = r20974 * r20975;
        float r20977 = r20969 * r20976;
        float r20978 = a2;
        float r20979 = r20978 * r20978;
        float r20980 = m2;
        float r20981 = -r20980;
        float r20982 = w2;
        float r20983 = r20981 / r20982;
        float r20984 = r20983 * r20975;
        float r20985 = r20979 * r20984;
        float r20986 = r20977 + r20985;
        float r20987 = 0.0f;
        float r20988 = r20987 + r20987;
        float r20989 = m0;
        float r20990 = w0;
        float r20991 = r20989 * r20990;
        float r20992 = -r20975;
        float r20993 = r20991 * r20992;
        float r20994 = a0;
        float r20995 = r20994 / r20990;
        float r20996 = r20995 * r20995;
        float r20997 = r20993 * r20996;
        float r20998 = r20988 + r20997;
        float r20999 = r20986 + r20998;
        return r20999;
}

double f_od(double m0, double m1, double m2, double w0, double w1, double w2, double a0, double a1, double a2) {
        double r21000 = a1;
        double r21001 = w1;
        double r21002 = r21000 / r21001;
        double r21003 = 1.0;
        double r21004 = r21000 / r21003;
        double r21005 = m1;
        double r21006 = -r21005;
        double r21007 = r21004 * r21006;
        double r21008 = -3.0;
        double r21009 = r21007 * r21008;
        double r21010 = r21002 * r21009;
        double r21011 = a2;
        double r21012 = r21011 * r21011;
        double r21013 = m2;
        double r21014 = -r21013;
        double r21015 = w2;
        double r21016 = r21014 / r21015;
        double r21017 = r21016 * r21008;
        double r21018 = r21012 * r21017;
        double r21019 = r21010 + r21018;
        double r21020 = 0.0;
        double r21021 = r21020 + r21020;
        double r21022 = m0;
        double r21023 = w0;
        double r21024 = r21022 * r21023;
        double r21025 = -r21008;
        double r21026 = r21024 * r21025;
        double r21027 = a0;
        double r21028 = r21027 / r21023;
        double r21029 = r21028 * r21028;
        double r21030 = r21026 * r21029;
        double r21031 = r21021 + r21030;
        double r21032 = r21019 + r21031;
        return r21032;
}

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 r21033, r21034, r21035, r21036, r21037, r21038, r21039, r21040, r21041, r21042, r21043, r21044, r21045, r21046, r21047, r21048, r21049, r21050, r21051, r21052, r21053, r21054, r21055, r21056, r21057, r21058, r21059, r21060, r21061, r21062, r21063, r21064, r21065, r21066, r21067, r21068, r21069, r21070, r21071, r21072, r21073;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r21033, "0.0", 10, MPFR_RNDN);
        mpfr_init(r21034);
        mpfr_init_set_str(r21035, "0", 10, MPFR_RNDN);
        mpfr_init(r21036);
        mpfr_init(r21037);
        mpfr_init(r21038);
        mpfr_init_set_str(r21039, "-3", 10, MPFR_RNDN);
        mpfr_init_set_str(r21040, "1", 10, MPFR_RNDN);
        mpfr_init(r21041);
        mpfr_init(r21042);
        mpfr_init(r21043);
        mpfr_init(r21044);
        mpfr_init(r21045);
        mpfr_init(r21046);
        mpfr_init(r21047);
        mpfr_init(r21048);
        mpfr_init(r21049);
        mpfr_init(r21050);
        mpfr_init(r21051);
        mpfr_init(r21052);
        mpfr_init(r21053);
        mpfr_init(r21054);
        mpfr_init(r21055);
        mpfr_init(r21056);
        mpfr_init(r21057);
        mpfr_init(r21058);
        mpfr_init(r21059);
        mpfr_init(r21060);
        mpfr_init(r21061);
        mpfr_init(r21062);
        mpfr_init(r21063);
        mpfr_init(r21064);
        mpfr_init(r21065);
        mpfr_init(r21066);
        mpfr_init(r21067);
        mpfr_init(r21068);
        mpfr_init(r21069);
        mpfr_init(r21070);
        mpfr_init(r21071);
        mpfr_init(r21072);
        mpfr_init(r21073);
}

double f_im(double m0, double m1, double m2, double w0, double w1, double w2, double a0, double a1, double a2) {
        ;
        mpfr_set_d(r21034, w0, MPFR_RNDN);
        ;
        mpfr_set_d(r21036, m0, MPFR_RNDN);
        mpfr_sub(r21037, r21035, r21036, MPFR_RNDN);
        mpfr_mul(r21038, r21034, r21037, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r21041, a0, MPFR_RNDN);
        mpfr_div(r21042, r21041, r21034, MPFR_RNDN);
        mpfr_mul(r21043, r21040, r21042, MPFR_RNDN);
        mpfr_mul(r21044, r21043, r21042, MPFR_RNDN);
        mpfr_mul(r21045, r21039, r21044, MPFR_RNDN);
        mpfr_mul(r21046, r21038, r21045, MPFR_RNDN);
        mpfr_mul(r21047, r21046, r21040, MPFR_RNDN);
        mpfr_set_d(r21048, w1, MPFR_RNDN);
        mpfr_set_d(r21049, m1, MPFR_RNDN);
        mpfr_sub(r21050, r21035, r21049, MPFR_RNDN);
        mpfr_mul(r21051, r21048, r21050, MPFR_RNDN);
        mpfr_set_d(r21052, a1, MPFR_RNDN);
        mpfr_div(r21053, r21052, r21048, MPFR_RNDN);
        mpfr_mul(r21054, r21040, r21053, MPFR_RNDN);
        mpfr_mul(r21055, r21054, r21053, MPFR_RNDN);
        mpfr_mul(r21056, r21039, r21055, MPFR_RNDN);
        mpfr_mul(r21057, r21051, r21056, MPFR_RNDN);
        mpfr_mul(r21058, r21057, r21040, MPFR_RNDN);
        mpfr_set_d(r21059, w2, MPFR_RNDN);
        mpfr_set_d(r21060, m2, MPFR_RNDN);
        mpfr_sub(r21061, r21035, r21060, MPFR_RNDN);
        mpfr_mul(r21062, r21059, r21061, MPFR_RNDN);
        mpfr_set_d(r21063, a2, MPFR_RNDN);
        mpfr_div(r21064, r21063, r21059, MPFR_RNDN);
        mpfr_mul(r21065, r21040, r21064, MPFR_RNDN);
        mpfr_mul(r21066, r21065, r21064, MPFR_RNDN);
        mpfr_mul(r21067, r21039, r21066, MPFR_RNDN);
        mpfr_mul(r21068, r21062, r21067, MPFR_RNDN);
        mpfr_mul(r21069, r21068, r21040, MPFR_RNDN);
        mpfr_add(r21070, r21069, r21033, MPFR_RNDN);
        mpfr_add(r21071, r21058, r21070, MPFR_RNDN);
        mpfr_add(r21072, r21047, r21071, MPFR_RNDN);
        mpfr_add(r21073, r21033, r21072, MPFR_RNDN);
        return mpfr_get_d(r21073, MPFR_RNDN);
}

static mpfr_t r21074, r21075, r21076, r21077, r21078, r21079, r21080, r21081, r21082, r21083, r21084, r21085, r21086, r21087, r21088, r21089, r21090, r21091, r21092, r21093, r21094, r21095, r21096, r21097, r21098, r21099, r21100, r21101, r21102, r21103, r21104, r21105, r21106;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21074);
        mpfr_init(r21075);
        mpfr_init(r21076);
        mpfr_init_set_str(r21077, "1", 10, MPFR_RNDN);
        mpfr_init(r21078);
        mpfr_init(r21079);
        mpfr_init(r21080);
        mpfr_init(r21081);
        mpfr_init_set_str(r21082, "-3", 10, MPFR_RNDN);
        mpfr_init(r21083);
        mpfr_init(r21084);
        mpfr_init(r21085);
        mpfr_init(r21086);
        mpfr_init(r21087);
        mpfr_init(r21088);
        mpfr_init(r21089);
        mpfr_init(r21090);
        mpfr_init(r21091);
        mpfr_init(r21092);
        mpfr_init(r21093);
        mpfr_init_set_str(r21094, "0.0", 10, MPFR_RNDN);
        mpfr_init(r21095);
        mpfr_init(r21096);
        mpfr_init(r21097);
        mpfr_init(r21098);
        mpfr_init(r21099);
        mpfr_init(r21100);
        mpfr_init(r21101);
        mpfr_init(r21102);
        mpfr_init(r21103);
        mpfr_init(r21104);
        mpfr_init(r21105);
        mpfr_init(r21106);
}

double f_fm(double m0, double m1, double m2, double w0, double w1, double w2, double a0, double a1, double a2) {
        mpfr_set_d(r21074, a1, MPFR_RNDN);
        mpfr_set_d(r21075, w1, MPFR_RNDN);
        mpfr_div(r21076, r21074, r21075, MPFR_RNDN);
        ;
        mpfr_div(r21078, r21074, r21077, MPFR_RNDN);
        mpfr_set_d(r21079, m1, MPFR_RNDN);
        mpfr_neg(r21080, r21079, MPFR_RNDN);
        mpfr_mul(r21081, r21078, r21080, MPFR_RNDN);
        ;
        mpfr_mul(r21083, r21081, r21082, MPFR_RNDN);
        mpfr_mul(r21084, r21076, r21083, MPFR_RNDN);
        mpfr_set_d(r21085, a2, MPFR_RNDN);
        mpfr_sqr(r21086, r21085, MPFR_RNDN);
        mpfr_set_d(r21087, m2, MPFR_RNDN);
        mpfr_neg(r21088, r21087, MPFR_RNDN);
        mpfr_set_d(r21089, w2, MPFR_RNDN);
        mpfr_div(r21090, r21088, r21089, MPFR_RNDN);
        mpfr_mul(r21091, r21090, r21082, MPFR_RNDN);
        mpfr_mul(r21092, r21086, r21091, MPFR_RNDN);
        mpfr_add(r21093, r21084, r21092, MPFR_RNDN);
        ;
        mpfr_add(r21095, r21094, r21094, MPFR_RNDN);
        mpfr_set_d(r21096, m0, MPFR_RNDN);
        mpfr_set_d(r21097, w0, MPFR_RNDN);
        mpfr_mul(r21098, r21096, r21097, MPFR_RNDN);
        mpfr_neg(r21099, r21082, MPFR_RNDN);
        mpfr_mul(r21100, r21098, r21099, MPFR_RNDN);
        mpfr_set_d(r21101, a0, MPFR_RNDN);
        mpfr_div(r21102, r21101, r21097, MPFR_RNDN);
        mpfr_mul(r21103, r21102, r21102, MPFR_RNDN);
        mpfr_mul(r21104, r21100, r21103, MPFR_RNDN);
        mpfr_add(r21105, r21095, r21104, MPFR_RNDN);
        mpfr_add(r21106, r21093, r21105, MPFR_RNDN);
        return mpfr_get_d(r21106, MPFR_RNDN);
}

static mpfr_t r21107, r21108, r21109, r21110, r21111, r21112, r21113, r21114, r21115, r21116, r21117, r21118, r21119, r21120, r21121, r21122, r21123, r21124, r21125, r21126, r21127, r21128, r21129, r21130, r21131, r21132, r21133, r21134, r21135, r21136, r21137, r21138, r21139;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r21107);
        mpfr_init(r21108);
        mpfr_init(r21109);
        mpfr_init_set_str(r21110, "1", 10, MPFR_RNDN);
        mpfr_init(r21111);
        mpfr_init(r21112);
        mpfr_init(r21113);
        mpfr_init(r21114);
        mpfr_init_set_str(r21115, "-3", 10, MPFR_RNDN);
        mpfr_init(r21116);
        mpfr_init(r21117);
        mpfr_init(r21118);
        mpfr_init(r21119);
        mpfr_init(r21120);
        mpfr_init(r21121);
        mpfr_init(r21122);
        mpfr_init(r21123);
        mpfr_init(r21124);
        mpfr_init(r21125);
        mpfr_init(r21126);
        mpfr_init_set_str(r21127, "0.0", 10, MPFR_RNDN);
        mpfr_init(r21128);
        mpfr_init(r21129);
        mpfr_init(r21130);
        mpfr_init(r21131);
        mpfr_init(r21132);
        mpfr_init(r21133);
        mpfr_init(r21134);
        mpfr_init(r21135);
        mpfr_init(r21136);
        mpfr_init(r21137);
        mpfr_init(r21138);
        mpfr_init(r21139);
}

double f_dm(double m0, double m1, double m2, double w0, double w1, double w2, double a0, double a1, double a2) {
        mpfr_set_d(r21107, a1, MPFR_RNDN);
        mpfr_set_d(r21108, w1, MPFR_RNDN);
        mpfr_div(r21109, r21107, r21108, MPFR_RNDN);
        ;
        mpfr_div(r21111, r21107, r21110, MPFR_RNDN);
        mpfr_set_d(r21112, m1, MPFR_RNDN);
        mpfr_neg(r21113, r21112, MPFR_RNDN);
        mpfr_mul(r21114, r21111, r21113, MPFR_RNDN);
        ;
        mpfr_mul(r21116, r21114, r21115, MPFR_RNDN);
        mpfr_mul(r21117, r21109, r21116, MPFR_RNDN);
        mpfr_set_d(r21118, a2, MPFR_RNDN);
        mpfr_sqr(r21119, r21118, MPFR_RNDN);
        mpfr_set_d(r21120, m2, MPFR_RNDN);
        mpfr_neg(r21121, r21120, MPFR_RNDN);
        mpfr_set_d(r21122, w2, MPFR_RNDN);
        mpfr_div(r21123, r21121, r21122, MPFR_RNDN);
        mpfr_mul(r21124, r21123, r21115, MPFR_RNDN);
        mpfr_mul(r21125, r21119, r21124, MPFR_RNDN);
        mpfr_add(r21126, r21117, r21125, MPFR_RNDN);
        ;
        mpfr_add(r21128, r21127, r21127, MPFR_RNDN);
        mpfr_set_d(r21129, m0, MPFR_RNDN);
        mpfr_set_d(r21130, w0, MPFR_RNDN);
        mpfr_mul(r21131, r21129, r21130, MPFR_RNDN);
        mpfr_neg(r21132, r21115, MPFR_RNDN);
        mpfr_mul(r21133, r21131, r21132, MPFR_RNDN);
        mpfr_set_d(r21134, a0, MPFR_RNDN);
        mpfr_div(r21135, r21134, r21130, MPFR_RNDN);
        mpfr_mul(r21136, r21135, r21135, MPFR_RNDN);
        mpfr_mul(r21137, r21133, r21136, MPFR_RNDN);
        mpfr_add(r21138, r21128, r21137, MPFR_RNDN);
        mpfr_add(r21139, r21126, r21138, MPFR_RNDN);
        return mpfr_get_d(r21139, MPFR_RNDN);
}

