An inline expression of arithmetic,
operating upon all incoming DataFlowEdge
values.

An Arithmetic must have at least one incoming DataFlowEdge, representing the source values. When a DataFlowEdge sourced from a Arithmetic is evaluated, the value provided represents the arithmetic combination of the source values according to the operationType of the Arithmetic.

Four operationTypes
are defined for Arithmetic:
`AND`

, `SUBTRACT`

, `MULTIPLY`

and `DIVIDE`

;
each of these operations correspond to addition, subtraction, multiplication
and division, respectively. For `DIVIDE`

arithmetic, the divisor
used in the arithmetic is the first incoming
DataFlowEdge with the
name "divisor". If the *divisor*
used in a `DIVIDE`

arithmetic is equal to zero, the value of the
subsequent Arithmetic
node will not be numeric ("not-a-number", or `NaN`

).

This model element may be removed from the IAML metamodel in the futureissue 220 , as these arithmetic operations can be replaced with XQueryFunctions.

[Arithmetic.html]- ArithmeticAdd.iaml
(source)
- Using Arithmetic to addtwo input values together. [ArithmeticAdd]

- OperationalExample.iaml
(source)
- A summary of all of the elements used in Operational Modelling. [OperationalExample]

- Arithmetic can be used inline to add together itsincoming operands, and act as a source of data. [ArithmeticAdd]
- Arithmetic can be used inline to divide itsincoming operands, and act as a source of data. [ArithmeticDivide]
- Arithmetic can be used inline to multiply itsincoming operands, and act as a source of data. [ArithmeticMultiply]
- Arithmetic can be used inline to subtract itsincoming operands, and act as a source of data. [ArithmeticSubtract]
- If
Arithmetic is used to divide by zero,
`NaN`

willresult. [get3_0Calculation()]

(none)

- "Arithmetic must have at least one incoming data source edge" [Checks.chk]

- operationType : ArithmeticOperationTypes (optional)
The builtin arithmetic operation to perform.
**Accepted literals:**ADD, SUBTRACT, MULTIPLY, DIVIDE

- generatedRule
: EString (optional) To assist in debugging, this attribute may be populated with the name of the model completion rule that created this element. More extensive traceability support may be provided in the future.
- id : EString (optional)
A unique identifier for this model element. Should be globally unique.
- isGenerated
: EBoolean (optional) Set to
`true`

if the current element has been generated.

(none)

(none)

(none)

- generatedBy
: [0...*]
GeneratesElements
[opposite: generatedElements]
A list of elements that generated this element; conversely, overriding the source will prevent this element from being created.
- inFlows
: [0...*]
DataFlowEdge
[opposite: to] A list of incoming DataFlowEdges.
- outFlows
: [0...*]
DataFlowEdge
[opposite: from] A list of outgoing DataFlowEdges.

(none)