| // Written in the D programming language |
| |
| /** |
| * Internal math utilities. |
| * |
| * Copyright: The D Language Foundation 2021. |
| * License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0). |
| * Authors: Luís Ferreira |
| * Source: $(DRUNTIMESRC core/internal/util/_math.d) |
| */ |
| module core.internal.util.math; |
| |
| /** |
| * Calculates the maximum of the passed arguments |
| * Params: |
| * a = first value to select the maximum from |
| * b = second value to select the maximum from |
| * Returns: The maximum of the passed-in values. |
| */ |
| T max(T)(T a, T b) pure nothrow @nogc @safe |
| { |
| return b > a ? b : a; |
| } |
| |
| /** |
| * Calculates the minimum of the passed arguments |
| * Params: |
| * a = first value to select the minimum from |
| * b = second value to select the minimum from |
| * Returns: The minimum of the passed-in values. |
| */ |
| T min(T)(T a, T b) pure nothrow @nogc @safe |
| { |
| return b < a ? b : a; |
| } |
| |
| /// |
| @safe pure @nogc nothrow |
| unittest |
| { |
| assert(max(1,3) == 3); |
| assert(max(3,1) == 3); |
| assert(max(1,1) == 1); |
| } |
| |
| /// |
| @safe pure @nogc nothrow |
| unittest |
| { |
| assert(min(1,3) == 1); |
| assert(min(3,1) == 1); |
| assert(min(1,1) == 1); |
| } |