Difference between revisions of "Perm sign"
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