digitalmars.D.announce - Re: Numpy Random Number Generators
- Pablo Ripolles <in-call gmx.net> May 01 2009
- dsimcha <dsimcha yahoo.com> May 01 2009
- Pablo Ripolles <in-call gmx.net> May 01 2009
- Michel Fortin <michel.fortin michelf.com> May 02 2009
- Fawzi Mohamed <fmohamed mac.com> May 12 2009
dsimcha Wrote:== Quote from Andrei Alexandrescu (SeeWebsiteForEmail erdani.org)'s articledsimcha wrote:I've ported a large portion of the Numpy random number generation library to D. (I excluded the uniform random number generators because Phobos and Tango already have good implementations of these, and a few distributions because they were obscure and hard to test properly. I may add the obscure probability distributions later.) The results appear pretty good (I added unit tests that make sure the results are sane while I was at it). The module is licensed under the BSD license. The code is available at: http://dsource.org/projects/dstats/browser/trunk/random.d Docs are at http://svn.dsource.org/projects/dstats/docs/random.html although there's not much there. If you understand the probability distribution you're trying to sample from, it's pretty self-explanatory. If not, a little bit of ddoc isn't going to help, and Wikipedia is probably a better choice.
Andrei
I would certainly be willing to grant permission for these to be included in Phobos. The only problem is the original code that I ported is BSD licensed, meaning you have to include all the relevant disclaimers.
Hello, I might be wrong but, as far as I know, the licenses apply to code and not to algorithms. That is, once you jump out of the original implementation (the original codes are not in d) and you re-implement the algorithms in another language (in this case d) the work is not, properly speaking, a derived work. I insist, I'm not a lawyer and I'm not 100% sure but that could be checked. Cheers!
May 01 2009
== Quote from Pablo Ripolles (in-call gmx.net)'s articledsimcha Wrote:== Quote from Andrei Alexandrescu (SeeWebsiteForEmail erdani.org)'s articledsimcha wrote:I've ported a large portion of the Numpy random number generation library to D. (I excluded the uniform random number generators because Phobos and Tango already have good implementations of these, and a few distributions because they were obscure and hard to test properly. I may add the obscure probability distributions later.) The results appear pretty good (I added unit tests that make sure the results are sane while I was at it). The module is licensed under the BSD license. The code is available at: http://dsource.org/projects/dstats/browser/trunk/random.d Docs are at http://svn.dsource.org/projects/dstats/docs/random.html although there's not much there. If you understand the probability distribution you're trying to sample from, it's pretty self-explanatory. If not, a little bit of ddoc isn't going to help, and Wikipedia is probably a better choice.
Andrei
I would certainly be willing to grant permission for these to be included in Phobos. The only problem is the original code that I ported is BSD licensed, meaning you have to include all the relevant disclaimers.
original codes are not in d) and you re-implement the algorithms in another language (in this case d) the work is not, properly speaking, a derived work. I insist, I'm not a lawyer and I'm not 100% sure but that could be checked.Cheers!
IDK, I mean, I cut and pasted the code into my D IDE and tweaked it to get it to compile and then did some statistical tests to make sure the distributions were still reproduced faithfully. I didn't even change any of the variable names or code structure or anything in most cases. It's a straight translation, not a real reimplementation. I don't see how something like this could possibly *not* be considered a derivative work, and I think the people who wrote the original lib definitely deserve to be given credit. It's just that some of the BSD legalese is a little bit of a PITA for code that's in a standard lib.
May 01 2009
dsimcha Wrote:== Quote from Pablo Ripolles (in-call gmx.net)'s articledsimcha Wrote:== Quote from Andrei Alexandrescu (SeeWebsiteForEmail erdani.org)'s articledsimcha wrote:I've ported a large portion of the Numpy random number generation library to D. (I excluded the uniform random number generators because Phobos and Tango already have good implementations of these, and a few distributions because they were obscure and hard to test properly. I may add the obscure probability distributions later.) The results appear pretty good (I added unit tests that make sure the results are sane while I was at it). The module is licensed under the BSD license. The code is available at: http://dsource.org/projects/dstats/browser/trunk/random.d Docs are at http://svn.dsource.org/projects/dstats/docs/random.html although there's not much there. If you understand the probability distribution you're trying to sample from, it's pretty self-explanatory. If not, a little bit of ddoc isn't going to help, and Wikipedia is probably a better choice.
Andrei
I would certainly be willing to grant permission for these to be included in Phobos. The only problem is the original code that I ported is BSD licensed, meaning you have to include all the relevant disclaimers.
original codes are not in d) and you re-implement the algorithms in another language (in this case d) the work is not, properly speaking, a derived work. I insist, I'm not a lawyer and I'm not 100% sure but that could be checked.Cheers!
IDK, I mean, I cut and pasted the code into my D IDE and tweaked it to get it to compile and then did some statistical tests to make sure the distributions were still reproduced faithfully. I didn't even change any of the variable names or code structure or anything in most cases. It's a straight translation, not a real reimplementation. I don't see how something like this could possibly *not* be considered a derivative work, and I think the people who wrote the original lib definitely deserve to be given credit. It's just that some of the BSD legalese is a little bit of a PITA for code that's in a standard lib.
yeah, that makes sense. cheers!
May 01 2009
On 2009-05-01 15:10:50 -0400, dsimcha <dsimcha yahoo.com> said:IDK, I mean, I cut and pasted the code into my D IDE and tweaked it to get it to compile and then did some statistical tests to make sure the distributions were still reproduced faithfully. I didn't even change any of the variable names or code structure or anything in most cases. It's a straight translation, not a real reimplementation. I don't see how something like this could possibly *not* be considered a derivative work, and I think the people who wrote the original lib definitely deserve to be given credit. It's just that some of the BSD legalese is a little bit of a PITA for code that's in a standard lib.
You can always ask for permission at the source. You never know, they may agree to allow you to put your D port under a license that'd work for Phobos. As long as there isn't too many copyright holders, it might work. -- Michel Fortin michel.fortin michelf.com http://michelf.com/
May 02 2009
On 2009-05-02 12:36:16 +0200, Michel Fortin <michel.fortin michelf.com> said:On 2009-05-01 15:10:50 -0400, dsimcha <dsimcha yahoo.com> said:IDK, I mean, I cut and pasted the code into my D IDE and tweaked it to get it to compile and then did some statistical tests to make sure the distributions were still reproduced faithfully. I didn't even change any of the variable names or code structure or anything in most cases. It's a straight translation, not a real reimplementation. I don't see how something like this could possibly *not* be considered a derivative work, and I think the people who wrote the original lib definitely deserve to be given credit. It's just that some of the BSD legalese is a little bit of a PITA for code that's in a standard lib.
You can always ask for permission at the source. You never know, they may agree to allow you to put your D port under a license that'd work for Phobos. As long as there isn't too many copyright holders, it might work.
otherwise adding the missing distributions (gaussian, exponential & gamma are already there, and done efficiently) to tango.math.random.Random would also be welcomed. Fawzi
May 12 2009









Pablo Ripolles <in-call gmx.net> 