You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Benson Margulies (JIRA)" <ji...@apache.org> on 2009/12/31 02:39:29 UTC

[jira] Created: (MAHOUT-235) GenericSorting.java also needs replacing

GenericSorting.java also needs replacing
----------------------------------------

                 Key: MAHOUT-235
                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
             Project: Mahout
          Issue Type: Bug
          Components: Math
    Affects Versions: 0.3
            Reporter: Benson Margulies


It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795807#action_12795807 ] 

Benson Margulies commented on MAHOUT-235:
-----------------------------------------

I think I see the problem, it's the partitionValue. In all the working versions, that is a VALUE, not an index.

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795707#action_12795707 ] 

Benson Margulies commented on MAHOUT-235:
-----------------------------------------

the odd thing is that I got here by modifying
one of the many working copies to use an
external swapper.

On Dec 31, 2009, at 6:24 PM, "Ted Dunning (JIRA)" <ji...@apache.org>  



> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795807#action_12795807 ] 

Benson Margulies edited comment on MAHOUT-235 at 1/2/10 1:10 AM:
-----------------------------------------------------------------

I think I see the problem, it's the partitionValue. In all the working versions, that is a VALUE, not an index. And the value is captured, even as the cell it came from might get swapped. 

      was (Author: bmargulies):
    I think I see the problem, it's the partitionValue. In all the working versions, that is a VALUE, not an index.
  
> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Grant Ingersoll (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Grant Ingersoll reassigned MAHOUT-235:
--------------------------------------

    Assignee: Grant Ingersoll

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>            Assignee: Grant Ingersoll
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796847#action_12796847 ] 

Benson Margulies commented on MAHOUT-235:
-----------------------------------------

looks good, please go ahead and resolve.


> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>            Assignee: Grant Ingersoll
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Ted Dunning (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795704#action_12795704 ] 

Ted Dunning commented on MAHOUT-235:
------------------------------------


I just looked at this.  Didn't find the problem, but did make some comments in the code and clarified it a bit.  My guess is that the main partition loop leaves b and c in the wrong order.  If i get another chance to look at this, I will put in some assertions that match what I think the loop invariants should be.  That will probably make things obvious.

Here is my commented version fo the key sort routine:
{unformatted}
  private static void quickSort0(int start, int end, IntComparator comp, Swapper swap) {
    int length = end - start;
    if (length < 7) {
      insertionSort(start, end, comp, swap);
      return;
    }
    int middle = (start + end) / 2;
    if (length > 7) {
      int bottom = start;
      int top = end - 1;
      if (length > 40) {
        // for lots of data, bottom, middle and top are medians near the beginning, middle or end of the data
        int skosh = length / 8;
        bottom = med3(bottom, bottom + skosh, bottom + (2 * skosh), comp);
        middle = med3(middle - skosh, middle, middle + skosh, comp);
        top = med3(top - (2 * skosh), top - skosh, top, comp);
      }
      middle = med3(bottom, middle, top, comp);
    }

    int partitionIndex = middle; // an index, not a value.

    // regions from a to b and from c to d are what we will recursively sort
    int a, b, c, d;
    a = b = start;
    c = d = end - 1;
    while (b <= c) {
      // copy all values equal to the partition value to before a..b.  In the process, advance b
      // as long as values less than the partition or equal are found, also stop when a..b collides with c..d
      int comparison = comp.compare(b, partitionIndex);
      while (b <= c && comparison <= 0) {
        if (comparison == 0) {
          swap.swap(a, b);
          a++;
        }
        b++;
        comparison = comp.compare(b, partitionIndex);
      }
      // at this point [start..a) has partition values, [a..b) has values < partition
      // also, either b>c or v[b] > partition value

      comparison = comp.compare(c, partitionIndex);
      while (c >= b && comparison >= 0) {
        if (comparison == 0) {
          swap.swap(c, d);
          d--;
        }
        c--;
        comparison = comp.compare(c, partitionIndex);
      }
      // now we also know that [d..end] contains partition values,
      // [c..d) contains values > partition value
      // also, either b>c or (v[b] > partition OR v[c] < partition)

      if (b <= c) {
        // v[b] > partition OR v[c] < partition
        // swapping will let us continue to grow the two regions
        swap.swap(b, c);
        b++;
        c--;
      }
    }
    // now we know
    // b = c+1
    // [start..a) and [d..end) contain partition value
    // all of [a..b) are less than partition
    // all of [c..d) are greater than partition

    // shift [a..b) to beginning
    length = Math.min(a - start, b - a);
    int l = start;
    int h = b - length;
    while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // shift [c..d) to end
    length = Math.min(d - c, end - 1 - d);
    l = b;
    h = end - length;
     while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // recurse left and right
    length = b - a;
    if (length > 0) {
      quickSort0(start, start + length, comp, swap);
    }

    length = d - c;
    if (length > 0) {
      quickSort0(end - length, end, comp, swap);
    }
  }

  /**
   * In-place insertion sort that is fast for pre-sorted data.
   *
   * @param start Where to start sorting (inclusive)
   * @param end   Where to stop (exclusive)
   * @param comp  Sort order.
   * @param swap  How to swap items.
   */
  private static void insertionSort(int start, int end, IntComparator comp, Swapper swap) {
    for (int i = start + 1; i < end; i++) {
      for (int j = i; j > start && comp.compare(j - 1, j) > 0; j--) {
        swap.swap(j - 1, j);
      }
    }
  }
{unformatted}


> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies updated MAHOUT-235:
------------------------------------

    Status: Patch Available  (was: Open)

Please ignore oops.patch and take the main patch.

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: 235_and_hash_bases.patch, oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Sean Owen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Owen updated MAHOUT-235:
-----------------------------

        Fix Version/s: 0.3
    Affects Version/s:     (was: 0.3)
                       0.2

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies updated MAHOUT-235:
------------------------------------

    Attachment: 235_and_hash_bases.patch

Here is an IP-clean replacement for the GenericSorting quicksort and the first raft of templatization of the hash table code.


> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: 235_and_hash_bases.patch, oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Ted Dunning (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795704#action_12795704 ] 

Ted Dunning edited comment on MAHOUT-235 at 12/31/09 11:24 PM:
---------------------------------------------------------------

I just looked at this.  Didn't find the problem, but did make some comments in the code and clarified it a bit.  My guess is that the main partition loop leaves b and c in the wrong order.  If i get another chance to look at this, I will put in some assertions that match what I think the loop invariants should be.  That will probably make things obvious.

Here is my commented version fo the key sort routine:
{noformat}
  private static void quickSort0(int start, int end, IntComparator comp, Swapper swap) {
    int length = end - start;
    if (length < 7) {
      insertionSort(start, end, comp, swap);
      return;
    }
    int middle = (start + end) / 2;
    if (length > 7) {
      int bottom = start;
      int top = end - 1;
      if (length > 40) {
        // for lots of data, bottom, middle and top are medians near the beginning, middle or end of the data
        int skosh = length / 8;
        bottom = med3(bottom, bottom + skosh, bottom + (2 * skosh), comp);
        middle = med3(middle - skosh, middle, middle + skosh, comp);
        top = med3(top - (2 * skosh), top - skosh, top, comp);
      }
      middle = med3(bottom, middle, top, comp);
    }

    int partitionIndex = middle; // an index, not a value.

    // regions from a to b and from c to d are what we will recursively sort
    int a, b, c, d;
    a = b = start;
    c = d = end - 1;
    while (b <= c) {
      // copy all values equal to the partition value to before a..b.  In the process, advance b
      // as long as values less than the partition or equal are found, also stop when a..b collides with c..d
      int comparison = comp.compare(b, partitionIndex);
      while (b <= c && comparison <= 0) {
        if (comparison == 0) {
          swap.swap(a, b);
          a++;
        }
        b++;
        comparison = comp.compare(b, partitionIndex);
      }
      // at this point [start..a) has partition values, [a..b) has values < partition
      // also, either b>c or v[b] > partition value

      comparison = comp.compare(c, partitionIndex);
      while (c >= b && comparison >= 0) {
        if (comparison == 0) {
          swap.swap(c, d);
          d--;
        }
        c--;
        comparison = comp.compare(c, partitionIndex);
      }
      // now we also know that [d..end] contains partition values,
      // [c..d) contains values > partition value
      // also, either b>c or (v[b] > partition OR v[c] < partition)

      if (b <= c) {
        // v[b] > partition OR v[c] < partition
        // swapping will let us continue to grow the two regions
        swap.swap(b, c);
        b++;
        c--;
      }
    }
    // now we know
    // b = c+1
    // [start..a) and [d..end) contain partition value
    // all of [a..b) are less than partition
    // all of [c..d) are greater than partition

    // shift [a..b) to beginning
    length = Math.min(a - start, b - a);
    int l = start;
    int h = b - length;
    while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // shift [c..d) to end
    length = Math.min(d - c, end - 1 - d);
    l = b;
    h = end - length;
     while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // recurse left and right
    length = b - a;
    if (length > 0) {
      quickSort0(start, start + length, comp, swap);
    }

    length = d - c;
    if (length > 0) {
      quickSort0(end - length, end, comp, swap);
    }
  }

  /**
   * In-place insertion sort that is fast for pre-sorted data.
   *
   * @param start Where to start sorting (inclusive)
   * @param end   Where to stop (exclusive)
   * @param comp  Sort order.
   * @param swap  How to swap items.
   */
  private static void insertionSort(int start, int end, IntComparator comp, Swapper swap) {
    for (int i = start + 1; i < end; i++) {
      for (int j = i; j > start && comp.compare(j - 1, j) > 0; j--) {
        swap.swap(j - 1, j);
      }
    }
  }
{noformat}


      was (Author: tdunning):
    
I just looked at this.  Didn't find the problem, but did make some comments in the code and clarified it a bit.  My guess is that the main partition loop leaves b and c in the wrong order.  If i get another chance to look at this, I will put in some assertions that match what I think the loop invariants should be.  That will probably make things obvious.

Here is my commented version fo the key sort routine:
{unformatted}
  private static void quickSort0(int start, int end, IntComparator comp, Swapper swap) {
    int length = end - start;
    if (length < 7) {
      insertionSort(start, end, comp, swap);
      return;
    }
    int middle = (start + end) / 2;
    if (length > 7) {
      int bottom = start;
      int top = end - 1;
      if (length > 40) {
        // for lots of data, bottom, middle and top are medians near the beginning, middle or end of the data
        int skosh = length / 8;
        bottom = med3(bottom, bottom + skosh, bottom + (2 * skosh), comp);
        middle = med3(middle - skosh, middle, middle + skosh, comp);
        top = med3(top - (2 * skosh), top - skosh, top, comp);
      }
      middle = med3(bottom, middle, top, comp);
    }

    int partitionIndex = middle; // an index, not a value.

    // regions from a to b and from c to d are what we will recursively sort
    int a, b, c, d;
    a = b = start;
    c = d = end - 1;
    while (b <= c) {
      // copy all values equal to the partition value to before a..b.  In the process, advance b
      // as long as values less than the partition or equal are found, also stop when a..b collides with c..d
      int comparison = comp.compare(b, partitionIndex);
      while (b <= c && comparison <= 0) {
        if (comparison == 0) {
          swap.swap(a, b);
          a++;
        }
        b++;
        comparison = comp.compare(b, partitionIndex);
      }
      // at this point [start..a) has partition values, [a..b) has values < partition
      // also, either b>c or v[b] > partition value

      comparison = comp.compare(c, partitionIndex);
      while (c >= b && comparison >= 0) {
        if (comparison == 0) {
          swap.swap(c, d);
          d--;
        }
        c--;
        comparison = comp.compare(c, partitionIndex);
      }
      // now we also know that [d..end] contains partition values,
      // [c..d) contains values > partition value
      // also, either b>c or (v[b] > partition OR v[c] < partition)

      if (b <= c) {
        // v[b] > partition OR v[c] < partition
        // swapping will let us continue to grow the two regions
        swap.swap(b, c);
        b++;
        c--;
      }
    }
    // now we know
    // b = c+1
    // [start..a) and [d..end) contain partition value
    // all of [a..b) are less than partition
    // all of [c..d) are greater than partition

    // shift [a..b) to beginning
    length = Math.min(a - start, b - a);
    int l = start;
    int h = b - length;
    while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // shift [c..d) to end
    length = Math.min(d - c, end - 1 - d);
    l = b;
    h = end - length;
     while (length-- > 0) {
      swap.swap(l, h);
      l++;
      h++;
    }

    // recurse left and right
    length = b - a;
    if (length > 0) {
      quickSort0(start, start + length, comp, swap);
    }

    length = d - c;
    if (length > 0) {
      quickSort0(end - length, end, comp, swap);
    }
  }

  /**
   * In-place insertion sort that is fast for pre-sorted data.
   *
   * @param start Where to start sorting (inclusive)
   * @param end   Where to stop (exclusive)
   * @param comp  Sort order.
   * @param swap  How to swap items.
   */
  private static void insertionSort(int start, int end, IntComparator comp, Swapper swap) {
    for (int i = start + 1; i < end; i++) {
      for (int j = i; j > start && comp.compare(j - 1, j) > 0; j--) {
        swap.swap(j - 1, j);
      }
    }
  }
{unformatted}

  
> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Sean Owen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Owen updated MAHOUT-235:
-----------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

OK committed, per Benson

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>            Assignee: Grant Ingersoll
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies updated MAHOUT-235:
------------------------------------

    Attachment: oops.diff

This doesn't work, and I'm a bit stumped.

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.3
>            Reporter: Benson Margulies
>         Attachments: oops.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies updated MAHOUT-235:
------------------------------------

    Attachment: patch.235.take2.diff

Here's the correct patch

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Drew Farris (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796521#action_12796521 ] 

Drew Farris commented on MAHOUT-235:
------------------------------------

Ok, applied patch against r895535 by running the following from the top level mahout directory:

patch -p0 -E < patch.235.take2.diff

Full build and tests complete successfully for me.



> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (MAHOUT-235) GenericSorting.java also needs replacing

Posted by "Benson Margulies (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/MAHOUT-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796173#action_12796173 ] 

Benson Margulies commented on MAHOUT-235:
-----------------------------------------

I had still posted the wrong patch. Correct patch now available.

> GenericSorting.java also needs replacing
> ----------------------------------------
>
>                 Key: MAHOUT-235
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-235
>             Project: Mahout
>          Issue Type: Bug
>          Components: Math
>    Affects Versions: 0.2
>            Reporter: Benson Margulies
>             Fix For: 0.3
>
>         Attachments: 235_and_hash_bases.patch, oops.diff, patch.235.take2.diff
>
>
> It looks like GenericSorting.java is more code of the same dubious parentage that needs the same treatment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.