4,509
edits
(→Documentation: BQN) |
m (Text replacement - "<source" to "<syntaxhighlight") Tags: Mobile edit Mobile web edit |
||
Line 1: | Line 1: | ||
{{Built-in|Minimum|⌊}}, '''Min''', or '''Lesser of''' is a [[dyadic]] [[scalar function]] which returns the [[Less than|smaller]] of its two [[argument]]s. The name "Minimum" is sometimes also used for the Minimum [[Reduce]] < | {{Built-in|Minimum|⌊}}, '''Min''', or '''Lesser of''' is a [[dyadic]] [[scalar function]] which returns the [[Less than|smaller]] of its two [[argument]]s. The name "Minimum" is sometimes also used for the Minimum [[Reduce]] <syntaxhighlight lang=apl inline>⌊/</source>, which returns the smallest element of a [[vector]] (this usage is related to the [[wikipedia:minimum|minimum]] of a function). Minimum is paired with [[Maximum]], which returns the greater argument rather than the smaller, and shares the glyph <syntaxhighlight lang=apl inline>⌊</source> with the [[Floor]] function. It is not subject to [[comparison tolerance]], since the result will be exactly equal to one argument, and there is no reason to choose a larger argument even if the two arguments are [[tolerant comparison|tolerantly]] equal. As a [[Boolean function]], Minimum is identical to [[And]]. | ||
== Examples == | == Examples == | ||
Minimum finds the smaller of two numbers: | Minimum finds the smaller of two numbers: | ||
< | <syntaxhighlight lang=apl> | ||
2.4 ⌊ 1.9 | 2.4 ⌊ 1.9 | ||
1.9 | 1.9 | ||
</source> | </source> | ||
Together with [[Maximum]], it can clamp an array of numbers to a range (closed interval), here from 0 to 1: | Together with [[Maximum]], it can clamp an array of numbers to a range (closed interval), here from 0 to 1: | ||
< | <syntaxhighlight lang=apl> | ||
0 ⌈ 1 ⌊ ¯0.2 ¯0.1 0.3 0.8 1 1.3 | 0 ⌈ 1 ⌊ ¯0.2 ¯0.1 0.3 0.8 1 1.3 | ||
0 0 0.3 0.8 1 1 | 0 0 0.3 0.8 1 1 | ||
</source> | </source> | ||
Because the [[complex number]]s do not form an [[wikipedia:ordered field|ordered field]], attempting to take the minimum with a complex argument yields a [[DOMAIN ERROR]]. | Because the [[complex number]]s do not form an [[wikipedia:ordered field|ordered field]], attempting to take the minimum with a complex argument yields a [[DOMAIN ERROR]]. | ||
< | <syntaxhighlight lang=apl> | ||
3 ⌊ 3j1 | 3 ⌊ 3j1 | ||
DOMAIN ERROR | DOMAIN ERROR | ||
Line 24: | Line 24: | ||
Minimum [[Reduce]] finds the smallest [[element]] in an entire [[vector]]: | Minimum [[Reduce]] finds the smallest [[element]] in an entire [[vector]]: | ||
< | <syntaxhighlight lang=apl> | ||
⌊/ 4 3 2 3 1 5 7 | ⌊/ 4 3 2 3 1 5 7 | ||
1 | 1 | ||
</source> | </source> | ||
To find the [[index]] of the minimum, [[Index Of]] can be used to search for it. A shorter, but usually slower, method is to take the [[First]] of the vector's [[Grade]]. | To find the [[index]] of the minimum, [[Index Of]] can be used to search for it. A shorter, but usually slower, method is to take the [[First]] of the vector's [[Grade]]. | ||
< | <syntaxhighlight lang=apl> | ||
{⍵⍳⌊/⍵} 4 3 2 3 1 5 7 | {⍵⍳⌊/⍵} 4 3 2 3 1 5 7 | ||
5 | 5 | ||
Line 37: | Line 37: | ||
The two solutions may differ when [[comparison tolerance]] is not zero, because Index Of uses tolerant comparison but Grade does not. The first solution will return a smaller index if an element that is tolerantly but not exactly equal to the minimum is found at that index. | The two solutions may differ when [[comparison tolerance]] is not zero, because Index Of uses tolerant comparison but Grade does not. The first solution will return a smaller index if an element that is tolerantly but not exactly equal to the minimum is found at that index. | ||
Reducing over an empty axis yields the largest representable number, as that is the identity element for Minimum. This value is usually < | Reducing over an empty axis yields the largest representable number, as that is the identity element for Minimum. This value is usually <syntaxhighlight lang=apl inline>∞</source> (for dialects that support [[infinity|infinities]]) or <syntaxhighlight lang=apl inline>1.797693135E308</source> (with 64-bit [[float]]s) or <syntaxhighlight lang=apl inline>1E6145</source> (with 128-bit [[decimal float]]s). | ||
== External links == | == External links == |