Subtract: Difference between revisions

Jump to navigation Jump to search
117 bytes added ,  10:58, 11 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
m (Text replacement - "<source" to "<syntaxhighlight")
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
Line 1: Line 1:
:''This page describes the dyadic arithmetic function. For negation of a single argument, see [[Negate]]. For subtraction of sets, see [[Without]].''
:''This page describes the dyadic arithmetic function. For negation of a single argument, see [[Negate]]. For subtraction of sets, see [[Without]].''


{{Built-in|Subtract|-}}, '''Minus''', '''Subtraction''', or '''Difference''' is a [[dyadic]] [[scalar function]] which gives the arithmetic [[wikipedia:Subtraction|difference]] of its [[argument]]s. Subtract shares the [[glyph]] <syntaxhighlight lang=apl inline>-</source> with the arithmetic function [[Negate]], and its result is the left argument [[plus]] the negation of the right.
{{Built-in|Subtract|-}}, '''Minus''', '''Subtraction''', or '''Difference''' is a [[dyadic]] [[scalar function]] which gives the arithmetic [[wikipedia:Subtraction|difference]] of its [[argument]]s. Subtract shares the [[glyph]] <syntaxhighlight lang=apl inline>-</syntaxhighlight> with the arithmetic function [[Negate]], and its result is the left argument [[plus]] the negation of the right.


== Examples ==
== Examples ==
Line 10: Line 10:
       × 3 - 2 3 4.5  ⍝ Sign of difference
       × 3 - 2 3 4.5  ⍝ Sign of difference
1 0 ¯1
1 0 ¯1
</source>
</syntaxhighlight>
The second example computes a [[wikipedia:Three-way comparison|three-way comparison]] of each pair of arguments, with a result of <syntaxhighlight lang=apl inline>1</source> to indicate the left argument was greater, <syntaxhighlight lang=apl inline>0</source> to indicate the arguments are [[Comparison tolerance|intolerantly]] equal, and <syntaxhighlight lang=apl inline>¯1</source> to indicate the right argument was greater.
The second example computes a [[wikipedia:Three-way comparison|three-way comparison]] of each pair of arguments, with a result of <syntaxhighlight lang=apl inline>1</syntaxhighlight> to indicate the left argument was greater, <syntaxhighlight lang=apl inline>0</syntaxhighlight> to indicate the arguments are [[Comparison tolerance|intolerantly]] equal, and <syntaxhighlight lang=apl inline>¯1</syntaxhighlight> to indicate the right argument was greater.


== Properties ==
== Properties ==
Line 17: Line 17:
See also [[Add#Properties]].
See also [[Add#Properties]].


Subtraction is anti-commutative: swapping the arguments negates the result, or using [[Commute]], <syntaxhighlight lang=apl inline>-⍨</source> {{←→}} <syntaxhighlight lang=apl inline>--</source>.
Subtraction is anti-commutative: swapping the arguments negates the result, or using [[Commute]], <syntaxhighlight lang=apl inline>-⍨</syntaxhighlight> {{←→}} <syntaxhighlight lang=apl inline>--</syntaxhighlight>.


=== Reduction and scan ===
=== Reduction and scan ===
Line 27: Line 27:
       -/ 6 1 2
       -/ 6 1 2
7
7
</source>
</syntaxhighlight>
In the absense of rounding error we have <syntaxhighlight lang=apl inline>-/v</source> {{←→}} <syntaxhighlight lang=apl inline>+/v×(⍴v)⍴1 ¯1</source> for a [[vector]] <syntaxhighlight lang=apl inline>v</source>.
In the absense of rounding error we have <syntaxhighlight lang=apl inline>-/v</syntaxhighlight> {{←→}} <syntaxhighlight lang=apl inline>+/v×(⍴v)⍴1 ¯1</syntaxhighlight> for a [[vector]] <syntaxhighlight lang=apl inline>v</syntaxhighlight>.


An interesting property of the alternating difference is that it can be used as a [[wikipedia:Divisibility rule|divisibility test]] for division by 11, a counterpart to the better-known test for divisibility by 9. A number is divisible by 11 if and only if the sum of its digits is divisible by 11, so repeatedly taking the alternating sum of the digits determines divisibility by 11.
An interesting property of the alternating difference is that it can be used as a [[wikipedia:Divisibility rule|divisibility test]] for division by 11, a counterpart to the better-known test for divisibility by 9. A number is divisible by 11 if and only if the sum of its digits is divisible by 11, so repeatedly taking the alternating sum of the digits determines divisibility by 11.
Line 38: Line 38:
       (-⌿ 10 ⊥⍣¯1 ⊢)⍣≡ 946 943
       (-⌿ 10 ⊥⍣¯1 ⊢)⍣≡ 946 943
0 2
0 2
</source>
</syntaxhighlight>


[[Scan]] with subtraction produces a prefix of an [[wikipedia:Alternating series|alternating series]]. This property is one of the reasons why scan was designed to reduce [[prefix]]es rather than [[suffix]]es of the argument array. As an example, we can see that an alternating series using the [[power]]s of two begins to converge to a third:
[[Scan]] with subtraction produces a prefix of an [[wikipedia:Alternating series|alternating series]]. This property is one of the reasons why scan was designed to reduce [[prefix]]es rather than [[suffix]]es of the argument array. As an example, we can see that an alternating series using the [[power]]s of two begins to converge to a third:
Line 44: Line 44:
       -\ ÷2*⍳6
       -\ ÷2*⍳6
0.5 0.25 0.375 0.3125 0.34375 0.328125
0.5 0.25 0.375 0.3125 0.34375 0.328125
</source>
</syntaxhighlight>
== See also ==
== See also ==
* [[Divide]]
* [[Divide]]

Navigation menu