fmod
==============================================
Purpose
----------------
Computes the floating-point remainder of :math:`x/y`.
Format
----------------
.. function:: r = fmod(x, y)
:param x:
:type x: NxK matrix
:param y: ExE conformable with *x*.
:type y: LxM matrix
:return r: The floating point remainders of :math:`x/y`.
:rtype r: max(N,L) by max(K,M) matrix
Examples
----------------
Example 1: Basic usage
++++++++++++++++++++++
::
x = { 1.3 2.5,
4.2 6.0 };
a = fmod(x, 0.5);
b = fmod(x, 2);
After the above code, *a* and *b* will equal:
::
a = 0.3 0 b = 1.3 0.5
0.2 0 0.2 0
This example extracts all of the years which are evenly divisible by four, from a vector with all of the years between 1900 and 2000.
Example 2: Find years divisible by 4
++++++++++++++++++++++++++++++++++++
::
/*
** Create a vector with all years from 1900 to 2000
** i.e. 1900, 1901, 1902...2000
*/
yrs = seqa(1900, 1, 101);
// Create a vector with 0 if the element
// is evenly divisible by 4
mask = fmod(yrs, 4);
// Return all rows where 'mask' is equal to 0
// (or delete all rows if they are non-zero)
yrs_4 = delif(yrs, mask);
// Print the first 10 rows
print yrs_4[1:10];
produces:
::
1900
1904
1908
1912
1916
1920
1924
1928
1932
1936
Remarks
-------
Returns the floating-point remainder *r* of :math:`x/y` such that :math:`x = iy + r`,
where *i* is an integer, *r* has the same sign as *x* and :math:`\|r\| < \|y\|`.
Compare this with ``%``, the modulo division operator. (See `Operators `_.)