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

char *name = "Falkner and Boettcher, Equation (20:1,3)";

double f_if(float v, float t) {
        float r26779 = 1;
        float r26780 = 5;
        float r26781 = v;
        float r26782 = r26781 * r26781;
        float r26783 = r26780 * r26782;
        float r26784 = r26779 - r26783;
        float r26785 = atan2(1.0, 0.0);
        float r26786 = t;
        float r26787 = r26785 * r26786;
        float r26788 = 2;
        float r26789 = 3;
        float r26790 = r26789 * r26782;
        float r26791 = r26779 - r26790;
        float r26792 = r26788 * r26791;
        float r26793 = sqrt(r26792);
        float r26794 = r26787 * r26793;
        float r26795 = r26779 - r26782;
        float r26796 = r26794 * r26795;
        float r26797 = r26784 / r26796;
        return r26797;
}

double f_id(double v, double t) {
        double r26798 = 1;
        double r26799 = 5;
        double r26800 = v;
        double r26801 = r26800 * r26800;
        double r26802 = r26799 * r26801;
        double r26803 = r26798 - r26802;
        double r26804 = atan2(1.0, 0.0);
        double r26805 = t;
        double r26806 = r26804 * r26805;
        double r26807 = 2;
        double r26808 = 3;
        double r26809 = r26808 * r26801;
        double r26810 = r26798 - r26809;
        double r26811 = r26807 * r26810;
        double r26812 = sqrt(r26811);
        double r26813 = r26806 * r26812;
        double r26814 = r26798 - r26801;
        double r26815 = r26813 * r26814;
        double r26816 = r26803 / r26815;
        return r26816;
}


double f_of(float v, float t) {
        float r26817 = 5;
        float r26818 = -r26817;
        float r26819 = v;
        float r26820 = r26819 * r26819;
        float r26821 = 1;
        float r26822 = fma(r26818, r26820, r26821);
        float r26823 = 3;
        float r26824 = -r26823;
        float r26825 = r26820 * r26824;
        float r26826 = r26820 * r26823;
        float r26827 = fma(r26825, r26826, r26821);
        float r26828 = 2;
        float r26829 = r26827 * r26828;
        float r26830 = sqrt(r26829);
        float r26831 = r26822 / r26830;
        float r26832 = pow(r26819, r26823);
        float r26833 = -r26819;
        float r26834 = fma(r26832, r26833, r26821);
        float r26835 = t;
        float r26836 = atan2(1.0, 0.0);
        float r26837 = r26835 * r26836;
        float r26838 = r26834 * r26837;
        float r26839 = r26831 / r26838;
        float r26840 = r26823 * r26820;
        float r26841 = r26821 + r26840;
        float r26842 = sqrt(r26841);
        float r26843 = r26821 + r26820;
        float r26844 = r26842 * r26843;
        float r26845 = r26839 * r26844;
        return r26845;
}

