## Modelica.Math

Library of mathematical functions (e.g., sin, cos) and of functions operating on vectors and matrices

### Information

This package contains basic mathematical functions (such as sin(..)), as well as functions operating on vectors, matrices, nonlinear functions, and Boolean vectors.

#### Main Authors

Martin Otter and Marcus Baur
Deutsches Zentrum für Luft- und Raumfahrt e.V. (DLR)
Institut für Systemdynamik und Regelungstechnik (DLR-SR)
Forschungszentrum Oberpfaffenhofen
D-82234 Wessling
Germany
email: Martin.Otter@dlr.de

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

### Package Content

Name Description
Vectors Library of functions operating on vectors
BooleanVectors Library of functions operating on Boolean vectors
Matrices Library of functions operating on matrices
Nonlinear Library of functions operating on nonlinear equations
Random Library of functions for generating random numbers
Distributions Library of distribution functions
Special Library of special mathematical functions
FastFourierTransform Library of functions for the Fast Fourier Transform (FFT)
Icons Icons for Math
isEqual Determine if two Real scalars are numerically identical
isPowerOf2 Determine if the integer input is a power of 2
sin Sine
cos Cosine
tan Tangent (u shall not be -pi/2, pi/2, 3*pi/2, ...)
asin Inverse sine (-1 <= u <= 1)
acos Inverse cosine (-1 <= u <= 1)
atan Inverse tangent
atan3 Four quadrant inverse tangent (select solution that is closest to given angle y0)
sinh Hyperbolic sine
cosh Hyperbolic cosine
tanh Hyperbolic tangent
asinh Inverse of sinh (area hyperbolic sine)
acosh Inverse of cosh (area hyperbolic cosine)
exp Exponential, base e
log Natural (base e) logarithm (u shall be > 0)
log10 Base 10 logarithm (u shall be > 0)
wrapAngle Wrap angle to interval ]-pi,pi] or [0,2*pi[
baseIcon1 This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisLeft instead.
baseIcon2 This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisCenter instead.
tempInterpol1 Temporary function for linear interpolation (will be removed)
tempInterpol2 Temporary function for vectorized linear interpolation (will be removed)

## Modelica.Math.isEqual

Determine if two Real scalars are numerically identical

### Information

#### Syntax

```Math.isEqual(s1, s2);
Math.isEqual(s1, s2, eps=0);
```

#### Description

The function call "`Math.isEqual(s1, s2)`" returns true, if the two Real scalars s1 and s2 are identical. Otherwise the function returns false. The equality check is performed by "abs(s1-s2) ≤ eps", where "eps" can be provided as third argument of the function. Default is "eps = 0".

#### Example

```  Real s1 = 2.0;
Real s2 = 2.0;
Real s3 = 2.000001;
Boolean result;
algorithm
result := Math.isEqual(s1,s2);     // = true
result := Math.isEqual(s1,s3);     // = false
result := Math.isEqual(s1,s3,0.1); // = true
```

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

NameDescription
s1First scalar
s2Second scalar
epsThe two scalars are identical if abs(s1-s2) <= eps

### Outputs

NameDescription
result= true, if scalars are identical

## Modelica.Math.isPowerOf2

Determine if the integer input is a power of 2

### Information

#### Syntax

```Math.isPowerOf2(i);
```

#### Description

The function call "`Math.isPowerOf2(i)`" returns true, if the Integer input i is a power of 2. Otherwise the function returns false. The Integer input has to be >=1.

#### Example

```  Integer i1 = 1;
Integer i2 = 4;
Integer i3 = 9;
Boolean result;
algorithm
result := Math.isPowerOf2(i1);     // = true 2^0
result := Math.isPowerOf2(i2);     // = true 2^2
result := Math.isPowerOf2(i3);     // = false
```

Extends from Modelica.Icons.Function (Icon for functions).

NameDescription
iInteger scalar

### Outputs

NameDescription
result= true, if integer scalar is a power of 2

## Modelica.Math.sin

Sine

### Information

This function returns y = sin(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisLeft (Basic icon for mathematical function with y-axis on left side).

NameDescription

NameDescription
y

## Modelica.Math.cos

Cosine

### Information

This function returns y = cos(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisLeft (Basic icon for mathematical function with y-axis on left side).

NameDescription

NameDescription
y

## Modelica.Math.tan

Tangent (u shall not be -pi/2, pi/2, 3*pi/2, ...)

### Information

This function returns y = tan(u), with -∞ < u < ∞ (if u is a multiple of (2n-1)*pi/2, y = tan(u) is +/- infinity).

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription

NameDescription
y

## Modelica.Math.asin

Inverse sine (-1 <= u <= 1)

### Information

This function returns y = asin(u), with -1 ≤ u ≤ +1:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription

## Modelica.Math.acos

Inverse cosine (-1 <= u <= 1)

### Information

This function returns y = acos(u), with -1 ≤ u ≤ +1:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription

## Modelica.Math.atan

Inverse tangent

### Information

This function returns y = atan(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription

## Modelica.Math.atan2

### Information

This function returns y = atan2(u1,u2) such that tan(y) = u1/u2 and y is in the range -pi < y ≤ pi. u2 may be zero, provided u1 is not zero. Usually u1, u2 is provided in such a form that u1 = sin(y) and u2 = cos(y):

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u1
u2

NameDescription

## Modelica.Math.atan3

Four quadrant inverse tangent (select solution that is closest to given angle y0)

### Information

This function returns y = atan3(u1,u2,y0) such that tan(y) = u1/u2 and y is in the range: -pi < y-y0 ≤ pi.
u2 may be zero, provided u1 is not zero. The difference to Modelica.Math.atan2(..) is the optional third argument y0 that allows to specify which of the infinite many solutions shall be returned:

Note, for the default case (y0=0), exactly the same result as with atan2(..) is returned.

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

### Inputs

NameDescription
u1
u2
y0y shall be in the range: -pi < y-y0 <= pi [rad]

NameDescription

## Modelica.Math.sinh

Hyperbolic sine

### Information

This function returns y = sinh(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription
y

## Modelica.Math.cosh

Hyperbolic cosine

### Information

This function returns y = cosh(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription
y

## Modelica.Math.tanh

Hyperbolic tangent

### Information

This function returns y = tanh(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription
y

## Modelica.Math.asinh

Inverse of sinh (area hyperbolic sine)

### Information

The function returns the area hyperbolic sine of its input argument u. This inverse of sinh(..) is unique and there is no restriction on the input argument u of asinh(u) (-∞ < u < ∞):

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription
y

## Modelica.Math.acosh

Inverse of cosh (area hyperbolic cosine)

### Information

This function returns the area hyperbolic cosine of its input argument u. The valid range of u is

```  +1 ≤ u < +∞
```

If the function is called with u < 1, an error occurs. The function cosh(u) has two inverse functions (the curve looks similar to a sqrt(..) function). acosh(..) returns the inverse that is positive. At u=1, the derivative dy/du is infinite. Therefore, this function should not be used in a model, if u can become close to 1:

Extends from Modelica.Math.Icons.AxisLeft (Basic icon for mathematical function with y-axis on left side).

NameDescription
u

NameDescription
y

## Modelica.Math.exp

Exponential, base e

### Information

This function returns y = exp(u), with -∞ < u < ∞:

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

NameDescription
u

NameDescription
y

## Modelica.Math.log

Natural (base e) logarithm (u shall be > 0)

### Information

This function returns y = log(10) (the natural logarithm of u), with u > 0:

Extends from Modelica.Math.Icons.AxisLeft (Basic icon for mathematical function with y-axis on left side).

NameDescription
u

NameDescription
y

## Modelica.Math.log10

Base 10 logarithm (u shall be > 0)

### Information

This function returns y = log10(u), with u > 0:

Extends from Modelica.Math.Icons.AxisLeft (Basic icon for mathematical function with y-axis on left side).

NameDescription
u

NameDescription
y

## Modelica.Math.wrapAngle

Wrap angle to interval ]-pi,pi] or [0,2*pi[

### Information

This function wraps the input angle `u` to the interval ]-pi,pi], if `positiveRange == false`. Otherwise the input angle `u` is wrapped to the interval [0,2*pi[.

Extends from Modelica.Math.Icons.AxisCenter (Basic icon for mathematical function with y-axis in the center).

### Inputs

NameDescription
positiveRangeUse only positive output range, if true

NameDescription

## Modelica.Math.baseIcon1

This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisLeft instead.

### Information

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Modelica.Math.Icons.AxisLeft shall be used.

Extends from Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).

## Modelica.Math.baseIcon2

This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisCenter instead.

### Information

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Modelica.Math.Icons.AxisCenter shall be used.

Extends from Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).

## Modelica.Math.tempInterpol1

Temporary function for linear interpolation (will be removed)

### Information

Extends from Modelica.Icons.Function (Icon for functions), Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).

### Inputs

NameDescription
uinput value (first column of table)
table[:, :]table to be interpolated
icolcolumn of table to be interpolated

### Outputs

NameDescription
yinterpolated input value (icol column of table)

## Modelica.Math.tempInterpol2

Temporary function for vectorized linear interpolation (will be removed)

### Information

Extends from Modelica.Icons.Function (Icon for functions), Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).

### Inputs

NameDescription
uinput value (first column of table)
table[:, :]table to be interpolated
icol[:]column(s) of table to be interpolated

### Outputs

NameDescription
y[1, size(icol, 1)]interpolated input value(s) (column(s) icol of table)
Automatically generated Thu Jan 24 11:20:03 2019.