native ◶
This commit is contained in:
parent
5c2dfe8e18
commit
a62a41249e
@ -108,15 +108,33 @@ B atop_c2(Md2D* d, B w, B x) { return c1(d->f, c2(d->g, w, x)); }
|
|||||||
B over_c1(Md2D* d, B x) { return c1(d->f, c1(d->g, x)); }
|
B over_c1(Md2D* d, B x) { return c1(d->f, c1(d->g, x)); }
|
||||||
B over_c2(Md2D* d, B w, B x) { B xr=c1(d->g, x); return c2(d->f, c1(d->g, w), xr); }
|
B over_c2(Md2D* d, B w, B x) { B xr=c1(d->g, x); return c2(d->f, c1(d->g, w), xr); }
|
||||||
|
|
||||||
B cond_c1(Md2D* d, B x) { B g=d->g;
|
B pick_c2(B t, B w, B x);
|
||||||
if (isAtm(g)||rnk(g)!=1) thrM("◶: 𝕘 must have rank 1");
|
|
||||||
usz fr = WRAP(o2i64(c1iX(d->f, x)), a(g)->ia, thrM("◶: 𝔽 out of bounds of 𝕘"));
|
B cond_c1(Md2D* d, B x) { B f=d->f; B g=d->g;
|
||||||
return c1(IGetU(g, fr), x);
|
B fr = c1iX(f, x);
|
||||||
|
if (isNum(fr)) {
|
||||||
|
if (isAtm(g)||rnk(g)!=1) thrM("◶: 𝕘 must have rank 1");
|
||||||
|
usz fri = WRAP(o2i64(fr), a(g)->ia, thrM("◶: 𝔽 out of bounds of 𝕘"));
|
||||||
|
return c1(IGetU(g, fri), x);
|
||||||
|
} else {
|
||||||
|
B fn = pick_c2(m_f64(0), fr, inc(g));
|
||||||
|
B r = c1(fn, x);
|
||||||
|
dec(fn);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
B cond_c2(Md2D* d, B w, B x) { B g=d->g;
|
B cond_c2(Md2D* d, B w, B x) { B g=d->g;
|
||||||
if (isAtm(g)||rnk(g)!=1) thrM("◶: 𝕘 must have rank 1");
|
B fr = c2iWX(d->f, w, x);
|
||||||
usz fr = WRAP(o2i64(c2iWX(d->f, w, x)), a(g)->ia, thrM("◶: 𝔽 out of bounds of 𝕘"));
|
if (isNum(fr)) {
|
||||||
return c2(IGetU(g, fr), w, x);
|
if (isAtm(g)||rnk(g)!=1) thrM("◶: 𝕘 must have rank 1");
|
||||||
|
usz fri = WRAP(o2i64(fr), a(g)->ia, thrM("◶: 𝔽 out of bounds of 𝕘"));
|
||||||
|
return c2(IGetU(g, fri), w, x);
|
||||||
|
} else {
|
||||||
|
B fn = pick_c2(m_f64(0), fr, inc(g));
|
||||||
|
B r = c2(fn, w, x);
|
||||||
|
dec(fn);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern B rt_under, bi_before;
|
extern B rt_under, bi_before;
|
||||||
|
|||||||
@ -230,7 +230,7 @@ void load_init() { // very last init function
|
|||||||
/* ⊣⊢⥊∾≍↑↓↕«» */ 1,1,1,1,1,1,1,1,1,1,
|
/* ⊣⊢⥊∾≍↑↓↕«» */ 1,1,1,1,1,1,1,1,1,1,
|
||||||
/* ⌽⍉/⍋⍒⊏⊑⊐⊒∊ */ 1,0,1,1,1,1,1,1,1,1,
|
/* ⌽⍉/⍋⍒⊏⊑⊐⊒∊ */ 1,0,1,1,1,1,1,1,1,1,
|
||||||
/* ⍷⊔!˙˜˘¨⌜⁼´ */ 1,1,1,1,1,1,1,1,0,1,
|
/* ⍷⊔!˙˜˘¨⌜⁼´ */ 1,1,1,1,1,1,1,1,0,1,
|
||||||
/* ˝`∘○⊸⟜⌾⊘◶⎉ */ 0,1,1,1,1,1,1,1,0,0,
|
/* ˝`∘○⊸⟜⌾⊘◶⎉ */ 0,1,1,1,1,1,1,1,1,0,
|
||||||
/* ⚇⍟⎊ */ 0,1,1
|
/* ⚇⍟⎊ */ 0,1,1
|
||||||
};
|
};
|
||||||
assert(sizeof(fruntime)/sizeof(B) == rtLen);
|
assert(sizeof(fruntime)/sizeof(B) == rtLen);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user