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

char *name = "Linear.Matrix:det33 from linear-1.19.1.3";

double f_if(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26725 = x;
        float r26726 = y;
        float r26727 = z;
        float r26728 = r26726 * r26727;
        float r26729 = t;
        float r26730 = a;
        float r26731 = r26729 * r26730;
        float r26732 = r26728 - r26731;
        float r26733 = r26725 * r26732;
        float r26734 = b;
        float r26735 = c;
        float r26736 = r26735 * r26727;
        float r26737 = i;
        float r26738 = r26737 * r26730;
        float r26739 = r26736 - r26738;
        float r26740 = r26734 * r26739;
        float r26741 = r26733 - r26740;
        float r26742 = j;
        float r26743 = r26735 * r26729;
        float r26744 = r26737 * r26726;
        float r26745 = r26743 - r26744;
        float r26746 = r26742 * r26745;
        float r26747 = r26741 + r26746;
        return r26747;
}

double f_id(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26748 = x;
        double r26749 = y;
        double r26750 = z;
        double r26751 = r26749 * r26750;
        double r26752 = t;
        double r26753 = a;
        double r26754 = r26752 * r26753;
        double r26755 = r26751 - r26754;
        double r26756 = r26748 * r26755;
        double r26757 = b;
        double r26758 = c;
        double r26759 = r26758 * r26750;
        double r26760 = i;
        double r26761 = r26760 * r26753;
        double r26762 = r26759 - r26761;
        double r26763 = r26757 * r26762;
        double r26764 = r26756 - r26763;
        double r26765 = j;
        double r26766 = r26758 * r26752;
        double r26767 = r26760 * r26749;
        double r26768 = r26766 - r26767;
        double r26769 = r26765 * r26768;
        double r26770 = r26764 + r26769;
        return r26770;
}


double f_of(float x, float y, float z, float t, float a, float b, float c, float i, float j) {
        float r26771 = x;
        float r26772 = -1.344918162431745e-156;
        bool r26773 = r26771 <= r26772;
        float r26774 = 7.828902782132837e-97;
        bool r26775 = r26771 <= r26774;
        float r26776 = !r26775;
        bool r26777 = r26773 || r26776;
        float r26778 = z;
        float r26779 = y;
        float r26780 = r26778 * r26779;
        float r26781 = t;
        float r26782 = a;
        float r26783 = r26781 * r26782;
        float r26784 = r26780 - r26783;
        float r26785 = j;
        float r26786 = c;
        float r26787 = r26781 * r26786;
        float r26788 = i;
        float r26789 = r26779 * r26788;
        float r26790 = r26787 - r26789;
        float r26791 = r26785 * r26790;
        float r26792 = fma(r26784, r26771, r26791);
        float r26793 = r26778 * r26786;
        float r26794 = r26788 * r26782;
        float r26795 = r26793 - r26794;
        float r26796 = cbrt(r26795);
        float r26797 = r26796 * r26796;
        float r26798 = b;
        float r26799 = r26796 * r26798;
        float r26800 = r26797 * r26799;
        float r26801 = r26792 - r26800;
        float r26802 = r26781 * r26771;
        float r26803 = r26802 * r26782;
        float r26804 = fma(r26798, r26795, r26803);
        float r26805 = r26791 - r26804;
        float r26806 = r26777 ? r26801 : r26805;
        return r26806;
}

