Difference between revisions of "Perm sign"

From QETLAB
Jump to navigation Jump to search
(Created page with "{{Function |name=perm_sign |desc=Computes the sign of a permutation |upd=November 21, 2012 |v=1.00 |helper=1}} <tt>'''perm_sign'''</tt> is a function tha...")
 
Line 14: Line 14:
  
 
==Examples==
 
==Examples==
 +
===Small examples===
 
The identity permutation is even:
 
The identity permutation is even:
 
<pre>
 
<pre>
Line 25: Line 26:
 
The permutation that transposes 3 and 4 is odd:
 
The permutation that transposes 3 and 4 is odd:
 
<pre>
 
<pre>
>> perm_sign([1,2,4,3])
+
>> perm_sign([1,2,4,3,5])
  
 
ans =
 
ans =
  
 
     -1
 
     -1
 +
</pre>
 +
 +
===A large example===
 +
This function has no trouble with large permutations. The following code determines the sign of a random permutation of 1:1000000 in under 1/2 of a second on a standard desktop computer.
 +
<pre>
 +
>> perm_sign(randperm(1000000))
 +
 +
ans =
 +
 +
    1
 
</pre>
 
</pre>

Revision as of 16:07, 22 November 2012

perm_sign
Computes the sign of a permutation

Other toolboxes required none
This is a helper function that only exists to aid other functions in QETLAB. If you are an end-user of QETLAB, you likely will never have a reason to use this function.

perm_sign is a function that computes the sign a permutation. The output of the function is either 1, indicating the permutation is even, or -1, indicating the permutation is odd.

Syntax

  • SGN = perm_sign(PERM)

Argument descriptions

  • PERM: A vector containing a permutation of the integers 1, 2, ..., n.

Examples

Small examples

The identity permutation is even:

>> perm_sign(1:4)

ans =

     1

The permutation that transposes 3 and 4 is odd:

>> perm_sign([1,2,4,3,5])

ans =

    -1

A large example

This function has no trouble with large permutations. The following code determines the sign of a random permutation of 1:1000000 in under 1/2 of a second on a standard desktop computer.

>> perm_sign(randperm(1000000))

ans =

     1