#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 r30462797 = 2;
        float r30462798 = t;
        float r30462799 = 3;
        float r30462800 = pow(r30462798, r30462799);
        float r30462801 = l;
        float r30462802 = r30462801 * r30462801;
        float r30462803 = r30462800 / r30462802;
        float r30462804 = k;
        float r30462805 = sin(r30462804);
        float r30462806 = r30462803 * r30462805;
        float r30462807 = tan(r30462804);
        float r30462808 = r30462806 * r30462807;
        float r30462809 = 1;
        float r30462810 = r30462804 / r30462798;
        float r30462811 = pow(r30462810, r30462797);
        float r30462812 = r30462809 + r30462811;
        float r30462813 = r30462812 - r30462809;
        float r30462814 = r30462808 * r30462813;
        float r30462815 = r30462797 / r30462814;
        return r30462815;
}

double f_id(double t, double l, double k) {
        double r30462816 = 2;
        double r30462817 = t;
        double r30462818 = 3;
        double r30462819 = pow(r30462817, r30462818);
        double r30462820 = l;
        double r30462821 = r30462820 * r30462820;
        double r30462822 = r30462819 / r30462821;
        double r30462823 = k;
        double r30462824 = sin(r30462823);
        double r30462825 = r30462822 * r30462824;
        double r30462826 = tan(r30462823);
        double r30462827 = r30462825 * r30462826;
        double r30462828 = 1;
        double r30462829 = r30462823 / r30462817;
        double r30462830 = pow(r30462829, r30462816);
        double r30462831 = r30462828 + r30462830;
        double r30462832 = r30462831 - r30462828;
        double r30462833 = r30462827 * r30462832;
        double r30462834 = r30462816 / r30462833;
        return r30462834;
}


double f_of(float t, float l, float k) {
        float r30462835 = 2;
        float r30462836 = k;
        float r30462837 = sin(r30462836);
        float r30462838 = r30462835 / r30462837;
        float r30462839 = cbrt(r30462838);
        float r30462840 = r30462839 * r30462839;
        float r30462841 = tan(r30462836);
        float r30462842 = cbrt(r30462841);
        float r30462843 = r30462842 * r30462842;
        float r30462844 = l;
        float r30462845 = r30462844 / r30462836;
        float r30462846 = cbrt(r30462845);
        float r30462847 = r30462846 * r30462846;
        float r30462848 = r30462843 / r30462847;
        float r30462849 = 1;
        float r30462850 = r30462848 / r30462849;
        float r30462851 = r30462840 / r30462850;
        float r30462852 = t;
        float r30462853 = r30462842 / r30462846;
        float r30462854 = r30462853 / r30462845;
        float r30462855 = r30462839 / r30462854;
        float r30462856 = r30462852 / r30462855;
        float r30462857 = r30462851 / r30462856;
        return r30462857;
}

double f_od(double t, double l, double k) {
        double r30462858 = 2;
        double r30462859 = k;
        double r30462860 = sin(r30462859);
        double r30462861 = r30462858 / r30462860;
        double r30462862 = cbrt(r30462861);
        double r30462863 = r30462862 * r30462862;
        double r30462864 = tan(r30462859);
        double r30462865 = cbrt(r30462864);
        double r30462866 = r30462865 * r30462865;
        double r30462867 = l;
        double r30462868 = r30462867 / r30462859;
        double r30462869 = cbrt(r30462868);
        double r30462870 = r30462869 * r30462869;
        double r30462871 = r30462866 / r30462870;
        double r30462872 = 1;
        double r30462873 = r30462871 / r30462872;
        double r30462874 = r30462863 / r30462873;
        double r30462875 = t;
        double r30462876 = r30462865 / r30462869;
        double r30462877 = r30462876 / r30462868;
        double r30462878 = r30462862 / r30462877;
        double r30462879 = r30462875 / r30462878;
        double r30462880 = r30462874 / r30462879;
        return r30462880;
}

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 r30462881, r30462882, r30462883, r30462884, r30462885, r30462886, r30462887, r30462888, r30462889, r30462890, r30462891, r30462892, r30462893, r30462894, r30462895, r30462896, r30462897, r30462898, r30462899;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(4240);
        mpfr_init_set_str(r30462881, "2", 10, MPFR_RNDN);
        mpfr_init(r30462882);
        mpfr_init_set_str(r30462883, "3", 10, MPFR_RNDN);
        mpfr_init(r30462884);
        mpfr_init(r30462885);
        mpfr_init(r30462886);
        mpfr_init(r30462887);
        mpfr_init(r30462888);
        mpfr_init(r30462889);
        mpfr_init(r30462890);
        mpfr_init(r30462891);
        mpfr_init(r30462892);
        mpfr_init_set_str(r30462893, "1", 10, MPFR_RNDN);
        mpfr_init(r30462894);
        mpfr_init(r30462895);
        mpfr_init(r30462896);
        mpfr_init(r30462897);
        mpfr_init(r30462898);
        mpfr_init(r30462899);
}