double f_od(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26807 = x;
        double r26808 = -1.344918162431745e-156;
        bool r26809 = r26807 <= r26808;
        double r26810 = 7.828902782132837e-97;
        bool r26811 = r26807 <= r26810;
        double r26812 = !r26811;
        bool r26813 = r26809 || r26812;
        double r26814 = z;
        double r26815 = y;
        double r26816 = r26814 * r26815;
        double r26817 = t;
        double r26818 = a;
        double r26819 = r26817 * r26818;
        double r26820 = r26816 - r26819;
        double r26821 = j;
        double r26822 = c;
        double r26823 = r26817 * r26822;
        double r26824 = i;
        double r26825 = r26815 * r26824;
        double r26826 = r26823 - r26825;
        double r26827 = r26821 * r26826;
        double r26828 = fma(r26820, r26807, r26827);
        double r26829 = r26814 * r26822;
        double r26830 = r26824 * r26818;
        double r26831 = r26829 - r26830;
        double r26832 = cbrt(r26831);
        double r26833 = r26832 * r26832;
        double r26834 = b;
        double r26835 = r26832 * r26834;
        double r26836 = r26833 * r26835;
        double r26837 = r26828 - r26836;
        double r26838 = r26817 * r26807;
        double r26839 = r26838 * r26818;
        double r26840 = fma(r26834, r26831, r26839);
        double r26841 = r26827 - r26840;
        double r26842 = r26813 ? r26837 : r26841;
        return r26842;
}

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 r26843, r26844, r26845, r26846, r26847, r26848, r26849, r26850, r26851, r26852, r26853, r26854, r26855, r26856, r26857, r26858, r26859, r26860, r26861, r26862, r26863, r26864, r26865;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26843);
        mpfr_init(r26844);
        mpfr_init(r26845);
        mpfr_init(r26846);
        mpfr_init(r26847);
        mpfr_init(r26848);
        mpfr_init(r26849);
        mpfr_init(r26850);
        mpfr_init(r26851);
        mpfr_init(r26852);
        mpfr_init(r26853);
        mpfr_init(r26854);
        mpfr_init(r26855);
        mpfr_init(r26856);
        mpfr_init(r26857);
        mpfr_init(r26858);
        mpfr_init(r26859);
        mpfr_init(r26860);
        mpfr_init(r26861);
        mpfr_init(r26862);
        mpfr_init(r26863);
        mpfr_init(r26864);
        mpfr_init(r26865);
}

double f_im(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26843, x, MPFR_RNDN);
        mpfr_set_d(r26844, y, MPFR_RNDN);
        mpfr_set_d(r26845, z, MPFR_RNDN);
        mpfr_mul(r26846, r26844, r26845, MPFR_RNDN);
        mpfr_set_d(r26847, t, MPFR_RNDN);
        mpfr_set_d(r26848, a, MPFR_RNDN);
        mpfr_mul(r26849, r26847, r26848, MPFR_RNDN);
        mpfr_sub(r26850, r26846, r26849, MPFR_RNDN);
        mpfr_mul(r26851, r26843, r26850, MPFR_RNDN);
        mpfr_set_d(r26852, b, MPFR_RNDN);
        mpfr_set_d(r26853, c, MPFR_RNDN);
        mpfr_mul(r26854, r26853, r26845, MPFR_RNDN);
        mpfr_set_d(r26855, i, MPFR_RNDN);
        mpfr_mul(r26856, r26855, r26848, MPFR_RNDN);
        mpfr_sub(r26857, r26854, r26856, MPFR_RNDN);
        mpfr_mul(r26858, r26852, r26857, MPFR_RNDN);
        mpfr_sub(r26859, r26851, r26858, MPFR_RNDN);
        mpfr_set_d(r26860, j, MPFR_RNDN);
        mpfr_mul(r26861, r26853, r26847, MPFR_RNDN);
        mpfr_mul(r26862, r26855, r26844, MPFR_RNDN);
        mpfr_sub(r26863, r26861, r26862, MPFR_RNDN);
        mpfr_mul(r26864, r26860, r26863, MPFR_RNDN);
        mpfr_add(r26865, r26859, r26864, MPFR_RNDN);
        return mpfr_get_d(r26865, MPFR_RNDN);
}

