|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
Linear complementarity problem (LCP) formulation. More...
#include <convex.hpp>
Public Types | |
| using | backend_t = Backend |
| using | linear_op_storage_t = LinearOpStorage |
| using | q_vector_storage_t = QVectorStorage |
| using | linear_op_t = impl::unwrapped_storage_t<linear_op_storage_t> |
| using | q_vector_t = impl::unwrapped_storage_t<q_vector_storage_t> |
| using | workspace_t = Workspace |
| using | value_type = impl::vector_value_type<q_vector_t> |
Public Member Functions | |
| LCPProblem (Backend, linear_op_storage_t A, q_vector_storage_t q) | |
| LCPProblem (Backend, linear_op_storage_t A, q_vector_storage_t q, workspace_t workspace) | |
| Backend | backend () const |
| const auto & | A () const |
| const auto & | q () const |
| workspace_t & | workspace () const |
This is for a linear complementarity problem of the form: 0 <= A x + q _|_ x >= 0 where A is a symmetric positive semi-definite matrix, q is a vector, and x is the solution vector.
This is equivalent to solving the following constrained quadratic programming problem: x^* = argmin 0.5 x^T A x + q^T x s.t x in R^n, x >= 0
param Backend The backend to use for operations (e.g., KokkosBackend, MundyMathBackend)
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::backend_t = Backend |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::linear_op_storage_t = LinearOpStorage |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::q_vector_storage_t = QVectorStorage |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::linear_op_t = impl::unwrapped_storage_t<linear_op_storage_t> |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::q_vector_t = impl::unwrapped_storage_t<q_vector_storage_t> |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::workspace_t = Workspace |
| using mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >::value_type = impl::vector_value_type<q_vector_t> |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |