Re: [Rd] Part of fastpass in 'sort.list' can make sorting unstable

2018-04-09 Thread luke-tierney

Thanks -- fixed in R-devel and R-3-5-branch.

luke

On Fri, 6 Apr 2018, Suharto Anggono Suharto Anggono via R-devel wrote:


In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in 
https://svn.r-project.org/R/branches/R-3-5-branch/src/library/base/R/sort.R), in "fastpass, 
take advantage of ALTREP metadata", there is "try the reverse since that's easy 
too...". If it succeeds, ties are reordered, violating stability of sorting.

Example:
x <- sort(c(1, 1, 3))
x  # 1 1 3
sort.list(x, decreasing=TRUE)  # should be 3 1 2

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel



--
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa  Phone: 319-335-3386
Department of Statistics andFax:   319-335-3017
   Actuarial Science
241 Schaeffer Hall  email:   luke-tier...@uiowa.edu
Iowa City, IA 52242 WWW:  http://www.stat.uiowa.edu

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Part of fastpass in 'sort.list' can make sorting unstable

2018-04-06 Thread Gabe Becker
Thanks for catching this. This is easy to take out without touching the
rest of the machinery. It also wouldn't be too hard to write a
still-faster-but-not-quite-as-much-path which correctly reverses the
sortedness of a sorted vector that includes ties. My suspicion, without
being the one who will ultimately make that decision, is that that wouldn't
go into 3.5.0 though.

Best,
~G

On Fri, Apr 6, 2018 at 3:03 PM, Suharto Anggono Suharto Anggono via R-devel
 wrote:

> In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in
> https://svn.r-project.org/R/branches/R-3-5-branch/src/
> library/base/R/sort.R), in "fastpass, take advantage of ALTREP metadata",
> there is "try the reverse since that's easy too...". If it succeeds, ties
> are reordered, violating stability of sorting.
>
> Example:
> x <- sort(c(1, 1, 3))
> x  # 1 1 3
> sort.list(x, decreasing=TRUE)  # should be 3 1 2
>
> __
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>


-- 
Gabriel Becker, Ph.D
Scientist
Bioinformatics and Computational Biology
Genentech Research

[[alternative HTML version deleted]]

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel