#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 r25593 = 2;
        float r25594 = t;
        float r25595 = 3;
        float r25596 = pow(r25594, r25595);
        float r25597 = l;
        float r25598 = r25597 * r25597;
        float r25599 = r25596 / r25598;
        float r25600 = k;
        float r25601 = sin(r25600);
        float r25602 = r25599 * r25601;
        float r25603 = tan(r25600);
        float r25604 = r25602 * r25603;
        float r25605 = 1;
        float r25606 = r25600 / r25594;
        float r25607 = pow(r25606, r25593);
        float r25608 = r25605 + r25607;
        float r25609 = r25608 + r25605;
        float r25610 = r25604 * r25609;
        float r25611 = r25593 / r25610;
        return r25611;
}

double f_id(double t, double l, double k) {
        double r25612 = 2;
        double r25613 = t;
        double r25614 = 3;
        double r25615 = pow(r25613, r25614);
        double r25616 = l;
        double r25617 = r25616 * r25616;
        double r25618 = r25615 / r25617;
        double r25619 = k;
        double r25620 = sin(r25619);
        double r25621 = r25618 * r25620;
        double r25622 = tan(r25619);
        double r25623 = r25621 * r25622;
        double r25624 = 1;
        double r25625 = r25619 / r25613;
        double r25626 = pow(r25625, r25612);
        double r25627 = r25624 + r25626;
        double r25628 = r25627 + r25624;
        double r25629 = r25623 * r25628;
        double r25630 = r25612 / r25629;
        return r25630;
}


double f_of(float t, float l, float k) {
        float r25631 = t;
        float r25632 = -1.1991704712150189e-43;
        bool r25633 = r25631 <= r25632;
        float r25634 = 2;
        float r25635 = k;
        float r25636 = tan(r25635);
        float r25637 = l;
        float r25638 = r25631 / r25637;
        float r25639 = sin(r25635);
        float r25640 = r25638 * r25639;
        float r25641 = r25631 * r25640;
        float r25642 = r25636 * r25641;
        float r25643 = r25635 / r25631;
        float r25644 = r25631 + r25631;
        float r25645 = fma(r25635, r25643, r25644);
        float r25646 = r25637 / r25645;
        float r25647 = r25642 / r25646;
        float r25648 = r25634 / r25647;
        float r25649 = 7.337450004030472e-144;
        bool r25650 = r25631 <= r25649;
        float r25651 = r25631 * r25635;
        float r25652 = r25651 / r25637;
        float r25653 = r25631 * r25652;
        float r25654 = r25636 * r25653;
        float r25655 = 1;
        float r25656 = pow(r25643, r25634);
        float r25657 = r25656 + r25655;
        float r25658 = r25655 + r25657;
        float r25659 = r25654 * r25658;
        float r25660 = r25637 / r25631;
        float r25661 = r25659 / r25660;
        float r25662 = r25634 / r25661;
        float r25663 = cbrt(r25638);
        float r25664 = r25663 * r25639;
        float r25665 = r25663 * r25663;
        float r25666 = r25664 * r25665;
        float r25667 = r25666 * r25631;
        float r25668 = r25667 * r25636;
        float r25669 = r25658 * r25668;
        float r25670 = r25669 / r25660;
        float r25671 = r25634 / r25670;
        float r25672 = r25650 ? r25662 : r25671;
        float r25673 = r25633 ? r25648 : r25672;
        return r25673;
}

