diff --git a/src/builtins/fns.c b/src/builtins/fns.c index 3f97cd7c..3a6f257f 100644 --- a/src/builtins/fns.c +++ b/src/builtins/fns.c @@ -242,7 +242,7 @@ B find_c2(B t, B w, B x) { usz wl = IA(w); usz xl = IA(x); if (wl > xl) { r = emptyIVec(); goto dec_ret; } - if (wl == 0) { r = taga(arr_shVec(allOnes(xl+1))); goto dec_ret; } + if (wl == 0) { r = taga(arr_shVec(allOnesFl(xl+1))); goto dec_ret; } // Compare elements of w to slices of x usz rl = xl - wl + 1; // Result length u8* xp = tyany_ptr(x); @@ -315,7 +315,7 @@ B find_c2(B t, B w, B x) { rsh[i] = c; } } - r = taga(arr_shSetUO(allOnes(ia), xr, sh)); + r = taga(arr_shSetUO(allOnesFl(ia), xr, sh)); goto dec_ret; } diff --git a/src/builtins/grade.h b/src/builtins/grade.h index 7306a49d..be95c6fc 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -417,7 +417,7 @@ B GRADE_CAT(c2)(B t, B w, B x) { B r; Arr* ra; if (wia==0 | xia==0) { - ra = allZeroes(xia); + ra = allZeroesFl(xia); goto copysh_done; } if (wia==1) { @@ -505,12 +505,12 @@ B GRADE_CAT(c2)(B t, B w, B x) { w=toI32Any(w); x=toI32Any(x); #endif } else { - ra = GRADE_UD(reshape_one(xia, m_f64(wia)), allZeroes(xia)); + ra = GRADE_UD(reshape_one(xia, m_f64(wia)), allZeroesFl(xia)); goto copysh_done; } } else { // w is character if (elNum(xe)) { - ra = GRADE_UD(allZeroes(xia), reshape_one(xia, m_f64(wia))); + ra = GRADE_UD(allZeroesFl(xia), reshape_one(xia, m_f64(wia))); goto copysh_done; } diff --git a/src/builtins/selfsearch.c b/src/builtins/selfsearch.c index 5271fbe6..90221859 100644 --- a/src/builtins/selfsearch.c +++ b/src/builtins/selfsearch.c @@ -174,7 +174,7 @@ B memberOf_c1(B t, B x) { if (sameness == 1) goto allSame; if (RARE(sameness == 2)) { decG(x); - return taga(arr_shVec(allOnes(n))); + return taga(arr_shVec(allOnesFl(n))); } if (use_sorted(x, lw)) { @@ -403,7 +403,7 @@ B find_c1(B, B); B indexOf_c1(B t, B x) { if (isAtm(x) || RNK(x)==0) thrM("⊐: 𝕩 cannot have rank 0"); u64 n = *SH(x); - if (n<=1) { zeroRes: decG(x); return n? taga(arr_shVec(allZeroes(n))) : emptyIVec(); } + if (n<=1) { zeroRes: decG(x); return n? taga(arr_shVec(allZeroesFl(n))) : emptyIVec(); } if (n>(usz)I32_MAX+1) thrM("⊐: Argument length >2⋆31 not supported"); usz csz = arr_csz(x); diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 2db3bdbb..625745e3 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -371,7 +371,7 @@ B rand_range_c2(B t, B w, B x) { PLAINLOOP for (usz i = 0; i < am; i++) rp[i] = wy2u01(wyrand(&seed)); } else { if (max!=1) thrM("(rand).Range: 𝕩 cannot be negative"); - r = allZeroes(am); + r = allZeroesFl(am); } } else if (max > (1ULL<<31)) { if (max >= 1LL<<53) thrM("(rand).Range: 𝕩 must be less than 2⋆53"); diff --git a/src/core/fillarr.c b/src/core/fillarr.c index 72e31fe5..782f7748 100644 --- a/src/core/fillarr.c +++ b/src/core/fillarr.c @@ -5,7 +5,7 @@ B asFill(B x) { // consumes u8 xe = TI(x,elType); usz ia = IA(x); if (elNum(xe)) { - B r = taga(arr_shCopy(allZeroes(ia), x)); + B r = taga(arr_shCopy(allZeroesFl(ia), x)); decG(x); return r; } diff --git a/src/core/stuff.h b/src/core/stuff.h index cc7420ed..991126a1 100644 --- a/src/core/stuff.h +++ b/src/core/stuff.h @@ -189,6 +189,8 @@ B bit_sel(B b, B e0, B e1); // consumes b; b must be bitarr; b⊏e0‿e1 Arr* allZeroes(usz ia); // ia⥊0 with undefined shape; always produces new array Arr* allOnes(usz ia); // ia⥊1 with undefined shape; always produces new array +Arr* allZeroesFl(usz ia); // allZeroes but marked as fl_asc|fl_dsc +Arr* allOnesFl(usz ia); // allOnes but marked as fl_asc|fl_dsc Arr* reshape_one(usz nia, B x); // nia⥊