aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-04-15 20:39:27 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2008-04-15 20:39:27 +0000
commit43e2bc14fe06186d75580b93ffaf83fde4f4e823 (patch)
tree0cf46062babf6951fa903e9f4cf45dc894beec6e /Eigen/src/LU
parent6747b45ae7abfe254ea7d791a2b502c63c8d2007 (diff)
+5% optimization in 4x4 inverse:
-only evaluate block expressions for which that is beneficial -don't check for invertibility unless requested
Diffstat (limited to 'Eigen/src/LU')
-rw-r--r--Eigen/src/LU/Inverse.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/Eigen/src/LU/Inverse.h b/Eigen/src/LU/Inverse.h
index c41a23659..84d419f40 100644
--- a/Eigen/src/LU/Inverse.h
+++ b/Eigen/src/LU/Inverse.h
@@ -196,13 +196,13 @@ void Inverse<ExpressionType, CheckExistence>::_compute_in_size4_case(const Expre
{
const Block22 Q = xpr.template block<2,2>(0,2);
const Block22 P_inverse_times_Q = P_inverse * Q;
- const Block22 R = xpr.template block<2,2>(2,0);
+ const XprBlock22 R = xpr.template block<2,2>(2,0);
const Block22 R_times_P_inverse = R * P_inverse;
const Block22 R_times_P_inverse_times_Q = R_times_P_inverse * Q;
- const Block22 S = xpr.template block<2,2>(2,2);
+ const XprBlock22 S = xpr.template block<2,2>(2,2);
const Block22 X = S - R_times_P_inverse_times_Q;
Block22 Y;
- if(ei_compute_size2_inverse<Block22, Block22, true>(X, &Y))
+ if(ei_compute_size2_inverse<Block22, Block22, CheckExistence>(X, &Y))
{
m_inverse.template block<2,2>(2,2) = Y;
m_inverse.template block<2,2>(2,0) = - Y * R_times_P_inverse;