From 10e83390121eaf1e779bff0c21406b1e1a4915e8 Mon Sep 17 00:00:00 2001 From: dzaima Date: Mon, 31 May 2021 22:54:37 +0300 Subject: [PATCH] =?UTF-8?q?accept=20non-array=20args=20to=20=E2=80=A2inter?= =?UTF-8?q?nal.Squeeze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and also float replicate --- src/builtins/internal.c | 1 + src/builtins/sfns.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/builtins/internal.c b/src/builtins/internal.c index fff2ca04..67c7d26d 100644 --- a/src/builtins/internal.c +++ b/src/builtins/internal.c @@ -23,6 +23,7 @@ B refc_c1(B t, B x) { return r; } B squeeze_c1(B t, B x) { + if (!isArr(x)) return x; return bqn_squeeze(x); } B isPure_c1(B t, B x) { diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index be557761..4f24bbf6 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -242,6 +242,17 @@ B slash_c2(B t, B w, B x) { } dec(w); dec(x); return r; + } else if (TI(x).elType==el_f64) { + f64* xp = f64any_ptr(x); + f64* rp; B r = m_f64arrv(&rp, ria); + for (usz i = 0; i < wia; i++) { + i32 c = wp[i]; + if (c<0) thrF("/: 𝕨 must consist of natural numbers (%i∊𝕨)", c); + f64 cx = xp[i]; + for (usz j = 0; j < c; j++) *rp++ = cx; + } + dec(w); dec(x); + return r; } else { HArr_p r = m_harrs(ria, &ri); BS2B xgetU = TI(x).getU;