double f_od(double v, double t) {
        double r26846 = 5;
        double r26847 = -r26846;
        double r26848 = v;
        double r26849 = r26848 * r26848;
        double r26850 = 1;
        double r26851 = fma(r26847, r26849, r26850);
        double r26852 = 3;
        double r26853 = -r26852;
        double r26854 = r26849 * r26853;
        double r26855 = r26849 * r26852;
        double r26856 = fma(r26854, r26855, r26850);
        double r26857 = 2;
        double r26858 = r26856 * r26857;
        double r26859 = sqrt(r26858);
        double r26860 = r26851 / r26859;
        double r26861 = pow(r26848, r26852);
        double r26862 = -r26848;
        double r26863 = fma(r26861, r26862, r26850);
        double r26864 = t;
        double r26865 = atan2(1.0, 0.0);
        double r26866 = r26864 * r26865;
        double r26867 = r26863 * r26866;
        double r26868 = r26860 / r26867;
        double r26869 = r26852 * r26849;
        double r26870 = r26850 + r26869;
        double r26871 = sqrt(r26870);
        double r26872 = r26850 + r26849;
        double r26873 = r26871 * r26872;
        double r26874 = r26868 * r26873;
        return r26874;
}

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 r26875, r26876, r26877, r26878, r26879, r26880, r26881, r26882, r26883, r26884, r26885, r26886, r26887, r26888, r26889, r26890, r26891, r26892, r26893;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26875, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26876, "5", 10, MPFR_RNDN);
        mpfr_init(r26877);
        mpfr_init(r26878);
        mpfr_init(r26879);
        mpfr_init(r26880);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init(r26883);
        mpfr_init_set_str(r26884, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r26885, "3", 10, MPFR_RNDN);
        mpfr_init(r26886);
        mpfr_init(r26887);
        mpfr_init(r26888);
        mpfr_init(r26889);
        mpfr_init(r26890);
        mpfr_init(r26891);
        mpfr_init(r26892);
        mpfr_init(r26893);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r26877, v, MPFR_RNDN);
        mpfr_mul(r26878, r26877, r26877, MPFR_RNDN);
        mpfr_mul(r26879, r26876, r26878, MPFR_RNDN);
        mpfr_sub(r26880, r26875, r26879, MPFR_RNDN);
        mpfr_const_pi(r26881, MPFR_RNDN);
        mpfr_set_d(r26882, t, MPFR_RNDN);
        mpfr_mul(r26883, r26881, r26882, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26886, r26885, r26878, MPFR_RNDN);
        mpfr_sub(r26887, r26875, r26886, MPFR_RNDN);
        mpfr_mul(r26888, r26884, r26887, MPFR_RNDN);
        mpfr_sqrt(r26889, r26888, MPFR_RNDN);
        mpfr_mul(r26890, r26883, r26889, MPFR_RNDN);
        mpfr_sub(r26891, r26875, r26878, MPFR_RNDN);
        mpfr_mul(r26892, r26890, r26891, MPFR_RNDN);
        mpfr_div(r26893, r26880, r26892, MPFR_RNDN);
        return mpfr_get_d(r26893, MPFR_RNDN);
}

static mpfr_t r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901, r26902, r26903, r26904, r26905, r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26894, "5", 10, MPFR_RNDN);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init_set_str(r26898, "1", 10, MPFR_RNDN);
        mpfr_init(r26899);
        mpfr_init_set_str(r26900, "3", 10, MPFR_RNDN);
        mpfr_init(r26901);
        mpfr_init(r26902);
        mpfr_init(r26903);
        mpfr_init(r26904);
        mpfr_init_set_str(r26905, "2", 10, MPFR_RNDN);
        mpfr_init(r26906);
        mpfr_init(r26907);
        mpfr_init(r26908);
        mpfr_init(r26909);
        mpfr_init(r26910);
        mpfr_init(r26911);
        mpfr_init(r26912);
        mpfr_init(r26913);
        mpfr_init(r26914);
        mpfr_init(r26915);
        mpfr_init(r26916);
        mpfr_init(r26917);
        mpfr_init(r26918);
        mpfr_init(r26919);
        mpfr_init(r26920);
        mpfr_init(r26921);
        mpfr_init(r26922);
}