double f_im(double t, double l, double k) {
        ;
        mpfr_set_d(r30462882, t, MPFR_RNDN);
        ;
        mpfr_pow(r30462884, r30462882, r30462883, MPFR_RNDN);
        mpfr_set_d(r30462885, l, MPFR_RNDN);
        mpfr_mul(r30462886, r30462885, r30462885, MPFR_RNDN);
        mpfr_div(r30462887, r30462884, r30462886, MPFR_RNDN);
        mpfr_set_d(r30462888, k, MPFR_RNDN);
        mpfr_sin(r30462889, r30462888, MPFR_RNDN);
        mpfr_mul(r30462890, r30462887, r30462889, MPFR_RNDN);
        mpfr_tan(r30462891, r30462888, MPFR_RNDN);
        mpfr_mul(r30462892, r30462890, r30462891, MPFR_RNDN);
        ;
        mpfr_div(r30462894, r30462888, r30462882, MPFR_RNDN);
        mpfr_pow(r30462895, r30462894, r30462881, MPFR_RNDN);
        mpfr_add(r30462896, r30462893, r30462895, MPFR_RNDN);
        mpfr_sub(r30462897, r30462896, r30462893, MPFR_RNDN);
        mpfr_mul(r30462898, r30462892, r30462897, MPFR_RNDN);
        mpfr_div(r30462899, r30462881, r30462898, MPFR_RNDN);
        return mpfr_get_d(r30462899, MPFR_RNDN);
}

static mpfr_t r30462900, r30462901, r30462902, r30462903, r30462904, r30462905, r30462906, r30462907, r30462908, r30462909, r30462910, r30462911, r30462912, r30462913, r30462914, r30462915, r30462916, r30462917, r30462918, r30462919, r30462920, r30462921, r30462922;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(4240);
        mpfr_init_set_str(r30462900, "2", 10, MPFR_RNDN);
        mpfr_init(r30462901);
        mpfr_init(r30462902);
        mpfr_init(r30462903);
        mpfr_init(r30462904);
        mpfr_init(r30462905);
        mpfr_init(r30462906);
        mpfr_init(r30462907);
        mpfr_init(r30462908);
        mpfr_init(r30462909);
        mpfr_init(r30462910);
        mpfr_init(r30462911);
        mpfr_init(r30462912);
        mpfr_init(r30462913);
        mpfr_init_set_str(r30462914, "1", 10, MPFR_RNDN);
        mpfr_init(r30462915);
        mpfr_init(r30462916);
        mpfr_init(r30462917);
        mpfr_init(r30462918);
        mpfr_init(r30462919);
        mpfr_init(r30462920);
        mpfr_init(r30462921);
        mpfr_init(r30462922);
}

