Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::optimization::Singleton2DPredicate< T, x_val, y_val > Struct Template Referenceexport

:expressions predicate for the LP's unique optimal vertex at NTTP coordinates. More...

Public Types

using Domain = dedekind::linear_algebra::Vec2V<T>
using cardinality_type = dedekind::sets::Finite

Public Member Functions

constexpr bool operator() (const Domain &p) const

Static Public Attributes

static constexpr T coord_x = x_val
static constexpr T coord_y = y_val

Detailed Description

template<typename T, T x_val, T y_val>
struct dedekind::optimization::Singleton2DPredicate< T, x_val, y_val >

:expressions predicate for the LP's unique optimal vertex at NTTP coordinates.

lp__Output_Set_Predicates

Predicates for the output side of argmax — the optimal locus expressed as a :expressions::Set rather than a typed Vec2 . The output Set's predicate type encodes the LP's mathematical regime:

  • Singleton2DPredicate carries (x*, y*) at the type level when the LP has a unique optimal vertex.
  • The existing :expressions::EmptyPredicate carries the empty set when the LP is infeasible.
  • An unbounded-face predicate is deferred until §5 needs it.

argmax (the NTTP combinator) returns a Set whose predicate type pins the regime (singleton / empty) at the type level. The runtime entries maximize_with_values and siblings also return a Set, with the regime carried at the value level via LPSolutionPredicate 's (point, feasible) state — see lp_runtime_solution_set . The §3 sets-as-rules vocabulary is the same on both sides of argmax — input polytope and output locus alike — at both the NTTP and runtime entries.

Carries (x_val, y_val) as NTTPs (structural) and exposes a stateless operator() — the predicate matches v iff v.x == x_val && v.y == y_val . Cardinality is Finite (size 1). Used as the output-Set predicate when argmax produces a unique optimum.


The documentation for this struct was generated from the following file:
  • src/main/modules/dedekind/optimization/lp.cppm