48 static const std::map<std::string,
49 std::function<std::unique_ptr<BlockSolverBase>()>>
51 {
"var_csparse", &AllocateSolver<-1, -1,
true>},
52 {
"fix3_2_csparse", &AllocateSolver<3, 2, true>},
53 {
"fix6_3_csparse", &AllocateSolver<6, 3, true>},
54 {
"fix7_3_csparse", &AllocateSolver<7, 3, true>},
55 {
"fix3_2_scalar_csparse", &AllocateSolver<3, 2, false>},
56 {
"fix6_3_scalar_csparse", &AllocateSolver<6, 3, false>},
57 {
"fix7_3_scalar_csparse", &AllocateSolver<7, 3, false>},
60 string solverName = fullSolverName.substr(3);
61 auto solverf = solver_factories.find(solverName);
62 if (solverf == solver_factories.end())
return nullptr;
64 string methodName = fullSolverName.substr(0, 2);
66 if (methodName ==
"gn") {
68 }
else if (methodName ==
"lm") {
70 }
else if (methodName ==
"dl") {