From b82932e244f6670ec56e200740d1dacc70a80815 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 8 Aug 2020 12:27:51 -0400 Subject: Avoid using Reshape extension most of the time --- src/r.bqn | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/r.bqn b/src/r.bqn index 264245a1..71b09e5b 100644 --- a/src/r.bqn +++ b/src/r.bqn @@ -111,8 +111,6 @@ _under_←{ sβ₯Š{e=𝕩}β—ΆβŸ¨βŠ‘βŸœ(β₯Šπ•©),{𝕩⋄r←(jβŠ‘g)βŠ‘vβ‹„e↩P j↩1+jβ‹„r}⟩⌜i } -Deshape←IsArrayβ—Ά{βŸ¨π•©βŸ©}β€Ώβ₯Š - Β¨ ↩ {(π”½βŒœ)⊘(𝔽_eachd)β—‹ToArray} match←{(0βŠ‘π•¨)β—Ά(1βŠ‘π•¨)‿𝕩}´⟨ @@ -165,6 +163,7 @@ SelSub←{ }𝕩 } +Deshape←IsArrayβ—Ά{βŸ¨π•©βŸ©}β€Ώβ₯Š Reshape←{ ! 1β‰₯=𝕨 𝕨↩Deshape 𝕨 @@ -175,7 +174,7 @@ Reshape←{ 𝕩(0n←𝕨𝔾_ranks𝕩 β‹„ F←𝔽 _d←{ R←(𝕗+neg)_d - 𝕨(Γ—βŸœ2⊸+Β΄2β₯Š(negβˆ§π•—β‰₯0)∨(0βŒˆπ•—)β‰₯Pair○≑)β—Ά(⟨RΒ¨β‹„RβŸœπ•©βŒœβˆ˜βŠ£β‹„(𝕨R⊒)βŒœβˆ˜βŠ’β‹„F⟩)𝕩 + 𝕨(Γ—βŸœ2⊸+Β΄2 Reshape (negβˆ§π•—β‰₯0)∨(0βŒˆπ•—)β‰₯Pair○≑)β—Ά(⟨RΒ¨β‹„RβŸœπ•©βŒœβˆ˜βŠ£β‹„(𝕨R⊒)βŒœβˆ˜βŠ’β‹„F⟩)𝕩 } 𝕨 n _d 𝕩 } @@ -247,16 +246,16 @@ JoinToβ†βˆ¨β—‹(1β‰ =)β—ΆβˆΎβ€Ώ{ Take←{ T←{ ! Int 𝕨 - l←≠𝕩 β‹„ n←𝕨<0 β‹„ e←l⌊r←|𝕨 β‹„ sβ†βŸ¨r⟩ - i ← 𝕩{sβˆΎβ†©c←1 Cell 𝕨⋄𝕩(Γ—+βŒœβ†•βˆ˜βŠ’)Γ—Β΄c}⍟(1β‰ =𝕩) (l-e)+⍟n ↕e - s β₯Š 𝕩{(β₯Šπ•©)nβ—ΆβŸ¨βˆΎ,∾˜⟩(r-e)β₯ŠType𝕗}⍟(l0)+(-s)⌈sβŒŠπ•¨)↑𝕩 } Suffixes ← {!1≀=𝕩 β‹„ DropβŸœπ•©βŒœβ†•1+≠𝕩} @@ -276,13 +275,12 @@ Reverse ← {!1≀=𝕩 β‹„ (-β†•βŠΈΒ¬β‰ π•©)βŠπ•©} Rotate ← {!Int𝕨 β‹„ l←≠𝕩⋄(l|𝕨+↕l)βŠπ•©} _onAxes_ 0 Rep ← Indices⊸⊏ -Replicate ← {0<=𝕨}β—Ά(β₯ŠΛœβŸœβ‰ Rep⊒)β€Ώ{!𝕨=○≠𝕩⋄𝕨Rep𝕩} _onAxes_ (1-0=β‰ ) +Replicate ← {0<=𝕨}β—Ά{π•¨βŒœβŠΈRep𝕩}β€Ώ{!𝕨=○≠𝕩⋄𝕨Rep𝕩} _onAxes_ (1-0=β‰ ) ↕ ↩ Range ⊘ Windows ⌽ ← Reverse ⊘ Rotate / ← Indices ⊘ Replicate - Join←(1β‰ =)β—ΆβŸ¨βˆ¨Β΄1β‰ =⌜,1βŸ©β—Ά{ # List of lists i←j←¯1β‹„eβ†βŸ¨βŸ©β‹„a←𝕩 @@ -434,12 +432,13 @@ _repeat_←{ n←𝕨𝔾𝕩 l←u←0 {!Int𝕩⋄l↩lβŒŠπ•©β‹„u↩uβŒˆπ•©}βš‡0 n - a←𝕩⋄_p←{π”½βˆ˜βŠ£`(1+𝕩)β₯Š