2,954
edits
Miraheze>Adám Brudzewsky m (Text replacement - "</code>" to "</source>") |
m (Array characteristics category) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
The [[bound]] of an array is the number of [[ | The [[bound]] of an array is the number of [[element]]s it contains, or equivalently the length ([[Tally]]) of its [[ravel]] vector or the product (<source lang=apl inline>×/</source>) of its [[shape]]. | ||
The bound can be derived axiomatically as a function of the [[shape]] from two rules: | The bound can be derived axiomatically as a function of the [[shape]] from two rules: | ||
* The bound of a [[vector]] is its length, and | * The bound of a [[vector]] is its length, and | ||
* If two shapes are [[ | * If two shapes are [[catenate]]d (for instance by an [[outer product]]), the resulting bound is the product of their individual bounds. | ||
A scalar has [[rank]] 0, or empty shape. From the above axioms we can deduce that it has bound 1: catenating <source lang=apl inline>⍬</source> with some other shape leaves that shape unchanged, so multiplying any bound by a scalar's bound cannot change it either. Therefore a scalar's bound must be the multiplicative identity, 1. | A scalar has [[rank]] 0, or empty shape. From the above axioms we can deduce that it has bound 1: catenating <source lang=apl inline>⍬</source> with some other shape leaves that shape unchanged, so multiplying any bound by a scalar's bound cannot change it either. Therefore a scalar's bound must be the multiplicative identity, 1. | ||
Combining [[Axis|axes]] of an array, for instance by using [[Table]] or [[Ravel]] with [[Function axis|axis]], leaves the array's bound unchanged, despite changing its shape, rank, and possibly [[Tally]]. | Combining [[Axis|axes]] of an array, for instance by using [[Table]] or [[Ravel]] with [[Function axis|axis]], leaves the array's bound unchanged, despite changing its shape, rank, and possibly [[Tally]]. | ||
{{APL features}}[[Category:Array characteristics]] |