diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-08 12:27:51 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-08-08 12:27:51 -0400 |
| commit | b82932e244f6670ec56e200740d1dacc70a80815 (patch) | |
| tree | b95d1ce9dd3766b9fcc2d2fed778161ca60ba1ba /src | |
| parent | d232168a333f9b0a7675ab3829f0c34af0783883 (diff) | |
Avoid using Reshape extension most of the time
Diffstat (limited to 'src')
| -rw-r--r-- | src/r.bqn | 23 |
1 files changed, 11 insertions, 12 deletions
@@ -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β{ π©(0<n)βΆβ¨TypeβΈ(β£β)ββ₯βΈ{ββπ¨βn|π©}β©βl }β(lβ n)π© }βToArray -β₯ β© Deshape β Reshape +β₯ β© Deshape β β₯ Rangeβ{ Iβ{!Natπ©ββπ©} @@ -194,7 +193,7 @@ _depthOp_β{ negβ0>nβπ¨πΎ_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π}β(l<r) ββ(β₯π©)βi + lββ π© β nβπ¨<0 β eβlβrβ|π¨ β sββ¨rβ© β mβ1 + i β π©{sβΎβ©cβ1 Cell π¨βπ©(Γ+ββββ’)mβ©ΓΒ΄c}β(1β =π©) (l-e)+βn βe + sβ₯π©{(β₯π©)nβΆβ¨βΎ,βΎΛβ©(0ββ₯Typeπ)ββmΓr-e}β(l<r) ββ(β₯π©)βi } - π¨ T _onAxes_ 0 (β¨1β©β₯Λ0βπ¨-ββ β’)βΈβΎββ’βΈβ₯π© + π¨ T _onAxes_ 0 ((1βββ0βπ¨-ββ β’)βΈβΎββ’β₯β₯) π© } Prefixes β {!1β€=π© β Takeβπ©ββ1+β π©} β β Prefixes β Take Dropβ{ - sβ(β π¨)(β£ββ’βΎΛ1β₯Λ0β-ββ )β’π© + sβ(β π¨)(β£ββ’βΎΛΒ·1βββ0β-ββ )β’π© ((sΓΒ―1βπ¨>0)+(-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+π©)β₯<a} + aβπ©β_pβ{π½ββ£`β¨aβ©βΎβ0+π©} posβ(π¨π½ β’)_p u negβ(π¨π½βΌβ’)_p-l (|β<β0βposβΏnegΛ)β0 n } β β© _repeat_ +β₯ β© Deshape β Reshape β β© {π½ββToArray} βΎ β _under_ |
