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

char *name = "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, A";

double f_if(float x) {
        float r49974 = 8.0;
        float r49975 = 3.0;
        float r49976 = r49974 / r49975;
        float r49977 = x;
        float r49978 = 0.5;
        float r49979 = r49977 * r49978;
        float r49980 = sin(r49979);
        float r49981 = r49976 * r49980;
        float r49982 = r49981 * r49980;
        float r49983 = sin(r49977);
        float r49984 = r49982 / r49983;
        return r49984;
}

double f_id(double x) {
        double r49985 = 8.0;
        double r49986 = 3.0;
        double r49987 = r49985 / r49986;
        double r49988 = x;
        double r49989 = 0.5;
        double r49990 = r49988 * r49989;
        double r49991 = sin(r49990);
        double r49992 = r49987 * r49991;
        double r49993 = r49992 * r49991;
        double r49994 = sin(r49988);
        double r49995 = r49993 / r49994;
        return r49995;
}


double f_of(float x) {
        float r49996 = x;
        float r49997 = 0.5;
        float r49998 = r49996 * r49997;
        float r49999 = sin(r49998);
        float r50000 = 3.0;
        float r50001 = 8.0;
        float r50002 = r50000 / r50001;
        float r50003 = r49999 / r50002;
        float r50004 = sin(r49996);
        float r50005 = r49999 / r50004;
        float r50006 = r50003 * r50005;
        return r50006;
}

double f_od(double x) {
        double r50007 = x;
        double r50008 = 0.5;
        double r50009 = r50007 * r50008;
        double r50010 = sin(r50009);
        double r50011 = 3.0;
        double r50012 = 8.0;
        double r50013 = r50011 / r50012;
        double r50014 = r50010 / r50013;
        double r50015 = sin(r50007);
        double r50016 = r50010 / r50015;
        double r50017 = r50014 * r50016;
        return r50017;
}

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 r50018, r50019, r50020, r50021, r50022, r50023, r50024, r50025, r50026, r50027, r50028;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r50018, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50019, "3.0", 10, MPFR_RNDN);
        mpfr_init(r50020);
        mpfr_init(r50021);
        mpfr_init_set_str(r50022, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50023);
        mpfr_init(r50024);
        mpfr_init(r50025);
        mpfr_init(r50026);
        mpfr_init(r50027);
        mpfr_init(r50028);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r50020, r50018, r50019, MPFR_RNDN);
        mpfr_set_d(r50021, x, MPFR_RNDN);
        ;
        mpfr_mul(r50023, r50021, r50022, MPFR_RNDN);
        mpfr_sin(r50024, r50023, MPFR_RNDN);
        mpfr_mul(r50025, r50020, r50024, MPFR_RNDN);
        mpfr_mul(r50026, r50025, r50024, MPFR_RNDN);
        mpfr_sin(r50027, r50021, MPFR_RNDN);
        mpfr_div(r50028, r50026, r50027, MPFR_RNDN);
        return mpfr_get_d(r50028, MPFR_RNDN);
}

static mpfr_t r50029, r50030, r50031, r50032, r50033, r50034, r50035, r50036, r50037, r50038, r50039;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50029);
        mpfr_init_set_str(r50030, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50031);
        mpfr_init(r50032);
        mpfr_init_set_str(r50033, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50034, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50035);
        mpfr_init(r50036);
        mpfr_init(r50037);
        mpfr_init(r50038);
        mpfr_init(r50039);
}

double f_fm(double x) {
        mpfr_set_d(r50029, x, MPFR_RNDN);
        ;
        mpfr_mul(r50031, r50029, r50030, MPFR_RNDN);
        mpfr_sin(r50032, r50031, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50035, r50033, r50034, MPFR_RNDN);
        mpfr_div(r50036, r50032, r50035, MPFR_RNDN);
        mpfr_sin(r50037, r50029, MPFR_RNDN);
        mpfr_div(r50038, r50032, r50037, MPFR_RNDN);
        mpfr_mul(r50039, r50036, r50038, MPFR_RNDN);
        return mpfr_get_d(r50039, MPFR_RNDN);
}

static mpfr_t r50040, r50041, r50042, r50043, r50044, r50045, r50046, r50047, r50048, r50049, r50050;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50040);
        mpfr_init_set_str(r50041, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50042);
        mpfr_init(r50043);
        mpfr_init_set_str(r50044, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50045, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50046);
        mpfr_init(r50047);
        mpfr_init(r50048);
        mpfr_init(r50049);
        mpfr_init(r50050);
}

double f_dm(double x) {
        mpfr_set_d(r50040, x, MPFR_RNDN);
        ;
        mpfr_mul(r50042, r50040, r50041, MPFR_RNDN);
        mpfr_sin(r50043, r50042, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50046, r50044, r50045, MPFR_RNDN);
        mpfr_div(r50047, r50043, r50046, MPFR_RNDN);
        mpfr_sin(r50048, r50040, MPFR_RNDN);
        mpfr_div(r50049, r50043, r50048, MPFR_RNDN);
        mpfr_mul(r50050, r50047, r50049, MPFR_RNDN);
        return mpfr_get_d(r50050, MPFR_RNDN);
}

