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

char *name = "Toniolo and Linder, Equation (10+)";

double f_if(float t, float l, float k) {
        float r19644 = 2.0f;
        float r19645 = t;
        float r19646 = 3.0f;
        float r19647 = pow(r19645, r19646);
        float r19648 = l;
        float r19649 = r19648 * r19648;
        float r19650 = r19647 / r19649;
        float r19651 = k;
        float r19652 = sin(r19651);
        float r19653 = r19650 * r19652;
        float r19654 = tan(r19651);
        float r19655 = r19653 * r19654;
        float r19656 = 1.0f;
        float r19657 = r19651 / r19645;
        float r19658 = r19657 * r19657;
        float r19659 = r19656 + r19658;
        float r19660 = r19659 + r19656;
        float r19661 = r19655 * r19660;
        float r19662 = r19644 / r19661;
        return r19662;
}

double f_id(double t, double l, double k) {
        double r19663 = 2.0;
        double r19664 = t;
        double r19665 = 3.0;
        double r19666 = pow(r19664, r19665);
        double r19667 = l;
        double r19668 = r19667 * r19667;
        double r19669 = r19666 / r19668;
        double r19670 = k;
        double r19671 = sin(r19670);
        double r19672 = r19669 * r19671;
        double r19673 = tan(r19670);
        double r19674 = r19672 * r19673;
        double r19675 = 1.0;
        double r19676 = r19670 / r19664;
        double r19677 = r19676 * r19676;
        double r19678 = r19675 + r19677;
        double r19679 = r19678 + r19675;
        double r19680 = r19674 * r19679;
        double r19681 = r19663 / r19680;
        return r19681;
}


double f_of(float t, float l, float k) {
        float r19682 = l;
        float r19683 = -5.237492387957813e+116f;
        bool r19684 = r19682 <= r19683;
        float r19685 = 2.0f;
        float r19686 = k;
        float r19687 = t;
        float r19688 = r19686 / r19687;
        float r19689 = r19688 * r19688;
        float r19690 = r19685 + r19689;
        float r19691 = tan(r19686);
        float r19692 = sin(r19686);
        float r19693 = r19692 * r19687;
        float r19694 = r19682 / r19687;
        float r19695 = r19694 * r19694;
        float r19696 = r19693 / r19695;
        float r19697 = r19691 * r19696;
        float r19698 = r19690 * r19697;
        float r19699 = cbrt(r19698);
        float r19700 = r19699 * (r19699 * r19699);
        float r19701 = r19685 / r19700;
        float r19702 = -1.4952202440978445e-167f;
        bool r19703 = r19682 <= r19702;
        float r19704 = cbrt(r19691);
        float r19705 = cbrt(r19692);
        float r19706 = r19704 * r19705;
        float r19707 = r19682 * r19682;
        float r19708 = cbrt(r19707);
        float r19709 = r19687 / r19708;
        float r19710 = r19706 * r19709;
        float r19711 = r19689 + r19685;
        float r19712 = cbrt(r19711);
        float r19713 = r19710 * r19712;
        float r19714 = r19713 * (r19713 * r19713);
        float r19715 = r19685 / r19714;
        float r19716 = 9.352918442096625e-212f;
        bool r19717 = r19682 <= r19716;
        float r19718 = cbrt(r19690);
        float r19719 = cbrt(r19693);
        float r19720 = 1.0f;
        float r19721 = r19720 / r19695;
        float r19722 = cbrt(r19721);
        float r19723 = sqrt(r19722);
        float r19724 = r19723 * r19723;
        float r19725 = r19719 * r19724;
        float r19726 = r19704 * r19725;
        float r19727 = r19718 * r19726;
        float r19728 = r19727 * (r19727 * r19727);
        float r19729 = r19685 / r19728;
        float r19730 = 3.683028962283538e+81f;
        bool r19731 = r19682 <= r19730;
        float r19732 = r19731 ? r19715 : r19729;
        float r19733 = r19717 ? r19729 : r19732;
        float r19734 = r19703 ? r19715 : r19733;
        float r19735 = r19684 ? r19701 : r19734;
        return r19735;
}

