mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-28 03:00:15 +03:00
u3: refactors map treap jets (+by)
This commit is contained in:
parent
358088a826
commit
145bf47c27
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
/* internal functions
|
/* internal functions
|
||||||
*/
|
*/
|
||||||
static
|
static u3_noun
|
||||||
u3_noun _b_bif_putroot(u3_noun a,
|
_b_bif_putroot(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
if ( u3_nul == a ) {
|
if ( u3_nul == a ) {
|
||||||
@ -16,13 +16,11 @@
|
|||||||
u3_noun n_a, l_a, r_a;
|
u3_noun n_a, l_a, r_a;
|
||||||
u3_noun p_n_a, q_n_a;
|
u3_noun p_n_a, q_n_a;
|
||||||
u3_noun p_b, q_b;
|
u3_noun p_b, q_b;
|
||||||
|
u3x_trel(a, &n_a, &l_a, &r_a);
|
||||||
|
u3x_cell(b, &p_b, &q_b);
|
||||||
|
u3x_cell(n_a, &p_n_a, &q_n_a);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a))
|
if ( c3y == u3r_sing(p_b, p_n_a) ) {
|
||||||
|| (c3n == u3r_cell(b, &p_b, &q_b))
|
|
||||||
|| (c3n == u3r_cell(n_a, &p_n_a, &q_n_a)) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else if ( c3y == u3r_sing(p_b, p_n_a) ) {
|
|
||||||
return u3nt(u3k(b), u3k(l_a), u3k(r_a));
|
return u3nt(u3k(b), u3k(l_a), u3k(r_a));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -38,7 +36,8 @@
|
|||||||
);
|
);
|
||||||
u3z(c);
|
u3z(c);
|
||||||
return d;
|
return d;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
c = _b_bif_putroot(r_a, b);
|
c = _b_bif_putroot(r_a, b);
|
||||||
u3r_trel(c, &n_c, &l_c, &r_c);
|
u3r_trel(c, &n_c, &l_c, &r_c);
|
||||||
d = u3nt(u3k(n_c),
|
d = u3nt(u3k(n_c),
|
||||||
@ -54,17 +53,16 @@
|
|||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun u3wdb_bif(u3_noun cor)
|
u3_noun
|
||||||
|
u3wdb_bif(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_bif(a, b);
|
return u3qdb_bif(a, b);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
u3_noun u3qdb_bif(u3_noun a,
|
u3_noun
|
||||||
|
u3qdb_bif(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
u3_noun c, n_c, l_c, r_c;
|
u3_noun c, n_c, l_c, r_c;
|
||||||
@ -76,7 +74,3 @@
|
|||||||
u3z(c);
|
u3z(c);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
u3_weak u3kdi_bif(u3_noun a, u3_noun b);
|
|
||||||
*/
|
|
||||||
|
@ -8,12 +8,9 @@
|
|||||||
static u3_noun
|
static u3_noun
|
||||||
_rebalance(u3_noun a)
|
_rebalance(u3_noun a)
|
||||||
{
|
{
|
||||||
u3_noun l_a, n_a, r_a;
|
u3_noun n_a, l_a, r_a;
|
||||||
|
u3x_trel(a, &n_a, &l_a, &r_a);
|
||||||
|
|
||||||
if ( c3n == u3r_trel(a, &n_a, &l_a, &r_a) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ( u3_nul == l_a) {
|
if ( u3_nul == l_a) {
|
||||||
return u3k(r_a);
|
return u3k(r_a);
|
||||||
}
|
}
|
||||||
@ -23,14 +20,9 @@
|
|||||||
else {
|
else {
|
||||||
u3_noun n_l_a, l_l_a, r_l_a;
|
u3_noun n_l_a, l_l_a, r_l_a;
|
||||||
u3_noun n_r_a, l_r_a, r_r_a;
|
u3_noun n_r_a, l_r_a, r_r_a;
|
||||||
|
u3x_trel(l_a, &n_l_a, &l_l_a, &r_l_a);
|
||||||
|
u3x_trel(r_a, &n_r_a, &l_r_a, &r_r_a);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(l_a, &n_l_a, &l_l_a, &r_l_a) ) ||
|
|
||||||
(c3n == u3r_trel(r_a, &n_r_a, &l_r_a, &r_r_a) ) ||
|
|
||||||
(c3n == u3du(n_l_a)) ||
|
|
||||||
(c3n == u3du(n_r_a)) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ( c3y == u3qc_mor(u3h(n_l_a), u3h(n_r_a)) ) {
|
if ( c3y == u3qc_mor(u3h(n_l_a), u3h(n_r_a)) ) {
|
||||||
u3_noun new_right = u3nt(u3k(n_a),
|
u3_noun new_right = u3nt(u3k(n_a),
|
||||||
u3k(r_l_a),
|
u3k(r_l_a),
|
||||||
@ -57,8 +49,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3qdb_del(u3_noun a,
|
u3qdb_del(u3_noun a,
|
||||||
@ -68,14 +58,18 @@
|
|||||||
return u3_nul;
|
return u3_nul;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3_noun l_a, n_a, r_a, pn_a, qn_a;
|
u3_noun n_a, lr_a;
|
||||||
|
u3_noun pn_a;
|
||||||
|
u3x_cell(a, &n_a, &lr_a);
|
||||||
|
u3x_cell(n_a, &pn_a, 0);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ||
|
if ( c3y == u3r_sing(pn_a, b) ) {
|
||||||
(c3n == u3r_cell(n_a, &pn_a, &qn_a)) )
|
return _rebalance(a);
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
}
|
||||||
else if ( c3n == u3r_sing(pn_a, b) ) {
|
else {
|
||||||
|
u3_noun l_a, r_a;
|
||||||
|
u3x_cell(lr_a, &l_a, &r_a);
|
||||||
|
|
||||||
if ( c3y == u3qc_gor(b, pn_a) ) {
|
if ( c3y == u3qc_gor(b, pn_a) ) {
|
||||||
return u3nt(u3k(n_a),
|
return u3nt(u3k(n_a),
|
||||||
u3qdb_del(l_a, b),
|
u3qdb_del(l_a, b),
|
||||||
@ -87,9 +81,6 @@
|
|||||||
u3qdb_del(r_a, b));
|
u3qdb_del(r_a, b));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
return _rebalance(a);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,15 +88,6 @@
|
|||||||
u3wdb_del(u3_noun cor)
|
u3wdb_del(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b,
|
return u3qdb_del(a, b);
|
||||||
u3x_con_sam, &a, 0) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
u3_noun n = u3qdb_del(a, b);
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,82 +5,70 @@
|
|||||||
|
|
||||||
/* internal functions
|
/* internal functions
|
||||||
*/
|
*/
|
||||||
static
|
static u3_noun
|
||||||
u3_noun _b_dif_join(u3_noun d,
|
_b_dif_join(u3_noun d,
|
||||||
u3_noun e)
|
u3_noun e)
|
||||||
{
|
{
|
||||||
if ( u3_nul == d ) {
|
if ( u3_nul == d ) {
|
||||||
return u3k(e);
|
return u3k(e);
|
||||||
} else if (u3_nul == e) {
|
}
|
||||||
|
else if ( u3_nul == e ) {
|
||||||
return u3k(d);
|
return u3k(d);
|
||||||
} else {
|
}
|
||||||
u3_noun n_d, l_d, r_d;
|
else {
|
||||||
u3_noun n_e, l_e, r_e;
|
u3_noun n_d, lr_d;
|
||||||
u3_noun p_n_d, q_n_d;
|
u3_noun n_e, lr_e;
|
||||||
u3_noun p_n_e, q_n_e;
|
u3x_cell(d, &n_d, &lr_d);
|
||||||
|
u3x_cell(e, &n_e, &lr_e);
|
||||||
|
|
||||||
|
if ( c3y == u3qc_mor(u3h(n_d), u3h(n_e)) ) {
|
||||||
|
u3_noun l_d, r_d;
|
||||||
|
u3x_cell(lr_d, &l_d, &r_d);
|
||||||
|
|
||||||
if ( c3n == u3r_trel(d, &n_d, &l_d, &r_d)
|
|
||||||
|| c3n == u3r_trel(e, &n_e, &l_e, &r_e)
|
|
||||||
|| c3n == u3r_cell(n_d, &p_n_d, &q_n_d)
|
|
||||||
|| c3n == u3r_cell(n_e, &p_n_e, &q_n_e) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
if ( c3y == u3qc_mor(p_n_d, p_n_e) ) {
|
|
||||||
return u3nt(u3k(n_d),
|
return u3nt(u3k(n_d),
|
||||||
u3k(l_d),
|
u3k(l_d),
|
||||||
_b_dif_join(u3k(r_d), u3k(e)));
|
_b_dif_join(u3k(r_d), u3k(e)));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
|
u3_noun l_e, r_e;
|
||||||
|
u3x_cell(lr_e, &l_e, &r_e);
|
||||||
|
|
||||||
return u3nt(u3k(n_e),
|
return u3nt(u3k(n_e),
|
||||||
_b_dif_join(u3k(d), u3k(l_e)),
|
_b_dif_join(u3k(d), u3k(l_e)),
|
||||||
u3k(r_e));
|
u3k(r_e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun u3wdb_dif(u3_noun cor)
|
u3_noun
|
||||||
|
u3wdb_dif(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_dif(a, b);
|
return u3qdb_dif(a, b);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
u3_noun u3qdb_dif(u3_noun a,
|
u3_noun
|
||||||
|
u3qdb_dif(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
if ( u3_nul == b ) {
|
if ( u3_nul == b ) {
|
||||||
return u3k(a);
|
return u3k(a);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
u3_noun n_b, l_b, r_b;
|
u3_noun n_b, l_b, r_b;
|
||||||
u3_noun c, l_c, r_c;
|
u3_noun c, l_c, r_c;
|
||||||
|
u3x_trel(b, &n_b, &l_b, &r_b);
|
||||||
if ( c3n == u3r_trel(b, &n_b, &l_b, &r_b) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
c = u3qdb_bif(a, n_b);
|
c = u3qdb_bif(a, n_b);
|
||||||
|
u3x_cell(c, &l_c, &r_c);
|
||||||
|
|
||||||
if ( c3n == u3r_cell(c, &l_c, &r_c) ) {
|
u3_noun d = u3qdb_dif(l_c, l_b);
|
||||||
return u3m_bail(c3__exit);
|
u3_noun e = u3qdb_dif(r_c, r_b);
|
||||||
} else {
|
|
||||||
u3_noun d;
|
|
||||||
u3_noun e;
|
|
||||||
|
|
||||||
d = u3qdb_dif(l_c, l_b);
|
|
||||||
e = u3qdb_dif(r_c, r_b);
|
|
||||||
u3z(c);
|
u3z(c);
|
||||||
|
|
||||||
return _b_dif_join(d, e);
|
return _b_dif_join(d, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
u3_weak u3kdb_dif(u3_noun a, u3_noun b);
|
|
||||||
*/
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun
|
u3_noun
|
||||||
@ -14,52 +13,31 @@
|
|||||||
return u3k(a);
|
return u3k(a);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ( c3n == u3du(b) ) {
|
u3_noun i_b, t_b,
|
||||||
return u3m_bail(c3__exit);
|
pi_b, qi_b;
|
||||||
} else {
|
u3x_cell(b, &i_b, &t_b);
|
||||||
u3_noun i_b = u3h(b);
|
u3x_cell(i_b, &pi_b, &qi_b);
|
||||||
u3_noun t_b = u3t(b);
|
|
||||||
|
|
||||||
if ( c3n == u3du(i_b) ) {
|
u3_noun c = u3qdb_put(a, pi_b, qi_b);
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
u3_noun pi_b = u3h(i_b);
|
|
||||||
u3_noun qi_b = u3t(i_b);
|
|
||||||
u3_noun c;
|
|
||||||
|
|
||||||
if ( u3_none == (c = u3qdb_put(a, pi_b, qi_b)) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
u3_noun d = u3qdb_gas(c, t_b);
|
u3_noun d = u3qdb_gas(c, t_b);
|
||||||
|
|
||||||
u3z(c);
|
u3z(c);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wdb_gas(u3_noun cor)
|
u3wdb_gas(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_gas(a, b);
|
return u3qdb_gas(a, b);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3kdb_gas(u3_noun a,
|
u3kdb_gas(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
u3_weak c = u3qdb_gas(a, b);
|
u3_noun c = u3qdb_gas(a, b);
|
||||||
|
|
||||||
u3z(a); u3z(b);
|
u3z(a); u3z(b);
|
||||||
if ( u3_none == c ) {
|
return c;
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
}
|
||||||
else return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun
|
u3_noun
|
||||||
@ -14,64 +13,50 @@
|
|||||||
return u3_nul;
|
return u3_nul;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3_noun l_a, n_a, r_a;
|
u3_noun n_a, lr_a;
|
||||||
u3_noun pn_a, qn_a;
|
u3_noun pn_a, qn_a;
|
||||||
|
u3x_cell(a, &n_a, &lr_a);
|
||||||
|
u3x_cell(n_a, &pn_a, &qn_a);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ||
|
|
||||||
(c3n == u3r_cell(n_a, &pn_a, &qn_a) ) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ( (c3y == u3r_sing(b, pn_a)) ) {
|
if ( (c3y == u3r_sing(b, pn_a)) ) {
|
||||||
return u3nc(u3_nul, u3k(qn_a));
|
return u3nc(u3_nul, u3k(qn_a));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ( c3y == u3qc_gor(b, pn_a) ) {
|
return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_get(u3h(lr_a), b)
|
||||||
return u3qdb_get(l_a, b);
|
: u3qdb_get(u3t(lr_a), b);
|
||||||
}
|
|
||||||
else return u3qdb_get(r_a, b);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wdb_get(u3_noun cor)
|
u3wdb_get(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_get(a, b);
|
return u3qdb_get(a, b);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
u3_weak
|
u3_weak
|
||||||
u3kdb_get(u3_noun a,
|
u3kdb_get(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
u3_noun c = u3qdb_get(a, b);
|
u3_noun c = u3qdb_get(a, b);
|
||||||
|
|
||||||
u3z(a); u3z(b);
|
u3z(a); u3z(b);
|
||||||
|
|
||||||
if ( c3n == u3r_du(c) ) {
|
if ( c3n == u3r_du(c) ) {
|
||||||
u3z(c);
|
u3z(c);
|
||||||
return u3_none;
|
return u3_none;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
u3_noun pro = u3k(u3t(c));
|
u3_noun pro = u3k(u3t(c));
|
||||||
|
|
||||||
u3z(c);
|
u3z(c);
|
||||||
return pro;
|
return pro;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3kdb_got(u3_noun a,
|
u3kdb_got(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
u3_weak c = u3kdb_get(a, b);
|
return u3x_good(u3kdb_get(a, b));
|
||||||
|
|
||||||
if ( u3_none == c ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
}
|
||||||
else return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun
|
u3_noun
|
||||||
@ -14,48 +13,34 @@
|
|||||||
return c3n;
|
return c3n;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3_noun l_a, n_a, r_a;
|
u3_noun n_a, lr_a;
|
||||||
u3_noun pn_a, qn_a;
|
u3_noun pn_a;
|
||||||
|
u3x_cell(a, &n_a, &lr_a);
|
||||||
|
u3x_cell(n_a, &pn_a, 0);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ||
|
|
||||||
(c3n == u3r_cell(n_a, &pn_a, &qn_a)) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ( (c3y == u3r_sing(b, pn_a)) ) {
|
if ( (c3y == u3r_sing(b, pn_a)) ) {
|
||||||
return c3y;
|
return c3y;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ( c3y == u3qc_gor(b, pn_a) ) {
|
return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_has(u3h(lr_a), b)
|
||||||
return u3qdb_has(l_a, b);
|
: u3qdb_has(u3t(lr_a), b);
|
||||||
}
|
|
||||||
else return u3qdb_has(r_a, b);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wdb_has(u3_noun cor)
|
u3wdb_has(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b;
|
u3_noun a, b;
|
||||||
|
u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0);
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_has(a, b);
|
return u3qdb_has(a, b);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3kdb_has(u3_noun a,
|
u3kdb_has(u3_noun a,
|
||||||
u3_noun b)
|
u3_noun b)
|
||||||
{
|
{
|
||||||
u3_weak c = u3qdb_has(a, b);
|
u3_noun c = u3qdb_has(a, b);
|
||||||
|
|
||||||
u3z(a); u3z(b);
|
u3z(a); u3z(b);
|
||||||
if ( u3_none == c ) {
|
return c;
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
}
|
||||||
else return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun
|
u3_noun
|
||||||
@ -15,27 +14,22 @@
|
|||||||
return u3m_bail(c3__exit);
|
return u3m_bail(c3__exit);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3_noun l_a, n_a, r_a;
|
u3_noun n_a, lr_a;
|
||||||
u3_noun pn_a, qn_a;
|
u3_noun pn_a, qn_a;
|
||||||
|
u3x_cell(a, &n_a, &lr_a);
|
||||||
|
u3x_cell(n_a, &pn_a, &qn_a);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ||
|
|
||||||
(c3n == u3r_cell(n_a, &pn_a, &qn_a) ) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ( (c3y == u3r_sing(key, pn_a)) ) {
|
if ( (c3y == u3r_sing(key, pn_a)) ) {
|
||||||
u3_noun value = u3n_slam_on(u3k(fun), u3k(qn_a));
|
u3_noun value = u3n_slam_on(u3k(fun), u3k(qn_a));
|
||||||
return u3nc(u3nc(u3k(pn_a), value), u3k(u3t(a)));
|
return u3nc(u3nc(u3k(pn_a), value), u3k(u3t(a)));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ( c3y == u3qc_gor(key, pn_a) ) {
|
u3_noun l_a, r_a;
|
||||||
return u3nt(u3k(n_a), u3qdb_jab(l_a, key, fun), u3k(r_a));
|
u3x_cell(lr_a, &l_a, &r_a);
|
||||||
}
|
|
||||||
else {
|
return ( c3y == u3qc_gor(key, pn_a) )
|
||||||
return u3nt(u3k(n_a), u3k(l_a), u3qdb_jab(r_a, key, fun));
|
? u3nt(u3k(n_a), u3qdb_jab(l_a, key, fun), u3k(r_a))
|
||||||
}
|
: u3nt(u3k(n_a), u3k(l_a), u3qdb_jab(r_a, key, fun));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,13 +38,9 @@
|
|||||||
u3wdb_jab(u3_noun cor)
|
u3wdb_jab(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, key, fun;
|
u3_noun a, key, fun;
|
||||||
|
u3x_mean(cor, u3x_sam_2, &key,
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam_2, &key,
|
|
||||||
u3x_sam_3, &fun,
|
u3x_sam_3, &fun,
|
||||||
u3x_con_sam, &a, 0) ) {
|
u3x_con_sam, &a, 0);
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
return u3qdb_jab(a, key, fun);
|
||||||
u3_noun n = u3qdb_jab(a, key, fun);
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
|
|
||||||
/* functions
|
/* functions
|
||||||
*/
|
*/
|
||||||
u3_noun
|
u3_noun
|
||||||
@ -12,32 +11,29 @@
|
|||||||
u3_noun c)
|
u3_noun c)
|
||||||
{
|
{
|
||||||
if ( u3_nul == a ) {
|
if ( u3_nul == a ) {
|
||||||
return u3nt(
|
return u3nt(u3nc(u3k(b), u3k(c)),
|
||||||
u3nc(u3k(b),
|
|
||||||
u3k(c)),
|
|
||||||
u3_nul,
|
u3_nul,
|
||||||
u3_nul);
|
u3_nul);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3_noun l_a, n_a, r_a, pn_a, qn_a;
|
u3_noun n_a, l_a, r_a;
|
||||||
u3_noun d, l_d, n_d, r_d;
|
u3_noun pn_a, qn_a;
|
||||||
|
u3x_trel(a, &n_a, &l_a, &r_a);
|
||||||
|
u3x_cell(n_a, &pn_a, &qn_a);
|
||||||
|
|
||||||
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ||
|
if ( c3y == u3r_sing(pn_a, b) ) {
|
||||||
(c3n == u3r_cell(n_a, &pn_a, &qn_a)) )
|
|
||||||
{
|
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
}
|
|
||||||
else if ( c3y == u3r_sing(pn_a, b) ) {
|
|
||||||
if ( c3y == u3r_sing(qn_a, c) ) {
|
if ( c3y == u3r_sing(qn_a, c) ) {
|
||||||
return u3k(a);
|
return u3k(a);
|
||||||
} else {
|
}
|
||||||
return u3nt
|
else {
|
||||||
(u3nc(u3k(b), u3k(c)),
|
return u3nt(u3nc(u3k(b), u3k(c)),
|
||||||
u3k(l_a),
|
u3k(l_a),
|
||||||
u3k(r_a));
|
u3k(r_a));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
u3_noun d, n_d, l_d, r_d;
|
||||||
|
|
||||||
if ( c3y == u3qc_gor(b, pn_a) ) {
|
if ( c3y == u3qc_gor(b, pn_a) ) {
|
||||||
d = u3qdb_put(l_a, b, c);
|
d = u3qdb_put(l_a, b, c);
|
||||||
|
|
||||||
@ -48,9 +44,8 @@
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3r_trel(d, &n_d, &l_d, &r_d);
|
u3r_trel(d, &n_d, &l_d, &r_d);
|
||||||
{
|
|
||||||
u3_noun e = u3nt
|
u3_noun e = u3nt(u3k(n_d),
|
||||||
(u3k(n_d),
|
|
||||||
u3k(l_d),
|
u3k(l_d),
|
||||||
u3nt(u3k(n_a),
|
u3nt(u3k(n_a),
|
||||||
u3k(r_d),
|
u3k(r_d),
|
||||||
@ -60,7 +55,6 @@
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
d = u3qdb_put(r_a, b, c);
|
d = u3qdb_put(r_a, b, c);
|
||||||
|
|
||||||
@ -71,9 +65,8 @@
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
u3r_trel(d, &n_d, &l_d, &r_d);
|
u3r_trel(d, &n_d, &l_d, &r_d);
|
||||||
{
|
|
||||||
u3_noun e = u3nt
|
u3_noun e = u3nt(u3k(n_d),
|
||||||
(u3k(n_d),
|
|
||||||
u3nt(u3k(n_a),
|
u3nt(u3k(n_a),
|
||||||
u3k(l_a),
|
u3k(l_a),
|
||||||
u3k(l_d)),
|
u3k(l_d)),
|
||||||
@ -86,32 +79,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
u3_noun
|
u3_noun
|
||||||
u3wdb_put(u3_noun cor)
|
u3wdb_put(u3_noun cor)
|
||||||
{
|
{
|
||||||
u3_noun a, b, c;
|
u3_noun a, b, c;
|
||||||
|
u3x_mean(cor, u3x_sam_2, &b,
|
||||||
if ( c3n == u3r_mean(cor, u3x_sam_2, &b,
|
|
||||||
u3x_sam_3, &c,
|
u3x_sam_3, &c,
|
||||||
u3x_con_sam, &a, 0) ) {
|
u3x_con_sam, &a, 0);
|
||||||
return u3m_bail(c3__exit);
|
|
||||||
} else {
|
|
||||||
return u3qdb_put(a, b, c);
|
return u3qdb_put(a, b, c);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
u3_weak
|
u3_noun
|
||||||
u3kdb_put(u3_noun a,
|
u3kdb_put(u3_noun a,
|
||||||
u3_noun b,
|
u3_noun b,
|
||||||
u3_noun c)
|
u3_noun c)
|
||||||
{
|
{
|
||||||
// Bizarre asymmetry in old jets.
|
|
||||||
//
|
|
||||||
// (Mysterious comment in old glue code.)
|
|
||||||
//
|
|
||||||
u3_noun pro = u3qdb_put(a, b, c);
|
u3_noun pro = u3qdb_put(a, b, c);
|
||||||
|
|
||||||
u3z(a); u3z(b); u3z(c);
|
u3z(a); u3z(b); u3z(c);
|
||||||
return pro;
|
return pro;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user