∇ magic←{ (⍵=2)∨(⍵<1)∨(1|⍵)≠0: 'data error' (2|⍵)=1: ⌷ odd ⍵ (4|⍵)=0: ⌷ eeven ⍵ ⌷ even ⍵ } ∇ ∇ odd←{ (⍵<1)∨(2|⍵)≠1: 'data error' ⍵=1: ⌷a←1 1⍴1 a←t\[2](t←0,((⍵-2)⍴1),0)\[1](⍵+⍵-2)+∇ ⍵-2 a[⍵;]←c+(-t[1]),(m←(-k),t[4],⍵+1+k←(c-⍵+⍵-1)+(0,¯1↓k)+k←⍳(⍵-3)÷2),-(t←((c←(1+⍵×⍵)÷2)-⍵+2)+⍳ 4)[3] a[1;]←c+t[3],(-m),t[1] a[m←1↓⍳ ⍵-1;⍵]←c+t←(1+k),t[2],-k+⍵+2 a[m;1]←c-t ⌷a } ∇ ∇ even←{ (⍵<6)∨(4|⍵)≠2: 'data error' a←t\[2](t←0,((⍵-2)⍴1),0)\[1](⍵+⍵-2)+eeven ⍵-2 a[1;]←(c←⍵+t-1)+(t-1),(k←(-k+m),(k←(1+k)+⍳ m),(-k←k+⍵),(-k←2+k),(1+k),(-k←t-(⍵+4)÷2),(k+m),(-k←(t-⍵)+⍳ m←(⍵-6)÷4)),t←(3+⍵×⍵-2)÷2 a[⍵;]←c+(-t),(-k),-t-1 a[m←1↓⍳ ⍵-1;⍵]←c+t←(-k+m),(¯1↓k),((¯1↑k←k+m+2)-2),(k←m-k),(¯1↓k),1+¯1↑k←(t-m-⍵÷2)+⍳ m←1+m a[m;1]←c-t ⌷a } ∇ ∇ eeven←{ (⍵<4)∨(4|⍵)≠0: 'data error' ⍵=4: ⌷a←4 4⍴16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 a←t\[2](t←0,((⍵-2)⍴1),0)\[1](⍵+⍵-2)+even ⍵-2 a[1;]←(c←⍵+t-1)+(t-1),(k←(-k+m-1),(¯1↓k←k+⍵+m-1),(¯1↓k←k+m),(-k←(t-⍵)+⍳ m←⍵÷4)),t←(3+⍵×⍵-2)÷2 a[⍵;]←c+(-t),(-k),-t-1 a[m←1↓⍳ ⍵-1;⍵]←c+t←(k+m),(-k←k+m+8),(3+t),(-2+t),(-1+t),(t-2),(t-3),(4-t),(-k←k+m),k←(t-m+m+5)+⍳ m←m-2 a[m;1]←c-t ⌷a } ∇