18 typedef PGSContactSolverTpl<context::Scalar>
Solver;
20 #ifdef PINOCCHIO_PYTHON_PLAIN_SCALAR_TYPE
21 template<
typename DelassusMatrixType>
22 static bool solve_wrapper(
24 const DelassusMatrixType &
G,
26 const context::CoulombFrictionConeVector & cones,
27 Eigen::Ref<context::VectorXs> x,
30 return solver.solve(
G, g, cones, x, over_relax);
36 #ifdef PINOCCHIO_PYTHON_PLAIN_SCALAR_TYPE
38 "PGSContactSolver",
"Projected Gauss Siedel solver for contact dynamics.",
39 bp::init<int>(bp::args(
"self",
"problem_dim"),
"Default constructor."))
42 "solve", solve_wrapper<context::MatrixXs>,
43 (bp::args(
"self",
"G",
"g",
"cones",
"x"), (bp::arg(
"over_relax") =
context::Scalar(1))),
44 "Solve the constrained conic problem composed of problem data (G,g,cones) and starting "
45 "from the initial guess.")
47 "solve", solve_wrapper<context::SparseMatrix>,
48 (bp::args(
"self",
"G",
"g",
"cones",
"x"), (bp::arg(
"over_relax") =
context::Scalar(1))),
49 "Solve the constrained conic problem composed of problem data (G,g,cones) and starting "
50 "from the initial guess.");