aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/ReturnByValue.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-10-28 18:19:29 -0400
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-10-28 18:19:29 -0400
commit2840ac7e948ecb3c7b19ba8f581f829a4a4e1fea (patch)
tree14adcd3aa33c4207b14455707bc247cea29029e6 /Eigen/src/Core/ReturnByValue.h
parent1f1c04cac1d8a87cbb34741d141df646b2da2827 (diff)
big huge changes, so i dont remember everything.
* renaming, e.g. LU ---> FullPivLU * split tests framework: more robust, e.g. dont generate empty tests if a number is skipped * make all remaining tests use that splitting, as needed. * Fix 4x4 inversion (see stable branch) * Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices. * CMakeLists: more robust regexp to parse the version number * misc fixes in unit tests
Diffstat (limited to 'Eigen/src/Core/ReturnByValue.h')
-rw-r--r--Eigen/src/Core/ReturnByValue.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/Eigen/src/Core/ReturnByValue.h b/Eigen/src/Core/ReturnByValue.h
index 55652db48..87b057f86 100644
--- a/Eigen/src/Core/ReturnByValue.h
+++ b/Eigen/src/Core/ReturnByValue.h
@@ -34,7 +34,14 @@ struct ei_traits<ReturnByValue<Derived> >
: public ei_traits<typename ei_traits<Derived>::ReturnMatrixType>
{
enum {
- Flags = ei_traits<typename ei_traits<Derived>::ReturnMatrixType>::Flags | EvalBeforeNestingBit
+ // FIXME had to remove the DirectAccessBit for usage like
+ // matrix.inverse().block(...)
+ // because the Block ctor with direct access
+ // wants to call coeffRef() to get an address, and that fails (infinite recursion) as ReturnByValue
+ // doesnt implement coeffRef(). The better fix is probably rather to make Block work directly
+ // on the nested type, right?
+ Flags = (ei_traits<typename ei_traits<Derived>::ReturnMatrixType>::Flags
+ | EvalBeforeNestingBit) & ~DirectAccessBit
};
};