Extensions.Quantities.RelationalOperations

From emotive
Jump to navigation Jump to search

Classification

Name Relational Operations
Short Description Compares the numerical quantities
Class Operations
Extension OTX Quantities extension
Group Overloading semantics
Exceptions InvalidConversionException
Checker Rules -
Standard Compliant Yes

OTL Syntax

BooleanValue = QuantityTerm == NumericTerm;
BooleanValue = QuantityTerm != NumericTerm;
BooleanValue = QuantityTerm > NumericTerm;
BooleanValue = QuantityTerm >= NumericTerm;
BooleanValue = QuantityTerm < NumericTerm;
BooleanValue = QuantityTerm <= NumericTerm;

Description

  • When Quantity values are compared using relational operators, an OTX runtime shall use the quantities' normalized values for comparison. So if e.g. a Quantity of 8 kilometers is to be compared with a Quantity of 10 miles, the runtime system shall convert both values into meters before doing the comparison.
  • Furthermore, the physical dimensions of the display unit of the Quantity values being compared shall be identical – e.g. it is allowed to compare distances with each other, but it is illegal to compare a distance to a time – in that case an InvalidConversionException shall be thrown.
  • If scalar operands exist, they shall be interpreted as normalized values according to the physical dimension of the Quantity operands. This allows e.g. the comparison of 2 km < 11 which will result in false (because the comparison is equivalent to comparing 2 km < 11m).

Return Value

The Term returns the value, see table below.

Icons Note.png In OTX, Terms are categorized according to its return data type!
Data Type Description
Boolean The result of the comparision of the numerical quantities

Properties

Name Data Type Class Default Cardinality Description
QuantityTerm Quantity Term - [1] Quantity value are compared
NumericTerm Numeric Term - [1] Numeric value are compared

OTL Examples

/// Local Declarations

Boolean Boolean1 = false;

/// Flow

Boolean1 = 8 [@Unit, "BL_DataLibraMIB.odx", "km"] != 10 [@Unit, "BL_DataLibraMIB.odx", "mile"];

See also

Addition
Subtraction
Multiplication
Division
Modulo
Absolute Value
Negation