double f_od(double t, double l, double k) {
        double r19736 = l;
        double r19737 = -5.237492387957813e+116;
        bool r19738 = r19736 <= r19737;
        double r19739 = 2.0;
        double r19740 = k;
        double r19741 = t;
        double r19742 = r19740 / r19741;
        double r19743 = r19742 * r19742;
        double r19744 = r19739 + r19743;
        double r19745 = tan(r19740);
        double r19746 = sin(r19740);
        double r19747 = r19746 * r19741;
        double r19748 = r19736 / r19741;
        double r19749 = r19748 * r19748;
        double r19750 = r19747 / r19749;
        double r19751 = r19745 * r19750;
        double r19752 = r19744 * r19751;
        double r19753 = cbrt(r19752);
        double r19754 = r19753 * (r19753 * r19753);
        double r19755 = r19739 / r19754;
        double r19756 = -1.4952202440978445e-167;
        bool r19757 = r19736 <= r19756;
        double r19758 = cbrt(r19745);
        double r19759 = cbrt(r19746);
        double r19760 = r19758 * r19759;
        double r19761 = r19736 * r19736;
        double r19762 = cbrt(r19761);
        double r19763 = r19741 / r19762;
        double r19764 = r19760 * r19763;
        double r19765 = r19743 + r19739;
        double r19766 = cbrt(r19765);
        double r19767 = r19764 * r19766;
        double r19768 = r19767 * (r19767 * r19767);
        double r19769 = r19739 / r19768;
        double r19770 = 9.352918442096625e-212;
        bool r19771 = r19736 <= r19770;
        double r19772 = cbrt(r19744);
        double r19773 = cbrt(r19747);
        double r19774 = 1.0;
        double r19775 = r19774 / r19749;
        double r19776 = cbrt(r19775);
        double r19777 = sqrt(r19776);
        double r19778 = r19777 * r19777;
        double r19779 = r19773 * r19778;
        double r19780 = r19758 * r19779;
        double r19781 = r19772 * r19780;
        double r19782 = r19781 * (r19781 * r19781);
        double r19783 = r19739 / r19782;
        double r19784 = 3.683028962283538e+81;
        bool r19785 = r19736 <= r19784;
        double r19786 = r19785 ? r19769 : r19783;
        double r19787 = r19771 ? r19783 : r19786;
        double r19788 = r19757 ? r19769 : r19787;
        double r19789 = r19738 ? r19755 : r19788;
        return r19789;
}

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 r19790, r19791, r19792, r19793, r19794, r19795, r19796, r19797, r19798, r19799, r19800, r19801, r19802, r19803, r19804, r19805, r19806, r19807, r19808;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r19790, "2", 10, MPFR_RNDN);
        mpfr_init(r19791);
        mpfr_init_set_str(r19792, "3", 10, MPFR_RNDN);
        mpfr_init(r19793);
        mpfr_init(r19794);
        mpfr_init(r19795);
        mpfr_init(r19796);
        mpfr_init(r19797);
        mpfr_init(r19798);
        mpfr_init(r19799);
        mpfr_init(r19800);
        mpfr_init(r19801);
        mpfr_init_set_str(r19802, "1", 10, MPFR_RNDN);
        mpfr_init(r19803);
        mpfr_init(r19804);
        mpfr_init(r19805);
        mpfr_init(r19806);
        mpfr_init(r19807);
        mpfr_init(r19808);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r19791, t, MPFR_RNDN);
        ;
        mpfr_pow(r19793, r19791, r19792, MPFR_RNDN);
        mpfr_set_d(r19794, l, MPFR_RNDN);
        mpfr_sqr(r19795, r19794, MPFR_RNDN);
        mpfr_div(r19796, r19793, r19795, MPFR_RNDN);
        mpfr_set_d(r19797, k, MPFR_RNDN);
        mpfr_sin(r19798, r19797, MPFR_RNDN);
        mpfr_mul(r19799, r19796, r19798, MPFR_RNDN);
        mpfr_tan(r19800, r19797, MPFR_RNDN);
        mpfr_mul(r19801, r19799, r19800, MPFR_RNDN);
        ;
        mpfr_div(r19803, r19797, r19791, MPFR_RNDN);
        mpfr_sqr(r19804, r19803, MPFR_RNDN);
        mpfr_add(r19805, r19802, r19804, MPFR_RNDN);
        mpfr_add(r19806, r19805, r19802, MPFR_RNDN);
        mpfr_mul(r19807, r19801, r19806, MPFR_RNDN);
        mpfr_div(r19808, r19790, r19807, MPFR_RNDN);
        return mpfr_get_d(r19808, MPFR_RNDN);
}

