Hello, I am working on an open source 3D solid modeling kernel ( http://wildcat-cad.blogger.com and http://wildcat-cad.googlecode.com). It allows users to sketch 2D profiles and extrude them into 3D to form mechanical parts. The 2D sketches are constrained with dimensions (lengths, angles, etc.) and these constraints naturally form a system of equations. An unrelated project (http://code.google.com/p/psketcher) has developed a very nice solver for these systems of equations. The psketcher project uses GiNaC as its mathematical engine. I would like to incorporate the psketcher solver into my kernel, but there may be a conflict in licenses. My project is released under the BSD license, while I understand GiNaC to be under the GPL. Is there any way to reconcile this problem other than changing to a different license? I would love to use GiNaC for a couple of other purposes within my project also. Any help would be appreciated. Cheers, Graham
Hi! Graham Hemingway wrote:
I am working on an open source 3D solid modeling kernel ( http://wildcat-cad.blogger.com and http://wildcat-cad.googlecode.com). It allows users to sketch 2D profiles and extrude them into 3D to form mechanical parts. The 2D sketches are constrained with dimensions (lengths, angles, etc.) and these constraints naturally form a system of equations. An unrelated project (http://code.google.com/p/psketcher) has developed a very nice solver for these systems of equations. The psketcher project uses GiNaC as its mathematical engine.
I would like to incorporate the psketcher solver into my kernel, but there may be a conflict in licenses. My project is released under the BSD license, while I understand GiNaC to be under the GPL. Is there any way to reconcile this problem other than changing to a different license? I would love to use GiNaC for a couple of other purposes within my project also. Any help would be appreciated.
But that license conflict is not just about GiNaC. CLN and pSketcher are GPL, too. Changing all these licenses is next to impossible. Even trying to contact all copyright holders and pursuing them to dual-license their portions would be extremely challenging. If only one says "no", you are stuck. It'll be much easier releasing your projects under the GPL. You should consider that. It is a good license. happy hacking -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>
Thank you for the quick answer Richy. I have already been in touch with the author of psketcher and would not have an issue there. The problem is focused on GiNaC and its dependencies. I agree that getting everyone to go along would be tough, if not impossible. Well, perhaps an alternative path will present itself in time. Cheers and keep up the great work. Graham On Tue, Oct 21, 2008 at 3:50 PM, Richard B. Kreckel <kreckel@ginac.de>wrote:
Hi!
I am working on an open source 3D solid modeling kernel ( http://wildcat-cad.blogger.com and http://wildcat-cad.googlecode.com). It allows users to sketch 2D profiles and extrude them into 3D to form mechanical parts. The 2D sketches are constrained with dimensions (lengths, angles, etc.) and these constraints naturally form a system of equations. An unrelated project (http://code.google.com/p/psketcher) has developed a very nice solver for these systems of equations. The psketcher project uses GiNaC as its mathematical engine.
I would like to incorporate the psketcher solver into my kernel, but
Graham Hemingway wrote: there
may be a conflict in licenses. My project is released under the BSD license, while I understand GiNaC to be under the GPL. Is there any way to reconcile this problem other than changing to a different license? I would love to use GiNaC for a couple of other purposes within my project also. Any help would be appreciated.
But that license conflict is not just about GiNaC. CLN and pSketcher are GPL, too. Changing all these licenses is next to impossible. Even trying to contact all copyright holders and pursuing them to dual-license their portions would be extremely challenging. If only one says "no", you are stuck.
It'll be much easier releasing your projects under the GPL. You should consider that. It is a good license.
happy hacking -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/> _______________________________________________ GiNaC-list mailing list GiNaC-list@ginac.de https://www.cebix.net/mailman/listinfo/ginac-list
-- Graham Hemingway cell: (615) 294-7133
On Tue, Oct 21, 2008 at 11:09 PM, Graham Hemingway <graham.hemingway@gmail.com> wrote:
Thank you for the quick answer Richy. I have already been in touch with the author of psketcher and would not have an issue there. The problem is focused on GiNaC and its dependencies. I agree that getting everyone to go along would be tough, if not impossible. Well, perhaps an alternative path will present itself in time. Cheers and keep up the great work.
I didn't know about either project and both look very interesting. Thanks for introducing it. Just curious, what are your reasons for using BSD? Alexei or anyone, if you don't want this to be discussed here, let me know and I won't bring license issues on ginac list anymore. :) Also, what kind of equations you are getting? If you don't mind Python dependency, you can also consider using SymPy, which is BSD, I can create Cython wrappers, so that it can be called from C/C++ easily. But it's slower than ginac in most cases. If your equations are simple, you can also try our experimental fast core[1], which is almost (sometimes even faster) than ginac, but it cannot yet do many things. I haven't yet found time to merge it with sympy. But imho it's just better to figure out ways to use ginac, if you use C++ anyway I think it's the right tool for the job. Ondrej [1] http://groups.google.com/group/sympy/browse_thread/thread/aa3f4263bc3f7e23
Dear Ondrej, On Wed, Oct 22, 2008 at 12:16:23AM +0200, Ondrej Certik wrote:
Ginac is expanding in an unoptimal way though,
Are you sure? $ cat simple.ginsh #!/usr/bin/env ginsh e = (x^10+x^9+x^8+x^7+x^6+x^4+x^3+x^2+x+1)*(x-1); g = e^10*(e^10+1); time(expand(g)); ./simple.ginsh | tail -n1 2.40s Your "optimal" method runs out of memory: $ cat smart.ginsh #!/usr/bin/env ginsh e = (x^10+x^9+x^8+x^7+x^6+x^4+x^3+x^2+x+1)*(x-1); g = e^20 + e^10; time(expand(g)); ./smart.ginsh | tail -n1 St9bad_alloc syntax error, unexpected ')' at ) In many calculations the initial and final expressions are (much) smaller than intermediate ones. That's why GiNaC tries to to cancel intermediate terms as early as possible. Hence 'unoptimal' (bottom-up instead of top-down) expand(), eval(), etc. Best regards, Alexei -- All science is either physics or stamp collecting.
On Wed, Oct 22, 2008 at 12:58 PM, Alexei Sheplyakov <varg@theor.jinr.ru> wrote:
Dear Ondrej,
On Wed, Oct 22, 2008 at 12:16:23AM +0200, Ondrej Certik wrote:
Ginac is expanding in an unoptimal way though,
Are you sure?
$ cat simple.ginsh #!/usr/bin/env ginsh e = (x^10+x^9+x^8+x^7+x^6+x^4+x^3+x^2+x+1)*(x-1); g = e^10*(e^10+1); time(expand(g)); ./simple.ginsh | tail -n1 2.40s
Your "optimal" method runs out of memory:
$ cat smart.ginsh #!/usr/bin/env ginsh e = (x^10+x^9+x^8+x^7+x^6+x^4+x^3+x^2+x+1)*(x-1); g = e^20 + e^10; time(expand(g)); ./smart.ginsh | tail -n1 St9bad_alloc syntax error, unexpected ')' at )
In many calculations the initial and final expressions are (much) smaller than intermediate ones. That's why GiNaC tries to to cancel intermediate terms as early as possible. Hence 'unoptimal' (bottom-up instead of top-down) expand(), eval(), etc.
Right, good example. So it seems to me that there are problems where one way is better and there are problems where the other way is bettter? If this is the case, maybe there could be an option to choose which method to use. Ondrej
On Wed, Oct 22, 2008 at 12:16:23AM +0200, Ondrej Certik wrote:
Just curious, what are your reasons for using BSD? Alexei or anyone, if you don't want this to be discussed here, let me know and I won't bring license issues on ginac list anymore. :)
I would appreciate it very much. Best regards, Alexei -- All science is either physics or stamp collecting.
Hello, On Tue, Oct 21, 2008 at 10:50:15PM +0200, Richard B. Kreckel wrote:
But that license conflict is not just about GiNaC. CLN and pSketcher are GPL, too. Changing all these licenses is next to impossible. Even trying to contact all copyright holders and pursuing them to dual-license their portions would be extremely challenging.
I really dislike dual licensing thing, especially if the second license is BSD. I don't want to be a free (as in `free beer') employee of every company making proprietary software. Best regards, Alexei -- All science is either physics or stamp collecting.
participants (4)
-
Alexei Sheplyakov
-
Graham Hemingway
-
Ondrej Certik
-
Richard B. Kreckel