From: Will C. <wtc...@gm...> - 2009-06-05 15:32:41
|
> Will, you mentioned that this library has everything you need and more. > What is it that you really *need*? If it's a linear algebra package > that you need (i.e. more matlab type things rather than symbolic Maple > stuff), then there are some very good options. Forgive me if I'm > spouting information you already know. BLAS/LAPACK--particularly Intel's > MKL implementation--has extremely high performance when it comes to lin > alg operations. I'm referring to huge performance enhancements, not > incremental. An elegant C++ package that provides BLAS type > functionality is Boost::ublas, however it is not nearly as efficient as > a real BLAS/LAPACK implementation. Another is Blitz++. > > What are the current code problems? The codebase I'm working with (actually, defacto rewriting from scratch) deals with at least two equivalent abstract representations of physical systems - bond graphs and block diagrams. They're actually pretty fascinating once you get past the initial headache of trying to understand how they work. Anyway, our code is ultimately supposed to take in a bond graph or block diagram and simulate the system, allowing engineers to find faults in their systems. In order to do that, we need to be able to solve algebraic loops to produce equations, deal with a wide variety of input functions, and perform fast, accurate, and precise calculations. The ability to solve algebraic loops is the biggest concern at the moment - the fact that GiNaC and CLN solve the other two problems is just icing on the cake, so to speak. So, unfortunately, we need symbolic manipulation and floating point calculations, and not linear algebra. My goal now is two-fold - 1. Convince my adviser into GPL-ing the code base. 2. See if I can get GiNaC under the GPLv3 instead of the GPLv2, as per what Tuomo pointed out: > In GPLv3, the incompatibility doesn't exist as the definition > of system libraries essentially covers all run-time libraries. I hope they'd be receptive to such a thing, as I'm not trying to get a proprietary exception - I'm just trying to get a different version of the GPL. I'm not sure how well my adviser will take to GPL-ing the codebase, but I'm definitely going to try - the other options besides GiNaC are rather unsavory, to say the least. Either we'd have to figure out how to solve algebraic loops for arbitrarily complex equations on our own, which shows every sign of being a herculean task, or use a library from another language, which would involve external calls and really hamper the speed goal of the rewrite. As long as I put it in terms of the alternatives I think I'll have a chance at convincing him. -Will Chappell WTC |