static mpfr_t r19809, r19810, r19811, r19812, r19813, r19814, r19815, r19816, r19817, r19818, r19819, r19820, r19821, r19822, r19823, r19824, r19825, r19826, r19827, r19828, r19829, r19830, r19831, r19832, r19833, r19834, r19835, r19836, r19837, r19838, r19839, r19840, r19841, r19842, r19843, r19844, r19845, r19846, r19847, r19848, r19849, r19850, r19851, r19852, r19853, r19854, r19855, r19856, r19857, r19858, r19859, r19860, r19861, r19862;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r19809);
        mpfr_init_set_str(r19810, "-5.237492387957813e+116", 10, MPFR_RNDN);
        mpfr_init(r19811);
        mpfr_init_set_str(r19812, "2", 10, MPFR_RNDN);
        mpfr_init(r19813);
        mpfr_init(r19814);
        mpfr_init(r19815);
        mpfr_init(r19816);
        mpfr_init(r19817);
        mpfr_init(r19818);
        mpfr_init(r19819);
        mpfr_init(r19820);
        mpfr_init(r19821);
        mpfr_init(r19822);
        mpfr_init(r19823);
        mpfr_init(r19824);
        mpfr_init(r19825);
        mpfr_init(r19826);
        mpfr_init(r19827);
        mpfr_init(r19828);
        mpfr_init_set_str(r19829, "-1.4952202440978445e-167", 10, MPFR_RNDN);
        mpfr_init(r19830);
        mpfr_init(r19831);
        mpfr_init(r19832);
        mpfr_init(r19833);
        mpfr_init(r19834);
        mpfr_init(r19835);
        mpfr_init(r19836);
        mpfr_init(r19837);
        mpfr_init(r19838);
        mpfr_init(r19839);
        mpfr_init(r19840);
        mpfr_init(r19841);
        mpfr_init(r19842);
        mpfr_init_set_str(r19843, "9.352918442096625e-212", 10, MPFR_RNDN);
        mpfr_init(r19844);
        mpfr_init(r19845);
        mpfr_init(r19846);
        mpfr_init_set_str(r19847, "1", 10, MPFR_RNDN);
        mpfr_init(r19848);
        mpfr_init(r19849);
        mpfr_init(r19850);
        mpfr_init(r19851);
        mpfr_init(r19852);
        mpfr_init(r19853);
        mpfr_init(r19854);
        mpfr_init(r19855);
        mpfr_init(r19856);
        mpfr_init_set_str(r19857, "3.683028962283538e+81", 10, MPFR_RNDN);
        mpfr_init(r19858);
        mpfr_init(r19859);
        mpfr_init(r19860);
        mpfr_init(r19861);
        mpfr_init(r19862);
}

