akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
Loading...
Searching...
No Matches
convex::QuadForm< Space > Struct Template Reference

QuadForm. More...

#include <quad_form.hpp>

Public Types

using T = linalg::space_type_t< Space >
 alias and helpers
 
using Mat = linalg::Matrix< T, N, N >
 matrix type for P
 
using Vec = linalg::Vector< T, N >
 vector type for q
 
using Singleton = linalg::Matrix< T, 1, 1 >
 singleton
 

Public Member Functions

template<AtomLike Var>
constexpr auto operator() (const Mat &P, const Vec &q, T r, const Var &x)
 operator overload
 
template<AtomLike Var>
constexpr auto operator() (const Mat &P, const Vec &q, const Var &x)
 operator overload without constant offset
 

Static Public Attributes

static constexpr std::size_t N = linalg::space_dim_v<Space>
 

Detailed Description

template<linalg::RnSpace Space>
struct convex::QuadForm< Space >

QuadForm.

0.5 x^T P x + q^T x + r

Wraps ||L^T x||_2^2 + q^T x + r when 0.5 P = L L^T.

Definition at line 79 of file quad_form.hpp.

Member Typedef Documentation

◆ Mat

template<linalg::RnSpace Space>
using convex::QuadForm< Space >::Mat = linalg::Matrix<T, N, N>

matrix type for P

Definition at line 85 of file quad_form.hpp.

◆ Singleton

template<linalg::RnSpace Space>
using convex::QuadForm< Space >::Singleton = linalg::Matrix<T, 1, 1>

singleton

Definition at line 91 of file quad_form.hpp.

◆ T

template<linalg::RnSpace Space>
using convex::QuadForm< Space >::T = linalg::space_type_t<Space>

alias and helpers

Definition at line 81 of file quad_form.hpp.

◆ Vec

template<linalg::RnSpace Space>
using convex::QuadForm< Space >::Vec = linalg::Vector<T, N>

vector type for q

Definition at line 88 of file quad_form.hpp.

Member Function Documentation

◆ operator()() [1/2]

template<linalg::RnSpace Space>
template<AtomLike Var>
constexpr auto convex::QuadForm< Space >::operator() ( const Mat &  P,
const Vec &  q,
const Var &  x 
)
inlineconstexpr

operator overload without constant offset

Parameters
Pin S^n_+
qin R^n
xin R^n (var)
Returns
0.5 x^T P x + q^T x

Definition at line 137 of file quad_form.hpp.

References convex::dom_size_v, and convex::QuadForm< Space >::operator()().

◆ operator()() [2/2]

template<linalg::RnSpace Space>
template<AtomLike Var>
constexpr auto convex::QuadForm< Space >::operator() ( const Mat &  P,
const Vec &  q,
T  r,
const Var &  x 
)
inlineconstexpr

operator overload

x^T P x = x^T L L^T x

Parameters
Pin S^n_+
qin R^n
rin R
xin R^n (var)
Returns
0.5 x^T P x + q^T x + r

Definition at line 106 of file quad_form.hpp.

References convex::dom_size_v, and convex::QuadForm< Space >::N.

Referenced by convex::QuadForm< Space >::operator()().

Member Data Documentation

◆ N

template<linalg::RnSpace Space>
constexpr std::size_t convex::QuadForm< Space >::N = linalg::space_dim_v<Space>
staticconstexpr

Definition at line 82 of file quad_form.hpp.

Referenced by convex::QuadForm< Space >::operator()().


The documentation for this struct was generated from the following file: