开发者

GNU GSL & MATLAB on Windows [closed]

Closed. This question is opinion-based. It is not currently accepting answers.

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 9 years ago.

Improve this question

This question is actually about the trade-off b开发者_StackOverflow社区etween GSL and MATLAB. First, let me define some variables:

 - Target OS: Windows XP 
 - Target IDE: MS VS 2005/2008 
 - Software: Commercial 
 - Development Language: C++

Moreover, I am asking this question, because I could not find any complete answer regarding ease of usage, licensing, performance criteria(s) with these two approaches.

We need to implement some numerical operations (like FFT) using GNU GSL and MATLAB. I know that it is possible to use both GSL (with cygwin) and MATLAB on Windows OS with MS VS IDEs.

But, I have following problems:

  • Licensing when I use MATLAB libraries in the application (same for GSL)
  • Performance differences between MATLAB C++ code and GNU GSL (especially when calculating FFT )
  • Ease of use (exceptions, error handling, testability)

It would be great, if you illuminate the path to decision for implementation.

Also, thanks in advance


If you are just doing FFT, and other such things, have you thought about Intel's MKL or AMD's ACML[PDF]? Both have FFT. Paying for Matlab just to get FFT routines is, IMHO, silly. Just use a good high performance C++/Fortran library.

That all being said, this gentleman maintains a patched versions of GSL that compiles with Visual Studio

If you use GSL, then you have to license under GPL

If I wanted to distribute an application which uses GSL, what license would I need to use? The GNU General Public License (GPL). The bottom line for commercial users:

GSL can be used internally ("in-house") without restriction, but only redistributed in other software that is under the GNU GPL.

Intel's MKL has a licensing agreement that is probably what you are looking for.

Can I redistribute the Intel Math Kernel Library with my application? Yes. When you purchase Intel MKL, you receive rights to redistribute computational portions of Intel MKL with your application. The evaluation versions of Intel MKL do not include redistribution rights. The list of files that can be redistributed is provided in redist.txt included in the Intel MKL distribution with product license.

I'm not overly certain about ACML's license, but I believe it costs money to distribute.


  1. You don't need Cygwin to use GSL, only to build it. You'll need to use a MinGW GCC to do that, and use either Cygwin or MSYS as a POSIX shell environment to build it using "configure". Or try to find a prebuilt version. You should be able to create an import library for the created DLLs, with tools like gendef and MSVC's lib.exe. This will let you link the DLL with a Visual Studio compiler.

  2. GSL can do FFT's, but FFTW is better at doing that. Both are GPL (if I'm not mistaken), so they will require your app to be GPL compatibly licensed.

  3. Matlab is easier (superficially) than C. But I'm quite sure, when used correctly, GSL and especially FFTW should beat Matlab in terms of raw performance.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