double f_fm(double t, double l, double k) {
        mpfr_set_d(r19809, l, MPFR_RNDN);
        ;
        mpfr_set_si(r19811, mpfr_cmp(r19809, r19810) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19813, k, MPFR_RNDN);
        mpfr_set_d(r19814, t, MPFR_RNDN);
        mpfr_div(r19815, r19813, r19814, MPFR_RNDN);
        mpfr_sqr(r19816, r19815, MPFR_RNDN);
        mpfr_add(r19817, r19812, r19816, MPFR_RNDN);
        mpfr_tan(r19818, r19813, MPFR_RNDN);
        mpfr_sin(r19819, r19813, MPFR_RNDN);
        mpfr_mul(r19820, r19819, r19814, MPFR_RNDN);
        mpfr_div(r19821, r19809, r19814, MPFR_RNDN);
        mpfr_sqr(r19822, r19821, MPFR_RNDN);
        mpfr_div(r19823, r19820, r19822, MPFR_RNDN);
        mpfr_mul(r19824, r19818, r19823, MPFR_RNDN);
        mpfr_mul(r19825, r19817, r19824, MPFR_RNDN);
        mpfr_cbrt(r19826, r19825, MPFR_RNDN);
        mpfr_mul(r19827, r19826, r19826, MPFR_RNDN); mpfr_mul(r19827, r19827, r19826, MPFR_RNDN);
        mpfr_div(r19828, r19812, r19827, MPFR_RNDN);
        ;
        mpfr_set_si(r19830, mpfr_cmp(r19809, r19829) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19831, r19818, MPFR_RNDN);
        mpfr_cbrt(r19832, r19819, MPFR_RNDN);
        mpfr_mul(r19833, r19831, r19832, MPFR_RNDN);
        mpfr_mul(r19834, r19809, r19809, MPFR_RNDN);
        mpfr_cbrt(r19835, r19834, MPFR_RNDN);
        mpfr_div(r19836, r19814, r19835, MPFR_RNDN);
        mpfr_mul(r19837, r19833, r19836, MPFR_RNDN);
        mpfr_add(r19838, r19816, r19812, MPFR_RNDN);
        mpfr_cbrt(r19839, r19838, MPFR_RNDN);
        mpfr_mul(r19840, r19837, r19839, MPFR_RNDN);
        mpfr_mul(r19841, r19840, r19840, MPFR_RNDN); mpfr_mul(r19841, r19841, r19840, MPFR_RNDN);
        mpfr_div(r19842, r19812, r19841, MPFR_RNDN);
        ;
        mpfr_set_si(r19844, mpfr_cmp(r19809, r19843) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19845, r19817, MPFR_RNDN);
        mpfr_cbrt(r19846, r19820, MPFR_RNDN);
        ;
        mpfr_div(r19848, r19847, r19822, MPFR_RNDN);
        mpfr_cbrt(r19849, r19848, MPFR_RNDN);
        mpfr_sqrt(r19850, r19849, MPFR_RNDN);
        mpfr_sqr(r19851, r19850, MPFR_RNDN);
        mpfr_mul(r19852, r19846, r19851, MPFR_RNDN);
        mpfr_mul(r19853, r19831, r19852, MPFR_RNDN);
        mpfr_mul(r19854, r19845, r19853, MPFR_RNDN);
        mpfr_mul(r19855, r19854, r19854, MPFR_RNDN); mpfr_mul(r19855, r19855, r19854, MPFR_RNDN);
        mpfr_div(r19856, r19812, r19855, MPFR_RNDN);
        ;
        mpfr_set_si(r19858, mpfr_cmp(r19809, r19857) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r19858, MPFR_RNDN)) { mpfr_set(r19859, r19842, MPFR_RNDN); } else { mpfr_set(r19859, r19856, MPFR_RNDN); };
        if (mpfr_get_si(r19844, MPFR_RNDN)) { mpfr_set(r19860, r19856, MPFR_RNDN); } else { mpfr_set(r19860, r19859, MPFR_RNDN); };
        if (mpfr_get_si(r19830, MPFR_RNDN)) { mpfr_set(r19861, r19842, MPFR_RNDN); } else { mpfr_set(r19861, r19860, MPFR_RNDN); };
        if (mpfr_get_si(r19811, MPFR_RNDN)) { mpfr_set(r19862, r19828, MPFR_RNDN); } else { mpfr_set(r19862, r19861, MPFR_RNDN); };
        return mpfr_get_d(r19862, MPFR_RNDN);
}

