aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-08-04 17:54:38 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-08-04 19:11:46 -0400
commit00a4a96a72a5c23329b4f70819451edc6258bfa1 (patch)
tree5df60b61df88cb62ed1769cd0a75cb336b0fa1a9
parent7fe1ddad0fff7c2952cc98c1d0f8a4c263ead0fa (diff)
Faster singleton-cell comparison for ⍋⍒
-rw-r--r--impl.bqn7
1 files changed, 3 insertions, 4 deletions
diff --git a/impl.bqn b/impl.bqn
index b09e8081..8fdb7570 100644
--- a/impl.bqn
+++ b/impl.bqn
@@ -352,15 +352,14 @@ _cmpLen ← {
}
_getCellCmp ← {
Ci←𝔽⋄l←𝕨⋄c←𝕩
- {
+ Cc←{
a←𝕨⋄b←𝕩
S←(l⊸=)◶{S∘(1+𝕩)⍟(0⊸=)a Ci○(𝕩⊸+)b}‿c
S 0
}
+ (1≠l)⊑(𝕩⍟(0⊸=)𝔽)‿Cc
}
-Cmp ← ∨○IsArray◶{ # No arrays
- 𝕨(>-<)𝕩 # Assume they're numbers
-}‿{ # At least one array
+Cmp ← ∨○IsArray◶(>-<)‿{
lc←𝕨(𝕨-○IsArray𝕩)_cmpLen○≢𝕩
cc ← (⊑⟜(⥊𝕨))⊸Cmp⟜(⊑⟜(⥊𝕩)) _getCellCmp´ lc
Cc˜0