double f_fm(double v, double t) {
        ;
        mpfr_neg(r26895, r26894, MPFR_RNDN);
        mpfr_set_d(r26896, v, MPFR_RNDN);
        mpfr_mul(r26897, r26896, r26896, MPFR_RNDN);
        ;
        mpfr_fma(r26899, r26895, r26897, r26898, MPFR_RNDN);
        ;
        mpfr_neg(r26901, r26900, MPFR_RNDN);
        mpfr_mul(r26902, r26897, r26901, MPFR_RNDN);
        mpfr_mul(r26903, r26897, r26900, MPFR_RNDN);
        mpfr_fma(r26904, r26902, r26903, r26898, MPFR_RNDN);
        ;
        mpfr_mul(r26906, r26904, r26905, MPFR_RNDN);
        mpfr_sqrt(r26907, r26906, MPFR_RNDN);
        mpfr_div(r26908, r26899, r26907, MPFR_RNDN);
        mpfr_pow(r26909, r26896, r26900, MPFR_RNDN);
        mpfr_neg(r26910, r26896, MPFR_RNDN);
        mpfr_fma(r26911, r26909, r26910, r26898, MPFR_RNDN);
        mpfr_set_d(r26912, t, MPFR_RNDN);
        mpfr_const_pi(r26913, MPFR_RNDN);
        mpfr_mul(r26914, r26912, r26913, MPFR_RNDN);
        mpfr_mul(r26915, r26911, r26914, MPFR_RNDN);
        mpfr_div(r26916, r26908, r26915, MPFR_RNDN);
        mpfr_mul(r26917, r26900, r26897, MPFR_RNDN);
        mpfr_add(r26918, r26898, r26917, MPFR_RNDN);
        mpfr_sqrt(r26919, r26918, MPFR_RNDN);
        mpfr_add(r26920, r26898, r26897, MPFR_RNDN);
        mpfr_mul(r26921, r26919, r26920, MPFR_RNDN);
        mpfr_mul(r26922, r26916, r26921, MPFR_RNDN);
        return mpfr_get_d(r26922, MPFR_RNDN);
}

static mpfr_t r26923, r26924, r26925, r26926, r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942, r26943, r26944, r26945, r26946, r26947, r26948, r26949, r26950, r26951;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26923, "5", 10, MPFR_RNDN);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init_set_str(r26927, "1", 10, MPFR_RNDN);
        mpfr_init(r26928);
        mpfr_init_set_str(r26929, "3", 10, MPFR_RNDN);
        mpfr_init(r26930);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init_set_str(r26934, "2", 10, MPFR_RNDN);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init(r26939);
        mpfr_init(r26940);
        mpfr_init(r26941);
        mpfr_init(r26942);
        mpfr_init(r26943);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
        mpfr_init(r26949);
        mpfr_init(r26950);
        mpfr_init(r26951);
}

double f_dm(double v, double t) {
        ;
        mpfr_neg(r26924, r26923, MPFR_RNDN);
        mpfr_set_d(r26925, v, MPFR_RNDN);
        mpfr_mul(r26926, r26925, r26925, MPFR_RNDN);
        ;
        mpfr_fma(r26928, r26924, r26926, r26927, MPFR_RNDN);
        ;
        mpfr_neg(r26930, r26929, MPFR_RNDN);
        mpfr_mul(r26931, r26926, r26930, MPFR_RNDN);
        mpfr_mul(r26932, r26926, r26929, MPFR_RNDN);
        mpfr_fma(r26933, r26931, r26932, r26927, MPFR_RNDN);
        ;
        mpfr_mul(r26935, r26933, r26934, MPFR_RNDN);
        mpfr_sqrt(r26936, r26935, MPFR_RNDN);
        mpfr_div(r26937, r26928, r26936, MPFR_RNDN);
        mpfr_pow(r26938, r26925, r26929, MPFR_RNDN);
        mpfr_neg(r26939, r26925, MPFR_RNDN);
        mpfr_fma(r26940, r26938, r26939, r26927, MPFR_RNDN);
        mpfr_set_d(r26941, t, MPFR_RNDN);
        mpfr_const_pi(r26942, MPFR_RNDN);
        mpfr_mul(r26943, r26941, r26942, MPFR_RNDN);
        mpfr_mul(r26944, r26940, r26943, MPFR_RNDN);
        mpfr_div(r26945, r26937, r26944, MPFR_RNDN);
        mpfr_mul(r26946, r26929, r26926, MPFR_RNDN);
        mpfr_add(r26947, r26927, r26946, MPFR_RNDN);
        mpfr_sqrt(r26948, r26947, MPFR_RNDN);
        mpfr_add(r26949, r26927, r26926, MPFR_RNDN);
        mpfr_mul(r26950, r26948, r26949, MPFR_RNDN);
        mpfr_mul(r26951, r26945, r26950, MPFR_RNDN);
        return mpfr_get_d(r26951, MPFR_RNDN);
}