static mpfr_t r19863, r19864, r19865, r19866, r19867, r19868, r19869, r19870, r19871, r19872, r19873, r19874, r19875, r19876, r19877, r19878, r19879, r19880, r19881, r19882, r19883, r19884, r19885, r19886, r19887, r19888, r19889, r19890, r19891, r19892, r19893, r19894, r19895, r19896, r19897, r19898, r19899, r19900, r19901, r19902, r19903, r19904, r19905, r19906, r19907, r19908, r19909, r19910, r19911, r19912, r19913, r19914, r19915, r19916;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r19863);
        mpfr_init_set_str(r19864, "-5.237492387957813e+116", 10, MPFR_RNDN);
        mpfr_init(r19865);
        mpfr_init_set_str(r19866, "2", 10, MPFR_RNDN);
        mpfr_init(r19867);
        mpfr_init(r19868);
        mpfr_init(r19869);
        mpfr_init(r19870);
        mpfr_init(r19871);
        mpfr_init(r19872);
        mpfr_init(r19873);
        mpfr_init(r19874);
        mpfr_init(r19875);
        mpfr_init(r19876);
        mpfr_init(r19877);
        mpfr_init(r19878);
        mpfr_init(r19879);
        mpfr_init(r19880);
        mpfr_init(r19881);
        mpfr_init(r19882);
        mpfr_init_set_str(r19883, "-1.4952202440978445e-167", 10, MPFR_RNDN);
        mpfr_init(r19884);
        mpfr_init(r19885);
        mpfr_init(r19886);
        mpfr_init(r19887);
        mpfr_init(r19888);
        mpfr_init(r19889);
        mpfr_init(r19890);
        mpfr_init(r19891);
        mpfr_init(r19892);
        mpfr_init(r19893);
        mpfr_init(r19894);
        mpfr_init(r19895);
        mpfr_init(r19896);
        mpfr_init_set_str(r19897, "9.352918442096625e-212", 10, MPFR_RNDN);
        mpfr_init(r19898);
        mpfr_init(r19899);
        mpfr_init(r19900);
        mpfr_init_set_str(r19901, "1", 10, MPFR_RNDN);
        mpfr_init(r19902);
        mpfr_init(r19903);
        mpfr_init(r19904);
        mpfr_init(r19905);
        mpfr_init(r19906);
        mpfr_init(r19907);
        mpfr_init(r19908);
        mpfr_init(r19909);
        mpfr_init(r19910);
        mpfr_init_set_str(r19911, "3.683028962283538e+81", 10, MPFR_RNDN);
        mpfr_init(r19912);
        mpfr_init(r19913);
        mpfr_init(r19914);
        mpfr_init(r19915);
        mpfr_init(r19916);
}

