November 9th, 2011, 4:10 am
Regarding LGPL, the library can be used in both open source and commercial software. If the LGPL software is modified, then the modified source code must be provided.When I mentioned Eigen does not have parallelization, I was referring to the usage of multi-threated/parallel BLAS/LAPACK implementations. PetSC and Trilinios are the only libraries I am aware of that are designed for true parallelism (usually on a cluster). I am not terribly familiar with Eigen, so Polter has a much better understanding that I do.True most operations are common to any matrix implementation (+, -, (), etc). However, the function for accessing a single row, column, or sub-matrix is not as standardized. Creation of matrices of ones, zeros, or identity, or general initialization can also have different conventions. If the library provided function is available, the required code is shorter, easier to understand, and can take advantage of any vectorization the library provides. Maybe it is possible to use traits or wrapper functions that can be specialized for a given implementation.Maybe outrun or somebody else who knows more about traits, template specialization, and other generic techniques can jump in about how to handle non-standardized functions.