Add: Difference between revisions

Jump to navigation Jump to search
193 bytes added ,  02:12, 28 May 2022
Miraheze>Adám Brudzewsky
(14 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Primitive|+|Add}}, '''Plus''', '''Addition''', or '''Sum''', is a [[dyadic]] [[scalar function]] that [https://en.wikipedia.org/wiki/Addition adds] numbers together. As a [[basic arithmetic]] operation, Add is subject to the language's [[number]] specification. Add shares the glyph <source lang=apl inline>+</source> with the [[monadic]] function [[Conjugate]], and is closely related to [[Subtract]] (<source lang=apl inline>-</source>).
{{Built-in|Add|+}}, '''Plus''', '''Addition''', or '''Sum''', is a [[dyadic]] [[scalar function]] that [[wikipedia:Addition|adds]] numbers together. As a basic arithmetic operation, Add is subject to the language's [[number]] specification. Add shares the glyph <source lang=apl inline>+</source> with the [[monadic]] function [[Conjugate]], and is closely related to [[Subtract]] (<source lang=apl inline>-</source>).


== Examples ==
== Examples ==
Line 12: Line 12:
== Properties ==
== Properties ==


Addition is [https://en.wikipedia.org/wiki/Commutative_property commutative] in almost all number systems. It is [https://en.wikipedia.org/wiki/Associative_property associative] when performed with no rounding, but is unlikely to be associative when rounded to an inexact precision (see [[#Floating point error|Floating point error]]).
Addition is [[wikipedia:Commutative property|commutative]] in almost all number systems. It is [[wikipedia:Associative property|associative]] when performed with no rounding, but is unlikely to be associative when rounded to an inexact precision (see [[#Floating point error|Floating point error]]).


The [[identity element]] for Add is <source lang=apl inline>0</source>. The [[inverse]] of the function <source lang=apl inline>n∘+</source> or the equivalent function <source lang=apl inline>+∘n</source> is <source lang=apl inline>-∘n</source>. Using [[Commute]] (<source lang=apl inline>⍨</source>), we can write <source lang=apl inline>+⍣¯1</source> {{←→}} <source lang=apl inline>-⍨</source>.
The [[identity element]] for Add is <source lang=apl inline>0</source>. The [[inverse]] of the function <source lang=apl inline>n∘+</source> or the equivalent function <source lang=apl inline>+∘n</source> is <source lang=apl inline>-∘n</source>. Using [[Commute]] (<source lang=apl inline>⍨</source>), we can write <source lang=apl inline>+⍣¯1</source> {{←→}} <source lang=apl inline>-⍨</source>.


Since adding a number to itself is equivalent to doubling that number, we can express the ''double'' function as <source lang=apl inline>+⍨</source>.
Since adding a number to itself is equivalent to doubling that number, we can express the ''double'' function as <source lang=apl inline>+⍨</source>.
=== Reduction ===
[[Reduction]] with Add gives the sum of the whole list.


== Scalar mapping ==
== Scalar mapping ==


In mathematics, addition of two identical structures almost always follows the same rules as in APL: it maps over the structures element-wise. This is a fundamental property of a (finite-dimensional) [https://en.wikipedia.org/wiki/Vector_space vector space], in which addition of two vectors is equivalent to adding the coefficients of basis vectors one by one. This property likely inspired APL's definition of a scalar function.
In mathematics, addition of two identical structures almost always follows the same rules as in APL: it maps over the structures element-wise. This is a fundamental property of a (finite-dimensional) [[wikipedia:vector space|vector space]], in which addition of two vectors is equivalent to adding the coefficients of basis vectors one by one. This property likely inspired APL's definition of a scalar function.


Addition of [[Complex number|complex]] and [[hypercomplex numbers]] can also be considered an element-wise operation, since each of these types of numbers forms a vector space over the reals. Addition of scalars is always performed within a single domain: mixed-type addition such as adding a real to a complex number treats the real number as complex with imaginary part zero.
Addition of [[Complex number|complex]] and [[hypercomplex number]]s can also be considered an element-wise operation, since each of these types of numbers forms a vector space over the reals. Addition of scalars is always performed within a single domain: mixed-type addition such as adding a real to a complex number treats the real number as complex with imaginary part zero.


Addition in mathematics does not exhibit [[scalar extension]]: there is usually no way to add values of different types. The [[Multiply]] function on vector spaces does extend scalars, in that a scalar element of a field can be multiplied by a vector over that field.
Addition in mathematics does not exhibit [[scalar extension]]: there is usually no way to add values of different types. The [[Multiply]] function on vector spaces does extend scalars, in that a scalar element of a field can be multiplied by a vector over that field.
Line 39: Line 43:


Addition of floating-point numbers may also be subject to [[overflow]], resulting in a [[DOMAIN ERROR]] or an [[infinite]] result.
Addition of floating-point numbers may also be subject to [[overflow]], resulting in a [[DOMAIN ERROR]] or an [[infinite]] result.
== See also ==
* [[Times]]
* [[Or]]
* [[Union]]


== External Links ==
== External Links ==
Line 44: Line 53:
=== Documentation ===
=== Documentation ===


* [http://help.dyalog.com/latest/Content/Language/Primitive%20Functions/Add.htm Dyalog]
* [https://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Add.htm Dyalog]
 
* [http://microapl.com/apl_help/ch_020_020_020.htm APLX]
* [http://microapl.com/apl_help/ch_020_020_020.htm APLX]
* [https://www.jsoftware.com/help/dictionary/d100.htm J Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/plus#dyadic J NuVoc]
* [https://www.jsoftware.com/help/dictionary/d100.htm J Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/plus#dyadic J NuVoc]
 
* [https://mlochbaum.github.io/BQN/doc/arithmetic.html#basic-arithmetic BQN]
{{APL built-ins}}
{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar dyadic functions]]

Navigation menu