Added timeSequentialOnDataset and timeMultifrontalOnDataset, removed timeLinearOnDataset

release/4.3a0
Richard Roberts 2010-11-03 22:35:02 +00:00
parent 521abed2bc
commit 60e10d7380
3 changed files with 63 additions and 5 deletions

View File

@ -26,7 +26,7 @@ check_PROGRAMS += testSerialization
endif endif
# Timing tests # Timing tests
noinst_PROGRAMS = timeGaussianFactorGraph timeLinearOnDataset noinst_PROGRAMS = timeGaussianFactorGraph timeSequentialOnDataset timeMultifrontalOnDataset
#---------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------
# rules to build unit tests # rules to build unit tests

View File

@ -0,0 +1,59 @@
/* ----------------------------------------------------------------------------
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
* Atlanta, Georgia 30332-0415
* All Rights Reserved
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
* See LICENSE for the license information
* -------------------------------------------------------------------------- */
/**
* @file timeSequentialOnDataset.cpp
* @brief
* @author Richard Roberts
* @created Oct 7, 2010
*/
#include <gtsam/base/timing.h>
#include <gtsam/slam/dataset.h>
#include <gtsam/linear/GaussianFactorGraph.h>
#include <gtsam/linear/GaussianMultifrontalSolver.h>
using namespace std;
using namespace gtsam;
using namespace boost;
int main(int argc, char *argv[]) {
string datasetname;
if(argc > 1)
datasetname = argv[1];
else
datasetname = "intel";
pair<shared_ptr<Pose2Graph>, shared_ptr<Pose2Values> > data = load2D(dataset(datasetname));
tic_("Z 1 order");
Ordering::shared_ptr ordering(data.first->orderingCOLAMD(*data.second));
toc_("Z 1 order");
tictoc_print_();
tic_("Z 2 linearize");
GaussianFactorGraph::shared_ptr gfg(data.first->linearize(*data.second, *ordering));
toc_("Z 2 linearize");
tictoc_print_();
for(size_t trial = 0; trial < 100; ++trial) {
tic_("Z 3 solve");
VectorValues soln(*GaussianMultifrontalSolver(*gfg).optimize());
toc_("Z 3 solve");
tictoc_print_();
}
return 0;
}

View File

@ -10,7 +10,7 @@
* -------------------------------------------------------------------------- */ * -------------------------------------------------------------------------- */
/** /**
* @file timeLinearOnDataset.cpp * @file timeSequentialOnDataset.cpp
* @brief * @brief
* @author Richard Roberts * @author Richard Roberts
* @created Oct 7, 2010 * @created Oct 7, 2010
@ -19,7 +19,7 @@
#include <gtsam/base/timing.h> #include <gtsam/base/timing.h>
#include <gtsam/slam/dataset.h> #include <gtsam/slam/dataset.h>
#include <gtsam/linear/GaussianFactorGraph.h> #include <gtsam/linear/GaussianFactorGraph.h>
#include <gtsam/linear/GaussianJunctionTree.h> #include <gtsam/linear/GaussianSequentialSolver.h>
using namespace std; using namespace std;
using namespace gtsam; using namespace gtsam;
@ -48,8 +48,7 @@ int main(int argc, char *argv[]) {
for(size_t trial = 0; trial < 100; ++trial) { for(size_t trial = 0; trial < 100; ++trial) {
tic_("Z 3 solve"); tic_("Z 3 solve");
GaussianJunctionTree gjt(*gfg); VectorValues soln(*GaussianSequentialSolver(*gfg).optimize());
VectorValues soln(gjt.optimize());
toc_("Z 3 solve"); toc_("Z 3 solve");
tictoc_print_(); tictoc_print_();