An implementation of the smooth minimum using an exponential term approach. This does not return the exact value of x1 or x2, only an approximation, though the error diminishes as the transition region is exited.
Adapted to avoid underflow and overflow for large values of x1 and/or x2.
Source:
function smoothMin_exponential extends TRANSFORM.Icons.Function; import Modelica.Math; input Real x1 "First argument of smooth operator"; input Real x2 "Second argument of smooth operator"; input Real dx "Approximate difference between x1 and x2, below which regularization starts"; output Real y "Result of smooth operator"; end smoothMin_exponential;