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

char *name = "Graphics.Rasterific.Linear:$cquadrance from Rasterific-0.6.1";

double f_if(float x, float y) {
        float r32808 = x;
        float r32809 = r32808 * r32808;
        float r32810 = y;
        float r32811 = r32810 * r32810;
        float r32812 = r32809 + r32811;
        return r32812;
}

double f_id(double x, double y) {
        double r32813 = x;
        double r32814 = r32813 * r32813;
        double r32815 = y;
        double r32816 = r32815 * r32815;
        double r32817 = r32814 + r32816;
        return r32817;
}


double f_of(float x, float y) {
        float r32818 = x;
        float r32819 = r32818 * r32818;
        float r32820 = y;
        float r32821 = r32820 * r32820;
        float r32822 = r32819 + r32821;
        return r32822;
}

double f_od(double x, double y) {
        double r32823 = x;
        double r32824 = r32823 * r32823;
        double r32825 = y;
        double r32826 = r32825 * r32825;
        double r32827 = r32824 + r32826;
        return r32827;
}

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 r32828, r32829, r32830, r32831, r32832;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r32828);
        mpfr_init(r32829);
        mpfr_init(r32830);
        mpfr_init(r32831);
        mpfr_init(r32832);
}

double f_im(double x, double y) {
        mpfr_set_d(r32828, x, MPFR_RNDN);
        mpfr_mul(r32829, r32828, r32828, MPFR_RNDN);
        mpfr_set_d(r32830, y, MPFR_RNDN);
        mpfr_mul(r32831, r32830, r32830, MPFR_RNDN);
        mpfr_add(r32832, r32829, r32831, MPFR_RNDN);
        return mpfr_get_d(r32832, MPFR_RNDN);
}

static mpfr_t r32833, r32834, r32835, r32836, r32837;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r32833);
        mpfr_init(r32834);
        mpfr_init(r32835);
        mpfr_init(r32836);
        mpfr_init(r32837);
}

double f_fm(double x, double y) {
        mpfr_set_d(r32833, x, MPFR_RNDN);
        mpfr_mul(r32834, r32833, r32833, MPFR_RNDN);
        mpfr_set_d(r32835, y, MPFR_RNDN);
        mpfr_mul(r32836, r32835, r32835, MPFR_RNDN);
        mpfr_add(r32837, r32834, r32836, MPFR_RNDN);
        return mpfr_get_d(r32837, MPFR_RNDN);
}

static mpfr_t r32838, r32839, r32840, r32841, r32842;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r32838);
        mpfr_init(r32839);
        mpfr_init(r32840);
        mpfr_init(r32841);
        mpfr_init(r32842);
}

double f_dm(double x, double y) {
        mpfr_set_d(r32838, x, MPFR_RNDN);
        mpfr_mul(r32839, r32838, r32838, MPFR_RNDN);
        mpfr_set_d(r32840, y, MPFR_RNDN);
        mpfr_mul(r32841, r32840, r32840, MPFR_RNDN);
        mpfr_add(r32842, r32839, r32841, MPFR_RNDN);
        return mpfr_get_d(r32842, MPFR_RNDN);
}

