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

char *name = "Octave 3.8, oct_fill_randg";

double f_if(float a, float rand) {
        float r26453 = a;
        float r26454 = 1.0;
        float r26455 = 3.0;
        float r26456 = r26454 / r26455;
        float r26457 = r26453 - r26456;
        float r26458 = 1;
        float r26459 = 9;
        float r26460 = r26459 * r26457;
        float r26461 = sqrt(r26460);
        float r26462 = r26458 / r26461;
        float r26463 = rand;
        float r26464 = r26462 * r26463;
        float r26465 = r26458 + r26464;
        float r26466 = r26457 * r26465;
        return r26466;
}

double f_id(double a, double rand) {
        double r26467 = a;
        double r26468 = 1.0;
        double r26469 = 3.0;
        double r26470 = r26468 / r26469;
        double r26471 = r26467 - r26470;
        double r26472 = 1;
        double r26473 = 9;
        double r26474 = r26473 * r26471;
        double r26475 = sqrt(r26474);
        double r26476 = r26472 / r26475;
        double r26477 = rand;
        double r26478 = r26476 * r26477;
        double r26479 = r26472 + r26478;
        double r26480 = r26471 * r26479;
        return r26480;
}


double f_of(float a, float rand) {
        float r26481 = a;
        float r26482 = 1.0;
        float r26483 = 3.0;
        float r26484 = r26482 / r26483;
        float r26485 = r26481 - r26484;
        float r26486 = 1;
        float r26487 = 9;
        float r26488 = r26487 * r26485;
        float r26489 = sqrt(r26488);
        float r26490 = r26486 / r26489;
        float r26491 = rand;
        float r26492 = r26490 * r26491;
        float r26493 = r26486 + r26492;
        float r26494 = r26485 * r26493;
        return r26494;
}

double f_od(double a, double rand) {
        double r26495 = a;
        double r26496 = 1.0;
        double r26497 = 3.0;
        double r26498 = r26496 / r26497;
        double r26499 = r26495 - r26498;
        double r26500 = 1;
        double r26501 = 9;
        double r26502 = r26501 * r26499;
        double r26503 = sqrt(r26502);
        double r26504 = r26500 / r26503;
        double r26505 = rand;
        double r26506 = r26504 * r26505;
        double r26507 = r26500 + r26506;
        double r26508 = r26499 * r26507;
        return r26508;
}

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 r26509, r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519, r26520, r26521, r26522;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r26509);
        mpfr_init_set_str(r26510, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26511, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26512);
        mpfr_init(r26513);
        mpfr_init_set_str(r26514, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26515, "9", 10, MPFR_RNDN);
        mpfr_init(r26516);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
        mpfr_init(r26520);
        mpfr_init(r26521);
        mpfr_init(r26522);
}

double f_im(double a, double rand) {
        mpfr_set_d(r26509, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26512, r26510, r26511, MPFR_RNDN);
        mpfr_sub(r26513, r26509, r26512, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26516, r26515, r26513, MPFR_RNDN);
        mpfr_sqrt(r26517, r26516, MPFR_RNDN);
        mpfr_div(r26518, r26514, r26517, MPFR_RNDN);
        mpfr_set_d(r26519, rand, MPFR_RNDN);
        mpfr_mul(r26520, r26518, r26519, MPFR_RNDN);
        mpfr_add(r26521, r26514, r26520, MPFR_RNDN);
        mpfr_mul(r26522, r26513, r26521, MPFR_RNDN);
        return mpfr_get_d(r26522, MPFR_RNDN);
}

static mpfr_t r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26523);
        mpfr_init_set_str(r26524, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26525, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26526);
        mpfr_init(r26527);
        mpfr_init_set_str(r26528, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26529, "9", 10, MPFR_RNDN);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
        mpfr_init(r26534);
        mpfr_init(r26535);
        mpfr_init(r26536);
}

double f_fm(double a, double rand) {
        mpfr_set_d(r26523, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26526, r26524, r26525, MPFR_RNDN);
        mpfr_sub(r26527, r26523, r26526, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26530, r26529, r26527, MPFR_RNDN);
        mpfr_sqrt(r26531, r26530, MPFR_RNDN);
        mpfr_div(r26532, r26528, r26531, MPFR_RNDN);
        mpfr_set_d(r26533, rand, MPFR_RNDN);
        mpfr_mul(r26534, r26532, r26533, MPFR_RNDN);
        mpfr_add(r26535, r26528, r26534, MPFR_RNDN);
        mpfr_mul(r26536, r26527, r26535, MPFR_RNDN);
        return mpfr_get_d(r26536, MPFR_RNDN);
}

static mpfr_t r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545, r26546, r26547, r26548, r26549, r26550;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26537);
        mpfr_init_set_str(r26538, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26539, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26540);
        mpfr_init(r26541);
        mpfr_init_set_str(r26542, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26543, "9", 10, MPFR_RNDN);
        mpfr_init(r26544);
        mpfr_init(r26545);
        mpfr_init(r26546);
        mpfr_init(r26547);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
}

double f_dm(double a, double rand) {
        mpfr_set_d(r26537, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26540, r26538, r26539, MPFR_RNDN);
        mpfr_sub(r26541, r26537, r26540, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26544, r26543, r26541, MPFR_RNDN);
        mpfr_sqrt(r26545, r26544, MPFR_RNDN);
        mpfr_div(r26546, r26542, r26545, MPFR_RNDN);
        mpfr_set_d(r26547, rand, MPFR_RNDN);
        mpfr_mul(r26548, r26546, r26547, MPFR_RNDN);
        mpfr_add(r26549, r26542, r26548, MPFR_RNDN);
        mpfr_mul(r26550, r26541, r26549, MPFR_RNDN);
        return mpfr_get_d(r26550, MPFR_RNDN);
}

