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