diff --git a/a.cd b/a.cd index ada5425..9f808b8 100644 --- a/a.cd +++ b/a.cd @@ -90,7 +90,7 @@ flo←⊢mov⍨0⌊1∘⌷ cel←sub flo∘sub min←{z←⍺ geq ⍵ ⋄ cry((⊃⍺)⌊⊃⍵)⍪1↓(⍺×⍤15 ¯1⍨~z)+z×⍤15 ¯1⊢⍵} max←{z←⍺ leq ⍵ ⋄ cry((⊃⍺)⌊⊃⍵)⍪1↓(⍺×⍤15 ¯1⍨~z)+z×⍤15 ¯1⊢⍵} -abs←max∘sub⍨ +abs←{isr⍵:max∘sub⍨⍵ ⋄ (¯3∘+∘≢ pla sqr∘rea∘(mul∘cnj⍨⊢pla⍨4×∘⌊4÷⍨≢))⍵} eps←{⍺←⊢ ⋄ 1≡⍺1:∊⍤¯1⊢⍵ ⋄ ⍉∨/(⍉⍺)eql⍤1⍤1 15⍉⍵} ind←{1(⍳⍨)⍤1⍉(⍺⍉⍨¯1⌽⍳⍴⍴⍺){∧/,(⍉⍺)eql(⍉⍵)}⍤(¯1+⍴⍴⍺)⍤((¯1+⍴⍴⍺),15)⊢(⍵⍉⍨¯1⌽⍳⍴⍴⍵)} rol←{(~isr⍵)∨∨/,(neg∨0≠1∘⌷×~∘zer)⍵:⎕EM 11 ⋄ z←(0∘⌷⍪¯3∘+∘≢⍪0⍪3↓∘?⍴⍴bas)⍵ diff --git a/tests/abs_tests.dyalog b/tests/abs_tests.dyalog index be277f6..b088547 100644 --- a/tests/abs_tests.dyalog +++ b/tests/abs_tests.dyalog @@ -12,5 +12,13 @@ ABS∆05_TEST←{_←X 65552⍪0 0⍪(8⍴16)⊤1 ⋄ M.abs 65552⍪0 1⍪(8⍴1 ABS∆06_TEST←{_←X 16 0 0⍪(8⍴16)⊤3678667686 ⋄ M.abs 16 0 0⍪(8⍴16)⊤3678667686} ABS∆07_TEST←{_←X 16⍪0 0⍪(8⍴16)⊤2489643441 ⋄ M.abs 16 0 1⍪(8⍴16)⊤¯2489643441} ABS∆08_TEST←{_←X 16⍪0⍪0⍪(8⍴16)⊤(2 2⍴2489643441 335219058 655842322 3036358490) ⋄ M.abs 16⍪0⍪(2 2⍴1 0 0 1)⍪(8⍴16)⊤2 2⍴¯2489643441 335219058 655842322 ¯3036358490} - +ABS∆09_TEST←{_←X 10 29 0,⍎¨'11512167476196652343418415356617' ⋄ M.abs 0J10 0 0,(32⍴0J10)⊤97J62} +ABS∆10_TEST←{_←X 10 M.mov 10 0 0,(12⍴10)⊤94 ⋄ M.abs 0J10 0 0,(12⍴0J10)⊤0J94} +ABS∆11_TEST←{_←X 10 0 0,(12⍴10)⊤0 ⋄ M.abs 0J10 0 0,(12⍴0J10)⊤0} +ABS∆12_TEST←{_←X 0 30 29 M.mov 10⍪0 0 29⍪0⍪0,(¯32↑9 4),[.5]⍎¨'11512167476196652343418415356617' ⋄ M.abs 0J10⍪0⍪0⍪(32⍴0J10)⊤0 0J94 97J62} :EndNamespace + + + + +