Function Max(x1, x2, ...)

# Max

Max(
x1,      ! (input) numerical, string or element expression
x2,      ! (input) numerical, string or element expression
...
)

• The Function Max, returns the maximum of its arguments.

• Not to be confused with the iterative operator, Max, which returns the maximum of all values iterated over.

## Arguments

x1,x2,…

Multiple numerical, string or element expressions.

## Return Value

The function Max returns the largest number, the string highest in the lexicographical ordering, or the element value with the highest ordinal value, among $$x1,x2,\dots$$

## Example

_s_names := data { John, Jack } ;
_p_values(_i_name) := data { John : 3, Jack : 4 } ;
_ep_name1 := 'John' ;
_ep_name2 := 'Jack' ;

_sp_name1 := formatString("%e", _ep_name1);
_sp_name2 := formatString("%e", _ep_name2);
_sp_names(_i_name) := formatString("%e", _i_name);

_p_maxFunc := max( _p_values( 'John' ), _p_values( 'Jack' ) ); ! returns 4
_p_maxIter := max( _i_name, _p_values( _i_name ) ); ! returns 4

! For elements, ordering is based on their positions in the set.
_ep_maxFunc := max( _ep_name1, _ep_name2 ); ! returns 'Jack'.
_ep_maxIter := max( _i_name, _i_name ); ! returns 'Jack'.

! For strings, ordering is the lexicographic ordering.
_sp_maxFunc := max( _sp_name1, _sp_name2 ); ! returns "John"
_sp_maxIter := max( _i_name, _sp_names(_i_name) );  ! returns "John"


Note

The function Max can be used in constraints of nonlinear mathematical programs. However, nonlinear solvers may experience convergence problems if the first order derivatives of two arguments between which the Max function switches are discontinous.

The function Min. Arithmetic functions are discussed in full detail in Arithmetic Functions of the Language Reference.