Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
convex.hpp File Reference

Classes

struct  mundy::convex::space::Unconstrained< Scalar >
 Proj(x) = x for all x in R. More...
struct  mundy::convex::space::LowerBound< Scalar >
 Proj(x) = max(x, lower_bound) for all x in R. More...
struct  mundy::convex::space::UpperBound< Scalar >
 Proj(x) = min(x, upper_bound) for all x in R. More...
struct  mundy::convex::space::Bounded< Scalar >
 Proj(x) = min(max(x, lower_bound), upper_bound) for all x in R. More...
class  mundy::convex::QuadraticFormOp< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage >
struct  mundy::convex::QuadraticFormOp< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage >::Workspace< FVectorStorage, UVectorStorage >
class  mundy::convex::MixedReducedOp< Backend, LinearOpAStorage, LinearOpLStorage >
 The operator that perform Op x for Op := A (I - L A). More...
struct  mundy::convex::MixedReducedOp< Backend, LinearOpAStorage, LinearOpLStorage >::Workspace< AxVectorStorage, LAxVectorStorage, AWorkspaceStorage, LWorkspaceStorage >
class  mundy::convex::CongruentMixedReducedOp< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage, LinearOpLStorage >
 The operator that performs Op x for Op := D^T M (D - L M D). More...
struct  mundy::convex::CongruentMixedReducedOp< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage, LinearOpLStorage >::Workspace< DxVectorStorage, MDxVectorStorage, LMDxVectorStorage, DTWorkspaceStorage, MWorkspaceStorage, DWorkspaceStorage, LWorkspaceStorage >
struct  mundy::convex::KokkosBackend< ExecSpace >
 Backend for Kokkos single process execution. More...
struct  mundy::convex::MundyMathBackend
 Backend for Mundy math within a kernel. More...
class  mundy::convex::CQPPProblem< Backend, LinearOpStorage, QVectorStorage, ConvexSpace, Workspace >
 Constrained quadratic programming problem (CQPP) formulation. More...
class  mundy::convex::MCQPPProblem< Backend, LinearOpAStorage, QVectorStorage, LinearOpLStorage, FVectorStorage, ConvexSpace, WorkspaceA, WorkspaceL >
 Mixed constrained quadratic programming problem (MCQPP) formulation. More...
class  mundy::convex::CongruentMCQPPProblem< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage, QVectorStorage, LinearOpLStorage, FVectorStorage, ConvexSpace, WorkspaceDT, WorkspaceM, WorkspaceD, WorkspaceL >
class  mundy::convex::LCPProblem< Backend, LinearOpStorage, QVectorStorage, Workspace >
 Linear complementarity problem (LCP) formulation. More...
struct  mundy::convex::LinfNormProjectedGradientResidual
struct  mundy::convex::LinfNormProjectedDiffResidual
struct  mundy::convex::BBStepStrategy
struct  mundy::convex::PGDConfig< Scalar >
struct  mundy::convex::SolveResult< Scalar >
class  mundy::convex::PGDState< Scalar, XVectorStorage, GradVectorStorage, XTmpVectorStorage, GradTmpVectorStorage >
class  mundy::convex::PGDStrategy< StepPolicy, ResidualPolicy, Config >

Namespaces

namespace  mundy
namespace  mundy::convex
namespace  mundy::convex::space

Concepts

concept  mundy::convex::space::ValidConvexSpace
 Concept for a valid space.
concept  mundy::convex::CQPPSolverStrategy

Functions