double f_dm(double t, double l, double k) {
        mpfr_set_d(r19863, l, MPFR_RNDN);
        ;
        mpfr_set_si(r19865, mpfr_cmp(r19863, r19864) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r19867, k, MPFR_RNDN);
        mpfr_set_d(r19868, t, MPFR_RNDN);
        mpfr_div(r19869, r19867, r19868, MPFR_RNDN);
        mpfr_sqr(r19870, r19869, MPFR_RNDN);
        mpfr_add(r19871, r19866, r19870, MPFR_RNDN);
        mpfr_tan(r19872, r19867, MPFR_RNDN);
        mpfr_sin(r19873, r19867, MPFR_RNDN);
        mpfr_mul(r19874, r19873, r19868, MPFR_RNDN);
        mpfr_div(r19875, r19863, r19868, MPFR_RNDN);
        mpfr_sqr(r19876, r19875, MPFR_RNDN);
        mpfr_div(r19877, r19874, r19876, MPFR_RNDN);
        mpfr_mul(r19878, r19872, r19877, MPFR_RNDN);
        mpfr_mul(r19879, r19871, r19878, MPFR_RNDN);
        mpfr_cbrt(r19880, r19879, MPFR_RNDN);
        mpfr_mul(r19881, r19880, r19880, MPFR_RNDN); mpfr_mul(r19881, r19881, r19880, MPFR_RNDN);
        mpfr_div(r19882, r19866, r19881, MPFR_RNDN);
        ;
        mpfr_set_si(r19884, mpfr_cmp(r19863, r19883) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19885, r19872, MPFR_RNDN);
        mpfr_cbrt(r19886, r19873, MPFR_RNDN);
        mpfr_mul(r19887, r19885, r19886, MPFR_RNDN);
        mpfr_mul(r19888, r19863, r19863, MPFR_RNDN);
        mpfr_cbrt(r19889, r19888, MPFR_RNDN);
        mpfr_div(r19890, r19868, r19889, MPFR_RNDN);
        mpfr_mul(r19891, r19887, r19890, MPFR_RNDN);
        mpfr_add(r19892, r19870, r19866, MPFR_RNDN);
        mpfr_cbrt(r19893, r19892, MPFR_RNDN);
        mpfr_mul(r19894, r19891, r19893, MPFR_RNDN);
        mpfr_mul(r19895, r19894, r19894, MPFR_RNDN); mpfr_mul(r19895, r19895, r19894, MPFR_RNDN);
        mpfr_div(r19896, r19866, r19895, MPFR_RNDN);
        ;
        mpfr_set_si(r19898, mpfr_cmp(r19863, r19897) <= 0, MPFR_RNDN);
        mpfr_cbrt(r19899, r19871, MPFR_RNDN);
        mpfr_cbrt(r19900, r19874, MPFR_RNDN);
        ;
        mpfr_div(r19902, r19901, r19876, MPFR_RNDN);
        mpfr_cbrt(r19903, r19902, MPFR_RNDN);
        mpfr_sqrt(r19904, r19903, MPFR_RNDN);
        mpfr_sqr(r19905, r19904, MPFR_RNDN);
        mpfr_mul(r19906, r19900, r19905, MPFR_RNDN);
        mpfr_mul(r19907, r19885, r19906, MPFR_RNDN);
        mpfr_mul(r19908, r19899, r19907, MPFR_RNDN);
        mpfr_mul(r19909, r19908, r19908, MPFR_RNDN); mpfr_mul(r19909, r19909, r19908, MPFR_RNDN);
        mpfr_div(r19910, r19866, r19909, MPFR_RNDN);
        ;
        mpfr_set_si(r19912, mpfr_cmp(r19863, r19911) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r19912, MPFR_RNDN)) { mpfr_set(r19913, r19896, MPFR_RNDN); } else { mpfr_set(r19913, r19910, MPFR_RNDN); };
        if (mpfr_get_si(r19898, MPFR_RNDN)) { mpfr_set(r19914, r19910, MPFR_RNDN); } else { mpfr_set(r19914, r19913, MPFR_RNDN); };
        if (mpfr_get_si(r19884, MPFR_RNDN)) { mpfr_set(r19915, r19896, MPFR_RNDN); } else { mpfr_set(r19915, r19914, MPFR_RNDN); };
        if (mpfr_get_si(r19865, MPFR_RNDN)) { mpfr_set(r19916, r19882, MPFR_RNDN); } else { mpfr_set(r19916, r19915, MPFR_RNDN); };
        return mpfr_get_d(r19916, MPFR_RNDN);
}

