Signum: Difference between revisions

Jump to navigation Jump to search
289 bytes added ,  21:32, 10 September 2022
m
Text replacement - "<source" to "<syntaxhighlight"
(Revert terminology infobox)
m (Text replacement - "<source" to "<syntaxhighlight")
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== Examples ==
== Examples ==


The three possible results of Signum on a real argument are <source lang=apl inline>0</source>, <source lang=apl inline>1</source>, and <source lang=apl inline>¯1</source>.
The three possible results of Signum on a real argument are <syntaxhighlight lang=apl inline>0</syntaxhighlight>, <syntaxhighlight lang=apl inline>1</syntaxhighlight>, and <syntaxhighlight lang=apl inline>¯1</syntaxhighlight>.
<source lang=apl>
<syntaxhighlight lang=apl>
       × ¯3 0 5
       × ¯3 0 5
¯1 0 1
¯1 0 1
</source>
</syntaxhighlight>
In dialects with [[complex number]]s, Signum is a somewhat more complicated function, and may return any unit complex number.
In dialects with [[complex number]]s, Signum is a somewhat more complicated function, and may return any unit complex number.
<source lang=apl>
<syntaxhighlight lang=apl>
       × 3j4
       × 3j4
0.6J0.8
0.6J0.8
</source>
</syntaxhighlight>
The result is still equal to the original number [[divide]]d by its [[magnitude]]:
The result is still equal to the original number [[divide]]d by its [[magnitude]]:
<source lang=apl>
<syntaxhighlight lang=apl>
       | 3j4
       | 3j4
5
5
       3j4 ÷ | 3j4
       3j4 ÷ | 3j4
0.6J0.8
0.6J0.8
</source>
</syntaxhighlight>
The [[magnitude]] of the result for a non-zero argument is always 1.
The [[magnitude]] of the result for a non-zero argument is always 1.
<source lang=apl>
<syntaxhighlight lang=apl>
       | × 3j4 ¯2j1 6j¯7
       | × 3j4 ¯2j1 6j¯7
1 1 1
1 1 1
</source>
</syntaxhighlight>


== Zero divided by zero ==
== Zero divided by zero ==


The identity <source lang=apl inline>×z</source> {{←→}} <source lang=apl inline>z÷|z</source> holds only when <source lang=apl inline>z</source> is not zero in most APLs. In "Zero Divided by Zero"<ref>[[Eugene McDonnell|McDonnell, Eugene]]. [https://www.jsoftware.com/papers/eem/0div0.htm "Zero Divided by Zero"]. [[APL76]].</ref>, [[Eugene McDonnell]] gave this identity as a reason to define <source lang=apl inline>0÷0</source> to be equal to <source lang=apl inline>0</source>. In [[J]], which took McDonnell's suggestion, the identity always holds. [[Dyalog APL]] and [[NARS2000]] allow the choosing [[division method]] though the default remains 1.
The identity <syntaxhighlight lang=apl inline>×z</syntaxhighlight> {{←→}} <syntaxhighlight lang=apl inline>z÷|z</syntaxhighlight> holds only when <syntaxhighlight lang=apl inline>z</syntaxhighlight> is not zero in most APLs. In "Zero Divided by Zero"<ref>[[Eugene McDonnell|McDonnell, Eugene]]. [https://www.jsoftware.com/papers/eem/0div0.htm "Zero Divided by Zero"]. [[APL76]].</ref>, [[Eugene McDonnell]] gave this identity as a reason to define <syntaxhighlight lang=apl inline>0÷0</syntaxhighlight> to be equal to <syntaxhighlight lang=apl inline>0</syntaxhighlight>. In [[J]], which took McDonnell's suggestion, the identity always holds. [[Dyalog APL]] and [[NARS2000]] allow choosing [[division method]] though the default remains 1.


== See also ==
== See also ==
Line 41: Line 41:
* [http://microapl.com/apl_help/ch_020_020_050.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_050.htm APLX]
* J [https://www.jsoftware.com/help/dictionary/d110.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/star NuVoc]
* J [https://www.jsoftware.com/help/dictionary/d110.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/star NuVoc]
* [https://mlochbaum.github.io/BQN/doc/arithmetic.html#basic-arithmetic BQN]


== References ==
== References ==
<references />
<references />
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar monadic functions]]
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar monadic functions]]

Navigation menu