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

double f_if(float x, float y, float z) {
        float r49918 = x;
        float r49919 = y;
        float r49920 = cos(r49919);
        float r49921 = r49918 + r49920;
        float r49922 = z;
        float r49923 = sin(r49919);
        float r49924 = r49922 * r49923;
        float r49925 = r49921 - r49924;
        return r49925;
}

double f_id(double x, double y, double z) {
        double r49926 = x;
        double r49927 = y;
        double r49928 = cos(r49927);
        double r49929 = r49926 + r49928;
        double r49930 = z;
        double r49931 = sin(r49927);
        double r49932 = r49930 * r49931;
        double r49933 = r49929 - r49932;
        return r49933;
}


double f_of(float x, float y, float z) {
        float r49934 = x;
        float r49935 = y;
        float r49936 = cos(r49935);
        float r49937 = r49934 + r49936;
        float r49938 = z;
        float r49939 = sin(r49935);
        float r49940 = r49938 * r49939;
        float r49941 = r49937 - r49940;
        return r49941;
}

double f_od(double x, double y, double z) {
        double r49942 = x;
        double r49943 = y;
        double r49944 = cos(r49943);
        double r49945 = r49942 + r49944;
        double r49946 = z;
        double r49947 = sin(r49943);
        double r49948 = r49946 * r49947;
        double r49949 = r49945 - r49948;
        return r49949;
}

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 r49950, r49951, r49952, r49953, r49954, r49955, r49956, r49957;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r49950);
        mpfr_init(r49951);
        mpfr_init(r49952);
        mpfr_init(r49953);
        mpfr_init(r49954);
        mpfr_init(r49955);
        mpfr_init(r49956);
        mpfr_init(r49957);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r49950, x, MPFR_RNDN);
        mpfr_set_d(r49951, y, MPFR_RNDN);
        mpfr_cos(r49952, r49951, MPFR_RNDN);
        mpfr_add(r49953, r49950, r49952, MPFR_RNDN);
        mpfr_set_d(r49954, z, MPFR_RNDN);
        mpfr_sin(r49955, r49951, MPFR_RNDN);
        mpfr_mul(r49956, r49954, r49955, MPFR_RNDN);
        mpfr_sub(r49957, r49953, r49956, MPFR_RNDN);
        return mpfr_get_d(r49957, MPFR_RNDN);
}

static mpfr_t r49958, r49959, r49960, r49961, r49962, r49963, r49964, r49965;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49958);
        mpfr_init(r49959);
        mpfr_init(r49960);
        mpfr_init(r49961);
        mpfr_init(r49962);
        mpfr_init(r49963);
        mpfr_init(r49964);
        mpfr_init(r49965);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r49958, x, MPFR_RNDN);
        mpfr_set_d(r49959, y, MPFR_RNDN);
        mpfr_cos(r49960, r49959, MPFR_RNDN);
        mpfr_add(r49961, r49958, r49960, MPFR_RNDN);
        mpfr_set_d(r49962, z, MPFR_RNDN);
        mpfr_sin(r49963, r49959, MPFR_RNDN);
        mpfr_mul(r49964, r49962, r49963, MPFR_RNDN);
        mpfr_sub(r49965, r49961, r49964, MPFR_RNDN);
        return mpfr_get_d(r49965, MPFR_RNDN);
}

static mpfr_t r49966, r49967, r49968, r49969, r49970, r49971, r49972, r49973;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r49966);
        mpfr_init(r49967);
        mpfr_init(r49968);
        mpfr_init(r49969);
        mpfr_init(r49970);
        mpfr_init(r49971);
        mpfr_init(r49972);
        mpfr_init(r49973);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r49966, x, MPFR_RNDN);
        mpfr_set_d(r49967, y, MPFR_RNDN);
        mpfr_cos(r49968, r49967, MPFR_RNDN);
        mpfr_add(r49969, r49966, r49968, MPFR_RNDN);
        mpfr_set_d(r49970, z, MPFR_RNDN);
        mpfr_sin(r49971, r49967, MPFR_RNDN);
        mpfr_mul(r49972, r49970, r49971, MPFR_RNDN);
        mpfr_sub(r49973, r49969, r49972, MPFR_RNDN);
        return mpfr_get_d(r49973, MPFR_RNDN);
}

