/* functions */ u2_weak // transfer j2_mbc(Pt1, add)(u2_wire wir_r, u2_atom a, // retain u2_atom b) // retain { mpz_t a_mp, b_mp; u2_mp(a_mp, a); u2_mp(b_mp, b); mpz_add(a_mp, a_mp, b_mp); mpz_clear(b_mp); return u2_rl_mp(wir_r, a_mp); }
/* _unix_dump(): dump noun to file. */ static void _unix_dump(FILE* fil, u2_noun som) { if ( u2_no == u2_dust(som) ) { mpz_t amp; if ( u2_yes == _unix_term(som) ) { c3_w met_w = u2_met(3, som); c3_y *buf_y = alloca(met_w + 1); u2_bytes(0, met_w, buf_y, som); buf_y[met_w] = 0; fprintf(fil, "%%%s", buf_y); } else { u2_mp(amp, som); gmp_fprintf(fil, "%Zd", amp); mpz_clear(amp); } } else { fputc('[', fil); _unix_dump(fil, u2_h(som)); fprintf(fil, " "); _unix_dump_in(fil, u2_t(som)); fputc(']', fil); } }
/* functions */ u2_weak // transfer j2_mbc(Pt1, lth)(u2_wire wir_r, u2_atom a, // retain u2_atom b) // retain { mpz_t a_mp, b_mp; u2_flag cmp; u2_mp(a_mp, a); u2_mp(b_mp, b); cmp = (mpz_cmp(a_mp, b_mp) < 0) ? u2_yes : u2_no; mpz_clear(a_mp); mpz_clear(b_mp); return cmp; }
/* u2_bi_mp(): ** ** Copy (b) into (a_mp). */ void u2_bi_mp(u2_ray wir_r, mpz_t a_mp, u2_noun b) { if ( u2_no == u2_stud(b) ) u2_bl_bail(wir_r, c3__exit); u2_mp(a_mp, b); }
/* functions */ u2_weak // transfer j2_mbc(Pt1, mod)(u2_wire wir_r, u2_atom a, // retain u2_atom b) // retain { if ( _0 == b ) { return u2_none; } else { mpz_t a_mp, b_mp; u2_mp(a_mp, a); u2_mp(b_mp, b); mpz_tdiv_r(a_mp, a_mp, b_mp); mpz_clear(b_mp); return u2_rl_mp(wir_r, a_mp); } }
u2_weak // transfer j2_mbc(Pt1, dec)(u2_wire wir_r, u2_atom a) // retain { if ( _0 == a ) { return u2_none; } else { mpz_t a_mp; u2_mp(a_mp, a); mpz_sub_ui(a_mp, a_mp, 1); return u2_rl_mp(wir_r, a_mp); } }