double f_od(double t, double l, double k) {
        double r25674 = t;
        double r25675 = -1.1991704712150189e-43;
        bool r25676 = r25674 <= r25675;
        double r25677 = 2;
        double r25678 = k;
        double r25679 = tan(r25678);
        double r25680 = l;
        double r25681 = r25674 / r25680;
        double r25682 = sin(r25678);
        double r25683 = r25681 * r25682;
        double r25684 = r25674 * r25683;
        double r25685 = r25679 * r25684;
        double r25686 = r25678 / r25674;
        double r25687 = r25674 + r25674;
        double r25688 = fma(r25678, r25686, r25687);
        double r25689 = r25680 / r25688;
        double r25690 = r25685 / r25689;
        double r25691 = r25677 / r25690;
        double r25692 = 7.337450004030472e-144;
        bool r25693 = r25674 <= r25692;
        double r25694 = r25674 * r25678;
        double r25695 = r25694 / r25680;
        double r25696 = r25674 * r25695;
        double r25697 = r25679 * r25696;
        double r25698 = 1;
        double r25699 = pow(r25686, r25677);
        double r25700 = r25699 + r25698;
        double r25701 = r25698 + r25700;
        double r25702 = r25697 * r25701;
        double r25703 = r25680 / r25674;
        double r25704 = r25702 / r25703;
        double r25705 = r25677 / r25704;
        double r25706 = cbrt(r25681);
        double r25707 = r25706 * r25682;
        double r25708 = r25706 * r25706;
        double r25709 = r25707 * r25708;
        double r25710 = r25709 * r25674;
        double r25711 = r25710 * r25679;
        double r25712 = r25701 * r25711;
        double r25713 = r25712 / r25703;
        double r25714 = r25677 / r25713;
        double r25715 = r25693 ? r25705 : r25714;
        double r25716 = r25676 ? r25691 : r25715;
        return r25716;
}

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 r25717, r25718, r25719, r25720, r25721, r25722, r25723, r25724, r25725, r25726, r25727, r25728, r25729, r25730, r25731, r25732, r25733, r25734, r25735;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r25717, "2", 10, MPFR_RNDN);
        mpfr_init(r25718);
        mpfr_init_set_str(r25719, "3", 10, MPFR_RNDN);
        mpfr_init(r25720);
        mpfr_init(r25721);
        mpfr_init(r25722);
        mpfr_init(r25723);
        mpfr_init(r25724);
        mpfr_init(r25725);
        mpfr_init(r25726);
        mpfr_init(r25727);
        mpfr_init(r25728);
        mpfr_init_set_str(r25729, "1", 10, MPFR_RNDN);
        mpfr_init(r25730);
        mpfr_init(r25731);
        mpfr_init(r25732);
        mpfr_init(r25733);
        mpfr_init(r25734);
        mpfr_init(r25735);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r25718, t, MPFR_RNDN);
        ;
        mpfr_pow(r25720, r25718, r25719, MPFR_RNDN);
        mpfr_set_d(r25721, l, MPFR_RNDN);
        mpfr_mul(r25722, r25721, r25721, MPFR_RNDN);
        mpfr_div(r25723, r25720, r25722, MPFR_RNDN);
        mpfr_set_d(r25724, k, MPFR_RNDN);
        mpfr_sin(r25725, r25724, MPFR_RNDN);
        mpfr_mul(r25726, r25723, r25725, MPFR_RNDN);
        mpfr_tan(r25727, r25724, MPFR_RNDN);
        mpfr_mul(r25728, r25726, r25727, MPFR_RNDN);
        ;
        mpfr_div(r25730, r25724, r25718, MPFR_RNDN);
        mpfr_pow(r25731, r25730, r25717, MPFR_RNDN);
        mpfr_add(r25732, r25729, r25731, MPFR_RNDN);
        mpfr_add(r25733, r25732, r25729, MPFR_RNDN);
        mpfr_mul(r25734, r25728, r25733, MPFR_RNDN);
        mpfr_div(r25735, r25717, r25734, MPFR_RNDN);
        return mpfr_get_d(r25735, MPFR_RNDN);
}

static mpfr_t r25736, r25737, r25738, r25739, r25740, r25741, r25742, r25743, r25744, r25745, r25746, r25747, r25748, r25749, r25750, r25751, r25752, r25753, r25754, r25755, r25756, r25757, r25758, r25759, r25760, r25761, r25762, r25763, r25764, r25765, r25766, r25767, r25768, r25769, r25770, r25771, r25772, r25773, r25774, r25775, r25776, r25777, r25778;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r25736);
        mpfr_init_set_str(r25737, "-1.1991704712150189e-43", 10, MPFR_RNDN);
        mpfr_init(r25738);
        mpfr_init_set_str(r25739, "2", 10, MPFR_RNDN);
        mpfr_init(r25740);
        mpfr_init(r25741);
        mpfr_init(r25742);
        mpfr_init(r25743);
        mpfr_init(r25744);
        mpfr_init(r25745);
        mpfr_init(r25746);
        mpfr_init(r25747);
        mpfr_init(r25748);
        mpfr_init(r25749);
        mpfr_init(r25750);
        mpfr_init(r25751);
        mpfr_init(r25752);
        mpfr_init(r25753);
        mpfr_init_set_str(r25754, "7.337450004030472e-144", 10, MPFR_RNDN);
        mpfr_init(r25755);
        mpfr_init(r25756);
        mpfr_init(r25757);
        mpfr_init(r25758);
        mpfr_init(r25759);
        mpfr_init_set_str(r25760, "1", 10, MPFR_RNDN);
        mpfr_init(r25761);
        mpfr_init(r25762);
        mpfr_init(r25763);
        mpfr_init(r25764);
        mpfr_init(r25765);
        mpfr_init(r25766);
        mpfr_init(r25767);
        mpfr_init(r25768);
        mpfr_init(r25769);
        mpfr_init(r25770);
        mpfr_init(r25771);
        mpfr_init(r25772);
        mpfr_init(r25773);
        mpfr_init(r25774);
        mpfr_init(r25775);
        mpfr_init(r25776);
        mpfr_init(r25777);
        mpfr_init(r25778);
}

