On 8/31/09, Rodney Sparapani <[email protected]> wrote: > Hi Jordi: > > I'd love to see this code posted somewhere, perhaps as a GSL add-on. But, > I'm surprised that you say it is not difficult. Having worked on > matrices/linear algebra/etc. in C++ for many of the last 20 years, I would > say that it is difficult. Part of the difficulty comes from the mathematics > itself which GSL handles well so we can set it aside. But, the other > difficult part comes from designing/creating a practical OO interface which > is time-consuming. This latter part is challenging due to C++ > syntax/semantics which can create hard-to-find bugs. I don't doubt that you > know all of this, but in my experience, creating a test-bed is the most > important part of the endeavor. Sadly, none of the C++ implementations that > I have worked on (or got to work) have done this well. > > Rodney >
I second Rodney's opinion. Designing a good C++ wrapper to any matrix library is difficult provided one tries to keep C++ semantics. Just as an example, I would mention algebraic notations for matrix operations in C++ (+-*). Using them in expressions like M=A*B+C*D will create/destroy unnecessary temporaries. Optimizing them out in C++ is a royal pain (expression templates onyone?). In my code I ended up preserving GSL semantics when GSL math functions do *not* allocate/free resources and all memory management is performed manually by a user. Creating good C++ bindings might look simple at first glance but the devil lurks in details. --Leo-- _______________________________________________ Help-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-gsl
