Module phantom

Module phantom 

Source
Expand description

Phantom types for compile-time optimization state verification

§Phantom Types for Optimization State

This module provides phantom types that encode optimization problem properties at compile time, ensuring type safety and preventing invalid operations.

§Mathematical Background

Optimization problems can be characterized by several properties:

  • Constraints: Whether the problem has constraints or is unconstrained
  • Objectives: Single-objective vs multi-objective optimization
  • Convexity: Whether the problem is convex or non-convex
  • Manifold: Whether optimization occurs on a manifold

These properties affect which optimization algorithms are applicable and what guarantees can be made about convergence.

Structs§

Constrained
Optimization problem has constraints
Convex
Problem is convex
Euclidean
Optimization on Euclidean space
MultiObjective
Optimization is multi-objective
NonConvex
Problem is non-convex
OptimizationProblem
Optimization problem with compile-time properties
Riemannian
Optimization on a Riemannian manifold
SingleObjective
Optimization is single-objective
Statistical
Optimization on a statistical manifold (information geometry)
Unconstrained
Optimization problem is unconstrained

Traits§

ConstraintState
Marker trait for constraint states
ConvexityState
Marker trait for convexity states
HandlesConstrained
Marker trait for algorithms that can handle constrained problems
HandlesMultiObjective
Marker trait for algorithms that can handle multi-objective problems
HandlesStatistical
Marker trait for algorithms that work on statistical manifolds
HandlesUnconstrained
Marker trait for algorithms that can handle unconstrained problems
ManifoldState
Marker trait for manifold states
ObjectiveState
Marker trait for objective states
RequiresConvex
Marker trait for algorithms that require convex problems