diff --git a/.cproject b/.cproject
index ebbb1f90c..f8214daad 100644
--- a/.cproject
+++ b/.cproject
@@ -5,47 +5,46 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -299,1011 +298,1008 @@
-
-
- make
- all
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- check
- true
- true
- true
-
-
- make
- testGaussianConditional.run
- true
- true
- true
-
-
- make
- testGaussianFactor.run
- true
- true
- true
-
-
- make
- timeGaussianFactor.run
- true
- true
- true
-
-
- make
- timeVectorConfig.run
- true
- true
- true
-
-
- make
- testVectorBTree.run
- true
- true
- true
-
-
- make
- testVectorMap.run
- true
- true
- true
-
-
- make
- testNoiseModel.run
- true
- true
- true
-
-
- make
- testBayesNetPreconditioner.run
- true
- true
- true
-
-
- make
- testErrors.run
- true
- false
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- tests/testSPQRUtil.run
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
- check
- true
- true
- true
-
-
- make
- tests/testGaussianJunctionTree.run
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
-
- testBTree.run
- true
- true
- true
-
-
- make
-
- testDSF.run
- true
- true
- true
-
-
- make
-
- testDSFVector.run
- true
- true
- true
-
-
- make
-
- testMatrix.run
- true
- true
- true
-
-
- make
-
- testSPQRUtil.run
- true
- true
- true
-
-
- make
-
- testVector.run
- true
- true
- true
-
-
- make
-
- timeMatrix.run
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
- all
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- -k
- check
- true
- false
- true
-
-
- make
- testBayesTree.run
- true
- false
- true
-
-
- make
- testBinaryBayesNet.run
- true
- false
- true
-
-
- make
- testFactorGraph.run
- true
- true
- true
-
-
- make
- testISAM.run
- true
- true
- true
-
-
- make
- testJunctionTree.run
- true
- true
- true
-
-
- make
- testKey.run
- true
- true
- true
-
-
- make
- testOrdering.run
- true
- true
- true
-
-
- make
- testSymbolicBayesNet.run
- true
- false
- true
-
-
- make
- testSymbolicFactor.run
- true
- false
- true
-
-
- make
- testSymbolicFactorGraph.run
- true
- false
- true
-
-
- make
- timeSymbolMaps.run
- true
- true
- true
-
-
- make
- check
- true
- true
- true
-
-
- make
- testClusterTree.run
- true
- true
- true
-
-
- make
- testJunctionTree.run
- true
- true
- true
-
-
- make
- testEliminationTree.run
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- testGaussianFactorGraph.run
- true
- true
- true
-
-
- make
-
- testGaussianISAM.run
- true
- true
- true
-
-
- make
-
- testGaussianISAM2.run
- true
- true
- true
-
-
- make
-
- testGraph.run
- true
- false
- true
-
-
- make
-
- testIterative.run
- true
- true
- true
-
-
- make
-
- testNonlinearEquality.run
- true
- true
- true
-
-
- make
-
- testNonlinearFactor.run
- true
- true
- true
-
-
- make
-
- testNonlinearFactorGraph.run
- true
- true
- true
-
-
- make
-
- testNonlinearOptimizer.run
- true
- true
- true
-
-
- make
-
- testSQP.run
- true
- true
- true
-
-
- make
-
- testSubgraphPreconditioner.run
- true
- true
- true
-
-
- make
-
- testTupleConfig.run
- true
- true
- true
-
-
- make
-
- timeGaussianFactorGraph.run
- true
- true
- true
-
-
- make
-
- testBayesNetPreconditioner.run
- true
- true
- true
-
-
- make
-
- testConstraintOptimizer.run
- true
- true
- true
-
-
- make
-
- testInference.run
- true
- false
- true
-
-
- make
-
- testGaussianBayesNet.run
- true
- false
- true
-
-
- make
-
- testGaussianFactor.run
- true
- false
- true
-
-
- make
-
- testJunctionTree.run
- true
- false
- true
-
-
- make
-
- testSymbolicBayesNet.run
- true
- false
- true
-
-
- make
-
- testSymbolicFactorGraph.run
- true
- false
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- all
- true
- true
- true
-
-
- make
- testNonlinearConstraint.run
- true
- true
- true
-
-
- make
- testLieConfig.run
- true
- true
- true
-
-
- make
- testConstraintOptimizer.run
- true
- true
- true
-
-
- make
- install
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
- all
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
-
- clean all
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
-
- testPlanarSLAM.run
- true
- true
- true
-
-
- make
-
- testPose2Config.run
- true
- true
- true
-
-
- make
-
- testPose2Factor.run
- true
- true
- true
-
-
- make
-
- testPose2Prior.run
- true
- true
- true
-
-
- make
-
- testPose2SLAM.run
- true
- true
- true
-
-
- make
-
- testPose3Config.run
- true
- true
- true
-
-
- make
-
- testPose3SLAM.run
- true
- true
- true
-
-
- make
-
- testSimulated2DOriented.run
- true
- false
- true
-
-
- make
-
- testVSLAMConfig.run
- true
- true
- true
-
-
- make
-
- testVSLAMFactor.run
- true
- true
- true
-
-
- make
-
- testVSLAMGraph.run
- true
- true
- true
-
-
- make
-
- testPose3Factor.run
- true
- true
- true
-
-
- make
-
- testSimulated2D.run
- true
- false
- true
-
-
- make
-
- testSimulated3D.run
- true
- false
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
- -j2
- install
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- -j2
- install
- true
- true
- true
-
-
- make
- -j2
- clean
- true
- true
- true
-
-
- make
- -j2
- check
- true
- true
- true
-
-
- make
-
- all
- true
- true
- true
-
-
- make
-
- dist
- true
- true
- true
-
-
- make
-
- testRot3.run
- true
- true
- true
-
-
- make
-
- testRot2.run
- true
- true
- true
-
-
- make
-
- testPose3.run
- true
- true
- true
-
-
- make
-
- timeRot3.run
- true
- true
- true
-
-
- make
-
- testPose2.run
- true
- true
- true
-
-
- make
-
- testCal3_S2.run
- true
- true
- true
-
-
- make
-
- testSimpleCamera.run
- true
- true
- true
-
-
- make
-
- testHomography2.run
- true
- true
- true
-
-
- make
-
- testCalibratedCamera.run
- true
- true
- true
-
-
- make
-
- check
- true
- true
- true
-
-
- make
-
- clean
- true
- true
- true
-
-
- make
-
- testPoint2.run
- true
- true
- true
-
-
- make
- check
- true
- true
- true
-
-
- make
- testGaussianJunctionTree.run
- true
- true
- true
-
-
- make
- testGaussianFactorGraph.run
- true
- true
- true
-
-
- make
- timeGaussianFactorGraph.run
- true
- true
- true
-
-
- make
- check
- true
- true
- true
-
-
- make
- clean
- true
- true
- true
-
-
- make
- install
- true
- true
- true
-
-
- make
- all
- true
- true
- true
-
-
-
-
+
+
+make
+
+all
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+
+check
+true
+true
+true
+
+
+make
+
+testGaussianConditional.run
+true
+true
+true
+
+
+make
+
+testGaussianFactor.run
+true
+true
+true
+
+
+make
+
+timeGaussianFactor.run
+true
+true
+true
+
+
+make
+
+timeVectorConfig.run
+true
+true
+true
+
+
+make
+
+testVectorBTree.run
+true
+true
+true
+
+
+make
+
+testVectorMap.run
+true
+true
+true
+
+
+make
+
+testNoiseModel.run
+true
+true
+true
+
+
+make
+
+testBayesNetPreconditioner.run
+true
+true
+true
+
+
+make
+
+testErrors.run
+true
+false
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+tests/testSPQRUtil.run
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+
+check
+true
+true
+true
+
+
+make
+
+tests/testGaussianJunctionTree.run
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+testBTree.run
+true
+true
+true
+
+
+make
+testDSF.run
+true
+true
+true
+
+
+make
+testDSFVector.run
+true
+true
+true
+
+
+make
+testMatrix.run
+true
+true
+true
+
+
+make
+testSPQRUtil.run
+true
+true
+true
+
+
+make
+testVector.run
+true
+true
+true
+
+
+make
+timeMatrix.run
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+
+all
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+-k
+check
+true
+false
+true
+
+
+make
+
+testBayesTree.run
+true
+false
+true
+
+
+make
+
+testBinaryBayesNet.run
+true
+false
+true
+
+
+make
+
+testFactorGraph.run
+true
+true
+true
+
+
+make
+
+testISAM.run
+true
+true
+true
+
+
+make
+
+testJunctionTree.run
+true
+true
+true
+
+
+make
+
+testKey.run
+true
+true
+true
+
+
+make
+
+testOrdering.run
+true
+true
+true
+
+
+make
+
+testSymbolicBayesNet.run
+true
+false
+true
+
+
+make
+
+testSymbolicFactor.run
+true
+false
+true
+
+
+make
+
+testSymbolicFactorGraph.run
+true
+false
+true
+
+
+make
+
+timeSymbolMaps.run
+true
+true
+true
+
+
+make
+
+check
+true
+true
+true
+
+
+make
+
+testClusterTree.run
+true
+true
+true
+
+
+make
+
+testJunctionTree.run
+true
+true
+true
+
+
+make
+
+testEliminationTree.run
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+testGaussianFactorGraph.run
+true
+true
+true
+
+
+make
+testGaussianISAM.run
+true
+true
+true
+
+
+make
+testGaussianISAM2.run
+true
+true
+true
+
+
+make
+testGraph.run
+true
+false
+true
+
+
+make
+testIterative.run
+true
+true
+true
+
+
+make
+testNonlinearEquality.run
+true
+true
+true
+
+
+make
+testNonlinearFactor.run
+true
+true
+true
+
+
+make
+testNonlinearFactorGraph.run
+true
+true
+true
+
+
+make
+testNonlinearOptimizer.run
+true
+true
+true
+
+
+make
+testSQP.run
+true
+true
+true
+
+
+make
+testSubgraphPreconditioner.run
+true
+true
+true
+
+
+make
+testTupleConfig.run
+true
+true
+true
+
+
+make
+timeGaussianFactorGraph.run
+true
+true
+true
+
+
+make
+testBayesNetPreconditioner.run
+true
+true
+true
+
+
+make
+testConstraintOptimizer.run
+true
+true
+true
+
+
+make
+testInference.run
+true
+false
+true
+
+
+make
+testGaussianBayesNet.run
+true
+false
+true
+
+
+make
+testGaussianFactor.run
+true
+false
+true
+
+
+make
+testJunctionTree.run
+true
+false
+true
+
+
+make
+testSymbolicBayesNet.run
+true
+false
+true
+
+
+make
+testSymbolicFactorGraph.run
+true
+false
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+
+all
+true
+true
+true
+
+
+make
+
+testNonlinearConstraint.run
+true
+true
+true
+
+
+make
+
+testLieConfig.run
+true
+true
+true
+
+
+make
+
+testConstraintOptimizer.run
+true
+true
+true
+
+
+make
+
+install
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+
+all
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+clean all
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+testPlanarSLAM.run
+true
+true
+true
+
+
+make
+testPose2Config.run
+true
+true
+true
+
+
+make
+testPose2Factor.run
+true
+true
+true
+
+
+make
+testPose2Prior.run
+true
+true
+true
+
+
+make
+testPose2SLAM.run
+true
+true
+true
+
+
+make
+testPose3Config.run
+true
+true
+true
+
+
+make
+testPose3SLAM.run
+true
+true
+true
+
+
+make
+testSimulated2DOriented.run
+true
+false
+true
+
+
+make
+testVSLAMConfig.run
+true
+true
+true
+
+
+make
+testVSLAMFactor.run
+true
+true
+true
+
+
+make
+testVSLAMGraph.run
+true
+true
+true
+
+
+make
+testPose3Factor.run
+true
+true
+true
+
+
+make
+testSimulated2D.run
+true
+false
+true
+
+
+make
+testSimulated3D.run
+true
+false
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+
+timeCalibratedCamera.run
+true
+true
+true
+
+
+make
+
+timeRot3.run
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+-j2
+install
+true
+true
+true
+
+
+make
+-j2
+check
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+testRot3.run
+true
+true
+true
+
+
+make
+testRot2.run
+true
+true
+true
+
+
+make
+testPose3.run
+true
+true
+true
+
+
+make
+timeRot3.run
+true
+true
+true
+
+
+make
+testPose2.run
+true
+true
+true
+
+
+make
+testCal3_S2.run
+true
+true
+true
+
+
+make
+testSimpleCamera.run
+true
+true
+true
+
+
+make
+testHomography2.run
+true
+true
+true
+
+
+make
+testCalibratedCamera.run
+true
+true
+true
+
+
+make
+check
+true
+true
+true
+
+
+make
+clean
+true
+true
+true
+
+
+make
+testPoint2.run
+true
+true
+true
+
+
+make
+-j2
+install
+true
+true
+true
+
+
+make
+-j2
+clean
+true
+true
+true
+
+
+make
+-j2
+check
+true
+true
+true
+
+
+make
+all
+true
+true
+true
+
+
+make
+dist
+true
+true
+true
+
+
+make
+
+check
+true
+true
+true
+
+
+make
+
+testGaussianJunctionTree.run
+true
+true
+true
+
+
+make
+
+testGaussianFactorGraph.run
+true
+true
+true
+
+
+make
+
+timeGaussianFactorGraph.run
+true
+true
+true
+
+
+make
+
+check
+true
+true
+true
+
+
+make
+
+clean
+true
+true
+true
+
+
+make
+
+install
+true
+true
+true
+
+
+make
+
+all
+true
+true
+true
+
+
+
+
-
-
+
+
diff --git a/geometry/Makefile.am b/geometry/Makefile.am
index b08d89810..e7ac5db7f 100644
--- a/geometry/Makefile.am
+++ b/geometry/Makefile.am
@@ -21,7 +21,7 @@ sources += projectiveGeometry.cpp tensorInterface.cpp
check_PROGRAMS += tests/testTensors tests/testHomography2 tests/testTrifocal
# Timing tests
-noinst_PROGRAMS = tests/timeRot3
+noinst_PROGRAMS = timeRot3 timeCalibratedCamera
#----------------------------------------------------------------------------------------------------
# Create a libtool library that is not installed
diff --git a/geometry/timeCalibratedCamera.cpp b/geometry/timeCalibratedCamera.cpp
new file mode 100644
index 000000000..96b9f862f
--- /dev/null
+++ b/geometry/timeCalibratedCamera.cpp
@@ -0,0 +1,44 @@
+/**
+ * @file timeCalibratedCamera.cpp
+ * @brief time CalibratedCamera derivatives
+ * @author Frank Dellaert
+ */
+
+#include
+#include
+
+#include "CalibratedCamera.h"
+
+using namespace std;
+using namespace gtsam;
+
+int main()
+{
+ int n = 100000;
+ Matrix computed;
+
+ const Pose3 pose1(Matrix_(3,3,
+ 1., 0., 0.,
+ 0.,-1., 0.,
+ 0., 0.,-1.
+ ),
+ Point3(0,0,0.5));
+
+ const CalibratedCamera camera(pose1);
+ const Point3 point1(-0.08,-0.08, 0.0);
+
+ // Aug 8, iMac 3.06GHz Core i3
+ // 0.263943 seconds
+ // 378870 calls/second
+ // 2.63943 musecs/call
+
+ long timeLog = clock();
+ for(int i = 0; i < n; i++)
+ computed = Dproject_pose(camera, point1);
+ long timeLog2 = clock();
+ double seconds = (double)(timeLog2-timeLog)/CLOCKS_PER_SEC;
+ cout << ((double)n/seconds) << " calls/second" << endl;
+ cout << ((double)seconds*1000000/n) << " musecs/call" << endl;
+
+ return 0;
+}
diff --git a/geometry/tests/timeRot3.cpp b/geometry/timeRot3.cpp
similarity index 100%
rename from geometry/tests/timeRot3.cpp
rename to geometry/timeRot3.cpp