Exemplo n.º 1
0
/* uz_a_mp():
**
**   Copy [b] into (a).
*/
void
uz_a_mp(uz_machine mac,
        mpz_t      a,
        uz_noun    b)
{
  u3_lr_mp(mac->zen, a, b);
}
Exemplo n.º 2
0
Arquivo: gt.c Projeto: mbrubeck/urbit
/* u3_zx_gt_c():
*/
u3_fox
u3_zx_gt_c(u3_z   z,
           u3_fox a,
           u3_fox b)
{
  mpz_t   mp_a, mp_b;
  u3_flag c;

  u3_lr_mp(z, mp_a, a);
  u3_lr_mp(z, mp_b, b);

  c = (mpz_cmp(mp_a, mp_b) > 0) ? u3_yes : u3_no;

  mpz_clear(mp_a);
  mpz_clear(mp_b);

  return c;
}
Exemplo n.º 3
0
/* u3_zx_mod_c():
*/
u3_fox
u3_zx_mod_c(u3_z   z,
            u3_fox a,
            u3_fox b)
{
  if ( 0 == b ) {
    return u3_zc_tank(z, c3__exit);
  }
  else {
    mpz_t mp_a, mp_b;

    u3_lr_mp(z, mp_a, a);
    u3_lr_mp(z, mp_b, b);

    mpz_tdiv_r(mp_a, mp_a, mp_b);
    mpz_clear(mp_b);

    return u3_zc_mp(z, mp_a);
  }
}
Exemplo n.º 4
0
/* _bi_export(): export a noun from u3 to u4.
*/
static u4_noun
_bi_export(u3_l    l,
           u4_lane lane,
           u3_fox  tam)
{
  if ( u3_yes == u3_lr_stud(l, tam) ) {
    mpz_t mp_tam;

    u3_lr_mp(l, mp_tam, tam);
    return u4_k_atom_gmp(lane, mp_tam);
  }
  else {
    return u4_k_cell(lane, _bi_export(l, lane, u3_h(l, tam)),
                           _bi_export(l, lane, u3_t(l, tam)));
  }
}