# Package Modelica.​Blocks.​MathIntegerLibrary of Integer mathematical functions as input/output blocks

### Information

This package contains basic mathematical operations on Integer signals.

Extends from `Modelica.​Icons.​Package` (Icon for standard packages).

### Package Contents

NameDescription
`MultiSwitch`Set Integer expression that is associated with the first active input signal
`Product`Product of Integer: y = u*u* ... *u[n]
`Sum`Sum of Integers: y = k*u + k*u + ... + k[n]*u[n]
`TriggeredAdd`Add input to previous value of output, if rising edge of trigger port

## Block Modelica.​Blocks.​MathInteger.​MultiSwitchSet Integer expression that is associated with the first active input signal

### Information

This block has a vector of Boolean input signals u[nu] and a vector of (time varying) Integer expressions expr[nu]. The output signal y is set to expr[i], if i is the first element in the input vector u that is true. If all input signals are false, y is set to parameter "y_default" or the last value is kept, if use_pre_as_default = true.

```  // Conceptual equation (not valid Modelica)
i = 'first element of u[:] that is true';
y = if i==0 then (if use_pre_as_default then pre(y)
else y_default)
else expr[i];
```

The input connector is a vector of Boolean input signals. When a connection line is drawn, the dimension of the input vector is enlarged by one and the connection is automatically connected to this new free index (thanks to the connectorSizing annotation).

The usage is demonstrated, e.g., in example Modelica.Blocks.Examples.IntegerNetwork1.

### Parameters

TypeNameDefaultDescription
`Integer``y_default``0`Default value of output y if use_pre_as_default=false, as well as pre(y) at initial time
`Boolean``use_pre_as_default``true`= true, y holds its last value if all u[i]=false, otherwise y=y_default
`Integer``nu``0`Number of input connections

### Connectors

TypeNameDescription
`input ``BooleanVectorInput``u[nu]`Set y = expr[i], if u[i] = true
`output ``IntegerOutput``y`Output depending on expression

## Block Modelica.​Blocks.​MathInteger.​SumSum of Integers: y = k*u + k*u + ... + k[n]*u[n]

### Information

This blocks computes the scalar Integer output "y" as sum of the elements of the Integer input signal vector u:

```y = k*u + k*u + ... k[N]*u[N];
```

The input connector is a vector of Integer input signals. When a connection line is drawn, the dimension of the input vector is enlarged by one and the connection is automatically connected to this new free index (thanks to the connectorSizing annotation).

The usage is demonstrated, e.g., in example Modelica.Blocks.Examples.IntegerNetwork1.

If no connection to the input connector "u" is present, the output is set to zero: y=0.

Extends from `Modelica.​Blocks.​Interfaces.​PartialIntegerMISO` (Partial block with an IntegerVectorInput and an IntegerOutput signal).

### Parameters

TypeNameDefaultDescription
`Integer``nu``0`Number of input connections
`Integer``k[nu]``fill(1, nu)`Input gains

### Connectors

TypeNameDescription
`input ``IntegerVectorInput``u[nu]`Vector of Integer input signals
`output ``IntegerOutput``y`Integer output signal

## Block Modelica.​Blocks.​MathInteger.​ProductProduct of Integer: y = u*u* ... *u[n]

### Information

This blocks computes the scalar Integer output "y" as product of the elements of the Integer input signal vector u:

```y = u*u* ... *u[N];
```

The input connector is a vector of Integer input signals. When a connection line is drawn, the dimension of the input vector is enlarged by one and the connection is automatically connected to this new free index (thanks to the connectorSizing annotation).

The usage is demonstrated, e.g., in example Modelica.Blocks.Examples.IntegerNetwork1.

If no connection to the input connector "u" is present, the output is set to zero: y=0.

Extends from `Modelica.​Blocks.​Interfaces.​PartialIntegerMISO` (Partial block with an IntegerVectorInput and an IntegerOutput signal).

### Parameters

TypeNameDefaultDescription
`Integer``nu``0`Number of input connections

### Connectors

TypeNameDescription
`input ``IntegerVectorInput``u[nu]`Vector of Integer input signals
`output ``IntegerOutput``y`Integer output signal

## Block Modelica.​Blocks.​MathInteger.​TriggeredAddAdd input to previous value of output, if rising edge of trigger port

### Information

Add input to previous value of output, if rising edge of trigger port

This block has one Integer input "u", one Boolean input "trigger", an optional Boolean input "reset", an optional Integer input "set", and an Integer output "y". The optional inputs can be activated with the "use_reset" and "use_set" flags, respectively.

The input "u" is added to the previous value of the output "y" if the "trigger" port has a rising edge. At the start of the simulation "y = y_start".

If the "reset" port is enabled, then the output "y" is reset to "set" or to "y_start" (if the "set" port is not enabled), whenever the "reset" port has a rising edge.

The usage is demonstrated, e.g., in example Modelica.Blocks.Examples.IntegerNetwork1.

Extends from `Modelica.​Blocks.​Interfaces.​PartialIntegerSISO` (Partial block with a IntegerInput and an IntegerOutput signal).

### Parameters

TypeNameDefaultDescription
`Boolean``use_reset``false`=true, if reset port enabled
`Boolean``use_set``false`=true, if set port enabled and used as default value when reset
`Integer``y_start``0`Initial and reset value of y if set port is not used

### Connectors

TypeNameDescription
`input ``IntegerInput``u`Integer input signal
`output ``IntegerOutput``y`Integer output signal
`input ``BooleanInput``trigger`
`input ``BooleanInput``reset`
`input ``IntegerInput``set`

Generated 2018-12-12 12:09:56 EST by MapleSim.