[Rd] Question about quantile fuzz and GPL license
Ben Bolker
bbo|ker @end|ng |rom gm@||@com
Tue Sep 14 16:11:56 CEST 2021
On 9/14/21 9:22 AM, Abel AOUN wrote:
> Hello,
>
> I'm currently working on Python numpy package to develop linear interpolation methods for quantiles.
> Currently, numpy only support the type 7 of Hyndman & Fan and I did the implementation for the 8 other methods to do as much as R ::quantile.
>
> As you may guess, I was inspired by R implementation as well as other sources, which lead to my questions:
>
> About fuzz (see first reference below for the source code),
> fuzz <- 4 * .Machine $ double.eps
> I think I understand why the machine epsilon is used to correct some edge cases where the float comparisons would fail.
> However I don't get why epsilon is multiplied by 4 instead of simply using epsilon.
> Is there someone who can explain this 4 ?
No, but doing a bit of archaeology
https://github.com/wch/r-source/blame/trunk/src/library/stats/R/quantile.R
give the commit message for these lines as "add (modified) version of
quantile.default from Rob Hyndman (17 years ago)". This commit was made
by Brian Ripley.
However, the code from Rob Hyndman here:
https://stat.ethz.ch/pipermail/r-devel/2004-July/030204.html
does **not** have the lines with the fuzz. So my guess would be that
Brian Ripley is the author of that particular bit of code.
I can't say, myself, what the logic behind 4 * .Machine$double.eps is ...
>
> About licence,
> Numpy is under license BSD and R is on GPL.
> The only thing I really cherry picked and rewrote for numpy is the fuzz part.
> I'm quite new to open source development. We are wondering if doing this breaks the license GPL and if I can credit the original authors.
> Plus, I'm not quite sure this is the right place to ask this, if not, sorry for the noise.
> The relevant discussion on numpy PR is here: [ https://github.com/numpy/numpy/pull/19857#discussion_r706019184 | https://github.com/numpy/numpy/pull/19857#discussion_r706019184 ]
>
>
> Thank you for your time.
>
> Regards,
> Abel Aoun
>
>
> References:
> The source code for R::quantile (fuzz is at line 82) [ https://github.com/wch/r-source/blob/79298c499218846d14500255efd622b5021c10ec/src/library/stats/R/quantile.R | https://github.com/wch/r-source/blob/79298c499218846d14500255efd622b5021c10ec/src/library/stats/R/quantile.R ] [ https://github.com/numpy/numpy/pull/19857 ]
> R doc for quantile : [ https://www.rdocumentation.org/packages/stats/versions/3.5.0/topics/quantile | https://www.rdocumentation.org/packages/stats/versions/3.5.0/topics/quantile ]
> The ongoing PR on numpy: [ https://github.com/numpy/numpy/pull/19857 | https://github.com/numpy/numpy/pull/19857 ]
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Director, School of Computational Science and Engineering
Graduate chair, Mathematics & Statistics
More information about the R-devel
mailing list