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

char *name = "sqrt times";

double f_if(float x) {
        float r7843 = x;
        float r7844 = 1;
        float r7845 = r7843 - r7844;
        float r7846 = sqrt(r7845);
        float r7847 = sqrt(r7843);
        float r7848 = r7846 * r7847;
        return r7848;
}

double f_id(double x) {
        double r7849 = x;
        double r7850 = 1;
        double r7851 = r7849 - r7850;
        double r7852 = sqrt(r7851);
        double r7853 = sqrt(r7849);
        double r7854 = r7852 * r7853;
        return r7854;
}


double f_of(float x) {
        float r7855 = x;
        float r7856 = 1;
        float r7857 = r7855 - r7856;
        float r7858 = sqrt(r7857);
        float r7859 = sqrt(r7855);
        float r7860 = r7858 * r7859;
        return r7860;
}

double f_od(double x) {
        double r7861 = x;
        double r7862 = 1;
        double r7863 = r7861 - r7862;
        double r7864 = sqrt(r7863);
        double r7865 = sqrt(r7861);
        double r7866 = r7864 * r7865;
        return r7866;
}

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 r7867, r7868, r7869, r7870, r7871, r7872;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r7867);
        mpfr_init_set_str(r7868, "1", 10, MPFR_RNDN);
        mpfr_init(r7869);
        mpfr_init(r7870);
        mpfr_init(r7871);
        mpfr_init(r7872);
}

double f_im(double x) {
        mpfr_set_d(r7867, x, MPFR_RNDN);
        ;
        mpfr_sub(r7869, r7867, r7868, MPFR_RNDN);
        mpfr_sqrt(r7870, r7869, MPFR_RNDN);
        mpfr_sqrt(r7871, r7867, MPFR_RNDN);
        mpfr_mul(r7872, r7870, r7871, MPFR_RNDN);
        return mpfr_get_d(r7872, MPFR_RNDN);
}

static mpfr_t r7873, r7874, r7875, r7876, r7877, r7878;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r7873);
        mpfr_init_set_str(r7874, "1", 10, MPFR_RNDN);
        mpfr_init(r7875);
        mpfr_init(r7876);
        mpfr_init(r7877);
        mpfr_init(r7878);
}

double f_fm(double x) {
        mpfr_set_d(r7873, x, MPFR_RNDN);
        ;
        mpfr_sub(r7875, r7873, r7874, MPFR_RNDN);
        mpfr_sqrt(r7876, r7875, MPFR_RNDN);
        mpfr_sqrt(r7877, r7873, MPFR_RNDN);
        mpfr_mul(r7878, r7876, r7877, MPFR_RNDN);
        return mpfr_get_d(r7878, MPFR_RNDN);
}

static mpfr_t r7879, r7880, r7881, r7882, r7883, r7884;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r7879);
        mpfr_init_set_str(r7880, "1", 10, MPFR_RNDN);
        mpfr_init(r7881);
        mpfr_init(r7882);
        mpfr_init(r7883);
        mpfr_init(r7884);
}

double f_dm(double x) {
        mpfr_set_d(r7879, x, MPFR_RNDN);
        ;
        mpfr_sub(r7881, r7879, r7880, MPFR_RNDN);
        mpfr_sqrt(r7882, r7881, MPFR_RNDN);
        mpfr_sqrt(r7883, r7879, MPFR_RNDN);
        mpfr_mul(r7884, r7882, r7883, MPFR_RNDN);
        return mpfr_get_d(r7884, MPFR_RNDN);
}