double f_fm(double t, double l, double k) {
        mpfr_set_d(r25736, t, MPFR_RNDN);
        ;
        mpfr_set_si(r25738, mpfr_cmp(r25736, r25737) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25740, k, MPFR_RNDN);
        mpfr_tan(r25741, r25740, MPFR_RNDN);
        mpfr_set_d(r25742, l, MPFR_RNDN);
        mpfr_div(r25743, r25736, r25742, MPFR_RNDN);
        mpfr_sin(r25744, r25740, MPFR_RNDN);
        mpfr_mul(r25745, r25743, r25744, MPFR_RNDN);
        mpfr_mul(r25746, r25736, r25745, MPFR_RNDN);
        mpfr_mul(r25747, r25741, r25746, MPFR_RNDN);
        mpfr_div(r25748, r25740, r25736, MPFR_RNDN);
        mpfr_add(r25749, r25736, r25736, MPFR_RNDN);
        mpfr_fma(r25750, r25740, r25748, r25749, MPFR_RNDN);
        mpfr_div(r25751, r25742, r25750, MPFR_RNDN);
        mpfr_div(r25752, r25747, r25751, MPFR_RNDN);
        mpfr_div(r25753, r25739, r25752, MPFR_RNDN);
        ;
        mpfr_set_si(r25755, mpfr_cmp(r25736, r25754) <= 0, MPFR_RNDN);
        mpfr_mul(r25756, r25736, r25740, MPFR_RNDN);
        mpfr_div(r25757, r25756, r25742, MPFR_RNDN);
        mpfr_mul(r25758, r25736, r25757, MPFR_RNDN);
        mpfr_mul(r25759, r25741, r25758, MPFR_RNDN);
        ;
        mpfr_pow(r25761, r25748, r25739, MPFR_RNDN);
        mpfr_add(r25762, r25761, r25760, MPFR_RNDN);
        mpfr_add(r25763, r25760, r25762, MPFR_RNDN);
        mpfr_mul(r25764, r25759, r25763, MPFR_RNDN);
        mpfr_div(r25765, r25742, r25736, MPFR_RNDN);
        mpfr_div(r25766, r25764, r25765, MPFR_RNDN);
        mpfr_div(r25767, r25739, r25766, MPFR_RNDN);
        mpfr_cbrt(r25768, r25743, MPFR_RNDN);
        mpfr_mul(r25769, r25768, r25744, MPFR_RNDN);
        mpfr_mul(r25770, r25768, r25768, MPFR_RNDN);
        mpfr_mul(r25771, r25769, r25770, MPFR_RNDN);
        mpfr_mul(r25772, r25771, r25736, MPFR_RNDN);
        mpfr_mul(r25773, r25772, r25741, MPFR_RNDN);
        mpfr_mul(r25774, r25763, r25773, MPFR_RNDN);
        mpfr_div(r25775, r25774, r25765, MPFR_RNDN);
        mpfr_div(r25776, r25739, r25775, MPFR_RNDN);
        if (mpfr_get_si(r25755, MPFR_RNDN)) { mpfr_set(r25777, r25767, MPFR_RNDN); } else { mpfr_set(r25777, r25776, MPFR_RNDN); };
        if (mpfr_get_si(r25738, MPFR_RNDN)) { mpfr_set(r25778, r25753, MPFR_RNDN); } else { mpfr_set(r25778, r25777, MPFR_RNDN); };
        return mpfr_get_d(r25778, MPFR_RNDN);
}

