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

char *name = "Logistic function from Lakshay Garg";

double f_if(float x, float __attribute__((unused)) y) {
        float r8839 = 2;
        float r8840 = 1;
        float r8841 = -2;
        float r8842 = x;
        float r8843 = r8841 * r8842;
        float r8844 = exp(r8843);
        float r8845 = r8840 + r8844;
        float r8846 = r8839 / r8845;
        float r8847 = r8846 - r8840;
        return r8847;
}

double f_id(double x, double __attribute__((unused)) y) {
        double r8848 = 2;
        double r8849 = 1;
        double r8850 = -2;
        double r8851 = x;
        double r8852 = r8850 * r8851;
        double r8853 = exp(r8852);
        double r8854 = r8849 + r8853;
        double r8855 = r8848 / r8854;
        double r8856 = r8855 - r8849;
        return r8856;
}


double f_of(float x, float __attribute__((unused)) y) {
        float r8857 = 2;
        float r8858 = 1;
        float r8859 = -2;
        float r8860 = x;
        float r8861 = r8859 * r8860;
        float r8862 = exp(r8861);
        float r8863 = r8858 + r8862;
        float r8864 = r8857 / r8863;
        float r8865 = r8864 - r8858;
        float r8866 = -1.2592515247767267e-05;
        bool r8867 = r8865 <= r8866;
        float r8868 = 3;
        float r8869 = pow(r8865, r8868);
        float r8870 = cbrt(r8869);
        float r8871 = 4.372124356457306e-08;
        bool r8872 = r8865 <= r8871;
        float r8873 = 2/15;
        float r8874 = 5;
        float r8875 = pow(r8860, r8874);
        float r8876 = r8873 * r8875;
        float r8877 = r8860 + r8876;
        float r8878 = 1/3;
        float r8879 = pow(r8860, r8868);
        float r8880 = r8878 * r8879;
        float r8881 = r8877 - r8880;
        float r8882 = r8872 ? r8881 : r8870;
        float r8883 = r8867 ? r8870 : r8882;
        return r8883;
}

double f_od(double x, double __attribute__((unused)) y) {
        double r8884 = 2;
        double r8885 = 1;
        double r8886 = -2;
        double r8887 = x;
        double r8888 = r8886 * r8887;
        double r8889 = exp(r8888);
        double r8890 = r8885 + r8889;
        double r8891 = r8884 / r8890;
        double r8892 = r8891 - r8885;
        double r8893 = -1.2592515247767267e-05;
        bool r8894 = r8892 <= r8893;
        double r8895 = 3;
        double r8896 = pow(r8892, r8895);
        double r8897 = cbrt(r8896);
        double r8898 = 4.372124356457306e-08;
        bool r8899 = r8892 <= r8898;
        double r8900 = 2/15;
        double r8901 = 5;
        double r8902 = pow(r8887, r8901);
        double r8903 = r8900 * r8902;
        double r8904 = r8887 + r8903;
        double r8905 = 1/3;
        double r8906 = pow(r8887, r8895);
        double r8907 = r8905 * r8906;
        double r8908 = r8904 - r8907;
        double r8909 = r8899 ? r8908 : r8897;
        double r8910 = r8894 ? r8897 : r8909;
        return r8910;
}

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 r8911, r8912, r8913, r8914, r8915, r8916, r8917, r8918, r8919;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r8911, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r8912, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8913, "-2", 10, MPFR_RNDN);
        mpfr_init(r8914);
        mpfr_init(r8915);
        mpfr_init(r8916);
        mpfr_init(r8917);
        mpfr_init(r8918);
        mpfr_init(r8919);
}

double f_im(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r8914, x, MPFR_RNDN);
        mpfr_mul(r8915, r8913, r8914, MPFR_RNDN);
        mpfr_exp(r8916, r8915, MPFR_RNDN);
        mpfr_add(r8917, r8912, r8916, MPFR_RNDN);
        mpfr_div(r8918, r8911, r8917, MPFR_RNDN);
        mpfr_sub(r8919, r8918, r8912, MPFR_RNDN);
        return mpfr_get_d(r8919, MPFR_RNDN);
}

static mpfr_t r8920, r8921, r8922, r8923, r8924, r8925, r8926, r8927, r8928, r8929, r8930, r8931, r8932, r8933, r8934, r8935, r8936, r8937, r8938, r8939, r8940, r8941, r8942, r8943, r8944, r8945, r8946;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r8920, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r8921, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8922, "-2", 10, MPFR_RNDN);
        mpfr_init(r8923);
        mpfr_init(r8924);
        mpfr_init(r8925);
        mpfr_init(r8926);
        mpfr_init(r8927);
        mpfr_init(r8928);
        mpfr_init_set_str(r8929, "-1.2592515247767267e-05", 10, MPFR_RNDN);
        mpfr_init(r8930);
        mpfr_init_set_str(r8931, "3", 10, MPFR_RNDN);
        mpfr_init(r8932);
        mpfr_init(r8933);
        mpfr_init_set_str(r8934, "4.372124356457306e-08", 10, MPFR_RNDN);
        mpfr_init(r8935);
        mpfr_init_set_str(r8936, "2/15", 10, MPFR_RNDN);
        mpfr_init_set_str(r8937, "5", 10, MPFR_RNDN);
        mpfr_init(r8938);
        mpfr_init(r8939);
        mpfr_init(r8940);
        mpfr_init_set_str(r8941, "1/3", 10, MPFR_RNDN);
        mpfr_init(r8942);
        mpfr_init(r8943);
        mpfr_init(r8944);
        mpfr_init(r8945);
        mpfr_init(r8946);
}

