restrict pointer access via methods
parent
1b422d5c98
commit
ec8714a548
|
@ -125,8 +125,8 @@ TEST( GaussianFactorGraphSystem, multiply_getb)
|
|||
TEST(PCGSolver, dummy) {
|
||||
LevenbergMarquardtParams params;
|
||||
params.linearSolverType = LevenbergMarquardtParams::Iterative;
|
||||
auto pcg = std::make_shared<PCGSolverParameters>();
|
||||
pcg->preconditioner_ = std::make_shared<DummyPreconditionerParameters>();
|
||||
auto pcg = std::make_shared<PCGSolverParameters>(
|
||||
std::make_shared<DummyPreconditionerParameters>());
|
||||
params.iterativeParams = pcg;
|
||||
|
||||
NonlinearFactorGraph fg = example::createReallyNonlinearFactorGraph();
|
||||
|
@ -145,9 +145,8 @@ TEST(PCGSolver, dummy) {
|
|||
TEST(PCGSolver, blockjacobi) {
|
||||
LevenbergMarquardtParams params;
|
||||
params.linearSolverType = LevenbergMarquardtParams::Iterative;
|
||||
auto pcg = std::make_shared<PCGSolverParameters>();
|
||||
pcg->preconditioner_ =
|
||||
std::make_shared<BlockJacobiPreconditionerParameters>();
|
||||
auto pcg = std::make_shared<PCGSolverParameters>(
|
||||
std::make_shared<BlockJacobiPreconditionerParameters>());
|
||||
params.iterativeParams = pcg;
|
||||
|
||||
NonlinearFactorGraph fg = example::createReallyNonlinearFactorGraph();
|
||||
|
@ -166,8 +165,8 @@ TEST(PCGSolver, blockjacobi) {
|
|||
TEST(PCGSolver, subgraph) {
|
||||
LevenbergMarquardtParams params;
|
||||
params.linearSolverType = LevenbergMarquardtParams::Iterative;
|
||||
auto pcg = std::make_shared<PCGSolverParameters>();
|
||||
pcg->preconditioner_ = std::make_shared<SubgraphPreconditionerParameters>();
|
||||
auto pcg = std::make_shared<PCGSolverParameters>(
|
||||
std::make_shared<SubgraphPreconditionerParameters>());
|
||||
params.iterativeParams = pcg;
|
||||
|
||||
NonlinearFactorGraph fg = example::createReallyNonlinearFactorGraph();
|
||||
|
|
|
@ -60,13 +60,15 @@ TEST( PCGsolver, verySimpleLinearSystem) {
|
|||
//pcg->setVerbosity("ERROR");
|
||||
|
||||
// With Dummy preconditioner
|
||||
pcg->preconditioner_ = std::make_shared<gtsam::DummyPreconditionerParameters>();
|
||||
pcg->setPreconditionerParams(
|
||||
std::make_shared<gtsam::DummyPreconditionerParameters>());
|
||||
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
||||
EXPECT(assert_equal(exactSolution, deltaPCGDummy, 1e-7));
|
||||
//deltaPCGDummy.print("PCG Dummy");
|
||||
|
||||
// With Block-Jacobi preconditioner
|
||||
pcg->preconditioner_ = std::make_shared<gtsam::BlockJacobiPreconditionerParameters>();
|
||||
pcg->setPreconditionerParams(
|
||||
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>());
|
||||
// It takes more than 1000 iterations for this test
|
||||
pcg->setMaxIterations(1500);
|
||||
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
||||
|
@ -111,13 +113,15 @@ TEST(PCGSolver, simpleLinearSystem) {
|
|||
//pcg->setVerbosity("ERROR");
|
||||
|
||||
// With Dummy preconditioner
|
||||
pcg->preconditioner_ = std::make_shared<gtsam::DummyPreconditionerParameters>();
|
||||
pcg->setPreconditionerParams(
|
||||
std::make_shared<gtsam::DummyPreconditionerParameters>());
|
||||
VectorValues deltaPCGDummy = PCGSolver(*pcg).optimize(simpleGFG);
|
||||
EXPECT(assert_equal(expectedSolution, deltaPCGDummy, 1e-5));
|
||||
//deltaPCGDummy.print("PCG Dummy");
|
||||
|
||||
// With Block-Jacobi preconditioner
|
||||
pcg->preconditioner_ = std::make_shared<gtsam::BlockJacobiPreconditionerParameters>();
|
||||
pcg->setPreconditionerParams(
|
||||
std::make_shared<gtsam::BlockJacobiPreconditionerParameters>());
|
||||
VectorValues deltaPCGJacobi = PCGSolver(*pcg).optimize(simpleGFG);
|
||||
EXPECT(assert_equal(expectedSolution, deltaPCGJacobi, 1e-5));
|
||||
//deltaPCGJacobi.print("PCG Jacobi");
|
||||
|
|
Loading…
Reference in New Issue