diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-03-25 22:38:49 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-03-25 22:38:49 -0400 |
| commit | 7be65886036969a93efd06d77f59730a157c0498 (patch) | |
| tree | 5c18760cd84f6d6797cc796a81005802cb42062c /src | |
| parent | c273d7e00774cc145e639d4302f7167fb43faf19 (diff) | |
Use characters for glyph searches
Diffstat (limited to 'src')
| -rw-r--r-- | src/r.bqn | 132 |
1 files changed, 67 insertions, 65 deletions
@@ -424,16 +424,6 @@ _onAxes_←{ + ↩ + _perv - ↩ - _perv ¬ ← 1+- -identity ← {(0⊑𝕨)˙⊸=◶𝕩‿(1⊑𝕨)}´ ⟨ - +‿0 , -‿0 - ×‿1 , ÷‿1 - ⋆‿1 , ¬‿1 - ⌊‿∞ , ⌈‿¯∞ - ∨‿0 , ∧‿1 - ≠‿0 , =‿1 - >‿0 , ≥‿1 - "´: Identity not found"!0˙ -⟩ HomFil ← {((𝕎0) Fill 𝕏)⊘𝕏}⍟(+´⟨=,≠,≡,≢⟩=⊣) Reshape←{ @@ -714,6 +704,23 @@ JoinPrim ← ∾ ⊒ ← OccurrenceCount⊘ ProgressiveIndexOf ⍷ ← ∊⊸/ ⊘ Find +_glyphLookup_ ← { + (0+´·∧`𝕗≠{Glyph𝕩})⊑(∾´𝕘)˙ +} +_lookup_ ← { + s ← 2×↕(≠𝕘)÷2 + (s⊏𝕘) _glyphLookup_ ((1+s)⊏𝕘)‿𝕗 +} +Identity ← {𝕏0} ("´: Identity not found"!0˙) _lookup_ ⟨ + '+',0 , '-',0 + '×',1 , '÷',1 + '⋆',1 , '¬',1 + '⌊',∞ , '⌈',¯∞ + '∨',0 , '∧',1 + '≠',0 , '=',1 + '>',0 , '≥',1 +⟩ + IA ← "⁼: Inverse failed"⊸! IX ← "⁼: Inverse does not exist"⊸! INF← "⁼: Inverse not found"!0˙ @@ -732,66 +739,61 @@ GroupInv ← { IA ∧´Nat⌜𝕨 (⊔𝕨) ⍋⊸⊏○∾ 𝕩 } -_lookup_ ← { - s ← 2×↕(≠𝕘)÷2 - (⊑(s⊏𝕘)⊐<) ⊑ (((1+s)⊏𝕘)∾⟨𝕗⟩)˙ -} PrimInverse ← INF _lookup_ ⟨ - +, +⊘(-˜) - -, - - ×, ⊢⊘(÷˜) - ÷, ÷ - ⋆, Log _perv - √, ט⊘(⋆˜) - ∧, ⊢_invChk_∧⊘(÷˜) - ∨, ⊢_invChk_∨⊘(-˜÷1-⊣) - ¬, ¬ - <, {IX IsArray𝕩⋄IX 0==𝕩⋄⊑𝕩}⊘(IA∘0) - ⊢, ⊢ - ⊣, ⊢⊘(⊢⊣IX∘≡) - ∾, IA∘0 ⊘ {d←𝕩-○=𝕨⋄IX(0⊸≤∧≤⟜1)d⋄l←d◶1‿≠𝕨⋄IX l≤≠𝕩⋄IX 𝕨≡d◶⟨⊏,l⊸↑⟩𝕩⋄l↓𝕩} - ≍, {IX 1=≠𝕩⋄⊏𝕩} ⊘ {IX 2=≠𝕩⋄IX 𝕨≡⊏𝕩⋄1⊏𝕩} - ↑, ¯1⊸⊑_invChk_↑ ⊘ (IA∘0) - ↓, ⊑_invChk_↓ ⊘ (IA∘0) - ↕, ≢_invChk_↕ ⊘ (IA∘0) # Should trace edge and invChk - ⌽, ⌽ ⊘ (-⊸⌽) - ⍉, TransposeInv ⊘ ReorderAxesInv - /, {IA 1==𝕩⋄IA∧´Nat⌜𝕩⋄IX(∧´¯1⊸↓≤1⊸↓)𝕩⋄GroupLen𝕩}⊘(IA∘0) - ⊔, GroupIndsInv ⊘ GroupInv + '+', +⊘(-˜) + '-', - + '×', ⊢⊘(÷˜) + '÷', ÷ + '⋆', Log _perv + '√', ט⊘(⋆˜) + '∧', ⊢_invChk_∧⊘(÷˜) + '∨', ⊢_invChk_∨⊘(-˜÷1-⊣) + '¬', ¬ + '<', {IX IsArray𝕩⋄IX 0==𝕩⋄⊑𝕩}⊘(IA∘0) + '⊢', ⊢ + '⊣', ⊢⊘(⊢⊣IX∘≡) + '∾', IA∘0 ⊘ {d←𝕩-○=𝕨⋄IX(0⊸≤∧≤⟜1)d⋄l←d◶1‿≠𝕨⋄IX l≤≠𝕩⋄IX 𝕨≡d◶⟨⊏,l⊸↑⟩𝕩⋄l↓𝕩} + '≍', {IX 1=≠𝕩⋄⊏𝕩} ⊘ {IX 2=≠𝕩⋄IX 𝕨≡⊏𝕩⋄1⊏𝕩} + '↑', ¯1⊸⊑_invChk_↑ ⊘ (IA∘0) + '↓', ⊑_invChk_↓ ⊘ (IA∘0) + '↕', ≢_invChk_↕ ⊘ (IA∘0) # Should trace edge and invChk + '⌽', ⌽ ⊘ (-⊸⌽) + '⍉', TransposeInv ⊘ ReorderAxesInv + '/', {IA 1==𝕩⋄IA∧´Nat⌜𝕩⋄IX(∧´¯1⊸↓≤1⊸↓)𝕩⋄GroupLen𝕩}⊘(IA∘0) + '⊔', GroupIndsInv ⊘ GroupInv ⟩ ⌜ ↩ {𝕨𝔽⌜_fillByPure_𝔽○ToArray𝕩} _inv_ ← {𝕘⋄𝕨𝔽𝕩} AtopInverse ← {(𝕏𝕎)⊘(𝕏⟜𝕎)}○{Inverse𝕩} Mod1Inverse ← INF˙ _lookup_ ⟨ - ˜, INF _lookup_ ⟨ - +, ÷⟜2⊘(-˜) - -, IA∘0⊘+ - ×, √⊘(÷˜) - ÷, IA∘0⊘× - ⋆, IA∘0⊘√ - √, IA∘0⊘(÷Log) - ∧, √⊘(÷˜) - ∨, (¬√∘¬)⊘(-˜÷1-⊣) - ¬, IA∘0⊘(+-1˙) + '˜', INF _lookup_ ⟨ + '+', ÷⟜2⊘(-˜) + '-', IA∘0⊘+ + '×', √⊘(÷˜) + '÷', IA∘0⊘× + '⋆', IA∘0⊘√ + '√', IA∘0⊘(÷Log) + '∧', √⊘(÷˜) + '∨', (¬√∘¬)⊘(-˜÷1-⊣) + '¬', IA∘0⊘(+-1˙) ⟩ - ¨, {𝕏⁼¨ ⊣·IX 0<≡∘⊢} - ⌜, {𝕏⁼⌜⊘(IA∘0) ⊣·IX 0<≡∘⊢} - ˘, {(IX∘IsArray⊸⊢𝕏⁼)˘ ⊣·IX 0<=∘⊢} - `, {(⊏∾¯1⊸↓𝕏1⊸↓)⍟(1<≠)⊘(»𝕏⊢)⊣·IX 0<=∘⊢}∘{𝕏⁼¨} + '¨', {𝕏⁼¨ ⊣·IX 0<≡∘⊢} + '⌜', {𝕏⁼⌜⊘(IA∘0) ⊣·IX 0<≡∘⊢} + '˘', {(IX∘IsArray⊸⊢𝕏⁼)˘ ⊣·IX 0<=∘⊢} + '`', {(⊏∾¯1⊸↓𝕏1⊸↓)⍟(1<≠)⊘(»𝕏⊢)⊣·IX 0<=∘⊢}∘{𝕏⁼¨} ⟩ { 0⊸⊑ {𝕏𝕨}⟜𝔽 1⊸⊑ } IsConstant ← (3≤Type)◶⟨1 ⋄ 4‿˙ ≡ 0‿¯1⊏{Decompose𝕩}⟩ Mod2Inverse ← INF˙ _lookup_ ⟨ - _inv_, {𝕏_inv_𝕎} - ∘, AtopInverse - ○, {Fi←𝕎⁼⋄𝕏⁼ Fi⊘(𝕏⊸Fi)} - ⌾, {𝕎⁼⌾𝕏} # Need to verify for computation Under - ⍟, Int∘⊢◶⟨IA∘0˙,0⊸≤◶{𝕎⍟(-𝕩)_invChk_(𝕎⍟𝕩)}‿{𝕎⍟(-𝕩)}⟩ - ⊘, {(𝕎⁼)⊘(𝕏⁼)} - ⊸, IsConstant∘⊣ ⊣◶{INF⊘𝕏}‿⊢ {𝕎⊸(𝕏⁼)} - ⟜, {(𝕨IsConstant∘⊢◶⟨IA∘0˙,{𝕩𝕎˜⁼⊢}⟩𝕩)⊘(𝕏⁼𝕎⁼)} -⟩ { + '∘', AtopInverse + '○', {Fi←𝕎⁼⋄𝕏⁼ Fi⊘(𝕏⊸Fi)} + '⌾', {𝕎⁼⌾𝕏} # Need to verify for computation Under + '⍟', Int∘⊢◶⟨IA∘0˙,0⊸≤◶{𝕎⍟(-𝕩)_invChk_(𝕎⍟𝕩)}‿{𝕎⍟(-𝕩)}⟩ + '⊘', {(𝕎⁼)⊘(𝕏⁼)} + '⊸', IsConstant∘⊣ ⊣◶{INF⊘𝕏}‿⊢ {𝕎⊸(𝕏⁼)} + '⟜', {(𝕨IsConstant∘⊢◶⟨IA∘0˙,{𝕩𝕎˜⁼⊢}⟩𝕩)⊘(𝕏⁼𝕎⁼)} +⟩ { inv˙⊸=◶⟨𝔽,{𝕏_inv_𝕎}˙⟩ } { 0‿2⊸⊏ {𝕏´𝕨}⟜𝔽 1⊸⊑ } TrainInverse ← { @@ -810,13 +812,13 @@ FuncInverse ← (⊑ ⊣◶⟨ Inverse ← Type◶(3‿1‿2/{⊢⊣𝕩IX∘≡⊢}‿FuncInverse‿("Cannot invert modifier"!0˙)) ⁼ ↩ {𝕗 (≢∧INF˙⊸≢)◶0‿(5‿_inv_≢0‿¯2⊏Decompose∘⊢)◶⊢‿{𝕏_inv_(𝕎_invChk_𝕏)} Inverse 𝕗} -structPrimClass ← {((/∾≠)≠¨𝕩)⊑˜·⊑(∾𝕩)⊐<} ⥊¨ ⟨ - ⊢‿⊣‿˜‿∘‿○‿⊸‿⟜‿⊘‿◶ - =‿≠‿≢ - < - ≍ - ↕‿/‿»‿«‿⊔ - ⥊‿↑‿↓‿⌽‿⍉‿⊏‿⊑ +structPrimClass ← {(∾𝕩)_glyphLookup_((/≍○<≠)≠¨𝕩)} ⥊¨ ⟨ + '⊢'‿'⊣'‿'˜'‿'∘'‿'○'‿'⊸'‿'⟜'‿'⊘'‿'◶' + '='‿'≠'‿'≢' + '<' + '≍' + '↕'‿'/'‿'»'‿'«'‿'⊔' + '⥊'‿'↑'‿'↓'‿'⌽'‿'⍉'‿'⊏'‿'⊑' # > # ∾ # ˘⎉¨⌜ |
