[
https://issues.apache.org/jira/browse/MATH-1019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gilles resolved MATH-1019.
--------------------------
Resolution: Fixed
> "shuffle" method broken (in class "o.a.c.m.random.RandomDataGenerator")
> -----------------------------------------------------------------------
>
> Key: MATH-1019
> URL: https://issues.apache.org/jira/browse/MATH-1019
> Project: Commons Math
> Issue Type: Bug
> Reporter: Gilles
> Fix For: 3.3
>
>
> The method does not abide by its contract: elements before the "end" index
> are included in the shuffle.
> {code}
> /**
> * Uses a 2-cycle permutation shuffle to randomly re-order the last elements
> * of list.
> *
> * @param list list to be shuffled
> * @param end element past which shuffling begins
> */
> private void shuffle(int[] list, int end) {
> int target = 0;
> for (int i = list.length - 1; i >= end; i--) {
> if (i == 0) { // XXX "0" should be "end"
> target = 0; // XXX "0" should be "end"
> } else {
> // NumberIsTooLargeException cannot occur
> target = nextInt(0, i); // XXX "0" should be "end"
> }
> int temp = list[target];
> list[target] = list[i];
> list[i] = temp;
> }
> }
> {code}
> I'm going to introduce the above corrections in the new implementation to be
> located in "MathArrays" (cf. issue MATH-1010).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira