#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 r26381 = a;
        float r26382 = 1.0;
        float r26383 = 3.0;
        float r26384 = r26382 / r26383;
        float r26385 = r26381 - r26384;
        float r26386 = 1;
        float r26387 = 9;
        float r26388 = r26387 * r26385;
        float r26389 = sqrt(r26388);
        float r26390 = r26386 / r26389;
        float r26391 = rand;
        float r26392 = r26390 * r26391;
        float r26393 = r26386 + r26392;
        float r26394 = r26385 * r26393;
        return r26394;
}

double f_id(double a, double rand) {
        double r26395 = a;
        double r26396 = 1.0;
        double r26397 = 3.0;
        double r26398 = r26396 / r26397;
        double r26399 = r26395 - r26398;
        double r26400 = 1;
        double r26401 = 9;
        double r26402 = r26401 * r26399;
        double r26403 = sqrt(r26402);
        double r26404 = r26400 / r26403;
        double r26405 = rand;
        double r26406 = r26404 * r26405;
        double r26407 = r26400 + r26406;
        double r26408 = r26399 * r26407;
        return r26408;
}


double f_of(float a, float rand) {
        float r26409 = a;
        float r26410 = 1.0;
        float r26411 = 3.0;
        float r26412 = r26410 / r26411;
        float r26413 = r26409 - r26412;
        float r26414 = 1;
        float r26415 = 9;
        float r26416 = r26415 * r26413;
        float r26417 = sqrt(r26416);
        float r26418 = r26414 / r26417;
        float r26419 = rand;
        float r26420 = r26418 * r26419;
        float r26421 = r26414 + r26420;
        float r26422 = r26413 * r26421;
        return r26422;
}

double f_od(double a, double rand) {
        double r26423 = a;
        double r26424 = 1.0;
        double r26425 = 3.0;
        double r26426 = r26424 / r26425;
        double r26427 = r26423 - r26426;
        double r26428 = 1;
        double r26429 = 9;
        double r26430 = r26429 * r26427;
        double r26431 = sqrt(r26430);
        double r26432 = r26428 / r26431;
        double r26433 = rand;
        double r26434 = r26432 * r26433;
        double r26435 = r26428 + r26434;
        double r26436 = r26427 * r26435;
        return r26436;
}

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 r26437, r26438, r26439, r26440, r26441, r26442, r26443, r26444, r26445, r26446, r26447, r26448, r26449, r26450;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r26437);
        mpfr_init_set_str(r26438, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26439, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26440);
        mpfr_init(r26441);
        mpfr_init_set_str(r26442, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26443, "9", 10, MPFR_RNDN);
        mpfr_init(r26444);
        mpfr_init(r26445);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init(r26448);
        mpfr_init(r26449);
        mpfr_init(r26450);
}

double f_im(double a, double rand) {
        mpfr_set_d(r26437, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26440, r26438, r26439, MPFR_RNDN);
        mpfr_sub(r26441, r26437, r26440, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26444, r26443, r26441, MPFR_RNDN);
        mpfr_sqrt(r26445, r26444, MPFR_RNDN);
        mpfr_div(r26446, r26442, r26445, MPFR_RNDN);
        mpfr_set_d(r26447, rand, MPFR_RNDN);
        mpfr_mul(r26448, r26446, r26447, MPFR_RNDN);
        mpfr_add(r26449, r26442, r26448, MPFR_RNDN);
        mpfr_mul(r26450, r26441, r26449, MPFR_RNDN);
        return mpfr_get_d(r26450, MPFR_RNDN);
}

static mpfr_t r26451, r26452, r26453, r26454, r26455, r26456, r26457, r26458, r26459, r26460, r26461, r26462, r26463, r26464;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26451);
        mpfr_init_set_str(r26452, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26453, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26454);
        mpfr_init(r26455);
        mpfr_init_set_str(r26456, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26457, "9", 10, MPFR_RNDN);
        mpfr_init(r26458);
        mpfr_init(r26459);
        mpfr_init(r26460);
        mpfr_init(r26461);
        mpfr_init(r26462);
        mpfr_init(r26463);
        mpfr_init(r26464);
}

double f_fm(double a, double rand) {
        mpfr_set_d(r26451, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26454, r26452, r26453, MPFR_RNDN);
        mpfr_sub(r26455, r26451, r26454, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26458, r26457, r26455, MPFR_RNDN);
        mpfr_sqrt(r26459, r26458, MPFR_RNDN);
        mpfr_div(r26460, r26456, r26459, MPFR_RNDN);
        mpfr_set_d(r26461, rand, MPFR_RNDN);
        mpfr_mul(r26462, r26460, r26461, MPFR_RNDN);
        mpfr_add(r26463, r26456, r26462, MPFR_RNDN);
        mpfr_mul(r26464, r26455, r26463, MPFR_RNDN);
        return mpfr_get_d(r26464, MPFR_RNDN);
}

static mpfr_t r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475, r26476, r26477, r26478;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r26465);
        mpfr_init_set_str(r26466, "1.0", 10, MPFR_RNDN);
        mpfr_init_set_str(r26467, "3.0", 10, MPFR_RNDN);
        mpfr_init(r26468);
        mpfr_init(r26469);
        mpfr_init_set_str(r26470, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26471, "9", 10, MPFR_RNDN);
        mpfr_init(r26472);
        mpfr_init(r26473);
        mpfr_init(r26474);
        mpfr_init(r26475);
        mpfr_init(r26476);
        mpfr_init(r26477);
        mpfr_init(r26478);
}

double f_dm(double a, double rand) {
        mpfr_set_d(r26465, a, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26468, r26466, r26467, MPFR_RNDN);
        mpfr_sub(r26469, r26465, r26468, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26472, r26471, r26469, MPFR_RNDN);
        mpfr_sqrt(r26473, r26472, MPFR_RNDN);
        mpfr_div(r26474, r26470, r26473, MPFR_RNDN);
        mpfr_set_d(r26475, rand, MPFR_RNDN);
        mpfr_mul(r26476, r26474, r26475, MPFR_RNDN);
        mpfr_add(r26477, r26470, r26476, MPFR_RNDN);
        mpfr_mul(r26478, r26469, r26477, MPFR_RNDN);
        return mpfr_get_d(r26478, MPFR_RNDN);
}

