Difference between revisions of "Mod"

(Added IsOdd, IsEven and IsInteger)
Line 6: Line 6:
 
The remainder (modulus) of «x» / «y».
 
The remainder (modulus) of «x» / «y».
  
The sign of the result of <code>Mod(x,y></code> is the same as the sign of «x» -- i.e., if «x» is negative, then so is the result. The sign of «y» does not impact the sign of the result. This variation is the same convention used by the corresponding operator in C/C++ (ISO 1999), C#, Java, PHP, Visual Basic, AMPL and many other languages. Some languages, including MATLAB, Lisp, Fortran, and Ada, have two different modulo operators, with one corresponding to this convention. The modulo operator in a few other languages, including Mathematica, R and Excel, do not follow this convention (these use the sign of the denominator).
+
The sign of the result of <code>Mod(x,y)</code> is the same as the sign of «x» -- i.e., if «x» is negative, then so is the result. The sign of «y» does not impact the sign of the result. This variation is the same convention used by the corresponding operator in C/C++ (ISO 1999), C#, Java, PHP, Visual Basic, AMPL and many other languages. Some languages, including MATLAB, Lisp, Fortran, and Ada, have two different modulo operators, with one corresponding to this convention. The modulo operator in a few other languages, including Mathematica, R and Excel, do not follow this convention (these use the sign of the denominator).
  
You can specify «pos» as true to force the result to be non-negative, in the range <code>0 &le; [[Mod]](x,y) < [[Abs]](y)</code>. As «x» increases through all negative and positive numbers, the result cycles through this range.
+
You can specify «pos» as true to force the result to be non-negative, in the range <code>0 &le; Mod(x,y) < Abs(y)</code>. As «x» increases through all negative and positive numbers, the result cycles through this range.
  
 
<code>Mod(x,1)</code> extracts the fractional portion of a number.
 
<code>Mod(x,1)</code> extracts the fractional portion of a number.
Line 18: Line 18:
 
:<code>Mod(-20,-7) &rarr; -6</code>
 
:<code>Mod(-20,-7) &rarr; -6</code>
 
:<code>Mod(20,-7) &rarr; 6</code>
 
:<code>Mod(20,-7) &rarr; 6</code>
:<code>Mod(-20,7,pos:true) &rarr; 1</code>
+
:<code>Mod(-20,7,pos: true) &rarr; 1</code>
 
:<code>Mod(Pi,1) &rarr; 0.141592653589793</code>
 
:<code>Mod(Pi,1) &rarr; 0.141592653589793</code>
  
Line 25: Line 25:
 
=== IsOdd and IsEven ===
 
=== IsOdd and IsEven ===
  
To test whether an integer <code>x</code> is odd use <code>[[Mod]](x,2)=1</code>, and similarly, to test whether an integer is even use <code>[[Mod]](x,2)==0</code>.
+
To test whether an integer <code>x</code> is odd use <code>Mod(x, 2) == 1</code>, and similarly, to test whether an integer is even use <code>Mod(x, 2) == 0</code>.
  
 
=== IsInteger ===
 
=== IsInteger ===
  
To test whether a number <code>x</code> is an integer, use <code>[[Mod]](x,1)==0</code>
+
To test whether a number <code>x</code> is an integer, use <code>Mod(x,1) == 0</code>
  
 
==See Also==
 
==See Also==
 +
* [[Abs]]
 
* [[GCD]]
 
* [[GCD]]
 +
* [[IsNumber]]
 
* [[Array Abstraction]]
 
* [[Array Abstraction]]
 
* [[Math functions]]
 
* [[Math functions]]

Revision as of 00:20, 6 August 2016


Mod(x, y, pos)

The remainder (modulus) of «x» / «y».

The sign of the result of Mod(x,y) is the same as the sign of «x» -- i.e., if «x» is negative, then so is the result. The sign of «y» does not impact the sign of the result. This variation is the same convention used by the corresponding operator in C/C++ (ISO 1999), C#, Java, PHP, Visual Basic, AMPL and many other languages. Some languages, including MATLAB, Lisp, Fortran, and Ada, have two different modulo operators, with one corresponding to this convention. The modulo operator in a few other languages, including Mathematica, R and Excel, do not follow this convention (these use the sign of the denominator).

You can specify «pos» as true to force the result to be non-negative, in the range 0 ≤ Mod(x,y) < Abs(y). As «x» increases through all negative and positive numbers, the result cycles through this range.

Mod(x,1) extracts the fractional portion of a number.

Examples

Mod(20,7) → 6
Mod(-20,7) → -6
Mod(-20,-7) → -6
Mod(20,-7) → 6
Mod(-20,7,pos: true) → 1
Mod(Pi,1) → 0.141592653589793

Special uses

IsOdd and IsEven

To test whether an integer x is odd use Mod(x, 2) == 1, and similarly, to test whether an integer is even use Mod(x, 2) == 0.

IsInteger

To test whether a number x is an integer, use Mod(x,1) == 0

See Also

Comments


You are not allowed to post comments.