From 611a6df71f8ec2a0f742ad09a89668f684806d39 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 6 Mar 2016 09:12:46 +0100 Subject: tracker/pt: remove branching that's frequently mispredicted --- tracker-pt/point_tracker.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tracker-pt/point_tracker.cpp b/tracker-pt/point_tracker.cpp index aa6feb5b..599ce2d3 100644 --- a/tracker-pt/point_tracker.cpp +++ b/tracker-pt/point_tracker.cpp @@ -202,7 +202,8 @@ int PointTracker::POSIT(const PointModel& model, const PointOrder& order_, float else { rho = sqrt(sqrt( (JJ0-II0)*(JJ0-II0) + 4*IJ0*IJ0 )); theta = atan( -2*IJ0 / (JJ0-II0) ); - if (JJ0 - II0 < 0) theta += PI; + // avoid branch misprediction + theta += (JJ0 - II0 < 0) * PI; theta /= 2; } -- cgit v1.2.3