Google groups seems to have just lost a substantial reply I made. This
has happened more than once and seems to be related to the "reply
without quote" option.

I don't want to type all that again, but here are the salient points:

1) MAPLE are pretty careful about their code. MAPLE authors also tend
to be so. I once saw a very neat trick that had been implemented in
MAPLE for the quadratic sieve. It seemed obvious, once you knew the
trick. It had even been written up in a paper. Ordinarily I could then
just use that trick and mention which paper I got it from. But in this
case it had been pointed out to me by a friend of the author.
Apparently the author didn't necessarily want his idea GPL'd. Better
suggestions are:

--Find a similar trick implemented in GPL'd software.
--Find a trick implemented in source that has no restrictions.
--Come up with your own trick which achieves a similar result.

I have some questions:

2) Can one make use of code which has no restrictions, but which is
clearly copyrighted and maintained by a particular identifiable
individual, and GPL the resulting package? I note for example that some
of Jason P's msieve code (which has no restrictions apart from
attribution and an encouragement to notify him) has ended up in GGNFS
with attribution (though I can't rule out that he contributed it
himself). For example, would all of SAGE be GPL'd if it included work
from someone which wasn't GPL'd but had no substantial license
restrictions?

[Unfortunately we can't just make use of msieve in SAGE, since it is
(currently) only fast on Athlons and that by virtue of its home brew MP
library which has a heavy assembly language component, I believe. Jason
P is an awfully nice guy, and the code is extremely fast, so otherwise
this might have been possible.]

3) How does one attribute the work of another GPL'd author when one
produces a derived version which isn't just a straight modification of
the original code. For example in one small section of my quadratic
sieve (the F2Matrix code) a small portion of it is based on, but not
the same as the F2Matrix code in Pari. My version is 20 times faster on
some architectures and the underlying algorithm is quite different but
some (not all) functions are still recognizable, though almost no two
lines are the same.

I've tried contacting Gerhard Niklasch a number of times recently
without success. He appears to have written the code I speak of, or at
least is the current maintainer.

The specific question I have is, what copyright do I put on the code?
Should I copyright the code I have put together to me and add a note
that I based part of it on their work, or should I copyright it to them
and add a note that I made contributions to it? Note it would be
impossible to go through it symbol by symbol and note all instances
where the code coincided with theirs. It just strongly resembles theirs
in those few functions, without being the same.

Note I cannot copyright the whole of the F2Matrix code to them, since
some of it was certainly written entirely by me (including the main
Gaussian reduction algorithm, which is the most important part of that
module), and uses a number of tricks that I consider to be my own. Also
note, my entire sieve is GPL'd.

4) In the case of the NTL replacement library I am writing (NTL is
GPL'd) I can just contact Victor Shoup. In some cases I have virtually
just translated his code (from C+wrappered GMP to C+native GMP), so I
can probably make some of the code copyright Victor Shoup and just note
that I modified it. In other cases the algorithms and code are uniquely
mine. The whole package is of course heavily based on the structure of
NTL, so that is quite a different situation to 3 above. It is also much
easier to identify which functions are just translations of NTL
functions, and which have been completely rewritten by me, using
different algorithms and coding ideas.

Of course, I am sure it will also be no problem to contact Victor and
make sure I do what he wants. Note that I cannot just contribute the
code to NTL, since NTL is implemented in a wholly incompatible way.

Bill.


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to