Functions on Small Domains |
| ⍕b | 1-40 | |
| ⍕int8 | 1-10 | |
| x⍕b | 1-300 | for x having 1 or 2 elements |
| x⍕int8 | 1-180 | for x having 2 elements, the first of which is non-zero |
| b∘.f x | 1-8 | |
| x*b | 1-90 | scalar x and boolean b |
|
Grade and Sort |
| ⍋p | 10-50 | for permutations |
| ⍋⍵ and ⍒⍵ | 1-1.7 | result in smallest datatype |
| ⍋⍵ and ⍒⍵ | 2-20 | for small-range arguments |
| ⍋b and {⍵[⍋⍵;]}b | 1-7 | also ⍒ instead of ⍋; for boolean b with a multiple of 8 columns |
| ⍋b and {⍵[⍋⍵;]}b | 1-5 | also ⍒ instead of ⍋; for boolean b with 1-element major cells |
| ⍋b and {⍵[⍋⍵;]}b | 5-27 | also ⍒ instead of ⍋; for boolean b with NOT a multiple of 8 columns |
|
Searching |
| 0∊b and 1∊b | 1-400 |
| b∧.=1 | 1-100 | also 1∧.=x, x∨.≠1, 1∨.≠x; also 0 instead of 1 |
| y∊x | 3-17 | where x and/or y have 1- or 2-byte items |
| y~x | 3-12 | where x and/or y have 1- or 2-byte items |
| y∩x | 3-12 | where x and/or y have 1- or 2-byte items |
| x∪y | 3-13 | where x and/or y have 1- or 2-byte items |
| ∪x | 3-16 | where x has 1- or 2-byte items |
|
Boolean |
| b⊥b | 3-∞ | equivalent to +/∧\⌽b, the number of trailing 1s in b |
| f/b | 1800-87e3 | f is one of < ≤ > ≥ ⍱ ⍲ |
| ∧/b and ∨/b | 1-∞ |
| +/b | 1-8 |
| ∧.∧, ∨.∨ | 5-∞ | for boolean vector arguments |
| x≡y, x≢y | 1-8.7 | 64-bit floats or complex arguments |
| x≡y, x≢y | 1-1.4 | non float simple arguments |
| ⍺+.×⍵ | 1-11 | boolean vector ⍺ and boolean array ⍵; also +.∧ |
| ⍺+.f ⍵ | 4 | boolean array ⍺ and boolean vec ⍵, for f one of × ∧ > < ≠ ∨ ⍱ = ≥ ≤ ⍲ |
| ⍉bm | 1.2 | POWER8 only, transposing a matrix with multiple of 8 rows and columns |
|
Structural |
| ↑x | 5-12 | for elements with the same 1↓shape |
| ↓x | 1-1.75 | AKA ⊂⍤1⊢x |
| ⊂⍤r⊢x | 1-1.75 | AKA ⊂[(-r)↑⍳⍴⍴x]x |
| ↓[a]x | 1.5-5 |
| ,/y | 1-∞ | for arguments with arrays with rank > 1 |
| n,/[a]x | 1-50 | for simple array x |
| x∘.,y | 2-4 |
| ⌽[a]x | 1-3.7 |
|
Selection |
| b(≢¨⊂)x | 5-14 | partition pseudo operator |
| b(f/¨⊂)x | 2.7-11 | partition pseudo operator, for f one of + × ⌈ ⌊ ∧ ∨ ≠ = |
| x⍳⍤1 0⊢y | 13 |
| x⌷⍤r⊢y | 1-370 | where the effective left rank is 0 |
| b[;…;i] and b[i] | 1-4 | boolean column indexing and boolean vector indexing |
| x[i;…;] | 2-18 | row (major cell) indexing AKA (⊂i)⌷x AKA i⌷⍤0 15⊢x |
| {⍺,f⌿⍵}⌸ and {⍺(f⌿⍵)}⌸ | 10 | for f one of + ⌈ ⌊ = ≠ ∨ ∧ |
| f⍤r | 1-1.5 | general case of rank operator on small arguments |
| f⌸ | 1-1.8 | general case of key operator on small arguments and/or in monadic case |
|
Arithmetic and Other |
| x+.y | 3.3 | |
| 2 f/ x | 1.2-4 | for vector x and f one of + - × ⌈ ⌊ = ≠ < ≤ ≥ = ∨ ∧ ⍲ ⍱ |
| n⌈/[a]x, n⌊/[a]x | 1.5-6 |
| +z, -z, y+z, y-z, ○z | 1-6 | complex arguments; greatest speed-ups are only on Linux |
| x⊥y | 1-26 | special case for scalar or vector x |
| x⊤y | 1-3.3 | special case for integer vector x and integer y |
| f\[a]x | 2-20 | f is + × (deferred from 14.0) |
| -\[a]x and ÷\[a]x | 1-∞ |
| ⍺⍕⍵ and ⍺ ⎕FMT ⍵ | varies | E F and I formats, non-DECF data |
| ÷⍵ | 1-1.1 | for non .NET systems only |
| ≡⍵ | 2-∞ |
| f.g | 1-1.6 | general case of inner product |
| f¨ | 150 | f is any monadic or dyadic scalar function |
| ≢¨⍵ | 25 |
| f/¨⍵ | 1-16 | f one of + ⌈ ⌊ ∧ ∨ = ≠ |
| ⌈/⍵ and ⌊/⍵ | 1-29 | for non-vector ⍵ |
| +/x | 6-35 | for integer x |
| ?m⍴n | 1.1-1.4 | result is smallest datatype based on n |