double f_fm(double t, double l, double k) {
        ;
        mpfr_set_d(r30462901, k, MPFR_RNDN);
        mpfr_sin(r30462902, r30462901, MPFR_RNDN);
        mpfr_div(r30462903, r30462900, r30462902, MPFR_RNDN);
        mpfr_cbrt(r30462904, r30462903, MPFR_RNDN);
        mpfr_mul(r30462905, r30462904, r30462904, MPFR_RNDN);
        mpfr_tan(r30462906, r30462901, MPFR_RNDN);
        mpfr_cbrt(r30462907, r30462906, MPFR_RNDN);
        mpfr_mul(r30462908, r30462907, r30462907, MPFR_RNDN);
        mpfr_set_d(r30462909, l, MPFR_RNDN);
        mpfr_div(r30462910, r30462909, r30462901, MPFR_RNDN);
        mpfr_cbrt(r30462911, r30462910, MPFR_RNDN);
        mpfr_mul(r30462912, r30462911, r30462911, MPFR_RNDN);
        mpfr_div(r30462913, r30462908, r30462912, MPFR_RNDN);
        ;
        mpfr_div(r30462915, r30462913, r30462914, MPFR_RNDN);
        mpfr_div(r30462916, r30462905, r30462915, MPFR_RNDN);
        mpfr_set_d(r30462917, t, MPFR_RNDN);
        mpfr_div(r30462918, r30462907, r30462911, MPFR_RNDN);
        mpfr_div(r30462919, r30462918, r30462910, MPFR_RNDN);
        mpfr_div(r30462920, r30462904, r30462919, MPFR_RNDN);
        mpfr_div(r30462921, r30462917, r30462920, MPFR_RNDN);
        mpfr_div(r30462922, r30462916, r30462921, MPFR_RNDN);
        return mpfr_get_d(r30462922, MPFR_RNDN);
}

static mpfr_t r30462923, r30462924, r30462925, r30462926, r30462927, r30462928, r30462929, r30462930, r30462931, r30462932, r30462933, r30462934, r30462935, r30462936, r30462937, r30462938, r30462939, r30462940, r30462941, r30462942, r30462943, r30462944, r30462945;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(4240);
        mpfr_init_set_str(r30462923, "2", 10, MPFR_RNDN);
        mpfr_init(r30462924);
        mpfr_init(r30462925);
        mpfr_init(r30462926);
        mpfr_init(r30462927);
        mpfr_init(r30462928);
        mpfr_init(r30462929);
        mpfr_init(r30462930);
        mpfr_init(r30462931);
        mpfr_init(r30462932);
        mpfr_init(r30462933);
        mpfr_init(r30462934);
        mpfr_init(r30462935);
        mpfr_init(r30462936);
        mpfr_init_set_str(r30462937, "1", 10, MPFR_RNDN);
        mpfr_init(r30462938);
        mpfr_init(r30462939);
        mpfr_init(r30462940);
        mpfr_init(r30462941);
        mpfr_init(r30462942);
        mpfr_init(r30462943);
        mpfr_init(r30462944);
        mpfr_init(r30462945);
}

double f_dm(double t, double l, double k) {
        ;
        mpfr_set_d(r30462924, k, MPFR_RNDN);
        mpfr_sin(r30462925, r30462924, MPFR_RNDN);
        mpfr_div(r30462926, r30462923, r30462925, MPFR_RNDN);
        mpfr_cbrt(r30462927, r30462926, MPFR_RNDN);
        mpfr_mul(r30462928, r30462927, r30462927, MPFR_RNDN);
        mpfr_tan(r30462929, r30462924, MPFR_RNDN);
        mpfr_cbrt(r30462930, r30462929, MPFR_RNDN);
        mpfr_mul(r30462931, r30462930, r30462930, MPFR_RNDN);
        mpfr_set_d(r30462932, l, MPFR_RNDN);
        mpfr_div(r30462933, r30462932, r30462924, MPFR_RNDN);
        mpfr_cbrt(r30462934, r30462933, MPFR_RNDN);
        mpfr_mul(r30462935, r30462934, r30462934, MPFR_RNDN);
        mpfr_div(r30462936, r30462931, r30462935, MPFR_RNDN);
        ;
        mpfr_div(r30462938, r30462936, r30462937, MPFR_RNDN);
        mpfr_div(r30462939, r30462928, r30462938, MPFR_RNDN);
        mpfr_set_d(r30462940, t, MPFR_RNDN);
        mpfr_div(r30462941, r30462930, r30462934, MPFR_RNDN);
        mpfr_div(r30462942, r30462941, r30462933, MPFR_RNDN);
        mpfr_div(r30462943, r30462927, r30462942, MPFR_RNDN);
        mpfr_div(r30462944, r30462940, r30462943, MPFR_RNDN);
        mpfr_div(r30462945, r30462939, r30462944, MPFR_RNDN);
        return mpfr_get_d(r30462945, MPFR_RNDN);
}