template<typename Backend, class LinearOpDT, class LinearOpM, class LinearOpD>
auto mundy::make_quadratic_form (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D)
template<typename Backend, typename LinearOp, typename QVector, convex::space::ValidConvexSpace ConvexSpace>
auto mundy::make_cqpp (LinearOp &&A, QVector &&q, ConvexSpace &&space)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector, convex::space::ValidConvexSpace ConvexSpace>
auto mundy::make_cqpp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q, ConvexSpace &&space)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector, convex::space::ValidConvexSpace ConvexSpace, typename FVector, typename UVector>
auto mundy::make_cqpp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q, FVector &&f, UVector &&u, ConvexSpace &&space)
template<typename Backend, typename LinearOp, typename QVector, convex::space::ValidConvexSpace ConvexSpace, typename Workspace>
auto mundy::make_cqpp (LinearOp &&A, QVector &&q, ConvexSpace &&space, Workspace &&workspace)
template<typename Backend, typename LinearOp, typename QVector>
auto mundy::make_lcp (LinearOp &&A, QVector &&q)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector>
auto mundy::make_lcp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector, typename FVector, typename UVector>
auto mundy::make_lcp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q, FVector &&f, UVector &&u)
template<typename Backend, typename LinearOp, typename QVector, typename Workspace>
auto mundy::make_lcp (LinearOp &&A, QVector &&q, Workspace &&workspace)
template<typename Backend, typename LinearOpA, typename QVector, typename LinearOpL, typename FVector, convex::space::ValidConvexSpace ConvexSpace>
auto mundy::make_mixed_cqpp (LinearOpA &&A, QVector &&q, LinearOpL &&L, FVector &&f_b, ConvexSpace &&space)
template<typename Backend, typename LinearOpA, typename QVector, typename LinearOpL, typename FVector, convex::space::ValidConvexSpace ConvexSpace, typename AWorkspace, typename LWorkspace>
auto mundy::make_mixed_cqpp (LinearOpA &&A, QVector &&q, LinearOpL &&L, FVector &&f_b, ConvexSpace &&space, AWorkspace &&a_workspace, LWorkspace &&l_workspace)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector, typename LinearOpL, typename FVector, convex::space::ValidConvexSpace ConvexSpace>
auto mundy::make_mixed_cqpp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q, LinearOpL &&L, FVector &&f_b, ConvexSpace &&space)
template<typename Backend, typename LinearOpDT, typename LinearOpM, typename LinearOpD, typename QVector, typename LinearOpB, typename LinearOpS, typename LinearOpBT, typename BVector, convex::space::ValidConvexSpace ConvexSpace>
auto mundy::make_mixed_cqpp (LinearOpDT &&DT, LinearOpM &&M, LinearOpD &&D, QVector &&q, LinearOpB &&B, LinearOpS &&S, LinearOpBT &&BT, BVector &&b, ConvexSpace &&space)
template<class StepPolicy, class ResidualPolicy, class Scalar>
auto mundy::make_pgd_solution_strategy (StepPolicy &&step_policy, ResidualPolicy &&residual_policy, const convex::PGDConfig< Scalar > &cfg={})
template<class Scalar>
auto mundy::make_pgd_solution_strategy (const convex::PGDConfig< Scalar > &cfg={})
template<class XVector, class GradVector, class XTmpVector, class GradTmpVector>
auto mundy::make_pgd_state (XVector &&x, GradVector &&grad, XTmpVector &&x_tmp, GradTmpVector &&grad_tmp)
template<class Problem, class Strategy, class State>
auto mundy::solve_cqpp (const Problem &prob, const Strategy &strat, State &state)
 Solve a constrained quadratic programming problem (CQPP).
template<class Problem, class Strategy>
auto mundy::solve_mixed_cqpp (const Problem &prob, const Strategy &strat, typename Strategy::state_t &state) -> typename Strategy::result_t
 Solve a mixed constrained convex quadratic programming problem (MCQPP).
template<class Problem, class Strategy, class State>
auto mundy::solve_lcp (const Problem &prob, const Strategy &strat, State &state)
 Solve a linear complementarity problem (LCP) using a constrained quadratic programming solver.
Problems + state
template<class Backend, class LinearOp, class QVectorStorage>
auto mundy::convex::to_cqpp (const LCPProblem< Backend, LinearOp, QVectorStorage > &P)
template<class Backend, class LinearOpAStorage, class QVectorStorage, class LinearOpLStorage, class FVectorStorage, class ConvexSpace, class AWorkspace, class LWorkspace>
auto mundy::convex::to_cqpp (const MCQPPProblem< Backend, LinearOpAStorage, QVectorStorage, LinearOpLStorage, FVectorStorage, ConvexSpace, AWorkspace, LWorkspace > &P)
template<class Backend, class LinearOpDTStorage, class LinearOpMStorage, class LinearOpDStorage, class QVectorStorage, class LinearOpLStorage, class FVectorStorage, class ConvexSpace, class DTWorkspace, class MWorkspace, class DWorkspace, class LWorkspace>
auto mundy::convex::to_cqpp (const CongruentMCQPPProblem< Backend, LinearOpDTStorage, LinearOpMStorage, LinearOpDStorage, QVectorStorage, LinearOpLStorage, FVectorStorage, ConvexSpace, DTWorkspace, MWorkspace, DWorkspace, LWorkspace > &P)
Policies
template<class Scalar>
std::ostream & mundy::convex::operator<< (std::ostream &os, const SolveResult< Scalar > result)
 Write SolveResult to an ostream.