コード例 #1
0
ファイル: public.c プロジェクト: aaronlifton/urbit
/* 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);
}
コード例 #2
0
ファイル: gt.c プロジェクト: 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;
}
コード例 #3
0
ファイル: mod.c プロジェクト: aaronlifton/urbit
/* 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);
  }
}
コード例 #4
0
ファイル: bunt.c プロジェクト: aaronlifton/urbit
/* _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)));
  }
}