|   Registered Member   
 | 
							Hi, I'm hitting a stack overflow using Eigen 3.2.1. Eigen::DenseCoeffsBase::packet< Eigen::ReturnByValue<Eigen::internal::inverse_impl< Eigen::Matrix<float,4,4,1,4,4> > >, 0>::packet<1>() keeps calling itself (DenseCoeffsBase.h line 212). This is on code that has been running fine up till now. I was suspecting we're screwing up the stack somewhere, but then looking at the code I can't see how that can't infinitely recurse, unless derived() is guaranteed to be of a type that has a different packet() method. I'm getting a bit lost in the template and type maze so I'm not sure what should happen. In practice that function seems to be definitely calling itself... I had a quick look at the changelog but can't find anything mentioning packet() specifically. I'll post a traceback shortly, it just needs to go through some red tape. Thanks, A. | 
|   Registered Member   
 | 
							And here's a stack trace. 
 | 
|   Registered Member   
 | 
							This seems to be happening when passing an inverse() call to a method expecting a const Ref<>. I'll post a test case shortly.
						 | 
|   Moderator   
 | 
							I see that you are using Eigen 3.2.1. Does this still occur with 3.2.5?
						 | 
|   Registered Member   
 | 
							We haven't got 3.2.5 installed yet, I'll give it a go. Is there any fix between 3.2.1 and 3.2.5 that would address this? Here's the test case. When building in optimized mode (-O3 and removing -fno-inline), the infinite recursion seems to be turning into an infinite loop. test.cc: 
 build: 
 stack trace: 
 | 
|   Registered Member   
 | 
							Just tried with 3.2.5, and the crash is gone. Is there something in the changelog that would explain it? I can't quite tell what it could be.
						 | 
Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]
 
		 
		 
		 
		