[Bf-committers] How about adding boost uBLAS library to blender/extern?

Benoit Bolsee benoit.bolsee at online.be
Mon Jan 26 10:13:42 CET 2009


Wow, Eigen2 seems a excellent choice: it has automatic SIMD and cache
friendly optimization, it provides out of the box SVD decomposition, it
is a pure math library and thus is much smaller than boost::ublas. 
The only drawback it seems is that it is still a beta package and it
requires a recent compiler: MSVC 2005 and up (MSVC 2008 for SSE
optimization), gcc 3.3 and up (gcc 4 for SIMD optimization), recent ICC
(9? 10?, 11?).
However, current version is beta6, API is stable for dense matrices, it
is already used by many projects and available as a package in various
Linux distributions.
Following the discussion on IRC, it seems a better choice to put it in
/lib rather than in extern: no need to duplicate in branches, Linux
users still have the choice to install the package (installing the
package is only required for compilation, there is no runtime
dependency).
I will seriously consider using Eigen2 in the IK project.

/benoit

> On Sat, 24 Jan 2009 19:11:20 +0100, Sebastian Skej wrote
> Have you looked at Eigen2? Not completely sure what you 
> exactly want, but I think it should be able to do what you 
> want and according to their benchmarks it outperforms uBlas. 
> http://eigen.tuxfamily.org 
> http://eigen.tuxfamily.org/index.php?title=Benchmark
> 
> Sebastian Skej?
> 
> On Fri, Jan 23, 2009 at 10:50:43PM +0100, Benoit Bolsee wrote:
> > Hi,
> >  
> > The new IK algorithms developed at the KUL use the uBLAS template 
> > library from boost for matrix definition and operation. In order to 
> > minimize code change when porting to Blender, I am asking if it
would 
> > be acceptable to add that library in blender/extern.
> >  
> > It is a template library, so it will not increase the size of the 
> > executable more than necessary. It allows high level abstraction and

> > yet it is almost as fast as an add-hoc C implementation because it 
> > uses the advanced technique of template expressions. The drawback is

> > that it requires a modern C compiler: gcc 3.2.3 and above, MSVC 7.1 
> > and above, ICC 8.0 and above (older compiler are supported with an 
> > earlier version of the library). I guess this is not a limiting 
> > factor? In terms of number of files, I extracted a subset of boost 
> > that contains all the necessary files to compile uBLAS: 10Mb in 1650

> > files.
> >  
> > The alternative is to implement add-hoc C functions or reuse the TNT

> > template library that is used by IK_Solver
(intern/iksolver/intern/TNT). 
> > This library is much smaller and provide 
> > similar functionality but it is not as fast.
> >  
> > For the interested ones, I've started a wiki on the IK project: 
> > http://wiki.blender.org/index.php/GameEngineDev/RobotIKSolver
> >  
> > /benoit



More information about the Bf-committers mailing list