From d89a6da2da854200802b02e899e6692ac134d21b Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 26 Jun 2024 14:42:57 -0400 Subject: [PATCH] =?UTF-8?q?Evaluate=20monadic=20=C2=AB=C2=BB=20on=20a=20le?= =?UTF-8?q?ngth-1=20argument=20by=20reshaping=20the=20fill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/sfns.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 5877da7a..47e82232 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -998,7 +998,10 @@ B shiftb_c1(B t, B x) { if (ia==0) return x; B xf = getFillE(x); usz csz = arr_csz(x); - + if (ia==csz) { // length 1 + Arr* r = arr_shCopy(reshape_one(ia, xf), x); + decG(x); return taga(r); + } MAKE_MUT_INIT(r, ia, el_or(TI(x,elType), selfElType(xf))); MUTG_INIT(r); mut_copyG(r, csz, x, 0, ia-csz); mut_fillG(r, 0, xf, csz); @@ -1025,6 +1028,10 @@ B shifta_c1(B t, B x) { if (ia==0) return x; B xf = getFillE(x); usz csz = arr_csz(x); + if (ia==csz) { // length 1 + Arr* r = arr_shCopy(reshape_one(ia, xf), x); + decG(x); return taga(r); + } MAKE_MUT_INIT(r, ia, el_or(TI(x,elType), selfElType(xf))); MUTG_INIT(r); mut_copyG(r, 0, x, csz, ia-csz); mut_fillG(r, ia-csz, xf, csz);