Open source licensing questions
Commercial licensing questions
Yes, you can.
GPL license does not forbid commercial usage, but you should distinguish between commercial usage and commercial distribution (see next question).
If commercial usage does not involve distribution of ALGLIB code (or code which depends on ALGLIB), you can use ALGLIB without hesitation. However, ALGLIB Commercial Edition features a lot of improvements which are absent in Free Edition.
Almost surely - no. GPL license does not forbid commercial distribution explicitly, but it imposes several requirements that commercial users can't comply with.
The most important requirements are: a) you must distribute your program along with source code and under GPL, b) you can't restrict your users from copying your program, reselling copies or distributing them for free.
You can, but there is at least one reason to buy commercial license. Everything is OK while it is just running on your server. But any action connected with distribution - selling, sublicensing, transferring to someone under nondisclosure agreement - will trigger copyleft clause. So it is safer and more convenient to buy commercial license.
One-year commercial support plan includes:
We provide following set of guarantees:
We offer you two payment methods. Plastic cards are the easiest and fastest way to pay. You should fill order form on ALGLIB website, then you get redirected to secure webform where you should enter your card number and other relevant information. Order will be processed within one business day after payment is done. Source files with your name in the "License information" section will be delivered to you by e-mail. In case you didn't get ALGLIB in time, please contact us.
Another payment method is bank transfer. It is slower (takes from 3 to 5 days) but sometimes can be more appropriate. You should fill order form on ALGLIB website, then within one business day an invoice will be issued. After paying an invoice you can either (A) wait for the money to enter our bank account - generally up to 3 days, or (B) send us confirmation of the payment (scanned copy of the bank documents, screenshot from internet banking system or accounting program). Then within one business day you will receive Commercial Edition of ALGLIB.
Yes, you can submit a request for free 30-day trial version of ALGLIB Commercial Edition. This trial version is fully functional within 30-day interval.
Yes. We offer you unconditional 90-day money back guarantee. If, within 90 days from payment, you will understand that for some reason you don't want to use ALGLIB anymore, you can contact us and we will return your payment back to you.
If money was paid by bank transfer, we will send them back to your account. In case payment by plastic card was used, we will refund your money back to your card.
First limitation is performance. Free Edition does not include multithreading functionality and low level optimizations. It is good on small and medium-scale computational problems, but may be too slow on large-scale ones.
Second limitation is license. GPL license, which is used by Free Edition of ALGLIB, is not good for most commercial applications.
Yes. Commercial license allows you to modify ALGLIB as you wish and to decide what to do with these modifications.
No, it is not per-developer licensing. With per-developer licensing model you are charged every time you add one more developer. There is strict one-to-one correspondence between number of developers you have and amount of money paid. Discount, from the other side, is something fixed - it is determined at the moment when both sides reach an agreement. It can't be changed or claimed back in the future except for a special case described in clause 4.4.b of the commercial license agreement.
By applying for a developer-based discount you state that you do not intend to use ALGLIB by more than N developers. Either you a) have no more than N developers, or b) you have more than N developers, but only N of them (team or department) will work with programs which use ALGLIB. It is your intention to follow some specific usage pattern, and we agree to give you a discount whose size depends on this pattern. We also agree that if your company (or department) will grow beyond N developers, we won't charge you for these additional developers - except for a special case described in clause 4.4.b.
Clause 4.4.b states that you agree to contact us and ask to recalculate discount size if team(s) total size will increase beyond N developers within 3 months after the Agreement effective date. This clause is reserved for a situation when you suddenly understand that one more department wants to use ALGLIB.
See also question regarding clause 4.4.c.
Because it is hard to control users of the open source software product.
We don't think that per-developer licensing is "bad", but it needs license manager. We can't attach one to a program which is shipped in source-only form. And even if we could, we would have a lot of problems while counting number of developers submitting code to SVN repository. So we prefer to count your developers only once - at the moment when the agreement is concluded.
Clause 4.4.c states that you "understand purpose of the developer-based discount (lower price for smaller companies) and have no intention to use discount just as possibility to reduce license cost without actually conforming to its spirit. In particular, you do not apply for discount knowing for sure that you will increase team size beyond N developers right after the period mentioned in clause 4.4.b is over".
Your legal department is right - it is hard to prove anything regarding someone's intentions. But enforceability doesn't matter here. This clause states that you know the rules and agree to follow them. We expect that ethical company will do so even when there is no penalty for violation of the rules.
Yes - as long as you comply with commercial licensing terms.
No. Commercial license can't be transferred to another legal entity (individual), which contradicts the very definition of "Open Source"
No. First, about 20% of GPL'ed ALGLIB comes from several well-know open source projects (LAPACK and Cephes). Several contributions/patches were submitted by ALGLIB users. However, all such code was contributed under permissive licenses like BSD, so it is compatible with both open source and commercial licenses used by ALGLIB.
Second, Commercial Edition of ALGLIB includes Intel MKL - highly optimized numerical library which is used to accelerate ALGLIB on Intel CPU's. We obtained license from Intel Corporation which allows us to include MKL into ALGLIB.
We should note that section 7 of ALGLIB License Agreement (commercial one) explicitly states and warrants that we have right to license ALGLIB under commercial license.
Yes. You can freely distribute ALGLIB source under GPL terms (or use it under commercial license terms). But if you want to use ALGLIB name for something other than original ALGLIB distribution, you should ask our permission. You can read our trademark policy for more information.
You can cite it as "ALGLIB (www.alglib.net), Sergey Bochkanov".
AlgoPascal is a programming language developed for ALGLIB project. More than 95% of ALGLIB source is written in AlgoPascal and translated into C and C# by AlgoPascal translator. That is how we can simultaneously support C++ and C# versions of ALGLIB package - we support only one version of ALGLIB, which is written in AlgoPascal, and automatically translate it to C++ and C#.
X-generator is another tool developed exclusively for ALGLIB. It is a generator of wrappers for the C/C# computational cores. This generator is heavily used by Python and VB.NET releases of ALGLIB. It is also used to generate doctests - code snippets, which are used as both examples (doc) and test suite (tests).
Both technologies are kept private, but result we've got with these tools - ALGLIB - is freely available under GPL.