Signum

From APL Wiki
Revision as of 14:58, 27 March 2020 by Marshall (talk | contribs)
Jump to navigation Jump to search

Signum (×), Sign, Sign of, or Direction is a monadic primitive function which returns the sign of a real or complex number. That is, it returns 0 when given an argument of 0, and otherwise returns a number with magnitude 1 given by dividing the argument by its own magnitude.

Examples

The three possible results of Signum on a real argument are 0, 1, and ¯1.

      × ¯3 0 5
¯1 0 1

In dialects with complex numbers, Signum is a somewhat more complicated function, and may return any unit complex number.

      × 3j4
0.6J0.8

The result is still equal to the original number divided by its magnitude:

      | 3j4
5
      3j4 ÷ | 3j4
0.6J0.8

The magnitude of the result for a non-zero argument is always 1.

      | × 3j4 ¯2j1 6j¯7
1 1 1

Zero divided by zero

The identity ×z   z÷|z holds only when z is not zero in most APLs. In "Zero Divided by Zero"[1], Eugene McDonnell gave this identity as a reason to define 0÷0 to be equal to 0. In J, which took McDonnell's suggestion, the identity always holds.

External links

Documentation

References

APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare RootRound
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentityStopSelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndexCartesian ProductSort
Selector Index generatorGradeIndex OfInterval IndexIndicesDealPrefix and suffix vectors
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-BeamSpawnFunction axisIdentity (Null, Ident)
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)Identity (Lev, Dex)
Quad names Index originComparison toleranceMigration levelAtomic vector