#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, C";

double f_if(float x, float y, float z) {
        float r49862 = x;
        float r49863 = y;
        float r49864 = sin(r49863);
        float r49865 = r49862 + r49864;
        float r49866 = z;
        float r49867 = cos(r49863);
        float r49868 = r49866 * r49867;
        float r49869 = r49865 + r49868;
        return r49869;
}

double f_id(double x, double y, double z) {
        double r49870 = x;
        double r49871 = y;
        double r49872 = sin(r49871);
        double r49873 = r49870 + r49872;
        double r49874 = z;
        double r49875 = cos(r49871);
        double r49876 = r49874 * r49875;
        double r49877 = r49873 + r49876;
        return r49877;
}


double f_of(float x, float y, float z) {
        float r49878 = x;
        float r49879 = y;
        float r49880 = sin(r49879);
        float r49881 = r49878 + r49880;
        float r49882 = z;
        float r49883 = cos(r49879);
        float r49884 = r49882 * r49883;
        float r49885 = r49881 + r49884;
        return r49885;
}

double f_od(double x, double y, double z) {
        double r49886 = x;
        double r49887 = y;
        double r49888 = sin(r49887);
        double r49889 = r49886 + r49888;
        double r49890 = z;
        double r49891 = cos(r49887);
        double r49892 = r49890 * r49891;
        double r49893 = r49889 + r49892;
        return r49893;
}

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 r49894, r49895, r49896, r49897, r49898, r49899, r49900, r49901;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49894);
        mpfr_init(r49895);
        mpfr_init(r49896);
        mpfr_init(r49897);
        mpfr_init(r49898);
        mpfr_init(r49899);
        mpfr_init(r49900);
        mpfr_init(r49901);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r49894, x, MPFR_RNDN);
        mpfr_set_d(r49895, y, MPFR_RNDN);
        mpfr_sin(r49896, r49895, MPFR_RNDN);
        mpfr_add(r49897, r49894, r49896, MPFR_RNDN);
        mpfr_set_d(r49898, z, MPFR_RNDN);
        mpfr_cos(r49899, r49895, MPFR_RNDN);
        mpfr_mul(r49900, r49898, r49899, MPFR_RNDN);
        mpfr_add(r49901, r49897, r49900, MPFR_RNDN);
        return mpfr_get_d(r49901, MPFR_RNDN);
}

static mpfr_t r49902, r49903, r49904, r49905, r49906, r49907, r49908, r49909;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49902);
        mpfr_init(r49903);
        mpfr_init(r49904);
        mpfr_init(r49905);
        mpfr_init(r49906);
        mpfr_init(r49907);
        mpfr_init(r49908);
        mpfr_init(r49909);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r49902, x, MPFR_RNDN);
        mpfr_set_d(r49903, y, MPFR_RNDN);
        mpfr_sin(r49904, r49903, MPFR_RNDN);
        mpfr_add(r49905, r49902, r49904, MPFR_RNDN);
        mpfr_set_d(r49906, z, MPFR_RNDN);
        mpfr_cos(r49907, r49903, MPFR_RNDN);
        mpfr_mul(r49908, r49906, r49907, MPFR_RNDN);
        mpfr_add(r49909, r49905, r49908, MPFR_RNDN);
        return mpfr_get_d(r49909, MPFR_RNDN);
}

static mpfr_t r49910, r49911, r49912, r49913, r49914, r49915, r49916, r49917;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49910);
        mpfr_init(r49911);
        mpfr_init(r49912);
        mpfr_init(r49913);
        mpfr_init(r49914);
        mpfr_init(r49915);
        mpfr_init(r49916);
        mpfr_init(r49917);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r49910, x, MPFR_RNDN);
        mpfr_set_d(r49911, y, MPFR_RNDN);
        mpfr_sin(r49912, r49911, MPFR_RNDN);
        mpfr_add(r49913, r49910, r49912, MPFR_RNDN);
        mpfr_set_d(r49914, z, MPFR_RNDN);
        mpfr_cos(r49915, r49911, MPFR_RNDN);
        mpfr_mul(r49916, r49914, r49915, MPFR_RNDN);
        mpfr_add(r49917, r49913, r49916, MPFR_RNDN);
        return mpfr_get_d(r49917, MPFR_RNDN);
}

