#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 r48038 = 8.0f;
        float r48039 = 3.0f;
        float r48040 = r48038 / r48039;
        float r48041 = x;
        float r48042 = 0.5f;
        float r48043 = r48041 * r48042;
        float r48044 = sin(r48043);
        float r48045 = r48040 * r48044;
        float r48046 = r48045 * r48044;
        float r48047 = sin(r48041);
        float r48048 = r48046 / r48047;
        return r48048;
}

double f_id(double x) {
        double r48049 = 8.0;
        double r48050 = 3.0;
        double r48051 = r48049 / r48050;
        double r48052 = x;
        double r48053 = 0.5;
        double r48054 = r48052 * r48053;
        double r48055 = sin(r48054);
        double r48056 = r48051 * r48055;
        double r48057 = r48056 * r48055;
        double r48058 = sin(r48052);
        double r48059 = r48057 / r48058;
        return r48059;
}


double f_of(float x) {
        float r48060 = 8.0f;
        float r48061 = x;
        float r48062 = 0.5f;
        float r48063 = r48061 * r48062;
        float r48064 = sin(r48063);
        float r48065 = 3.0f;
        float r48066 = r48064 / r48065;
        float r48067 = r48060 * r48066;
        float r48068 = sin(r48061);
        float r48069 = r48064 / r48068;
        float r48070 = r48067 * r48069;
        return r48070;
}

double f_od(double x) {
        double r48071 = 8.0;
        double r48072 = x;
        double r48073 = 0.5;
        double r48074 = r48072 * r48073;
        double r48075 = sin(r48074);
        double r48076 = 3.0;
        double r48077 = r48075 / r48076;
        double r48078 = r48071 * r48077;
        double r48079 = sin(r48072);
        double r48080 = r48075 / r48079;
        double r48081 = r48078 * r48080;
        return r48081;
}

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 r48082, r48083, r48084, r48085, r48086, r48087, r48088, r48089, r48090, r48091, r48092;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r48082, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r48083, "3.0", 10, MPFR_RNDN);
        mpfr_init(r48084);
        mpfr_init(r48085);
        mpfr_init_set_str(r48086, "0.5", 10, MPFR_RNDN);
        mpfr_init(r48087);
        mpfr_init(r48088);
        mpfr_init(r48089);
        mpfr_init(r48090);
        mpfr_init(r48091);
        mpfr_init(r48092);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r48084, r48082, r48083, MPFR_RNDN);
        mpfr_set_d(r48085, x, MPFR_RNDN);
        ;
        mpfr_mul(r48087, r48085, r48086, MPFR_RNDN);
        mpfr_sin(r48088, r48087, MPFR_RNDN);
        mpfr_mul(r48089, r48084, r48088, MPFR_RNDN);
        mpfr_mul(r48090, r48089, r48088, MPFR_RNDN);
        mpfr_sin(r48091, r48085, MPFR_RNDN);
        mpfr_div(r48092, r48090, r48091, MPFR_RNDN);
        return mpfr_get_d(r48092, MPFR_RNDN);
}

static mpfr_t r48093, r48094, r48095, r48096, r48097, r48098, r48099, r48100, r48101, r48102, r48103;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r48093, "8.0", 10, MPFR_RNDN);
        mpfr_init(r48094);
        mpfr_init_set_str(r48095, "0.5", 10, MPFR_RNDN);
        mpfr_init(r48096);
        mpfr_init(r48097);
        mpfr_init_set_str(r48098, "3.0", 10, MPFR_RNDN);
        mpfr_init(r48099);
        mpfr_init(r48100);
        mpfr_init(r48101);
        mpfr_init(r48102);
        mpfr_init(r48103);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r48094, x, MPFR_RNDN);
        ;
        mpfr_mul(r48096, r48094, r48095, MPFR_RNDN);
        mpfr_sin(r48097, r48096, MPFR_RNDN);
        ;
        mpfr_div(r48099, r48097, r48098, MPFR_RNDN);
        mpfr_mul(r48100, r48093, r48099, MPFR_RNDN);
        mpfr_sin(r48101, r48094, MPFR_RNDN);
        mpfr_div(r48102, r48097, r48101, MPFR_RNDN);
        mpfr_mul(r48103, r48100, r48102, MPFR_RNDN);
        return mpfr_get_d(r48103, MPFR_RNDN);
}

static mpfr_t r48104, r48105, r48106, r48107, r48108, r48109, r48110, r48111, r48112, r48113, r48114;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r48104, "8.0", 10, MPFR_RNDN);
        mpfr_init(r48105);
        mpfr_init_set_str(r48106, "0.5", 10, MPFR_RNDN);
        mpfr_init(r48107);
        mpfr_init(r48108);
        mpfr_init_set_str(r48109, "3.0", 10, MPFR_RNDN);
        mpfr_init(r48110);
        mpfr_init(r48111);
        mpfr_init(r48112);
        mpfr_init(r48113);
        mpfr_init(r48114);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r48105, x, MPFR_RNDN);
        ;
        mpfr_mul(r48107, r48105, r48106, MPFR_RNDN);
        mpfr_sin(r48108, r48107, MPFR_RNDN);
        ;
        mpfr_div(r48110, r48108, r48109, MPFR_RNDN);
        mpfr_mul(r48111, r48104, r48110, MPFR_RNDN);
        mpfr_sin(r48112, r48105, MPFR_RNDN);
        mpfr_div(r48113, r48108, r48112, MPFR_RNDN);
        mpfr_mul(r48114, r48111, r48113, MPFR_RNDN);
        return mpfr_get_d(r48114, MPFR_RNDN);
}

