55 static const std::map<std::string,
56 std::function<std::unique_ptr<BlockSolverBase>()>>
58 {
"var_cholmod", &AllocateSolver<-1, -1,
true>},
59 {
"fix3_2_cholmod", &AllocateSolver<3, 2, true>},
60 {
"fix6_3_cholmod", &AllocateSolver<6, 3, true>},
61 {
"fix7_3_cholmod", &AllocateSolver<7, 3, true>},
62#ifdef ADD_SCALAR_ORDERING
63 {
"fix3_2_cholmod_scalar", &AllocateSolver<3, 2, false>},
64 {
"fix6_3_cholmod_scalar", &AllocateSolver<6, 3, false>},
65 {
"fix7_3_cholmod_scalar", &AllocateSolver<7, 3, false>},
69 string solverName = fullSolverName.substr(3);
70 auto solverf = solver_factories.find(solverName);
71 if (solverf == solver_factories.end())
return nullptr;
73 string methodName = fullSolverName.substr(0, 2);
75 if (methodName ==
"gn") {
77 }
else if (methodName ==
"lm") {
79 }
else if (methodName ==
"dl") {