|
Hello, regarding this discussion:
http://octave.1599824.n4.nabble.com/Fwd-OctDev-libcruft-amos-nonfree-Bessel-code-in-Octave-td4632360.html It has been discovered that since 1998 we have been using the dubiously-licensed AMOS in GNU Octave, a free numerical environment mostly compatible with Matlab. Can you confirm that this is acceptable? We require being able to use the AMOS code in a GPL-compatible way: http://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean In particular, we cannot use AMOS if you insist on forbidding commercial use. Note that the GPL allows commercial use, so adding such a restriction is GPL-incompatible. Please carefully consider all of Octave's users, such as the thousands of Coursera students who have and are currently taking gratis online courses and using Octave for their computations. If you cannot confirm that using AMOS in Octave is acceptable, our users may suddenly lose features they've been enjoying since 1998. Thanks, - Jordi G. H. GNU Octave developer |
|
On 10 August 2012 11:39, Jordi Gutiérrez Hermoso <[hidden email]> wrote:
> Hello, regarding this discussion: > > http://octave.1599824.n4.nabble.com/Fwd-OctDev-libcruft-amos-nonfree-Bessel-code-in-Octave-td4632360.html I got an automated reply from that [hidden email] email, and they made me use a web form instead. Here is the result: https://s100.copyright.com/CustomerAdmin/SVP3.jsp?mac=5N1Zg7XrtSWHvIJ6P4FDKwzz&oNum=500690905&pName=ACM As jwe and Dima Sergatskov have pointed out to me privately, Matlab is using the same library, so I'd be kinda surprised if this turned out to be a problem. - Jordi G. H. |
|
Jordi Gutiérrez Hermoso <jordigh <at> octave.org> writes:
> As jwe and Dima Sergatskov have pointed out to me privately, Matlab > is using the same library, so I'd be kinda surprised if this turned > out to be a problem. Unfortunately, Mathworks could easily have purchased a commercial license from ACM. One possibility that occurred to me is that, since the AMOS code was developed at Sandia National Labs, it was a work of the US Govt and therefore automatically in the public domain (ineligible for copyright). However, it looks like Sandia is technically a government contractor rather than a government agency per se, and they certainly produce copyrighted software these days (https://software.sandia.gov/). As an alternative, I am evaluating a package called COULCC (also written in the 1980s). COULCC, like AMOS, was also posted without a copyright license, and later published in a journal (Computer Physics Communications, CPC: see http://dx.doi.org/10.1016/0010-4655(85)90025-6 ) that distributes code under a semi-free (non-commercial-use) license. However, CPC (unlike ACM) explicitly says that authors retain the copyright on the code, and I was able to contact the COULCC author yesterday and graciously provided me with a version of his code under the MIT/X11 license. COULCC has some potential technical advantages over AMOS, separate from the legal questions. It can evaluate Bessel functions of complex order in addition to complex arguments (AMOS only handles complex arguments and real orders), and has routines to compute J and Y simultaneously, as well as variants (modified Bessel functions, spherical Bessel functions, Hankel functions, exponentially scaled Bessel and Hankel functions, and Coulomb wavefunctions). (COULCC was originally written in Fortran 77, but the version I now have has been updated with a little bit of Fortran 90 code. It probably requires a bit of work to make it convenient to call from C/C++, and is currently non-reentrant.) Steven |
|
On Fri, Aug 10, 2012 at 12:14 PM, Steven G. Johnson
<[hidden email]> wrote: > Jordi Gutiérrez Hermoso <jordigh <at> octave.org> writes: >> As jwe and Dima Sergatskov have pointed out to me privately, Matlab >> is using the same library, so I'd be kinda surprised if this turned >> out to be a problem. > > Unfortunately, Mathworks could easily have purchased a commercial license > from ACM. > What about GSL code? http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html Dmitri. -- |
|
On 8/10/12 3:43 PM, Dmitri A. Sergatskov wrote:
> What about GSL code? > http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html > > Dmitri. The GSL code only supports real arguments, whereas both Octave and Matlab support complex arguments. |
|
On Fri, 10 Aug 2012 15:59:49 -0400
"Steven G. Johnson" <[hidden email]> wrote: > On 8/10/12 3:43 PM, Dmitri A. Sergatskov wrote: > > What about GSL code? > > http://www.gnu.org/software/gsl/manual/html_node/Special-Functions.html > > > > Dmitri. > > The GSL code only supports real arguments, whereas both Octave and > Matlab support complex arguments. .. so shouldn't this capability be added in GSL instead? -- Jussi Lehtola Fedora Project Contributor [hidden email] |
|
Jussi Lehtola wrote:
>> The GSL code only supports real arguments, whereas both Octave and >> Matlab support complex arguments. > > .. so shouldn't this capability be added in GSL instead? Possibly, but in the meantime Octave still needs complex-argument Bessel functionality. |
|
On 10 August 2012 19:20, Steven G. Johnson <[hidden email]> wrote:
> Jussi Lehtola wrote: >>> >>> The GSL code only supports real arguments, whereas both Octave and Matlab >>> support complex arguments. >> >> .. so shouldn't this capability be added in GSL instead? > > > Possibly, but in the meantime Octave still needs complex-argument Bessel > functionality. I don't think we're in such a rush. Realistically, complex-argument Bessel functions are not a killer feature. - Jordi G. H. |
|
In reply to this post by Steven G. Johnson
On 10 August 2012 13:14, Steven G. Johnson <[hidden email]> wrote:
> Jordi Gutiérrez Hermoso <jordigh <at> octave.org> writes: >> As jwe and Dima Sergatskov have pointed out to me privately, Matlab >> is using the same library, so I'd be kinda surprised if this turned >> out to be a problem. > > Unfortunately, Mathworks could easily have purchased a commercial license > from ACM. I kinda doubt it. TMW has played fast and loose with licenses in the past (e.g. accepting code into Matlab Central for many years with no clear license given, just like the Amos code itself), and the Amos code is far enough in the past that it would be consistent with this treatment. Let's wait for the ACM response before we decide to do anything. This may be all be a very minor thing. - Jordi G. H. |
|
In reply to this post by Jordi Gutiérrez Hermoso-2
On 08/10/2012 07:54 PM, Jordi Gutiérrez Hermoso wrote:
> On 10 August 2012 19:20, Steven G. Johnson <[hidden email]> wrote: >> Jussi Lehtola wrote: >>>> The GSL code only supports real arguments, whereas both Octave and Matlab >>>> support complex arguments. >>> .. so shouldn't this capability be added in GSL instead? >> >> Possibly, but in the meantime Octave still needs complex-argument Bessel >> functionality. > I don't think we're in such a rush. Realistically, complex-argument > Bessel functions are not a killer feature. > > - Jordi G. H. > > the problem. Making a good Bessel function routine isn't all that trivial, but the algorithms have been published and I think we could do just fine. I don't think we should be getting our knickers in a knot though. The code on the netlib site is a modification of the original ACM code and I think the whole licensing thing is going to get real murky. I wonder if Amos is still around? He might be the best one to ask for permission. I will look into that. Bob |
|
In reply to this post by Jordi Gutiérrez Hermoso-2
Jordi Gutiérrez Hermoso wrote:
> On 10 August 2012 13:14, Steven G. Johnson <[hidden email]> wrote: >> Jordi Gutiérrez Hermoso <jordigh <at> octave.org> writes: >>> As jwe and Dima Sergatskov have pointed out to me privately, Matlab >>> is using the same library, so I'd be kinda surprised if this turned >>> out to be a problem. >> Unfortunately, Mathworks could easily have purchased a commercial license >> from ACM. > > I kinda doubt it. TMW has played fast and loose with licenses in the > past (e.g. accepting code into Matlab Central for many years with no > clear license given, just like the Amos code itself), and the Amos > code is far enough in the past that it would be consistent with this > treatment. Matlab Central is a different situation; thanks to the safe-harbor provisions of the DMCA, they aren't responsible for policing user-uploaded content, just for taking it down if there is a complaint. I seriously doubt that Mathworks doesn't legal counsel scrutinizing the copyright and license terms of all code that ships in Matlab. I have dealt with their licensing people personally in the past, and they definitely purchase licenses to third-party code. > Let's wait for the ACM response before we decide to do anything. This > may be all be a very minor thing. PS. I hope remembered to refer to "TOMS Algorithm 644" in your email; ACM wouldn't know the code under the name of "AMOS". |
|
In reply to this post by Steven G. Johnson
On 08/10/2012 06:20 PM, Steven G. Johnson wrote:
> Jussi Lehtola wrote: >>> The GSL code only supports real arguments, whereas both Octave and >>> Matlab support complex arguments. >> >> .. so shouldn't this capability be added in GSL instead? > > Possibly, but in the meantime Octave still needs complex-argument Bessel > functionality. How many routines are required from the library? Is it few enough that we could write the routine ourselves? If it were one or two, looking up a few papers and writing some code might not be too bad. Dan |
|
On 08/11/2012 09:33 AM, Daniel J Sebald wrote:
> On 08/10/2012 06:20 PM, Steven G. Johnson wrote: >> Jussi Lehtola wrote: >>>> The GSL code only supports real arguments, whereas both Octave and >>>> Matlab support complex arguments. >>> >>> .. so shouldn't this capability be added in GSL instead? >> >> Possibly, but in the meantime Octave still needs complex-argument Bessel >> functionality. > > How many routines are required from the library? Is it few enough > that we could write the routine ourselves? If it were one or two, > looking up a few papers and writing some code might not be too bad. > > Dan > > undertaking, but the algorithms for each are published in the ACM. If we can't use the code, we can still use the algorithms. The real issue is that we should probably get a little more serious than that if we really have to go that way. Those older routines were very heavily optimized for the computers of 1984, and many of those constraints have changed (to say the least). Bob |
|
In reply to this post by Jordi Gutiérrez Hermoso-2
I found something encouraging:
The AMOS functions are included in SLATEC, and the SLATEC guide (http://www.netlib.org/slatec/guide) explicitly states: "The Library is in the public domain and distributed by the Energy Science and Technology Software Center." Mention of AMOS's inclusion in SLATEC goes back at least to this 1985 technical report from Sandia National Labs: http://infoserve.sandia.gov/sand_doc/1985/851018.pdf Since the national laboratories which distribute SLATEC and which are the authors of AMOS are willing to certify in writing that the code is in the public domain, it looks like we are off the hook? (i.e. the possibility of copyright assignment to ACM is irrelevant because it wasn't copyrighted to begin with.) Steven |
|
In reply to this post by Jordi Gutiérrez Hermoso-2
Hello Jordi,
Thank you for your inquiry and for explaining your dilemma. Please forgive the delayed reply and be assured that ACM does not forbid commercial use of the algorithms, but you do require a commercial use license, which is an addendum to the ACM Software License Agreement referenced in the discussion included in your email. The Commercial license may be modified as needed to suit Coursera's requirements as it regards GPL distribution, however the fee will need to be adjusted accordingly. You will note that ACM Policy also requires the original author's consent to your use as a professional courtesy. Let me know if you have any further questions. Regards, Deborah Cotton Copyright & Permissions ACM Publications 212.626.0652 [hidden email] -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Jordi Gutiérrez Hermoso Sent: Friday, August 10, 2012 11:39 AM To: [hidden email] Cc: Octave Maintainers List Subject: Can we freely use AMOS in Octave? Hello, regarding this discussion: http://octave.1599824.n4.nabble.com/Fwd-OctDev-libcruft-amos-nonfree-Bessel-code-in-Octave-td4632360.html It has been discovered that since 1998 we have been using the dubiously-licensed AMOS in GNU Octave, a free numerical environment mostly compatible with Matlab. Can you confirm that this is acceptable? We require being able to use the AMOS code in a GPL-compatible way: http://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean In particular, we cannot use AMOS if you insist on forbidding commercial use. Note that the GPL allows commercial use, so adding such a restriction is GPL-incompatible. Please carefully consider all of Octave's users, such as the thousands of Coursera students who have and are currently taking gratis online courses and using Octave for their computations. If you cannot confirm that using AMOS in Octave is acceptable, our users may suddenly lose features they've been enjoying since 1998. Thanks, - Jordi G. H. GNU Octave developer |
|
In reply to this post by Jordi Gutiérrez Hermoso-2
Jordi,
Not a very helpful response from the ACM. It did not read as if they had actually read your email. But, it appears that they do not have the right to the copyright anyhow. I do not think anyone should give them $500 for a commercial license, certainly not us, or Coursera. mdg |
|
On Thu, Aug 16, 2012 at 8:31 PM, Michael D Godfrey
<[hidden email]> wrote: .... > I do not think anyone should give them $500 for a commercial license, > certainly not us, or Coursera. > > mdg > Moreover, paying $500 would not solve the problem, the license remains not compatible with GPL. Dmitri. -- |
|
In reply to this post by Steven G. Johnson
On Fri, Aug 10, 2012 at 12:14 PM, Steven G. Johnson
<[hidden email]> wrote: > As an alternative, I am evaluating a package called COULCC (also written > in the 1980s). COULCC, like AMOS, was also posted without a copyright > license, and later published in a journal (Computer Physics Communications, CPC: > see http://dx.doi.org/10.1016/0010-4655(85)90025-6 ) that distributes > code under a semi-free (non-commercial-use) license. However, CPC (unlike > ACM) explicitly says that authors retain the copyright on the code, and > I was able to contact the COULCC author yesterday and graciously provided > me with a version of his code under the MIT/X11 license. > > COULCC has some potential technical advantages over AMOS, separate from > the legal questions. It can evaluate Bessel functions of complex order > in addition to complex arguments (AMOS only handles complex arguments > and real orders), and has routines to compute J and Y simultaneously, > as well as variants (modified Bessel functions, spherical Bessel > functions, Hankel functions, exponentially scaled Bessel and Hankel > functions, and Coulomb wavefunctions). > > (COULCC was originally written in Fortran 77, but the version I now have > has been updated with a little bit of Fortran 90 code. It probably > requires a bit of work to make it convenient to call from C/C++, and is > currently non-reentrant.) > It appears to me that COULCC is a part of the Fresco coide http://www.fresco.org.uk/download.htm with a FRES version available "for public distribution" (I do not see an explicit licensing): http://www.fresco.org.uk/source/fres-v29.html > Steven > Dmitri. -- |
|
On Fri, Aug 17, 2012 at 12:24 AM, Dmitri A. Sergatskov
<[hidden email]> wrote: > with a FRES version available "for public distribution" > (I do not see an explicit licensing): > > http://www.fresco.org.uk/source/fres-v29.html > http://www.fresco.org.uk/functions.htm has links to the special function codes as well as to a copy of the paper. Dmitri. -- |
|
In reply to this post by Dmitri A. Sergatskov
Dmitri A. Sergatskov wrote:
> On Fri, Aug 10, 2012 at 12:14 PM, Steven G. Johnson > <[hidden email]> wrote: > >> As an alternative, I am evaluating a package called COULCC (also written >> in the 1980s). COULCC, like AMOS, was also posted without a copyright >> license, and later published in a journal (Computer Physics Communications, CPC: >> see http://dx.doi.org/10.1016/0010-4655(85)90025-6 ) that distributes >> code under a semi-free (non-commercial-use) license. However, CPC (unlike >> ACM) explicitly says that authors retain the copyright on the code, and >> I was able to contact the COULCC author yesterday and graciously provided >> me with a version of his code under the MIT/X11 license. >> >> COULCC has some potential technical advantages over AMOS, separate from >> the legal questions. It can evaluate Bessel functions of complex order >> in addition to complex arguments (AMOS only handles complex arguments >> and real orders), and has routines to compute J and Y simultaneously, >> as well as variants (modified Bessel functions, spherical Bessel >> functions, Hankel functions, exponentially scaled Bessel and Hankel >> functions, and Coulomb wavefunctions). >> >> (COULCC was originally written in Fortran 77, but the version I now have >> has been updated with a little bit of Fortran 90 code. It probably >> requires a bit of work to make it convenient to call from C/C++, and is >> currently non-reentrant.) >> > > It appears to me that COULCC is a part of the Fresco coide > http://www.fresco.org.uk/download.htm > with a FRES version available "for public distribution" > (I do not see an explicit licensing): > > http://www.fresco.org.uk/source/fres-v29.html I received a copy of COULCC with an explicit MIT/X11 license directly from the original author. This version of the code (including the permission email from the author), along with a re-entrant C++ translation that I created (semi-automated, but not f2c), is available at: http://jdj.mit.edu/~stevenj/coulcc-20120813.tgz However, the code (both the Fortran original and my C++ translation) has a problem that turned up in my evaluation: it has significantly worse accuracy than AMOS for some moderate-size Bessel orders (~ 10). The original author is taking a look at this, but at the moment it may be problematic as a drop-in replacement for AMOS. However, AMOS's inclusion in SLATEC, which has an explicit public-domain statement by the national laboratories, seems like it may fix the licensing problem with AMOS and eliminate the need for ACM permission. Steven |
| Powered by Nabble | Edit this page |
