fix ⟨⟩⍷1‿0⥊0
This commit is contained in:
parent
af0a40c732
commit
d77018f269
@ -281,15 +281,40 @@ B find_c2(B t, B w, B x) {
|
|||||||
|
|
||||||
if (IA(x)==0) {
|
if (IA(x)==0) {
|
||||||
emptyres:;
|
emptyres:;
|
||||||
Arr* ra = allZeroes(0);
|
usz ia = 0;
|
||||||
usz* rsh = arr_shAlloc(ra, xr);
|
ShArr* sh = NULL;
|
||||||
if (rsh) {
|
if (xr > 1) {
|
||||||
|
sh = m_shArr(xr);
|
||||||
|
usz* rsh = sh->a;
|
||||||
usz* wsh=SH(w); usz* xsh=SH(x);
|
usz* wsh=SH(w); usz* xsh=SH(x);
|
||||||
shcpy(rsh, xsh, xr-wr);
|
|
||||||
xsh+=xr-wr; rsh+=xr-wr;
|
ia = 1;
|
||||||
PLAINLOOP for (ux i = 0; i < wr; i++) rsh[i] = wsh[i]>xsh[i]? 0 : xsh[i]-wsh[i]+1;
|
PLAINLOOP for (ux i = 0; i < xr-wr; i++) {
|
||||||
|
usz c = xsh[i];
|
||||||
|
rsh[i] = c;
|
||||||
|
if (mulOn(ia, c)) {
|
||||||
|
shapeBig:;
|
||||||
|
mm_free((Value*)sh);
|
||||||
|
thrOOM();
|
||||||
|
}
|
||||||
|
shcpy(rsh, xsh, xr-wr);
|
||||||
|
}
|
||||||
|
|
||||||
|
xsh+= xr-wr;
|
||||||
|
rsh+= xr-wr;
|
||||||
|
PLAINLOOP for (ux i = 0; i < wr; i++) {
|
||||||
|
usz c;
|
||||||
|
if (wsh[i] > xsh[i]) {
|
||||||
|
c = 0;
|
||||||
|
ia = 0;
|
||||||
|
} else {
|
||||||
|
c = xsh[i]+1u-wsh[i];
|
||||||
|
if (c==0 || mulOn(ia, c)) goto shapeBig;
|
||||||
|
}
|
||||||
|
rsh[i] = c;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
r = taga(ra);
|
r = taga(arr_shSetUO(allOnes(ia), xr, sh));
|
||||||
goto dec_ret;
|
goto dec_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -289,6 +289,11 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
|
|||||||
%USE eqvar ⋄ 0‿1 ⍷_eqvar ↕0 %% ⟨⟩
|
%USE eqvar ⋄ 0‿1 ⍷_eqvar ↕0 %% ⟨⟩
|
||||||
%USE eqvar ⋄ (↕0) ⍷_eqvar 1‿0 %% 1‿1‿1
|
%USE eqvar ⋄ (↕0) ⍷_eqvar 1‿0 %% 1‿1‿1
|
||||||
%USE eqvar ⋄ "ab" ⍷_eqvar 0‿5⥊"ab" %% 0‿4⥊0
|
%USE eqvar ⋄ "ab" ⍷_eqvar 0‿5⥊"ab" %% 0‿4⥊0
|
||||||
|
(0⥊0)⍷1‿0⥊0 %% 1‿1⥊1
|
||||||
|
⟨⟩⍷1‿0⥊"" %% 1‿1⥊1
|
||||||
|
(0‿0‿0‿0‿0‿0⥊0)⍷1‿0‿0‿0‿0‿0‿0⥊0 %% 1‿1‿1‿1‿1‿1‿1⥊1
|
||||||
|
(0‿0‿0‿0‿0‿0⥊0)⍷3‿0‿0‿0‿3‿4‿0⥊0 %% 3‿1‿1‿1‿4‿5‿1⥊1
|
||||||
|
!"Out of memory" % (0‿0‿0‿0‿0‿0⥊0)⍷1e9‿0‿0‿1e9‿1e9‿0‿0⥊0
|
||||||
'a'‿1 ⍷ 0‿5⥊⟨⟩ %% 0‿4⥊0
|
'a'‿1 ⍷ 0‿5⥊⟨⟩ %% 0‿4⥊0
|
||||||
"abc" ⍷ 5‿1⥊'a' %% 5‿0⥊0
|
"abc" ⍷ 5‿1⥊'a' %% 5‿0⥊0
|
||||||
⟨(<"ab")⍷<"aa", (<"ab")⍷<"ab"⟩ %% ⟨<0,<1⟩
|
⟨(<"ab")⍷<"aa", (<"ab")⍷<"ab"⟩ %% ⟨<0,<1⟩
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user