static mpfr_t r26866, r26867, r26868, r26869, r26870, r26871, r26872, r26873, r26874, r26875, r26876, r26877, r26878, r26879, r26880, r26881, r26882, r26883, r26884, r26885, r26886, r26887, r26888, r26889, r26890, r26891, r26892, r26893, r26894, r26895, r26896, r26897, r26898, r26899, r26900, r26901;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26866);
        mpfr_init_set_str(r26867, "-1.344918162431745e-156", 10, MPFR_RNDN);
        mpfr_init(r26868);
        mpfr_init_set_str(r26869, "7.828902782132837e-97", 10, MPFR_RNDN);
        mpfr_init(r26870);
        mpfr_init(r26871);
        mpfr_init(r26872);
        mpfr_init(r26873);
        mpfr_init(r26874);
        mpfr_init(r26875);
        mpfr_init(r26876);
        mpfr_init(r26877);
        mpfr_init(r26878);
        mpfr_init(r26879);
        mpfr_init(r26880);
        mpfr_init(r26881);
        mpfr_init(r26882);
        mpfr_init(r26883);
        mpfr_init(r26884);
        mpfr_init(r26885);
        mpfr_init(r26886);
        mpfr_init(r26887);
        mpfr_init(r26888);
        mpfr_init(r26889);
        mpfr_init(r26890);
        mpfr_init(r26891);
        mpfr_init(r26892);
        mpfr_init(r26893);
        mpfr_init(r26894);
        mpfr_init(r26895);
        mpfr_init(r26896);
        mpfr_init(r26897);
        mpfr_init(r26898);
        mpfr_init(r26899);
        mpfr_init(r26900);
        mpfr_init(r26901);
}

double f_fm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26866, x, MPFR_RNDN);
        ;
        mpfr_set_si(r26868, mpfr_cmp(r26866, r26867) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26870, mpfr_cmp(r26866, r26869) <= 0, MPFR_RNDN);
        mpfr_set_si(r26871, !mpfr_get_si(r26870, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r26872, mpfr_get_si(r26868, MPFR_RNDN) || mpfr_get_si(r26871, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r26873, z, MPFR_RNDN);
        mpfr_set_d(r26874, y, MPFR_RNDN);
        mpfr_mul(r26875, r26873, r26874, MPFR_RNDN);
        mpfr_set_d(r26876, t, MPFR_RNDN);
        mpfr_set_d(r26877, a, MPFR_RNDN);
        mpfr_mul(r26878, r26876, r26877, MPFR_RNDN);
        mpfr_sub(r26879, r26875, r26878, MPFR_RNDN);
        mpfr_set_d(r26880, j, MPFR_RNDN);
        mpfr_set_d(r26881, c, MPFR_RNDN);
        mpfr_mul(r26882, r26876, r26881, MPFR_RNDN);
        mpfr_set_d(r26883, i, MPFR_RNDN);
        mpfr_mul(r26884, r26874, r26883, MPFR_RNDN);
        mpfr_sub(r26885, r26882, r26884, MPFR_RNDN);
        mpfr_mul(r26886, r26880, r26885, MPFR_RNDN);
        mpfr_fma(r26887, r26879, r26866, r26886, MPFR_RNDN);
        mpfr_mul(r26888, r26873, r26881, MPFR_RNDN);
        mpfr_mul(r26889, r26883, r26877, MPFR_RNDN);
        mpfr_sub(r26890, r26888, r26889, MPFR_RNDN);
        mpfr_cbrt(r26891, r26890, MPFR_RNDN);
        mpfr_mul(r26892, r26891, r26891, MPFR_RNDN);
        mpfr_set_d(r26893, b, MPFR_RNDN);
        mpfr_mul(r26894, r26891, r26893, MPFR_RNDN);
        mpfr_mul(r26895, r26892, r26894, MPFR_RNDN);
        mpfr_sub(r26896, r26887, r26895, MPFR_RNDN);
        mpfr_mul(r26897, r26876, r26866, MPFR_RNDN);
        mpfr_mul(r26898, r26897, r26877, MPFR_RNDN);
        mpfr_fma(r26899, r26893, r26890, r26898, MPFR_RNDN);
        mpfr_sub(r26900, r26886, r26899, MPFR_RNDN);
        if (mpfr_get_si(r26872, MPFR_RNDN)) { mpfr_set(r26901, r26896, MPFR_RNDN); } else { mpfr_set(r26901, r26900, MPFR_RNDN); };
        return mpfr_get_d(r26901, MPFR_RNDN);
}

static mpfr_t r26902, r26903, r26904, r26905, r26906, r26907, r26908, r26909, r26910, r26911, r26912, r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926, r26927, r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26902);
        mpfr_init_set_str(r26903, "-1.344918162431745e-156", 10, MPFR_RNDN);
        mpfr_init(r26904);
        mpfr_init_set_str(r26905, "7.828902782132837e-97", 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);
        mpfr_init(r26923);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
        mpfr_init(r26928);
        mpfr_init(r26929);
        mpfr_init(r26930);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
}

