trusted
83
edits
(→Model: fix rank / frame asymmetries) |
(→Model: add asymmetries table) |
||
Line 139: | Line 139: | ||
⍺ ⍺⍺⍤c⍤k⊢⍵ | ⍺ ⍺⍺⍤c⍤k⊢⍵ | ||
} | } | ||
⎕IO←0 | |||
x←⍳2 | |||
y←2 3 2⍴⍳12 | |||
x+_FA_ 0 1⊢y | |||
0 1 | 0 1 | ||
2 3 | 2 3 | ||
Line 152: | Line 152: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Works in|[[Dyalog APL]]}} | {{Works in|[[Dyalog APL]]}} | ||
The <syntaxhighlight lang=apl inline>c←r{⍺≥0:⍺⌊⍵ ⋄ ⍵≤∣⍺:0⌈⍺+⍵ ⋄ ⍺+⍵}¨pp ⍝ cell ranks</syntaxhighlight> line of <syntaxhighlight lang=apl inline>_FA_</syntaxhighlight> addresses various asymmetries in computing cell rank. The table below shows the cell ranks corresponding to pairs of operand and argument ranks. | |||
{|class=wikitable | |||
! operand rank !! argument rank !! cell rank | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯5</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>0</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯3</syntaxhighlight> || <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>2</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>0</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|} | |||
The next table demonstrates the relations (in tacit code) among the operand ranks and corresponding argument ranks, given what the cell rank should be. | |||
{|class=wikitable | |||
! operand rank (o) !! relation between o and a !! argument rank (a) !! resultant cell rank | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯5</syntaxhighlight> || <syntaxhighlight lang=apl inline>0⌈+</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>0</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯3</syntaxhighlight> || <syntaxhighlight lang=apl inline>+</syntaxhighlight> || <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>2</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>¯3</syntaxhighlight> || <syntaxhighlight lang=apl inline>+</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>0</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>5</syntaxhighlight> || <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|- | |||
| <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> || <syntaxhighlight lang=apl inline>3</syntaxhighlight> | |||
|- | |||
|} | |||
[[Category:Leading axis theory]][[Category:Function characteristics]][[Category:Conformability]]{{APL features}} | [[Category:Leading axis theory]][[Category:Function characteristics]][[Category:Conformability]]{{APL features}} |