Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace > Class Template Reference

Constrained quadratic programming problem (CQPP) formulation. More...

#include <convex.hpp>

Public Types

using backend_t = Backend
using linear_op_storage_t = LinearOpStorage
using vector_storage_t = QVectorStorage
using linear_op_t = impl::unwrapped_storage_t<linear_op_storage_t>
using vector_t = impl::unwrapped_storage_t<vector_storage_t>
using space_t = ConvexSpace
using workspace_t = Workspace
using value_type = impl::vector_value_type<vector_t>

Public Member Functions

 CQPPProblem (Backend, linear_op_storage_t A, vector_storage_t q, const space_t &space)
 CQPPProblem (Backend, linear_op_storage_t A, vector_storage_t q, const space_t &space, workspace_t workspace)
Backend backend () const
const auto & A () const
const auto & q () const
const space_tspace () const
workspace_tworkspace () const

Detailed Description

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
class mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >

This is for a constrained quadratic programming problem of the form: x^* = argmin_{x in Omega} 0.5 x^T A x + q^T x where A is a symmetric positive semi-definite matrix, q is a vector, and Omega is a convex space.

Template Parameters
BackendThe backend to use for operations (e.g., KokkosBackend, MundyMathBackend)

Member Typedef Documentation

◆ backend_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::backend_t = Backend

◆ linear_op_storage_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::linear_op_storage_t = LinearOpStorage

◆ vector_storage_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::vector_storage_t = QVectorStorage

◆ linear_op_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::linear_op_t = impl::unwrapped_storage_t<linear_op_storage_t>

◆ vector_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::vector_t = impl::unwrapped_storage_t<vector_storage_t>

◆ space_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::space_t = ConvexSpace

◆ workspace_t

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::workspace_t = Workspace

◆ value_type

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
using mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::value_type = impl::vector_value_type<vector_t>

Constructor & Destructor Documentation

◆ CQPPProblem() [1/2]

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::CQPPProblem ( Backend ,
linear_op_storage_t A,
vector_storage_t q,
const space_t & space )
inline

◆ CQPPProblem() [2/2]

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::CQPPProblem ( Backend ,
linear_op_storage_t A,
vector_storage_t q,
const space_t & space,
workspace_t workspace )
inline

Member Function Documentation

◆ backend()

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
Backend mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::backend ( ) const
inline

◆ A()

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
const auto & mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::A ( ) const
inline

◆ q()

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
const auto & mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::q ( ) const
inline

◆ space()

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
const space_t & mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::space ( ) const
inline

◆ workspace()

template<typename Backend, typename LinearOpStorage, typename QVectorStorage, space::ValidConvexSpace ConvexSpace, typename Workspace = impl::workspace_for_t<impl::unwrapped_storage_t<LinearOpStorage>>>
workspace_t & mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >::workspace ( ) const
inline