double f_dm(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        mpfr_set_d(r26902, x, MPFR_RNDN);
        ;
        mpfr_set_si(r26904, mpfr_cmp(r26902, r26903) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26906, mpfr_cmp(r26902, r26905) <= 0, MPFR_RNDN);
        mpfr_set_si(r26907, !mpfr_get_si(r26906, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r26908, mpfr_get_si(r26904, MPFR_RNDN) || mpfr_get_si(r26907, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_d(r26909, z, MPFR_RNDN);
        mpfr_set_d(r26910, y, MPFR_RNDN);
        mpfr_mul(r26911, r26909, r26910, MPFR_RNDN);
        mpfr_set_d(r26912, t, MPFR_RNDN);
        mpfr_set_d(r26913, a, MPFR_RNDN);
        mpfr_mul(r26914, r26912, r26913, MPFR_RNDN);
        mpfr_sub(r26915, r26911, r26914, MPFR_RNDN);
        mpfr_set_d(r26916, j, MPFR_RNDN);
        mpfr_set_d(r26917, c, MPFR_RNDN);
        mpfr_mul(r26918, r26912, r26917, MPFR_RNDN);
        mpfr_set_d(r26919, i, MPFR_RNDN);
        mpfr_mul(r26920, r26910, r26919, MPFR_RNDN);
        mpfr_sub(r26921, r26918, r26920, MPFR_RNDN);
        mpfr_mul(r26922, r26916, r26921, MPFR_RNDN);
        mpfr_fma(r26923, r26915, r26902, r26922, MPFR_RNDN);
        mpfr_mul(r26924, r26909, r26917, MPFR_RNDN);
        mpfr_mul(r26925, r26919, r26913, MPFR_RNDN);
        mpfr_sub(r26926, r26924, r26925, MPFR_RNDN);
        mpfr_cbrt(r26927, r26926, MPFR_RNDN);
        mpfr_mul(r26928, r26927, r26927, MPFR_RNDN);
        mpfr_set_d(r26929, b, MPFR_RNDN);
        mpfr_mul(r26930, r26927, r26929, MPFR_RNDN);
        mpfr_mul(r26931, r26928, r26930, MPFR_RNDN);
        mpfr_sub(r26932, r26923, r26931, MPFR_RNDN);
        mpfr_mul(r26933, r26912, r26902, MPFR_RNDN);
        mpfr_mul(r26934, r26933, r26913, MPFR_RNDN);
        mpfr_fma(r26935, r26929, r26926, r26934, MPFR_RNDN);
        mpfr_sub(r26936, r26922, r26935, MPFR_RNDN);
        if (mpfr_get_si(r26908, MPFR_RNDN)) { mpfr_set(r26937, r26932, MPFR_RNDN); } else { mpfr_set(r26937, r26936, MPFR_RNDN); };
        return mpfr_get_d(r26937, MPFR_RNDN);
}

