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

char *name = "qlog (example 3.10)";

double f_if(float x) {
        float r9827 = 1.0f;
        float r9828 = x;
        float r9829 = r9827 - r9828;
        float r9830 = log(r9829);
        float r9831 = r9827 + r9828;
        float r9832 = log(r9831);
        float r9833 = r9830 / r9832;
        return r9833;
}

double f_id(double x) {
        double r9834 = 1.0;
        double r9835 = x;
        double r9836 = r9834 - r9835;
        double r9837 = log(r9836);
        double r9838 = r9834 + r9835;
        double r9839 = log(r9838);
        double r9840 = r9837 / r9839;
        return r9840;
}


double f_of(float x) {
        float r9841 = 0.5f;
        float r9842 = 0.3333333333333333f;
        float r9843 = x;
        float r9844 = r9842 * r9843;
        float r9845 = r9841 + r9844;
        float r9846 = r9843 * r9843;
        float r9847 = -r9846;
        float r9848 = r9845 * r9847;
        float r9849 = -r9843;
        float r9850 = r9848 + r9849;
        float r9851 = r9841 - r9844;
        float r9852 = r9846 * r9851;
        float r9853 = r9843 - r9852;
        float r9854 = r9850 / r9853;
        return r9854;
}

double f_od(double x) {
        double r9855 = 0.5;
        double r9856 = 0.3333333333333333;
        double r9857 = x;
        double r9858 = r9856 * r9857;
        double r9859 = r9855 + r9858;
        double r9860 = r9857 * r9857;
        double r9861 = -r9860;
        double r9862 = r9859 * r9861;
        double r9863 = -r9857;
        double r9864 = r9862 + r9863;
        double r9865 = r9855 - r9858;
        double r9866 = r9860 * r9865;
        double r9867 = r9857 - r9866;
        double r9868 = r9864 / r9867;
        return r9868;
}

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 r9869, r9870, r9871, r9872, r9873, r9874, r9875;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r9869, "1", 10, MPFR_RNDN);
        mpfr_init(r9870);
        mpfr_init(r9871);
        mpfr_init(r9872);
        mpfr_init(r9873);
        mpfr_init(r9874);
        mpfr_init(r9875);
}

double f_im(double x) {
        ;
        mpfr_set_d(r9870, x, MPFR_RNDN);
        mpfr_sub(r9871, r9869, r9870, MPFR_RNDN);
        mpfr_log(r9872, r9871, MPFR_RNDN);
        mpfr_add(r9873, r9869, r9870, MPFR_RNDN);
        mpfr_log(r9874, r9873, MPFR_RNDN);
        mpfr_div(r9875, r9872, r9874, MPFR_RNDN);
        return mpfr_get_d(r9875, MPFR_RNDN);
}

static mpfr_t r9876, r9877, r9878, r9879, r9880, r9881, r9882, r9883, r9884, r9885, r9886, r9887, r9888, r9889;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r9876, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r9877, "1/3", 10, MPFR_RNDN);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init(r9880);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init(r9883);
        mpfr_init(r9884);
        mpfr_init(r9885);
        mpfr_init(r9886);
        mpfr_init(r9887);
        mpfr_init(r9888);
        mpfr_init(r9889);
}

double f_fm(double x) {
        ;
        ;
        mpfr_set_d(r9878, x, MPFR_RNDN);
        mpfr_mul(r9879, r9877, r9878, MPFR_RNDN);
        mpfr_add(r9880, r9876, r9879, MPFR_RNDN);
        mpfr_mul(r9881, r9878, r9878, MPFR_RNDN);
        mpfr_neg(r9882, r9881, MPFR_RNDN);
        mpfr_mul(r9883, r9880, r9882, MPFR_RNDN);
        mpfr_neg(r9884, r9878, MPFR_RNDN);
        mpfr_add(r9885, r9883, r9884, MPFR_RNDN);
        mpfr_sub(r9886, r9876, r9879, MPFR_RNDN);
        mpfr_mul(r9887, r9881, r9886, MPFR_RNDN);
        mpfr_sub(r9888, r9878, r9887, MPFR_RNDN);
        mpfr_div(r9889, r9885, r9888, MPFR_RNDN);
        return mpfr_get_d(r9889, MPFR_RNDN);
}

static mpfr_t r9890, r9891, r9892, r9893, r9894, r9895, r9896, r9897, r9898, r9899, r9900, r9901, r9902, r9903;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r9890, "1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r9891, "1/3", 10, MPFR_RNDN);
        mpfr_init(r9892);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init(r9895);
        mpfr_init(r9896);
        mpfr_init(r9897);
        mpfr_init(r9898);
        mpfr_init(r9899);
        mpfr_init(r9900);
        mpfr_init(r9901);
        mpfr_init(r9902);
        mpfr_init(r9903);
}

double f_dm(double x) {
        ;
        ;
        mpfr_set_d(r9892, x, MPFR_RNDN);
        mpfr_mul(r9893, r9891, r9892, MPFR_RNDN);
        mpfr_add(r9894, r9890, r9893, MPFR_RNDN);
        mpfr_mul(r9895, r9892, r9892, MPFR_RNDN);
        mpfr_neg(r9896, r9895, MPFR_RNDN);
        mpfr_mul(r9897, r9894, r9896, MPFR_RNDN);
        mpfr_neg(r9898, r9892, MPFR_RNDN);
        mpfr_add(r9899, r9897, r9898, MPFR_RNDN);
        mpfr_sub(r9900, r9890, r9893, MPFR_RNDN);
        mpfr_mul(r9901, r9895, r9900, MPFR_RNDN);
        mpfr_sub(r9902, r9892, r9901, MPFR_RNDN);
        mpfr_div(r9903, r9899, r9902, MPFR_RNDN);
        return mpfr_get_d(r9903, MPFR_RNDN);
}

