2009/1/5 Robert Carnecky Jr. <robin@xxxxxxxxxxxxx>:
I haven't used eigen for a while, but in beta2 I had a similar problem.
The offset of the actual float variable in the matrix was not zero for me,
due to some zero-sized structure or base class taking up actual memory.
Ah, very interesting. I see, we do indeed have some empty structs
there. Need to investigate why they cause trouble specifically with
MSVC.
The code generation was also incredibly bad (call stack depth of 5+ for
a*x+y),
but as I paused my project at that time, I did not check whether it was my
fault.
I assume you mean in debug more. Then indeed you get very big stack
depth because of how expression templates work. Yes this means that
debug mode gives very poor performance.
It should however go away completely when you enable optimization, as
all these nested function calls get inlined.