Difference between revisions of "Minimum"

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "http://help.dyalog.com" to "https://help.dyalog.com")
 
Line 43: Line 43:
 
=== Documentation ===
 
=== Documentation ===
  
* [http://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Minimum.htm Dyalog]
+
* [https://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Minimum.htm Dyalog]
 
* [http://microapl.com/apl_help/ch_020_020_120.htm APLX]
 
* [http://microapl.com/apl_help/ch_020_020_120.htm APLX]
 
* J [https://www.jsoftware.com/help/dictionary/d011.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/ltdot#dyadic NuVoc]
 
* J [https://www.jsoftware.com/help/dictionary/d011.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/ltdot#dyadic NuVoc]
  
 
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar dyadic functions]]
 
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar dyadic functions]]

Latest revision as of 14:35, 14 July 2020

Minimum (), Min, or Lesser of is a dyadic scalar function which returns the smaller of its two arguments. The name "Minimum" is sometimes also used for the Minimum Reduce /, which returns the smallest element of a vector (this usage is related to the minimum of a function). Minimum is paired with Maximum, which returns the greater argument rather than the smaller, and shares the glyph 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 tolerantly equal. As a Boolean function, Minimum is identical to And.

Examples

Minimum finds the smaller of two numbers:

      2.4  1.9
1.9

Together with Maximum, it can clamp an array of numbers to a range (closed interval), here from 0 to 1:

      0  1  ¯0.2 ¯0.1 0.3 0.8 1 1.3
0 0 0.3 0.8 1 1

Because the complex numbers do not form an ordered field, attempting to take the minimum with a complex argument yields a DOMAIN ERROR.

      3  3j1
DOMAIN ERROR
      33J1
       

Reduction

Minimum Reduce finds the smallest element in an entire vector:

      / 4 3 2 3 1 5 7
1

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.

      {⍳⌊/} 4 3 2 3 1 5 7
5
      ⊃⍋ 4 3 2 3 1 5 7
5

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 (for dialects that support infinities) or 1.797693135E308 (with 64-bit floats) or 1E6145 (with 128-bit decimal floats).

External links

Documentation


APL built-ins [edit]
Primitive functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentitySelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndex
Selector Index generatorGradeIndex OfInterval IndexIndicesDeal
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Primitive operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-beamSpawnFunction axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Atop, Over) ∙ Inner ProductPowerAtUnderRankDepthVariantStencilCut (J)
Quad names
Arrays Index originMigration levelAtomic vector
Functions Case convertUnicode convert
Operators SearchReplace