aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/lang/min.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/lang/min.rst')
-rw-r--r--docs/source/lang/min.rst66
1 files changed, 66 insertions, 0 deletions
diff --git a/docs/source/lang/min.rst b/docs/source/lang/min.rst
new file mode 100644
index 0000000..ffbf1ee
--- /dev/null
+++ b/docs/source/lang/min.rst
@@ -0,0 +1,66 @@
+.. highlight:: cpp
+
+.. _lang-min:
+
+min(x, y)
+=========
+
+Description
+-----------
+
+(Macro) Calculates the minimum of two numbers.
+
+
+
+Parameters
+----------
+
+**x**: the first number; may be any number or numeric expression.
+
+**y**: the second number; may be any number or numeric expression.
+
+
+Returns
+-------
+
+The smaller of the two numbers.
+
+
+Example
+-------
+
+::
+
+ sensVal = min(sensVal, 100); // assigns sensVal to the smaller of sensVal or 100
+ // ensuring that it never gets above 100.
+
+
+.. note:: Perhaps counter-intuitively, max() is often used to
+ constrain the lower end of a variable's range, while min() is used
+ to constrain the upper end of the range.
+
+
+Warning
+-------
+
+Because of the way ``min()`` is implemented, avoid using other
+functions inside the parentheses. It may lead to incorrect results::
+
+ min(a++, 100); // avoid this - yields incorrect results
+
+ a++; // use this instead -
+ min(a, 100); // keep other operations outside min()
+
+Arduino Compatibility
+---------------------
+
+The Maple version of ``min()`` is compatible with Arduino.
+
+See Also
+--------
+
+- :ref:`max() <lang-max>`
+- :ref:`constrain() <lang-constrain>`
+
+
+.. include:: cc-attribution.txt