#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 r50677 = 8.0;
        float r50678 = 3.0;
        float r50679 = r50677 / r50678;
        float r50680 = x;
        float r50681 = 0.5;
        float r50682 = r50680 * r50681;
        float r50683 = sin(r50682);
        float r50684 = r50679 * r50683;
        float r50685 = r50684 * r50683;
        float r50686 = sin(r50680);
        float r50687 = r50685 / r50686;
        return r50687;
}

double f_id(double x) {
        double r50688 = 8.0;
        double r50689 = 3.0;
        double r50690 = r50688 / r50689;
        double r50691 = x;
        double r50692 = 0.5;
        double r50693 = r50691 * r50692;
        double r50694 = sin(r50693);
        double r50695 = r50690 * r50694;
        double r50696 = r50695 * r50694;
        double r50697 = sin(r50691);
        double r50698 = r50696 / r50697;
        return r50698;
}


double f_of(float x) {
        float r50699 = x;
        float r50700 = 0.5;
        float r50701 = r50699 * r50700;
        float r50702 = sin(r50701);
        float r50703 = 3.0;
        float r50704 = 8.0;
        float r50705 = r50703 / r50704;
        float r50706 = r50702 / r50705;
        float r50707 = sin(r50699);
        float r50708 = r50702 / r50707;
        float r50709 = r50706 * r50708;
        return r50709;
}

double f_od(double x) {
        double r50710 = x;
        double r50711 = 0.5;
        double r50712 = r50710 * r50711;
        double r50713 = sin(r50712);
        double r50714 = 3.0;
        double r50715 = 8.0;
        double r50716 = r50714 / r50715;
        double r50717 = r50713 / r50716;
        double r50718 = sin(r50710);
        double r50719 = r50713 / r50718;
        double r50720 = r50717 * r50719;
        return r50720;
}

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 r50721, r50722, r50723, r50724, r50725, r50726, r50727, r50728, r50729, r50730, r50731;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r50721, "8.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50722, "3.0", 10, MPFR_RNDN);
        mpfr_init(r50723);
        mpfr_init(r50724);
        mpfr_init_set_str(r50725, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50726);
        mpfr_init(r50727);
        mpfr_init(r50728);
        mpfr_init(r50729);
        mpfr_init(r50730);
        mpfr_init(r50731);
}

double f_im(double x) {
        ;
        ;
        mpfr_div(r50723, r50721, r50722, MPFR_RNDN);
        mpfr_set_d(r50724, x, MPFR_RNDN);
        ;
        mpfr_mul(r50726, r50724, r50725, MPFR_RNDN);
        mpfr_sin(r50727, r50726, MPFR_RNDN);
        mpfr_mul(r50728, r50723, r50727, MPFR_RNDN);
        mpfr_mul(r50729, r50728, r50727, MPFR_RNDN);
        mpfr_sin(r50730, r50724, MPFR_RNDN);
        mpfr_div(r50731, r50729, r50730, MPFR_RNDN);
        return mpfr_get_d(r50731, MPFR_RNDN);
}

static mpfr_t r50732, r50733, r50734, r50735, r50736, r50737, r50738, r50739, r50740, r50741, r50742;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50732);
        mpfr_init_set_str(r50733, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50734);
        mpfr_init(r50735);
        mpfr_init_set_str(r50736, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50737, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50738);
        mpfr_init(r50739);
        mpfr_init(r50740);
        mpfr_init(r50741);
        mpfr_init(r50742);
}

double f_fm(double x) {
        mpfr_set_d(r50732, x, MPFR_RNDN);
        ;
        mpfr_mul(r50734, r50732, r50733, MPFR_RNDN);
        mpfr_sin(r50735, r50734, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50738, r50736, r50737, MPFR_RNDN);
        mpfr_div(r50739, r50735, r50738, MPFR_RNDN);
        mpfr_sin(r50740, r50732, MPFR_RNDN);
        mpfr_div(r50741, r50735, r50740, MPFR_RNDN);
        mpfr_mul(r50742, r50739, r50741, MPFR_RNDN);
        return mpfr_get_d(r50742, MPFR_RNDN);
}

static mpfr_t r50743, r50744, r50745, r50746, r50747, r50748, r50749, r50750, r50751, r50752, r50753;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r50743);
        mpfr_init_set_str(r50744, "0.5", 10, MPFR_RNDN);
        mpfr_init(r50745);
        mpfr_init(r50746);
        mpfr_init_set_str(r50747, "3.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r50748, "8.0", 10, MPFR_RNDN);
        mpfr_init(r50749);
        mpfr_init(r50750);
        mpfr_init(r50751);
        mpfr_init(r50752);
        mpfr_init(r50753);
}

double f_dm(double x) {
        mpfr_set_d(r50743, x, MPFR_RNDN);
        ;
        mpfr_mul(r50745, r50743, r50744, MPFR_RNDN);
        mpfr_sin(r50746, r50745, MPFR_RNDN);
        ;
        ;
        mpfr_div(r50749, r50747, r50748, MPFR_RNDN);
        mpfr_div(r50750, r50746, r50749, MPFR_RNDN);
        mpfr_sin(r50751, r50743, MPFR_RNDN);
        mpfr_div(r50752, r50746, r50751, MPFR_RNDN);
        mpfr_mul(r50753, r50750, r50752, MPFR_RNDN);
        return mpfr_get_d(r50753, MPFR_RNDN);
}