static mpfr_t r25779, r25780, r25781, r25782, r25783, r25784, r25785, r25786, r25787, r25788, r25789, r25790, r25791, r25792, r25793, r25794, r25795, r25796, r25797, r25798, r25799, r25800, r25801, r25802, r25803, r25804, r25805, r25806, r25807, r25808, r25809, r25810, r25811, r25812, r25813, r25814, r25815, r25816, r25817, r25818, r25819, r25820, r25821;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r25779);
        mpfr_init_set_str(r25780, "-1.1991704712150189e-43", 10, MPFR_RNDN);
        mpfr_init(r25781);
        mpfr_init_set_str(r25782, "2", 10, MPFR_RNDN);
        mpfr_init(r25783);
        mpfr_init(r25784);
        mpfr_init(r25785);
        mpfr_init(r25786);
        mpfr_init(r25787);
        mpfr_init(r25788);
        mpfr_init(r25789);
        mpfr_init(r25790);
        mpfr_init(r25791);
        mpfr_init(r25792);
        mpfr_init(r25793);
        mpfr_init(r25794);
        mpfr_init(r25795);
        mpfr_init(r25796);
        mpfr_init_set_str(r25797, "7.337450004030472e-144", 10, MPFR_RNDN);
        mpfr_init(r25798);
        mpfr_init(r25799);
        mpfr_init(r25800);
        mpfr_init(r25801);
        mpfr_init(r25802);
        mpfr_init_set_str(r25803, "1", 10, MPFR_RNDN);
        mpfr_init(r25804);
        mpfr_init(r25805);
        mpfr_init(r25806);
        mpfr_init(r25807);
        mpfr_init(r25808);
        mpfr_init(r25809);
        mpfr_init(r25810);
        mpfr_init(r25811);
        mpfr_init(r25812);
        mpfr_init(r25813);
        mpfr_init(r25814);
        mpfr_init(r25815);
        mpfr_init(r25816);
        mpfr_init(r25817);
        mpfr_init(r25818);
        mpfr_init(r25819);
        mpfr_init(r25820);
        mpfr_init(r25821);
}

double f_dm(double t, double l, double k) {
        mpfr_set_d(r25779, t, MPFR_RNDN);
        ;
        mpfr_set_si(r25781, mpfr_cmp(r25779, r25780) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r25783, k, MPFR_RNDN);
        mpfr_tan(r25784, r25783, MPFR_RNDN);
        mpfr_set_d(r25785, l, MPFR_RNDN);
        mpfr_div(r25786, r25779, r25785, MPFR_RNDN);
        mpfr_sin(r25787, r25783, MPFR_RNDN);
        mpfr_mul(r25788, r25786, r25787, MPFR_RNDN);
        mpfr_mul(r25789, r25779, r25788, MPFR_RNDN);
        mpfr_mul(r25790, r25784, r25789, MPFR_RNDN);
        mpfr_div(r25791, r25783, r25779, MPFR_RNDN);
        mpfr_add(r25792, r25779, r25779, MPFR_RNDN);
        mpfr_fma(r25793, r25783, r25791, r25792, MPFR_RNDN);
        mpfr_div(r25794, r25785, r25793, MPFR_RNDN);
        mpfr_div(r25795, r25790, r25794, MPFR_RNDN);
        mpfr_div(r25796, r25782, r25795, MPFR_RNDN);
        ;
        mpfr_set_si(r25798, mpfr_cmp(r25779, r25797) <= 0, MPFR_RNDN);
        mpfr_mul(r25799, r25779, r25783, MPFR_RNDN);
        mpfr_div(r25800, r25799, r25785, MPFR_RNDN);
        mpfr_mul(r25801, r25779, r25800, MPFR_RNDN);
        mpfr_mul(r25802, r25784, r25801, MPFR_RNDN);
        ;
        mpfr_pow(r25804, r25791, r25782, MPFR_RNDN);
        mpfr_add(r25805, r25804, r25803, MPFR_RNDN);
        mpfr_add(r25806, r25803, r25805, MPFR_RNDN);
        mpfr_mul(r25807, r25802, r25806, MPFR_RNDN);
        mpfr_div(r25808, r25785, r25779, MPFR_RNDN);
        mpfr_div(r25809, r25807, r25808, MPFR_RNDN);
        mpfr_div(r25810, r25782, r25809, MPFR_RNDN);
        mpfr_cbrt(r25811, r25786, MPFR_RNDN);
        mpfr_mul(r25812, r25811, r25787, MPFR_RNDN);
        mpfr_mul(r25813, r25811, r25811, MPFR_RNDN);
        mpfr_mul(r25814, r25812, r25813, MPFR_RNDN);
        mpfr_mul(r25815, r25814, r25779, MPFR_RNDN);
        mpfr_mul(r25816, r25815, r25784, MPFR_RNDN);
        mpfr_mul(r25817, r25806, r25816, MPFR_RNDN);
        mpfr_div(r25818, r25817, r25808, MPFR_RNDN);
        mpfr_div(r25819, r25782, r25818, MPFR_RNDN);
        if (mpfr_get_si(r25798, MPFR_RNDN)) { mpfr_set(r25820, r25810, MPFR_RNDN); } else { mpfr_set(r25820, r25819, MPFR_RNDN); };
        if (mpfr_get_si(r25781, MPFR_RNDN)) { mpfr_set(r25821, r25796, MPFR_RNDN); } else { mpfr_set(r25821, r25820, MPFR_RNDN); };
        return mpfr_get_d(r25821, MPFR_RNDN);
}

