Library of mathematical functions (e.g., sin, cos) and of functions operating on vectors and matrices
This package contains basic mathematical functions (such as sin(..)), as well as functions operating on vectors, matrices, nonlinear functions, and Boolean vectors.
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
Copyright © 1998-2019, Modelica Association and contributors
Extends from Modelica.Icons.Package (Icon for standard packages).
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 |
atan2 | Four quadrant 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) |
Determine if two Real scalars are numerically identical
Math.isEqual(s1, s2); Math.isEqual(s1, s2, eps=0);
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".
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
Vectors.isEqual, Matrices.isEqual, Strings.isEqual
Extends from Modelica.Icons.Function (Icon for functions).
Name | Description |
---|---|
s1 | First scalar |
s2 | Second scalar |
eps | The two scalars are identical if abs(s1-s2) <= eps |
Name | Description |
---|---|
result | = true, if scalars are identical |
Determine if the integer input is a power of 2
Math.isPowerOf2(i);
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.
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).
Name | Description |
---|---|
i | Integer scalar |
Name | Description |
---|---|
result | = true, if integer scalar is a power of 2 |
Sine
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).
Name | Description |
---|---|
u | [rad] |
Name | Description |
---|---|
y |
Cosine
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).
Name | Description |
---|---|
u | [rad] |
Name | Description |
---|---|
y |
Tangent (u shall not be -pi/2, pi/2, 3*pi/2, ...)
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).
Name | Description |
---|---|
u | [rad] |
Name | Description |
---|---|
y |
Inverse sine (-1 <= u <= 1)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y | [rad] |
Inverse cosine (-1 <= u <= 1)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y | [rad] |
Inverse tangent
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y | [rad] |
Four quadrant inverse tangent
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).
Name | Description |
---|---|
u1 | |
u2 |
Name | Description |
---|---|
y | [rad] |
Four quadrant inverse tangent (select solution that is closest to given angle y0)
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).
Name | Description |
---|---|
u1 | |
u2 | |
y0 | y shall be in the range: -pi < y-y0 <= pi [rad] |
Name | Description |
---|---|
y | [rad] |
Hyperbolic sine
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Hyperbolic cosine
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Hyperbolic tangent
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Inverse of sinh (area hyperbolic sine)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Inverse of cosh (area hyperbolic cosine)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Exponential, base e
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Natural (base e) logarithm (u shall be > 0)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Base 10 logarithm (u shall be > 0)
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).
Name | Description |
---|---|
u |
Name | Description |
---|---|
y |
Wrap angle to interval ]-pi,pi] or [0,2*pi[
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).
Name | Description |
---|---|
u | Input angle [rad] |
positiveRange | Use only positive output range, if true |
Name | Description |
---|---|
y | Wrapped output angle [rad] |
This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisLeft instead.
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).
This icon will be removed in future Modelica versions, use Modelica.Math.Icons.AxisCenter instead.
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).
Temporary function for linear interpolation (will be removed)
Extends from Modelica.Icons.Function (Icon for functions), Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).
Name | Description |
---|---|
u | input value (first column of table) |
table[:, :] | table to be interpolated |
icol | column of table to be interpolated |
Name | Description |
---|---|
y | interpolated input value (icol column of table) |
Temporary function for vectorized linear interpolation (will be removed)
Extends from Modelica.Icons.Function (Icon for functions), Modelica.Icons.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions).
Name | Description |
---|---|
u | input value (first column of table) |
table[:, :] | table to be interpolated |
icol[:] | column(s) of table to be interpolated |
Name | Description |
---|---|
y[1, size(icol, 1)] | interpolated input value(s) (column(s) icol of table) |