double f_fm(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r8923, x, MPFR_RNDN);
        mpfr_mul(r8924, r8922, r8923, MPFR_RNDN);
        mpfr_exp(r8925, r8924, MPFR_RNDN);
        mpfr_add(r8926, r8921, r8925, MPFR_RNDN);
        mpfr_div(r8927, r8920, r8926, MPFR_RNDN);
        mpfr_sub(r8928, r8927, r8921, MPFR_RNDN);
        ;
        mpfr_set_si(r8930, mpfr_cmp(r8928, r8929) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r8932, r8928, r8931, MPFR_RNDN);
        mpfr_cbrt(r8933, r8932, MPFR_RNDN);
        ;
        mpfr_set_si(r8935, mpfr_cmp(r8928, r8934) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r8938, r8923, r8937, MPFR_RNDN);
        mpfr_mul(r8939, r8936, r8938, MPFR_RNDN);
        mpfr_add(r8940, r8923, r8939, MPFR_RNDN);
        ;
        mpfr_pow(r8942, r8923, r8931, MPFR_RNDN);
        mpfr_mul(r8943, r8941, r8942, MPFR_RNDN);
        mpfr_sub(r8944, r8940, r8943, MPFR_RNDN);
        if (mpfr_get_si(r8935, MPFR_RNDN)) { mpfr_set(r8945, r8944, MPFR_RNDN); } else { mpfr_set(r8945, r8933, MPFR_RNDN); };
        if (mpfr_get_si(r8930, MPFR_RNDN)) { mpfr_set(r8946, r8933, MPFR_RNDN); } else { mpfr_set(r8946, r8945, MPFR_RNDN); };
        return mpfr_get_d(r8946, MPFR_RNDN);
}

static mpfr_t r8947, r8948, r8949, r8950, r8951, r8952, r8953, r8954, r8955, r8956, r8957, r8958, r8959, r8960, r8961, r8962, r8963, r8964, r8965, r8966, r8967, r8968, r8969, r8970, r8971, r8972, r8973;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1360);
        mpfr_init_set_str(r8947, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r8948, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r8949, "-2", 10, MPFR_RNDN);
        mpfr_init(r8950);
        mpfr_init(r8951);
        mpfr_init(r8952);
        mpfr_init(r8953);
        mpfr_init(r8954);
        mpfr_init(r8955);
        mpfr_init_set_str(r8956, "-1.2592515247767267e-05", 10, MPFR_RNDN);
        mpfr_init(r8957);
        mpfr_init_set_str(r8958, "3", 10, MPFR_RNDN);
        mpfr_init(r8959);
        mpfr_init(r8960);
        mpfr_init_set_str(r8961, "4.372124356457306e-08", 10, MPFR_RNDN);
        mpfr_init(r8962);
        mpfr_init_set_str(r8963, "2/15", 10, MPFR_RNDN);
        mpfr_init_set_str(r8964, "5", 10, MPFR_RNDN);
        mpfr_init(r8965);
        mpfr_init(r8966);
        mpfr_init(r8967);
        mpfr_init_set_str(r8968, "1/3", 10, MPFR_RNDN);
        mpfr_init(r8969);
        mpfr_init(r8970);
        mpfr_init(r8971);
        mpfr_init(r8972);
        mpfr_init(r8973);
}

double f_dm(double x, double __attribute__((unused)) y) {
        ;
        ;
        ;
        mpfr_set_d(r8950, x, MPFR_RNDN);
        mpfr_mul(r8951, r8949, r8950, MPFR_RNDN);
        mpfr_exp(r8952, r8951, MPFR_RNDN);
        mpfr_add(r8953, r8948, r8952, MPFR_RNDN);
        mpfr_div(r8954, r8947, r8953, MPFR_RNDN);
        mpfr_sub(r8955, r8954, r8948, MPFR_RNDN);
        ;
        mpfr_set_si(r8957, mpfr_cmp(r8955, r8956) <= 0, MPFR_RNDN);
        ;
        mpfr_pow(r8959, r8955, r8958, MPFR_RNDN);
        mpfr_cbrt(r8960, r8959, MPFR_RNDN);
        ;
        mpfr_set_si(r8962, mpfr_cmp(r8955, r8961) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r8965, r8950, r8964, MPFR_RNDN);
        mpfr_mul(r8966, r8963, r8965, MPFR_RNDN);
        mpfr_add(r8967, r8950, r8966, MPFR_RNDN);
        ;
        mpfr_pow(r8969, r8950, r8958, MPFR_RNDN);
        mpfr_mul(r8970, r8968, r8969, MPFR_RNDN);
        mpfr_sub(r8971, r8967, r8970, MPFR_RNDN);
        if (mpfr_get_si(r8962, MPFR_RNDN)) { mpfr_set(r8972, r8971, MPFR_RNDN); } else { mpfr_set(r8972, r8960, MPFR_RNDN); };
        if (mpfr_get_si(r8957, MPFR_RNDN)) { mpfr_set(r8973, r8960, MPFR_RNDN); } else { mpfr_set(r8973, r8972, MPFR_RNDN); };
        return mpfr_get_d(r8973, MPFR_RNDN);
}

