|
cyqlone
develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
|
Namespaces | |
| namespace | problems |
| namespace | detail |
Classes | |
| struct | CyqloneData |
| struct | CyQPALMBackendSettings |
| struct | CyQPALMBackendStats |
| struct | CyQPALMBackend |
| struct | unique_CyQPALMBackend |
| struct | DetailedStats |
| struct | Breakpoint |
| struct | ABSums |
| struct | PartitionedBreakpoints |
| struct | BreakpointsResult |
| struct | compute_breakpoints_fn |
| struct | get_partitioned_breakpoints_fn |
| struct | get_breakpoints_fn |
| struct | LineSearchSettings |
| struct | LineSearch |
| struct | SolverImplementation |
| struct | Settings |
| struct | SolverTimings |
| struct | SolverStats |
| class | Solver |
Typedefs | |
| using | ABSum_t = real_t |
Enumerations | |
| enum class | WarmStartingStrategy { WarmStartingStrategy::Zeros , WarmStartingStrategy::Copy , WarmStartingStrategy::Shift , WarmStartingStrategy::ShiftNoInequality } |
| enum class | SolverStatus { SolverStatus::Busy = 0 , SolverStatus::Converged , SolverStatus::MaxTime , SolverStatus::MaxIter , SolverStatus::NotFinite , SolverStatus::NoProgress , SolverStatus::Interrupted , SolverStatus::Exception } |
| Exit status of a numerical solver. More... | |
| enum class | StorageOrder |
Functions | |
| template<index_t VL, StorageOrder DefaultOrder = StorageOrder::ColMajor> | |
| unique_CyQPALMBackend< VL, DefaultOrder > | make_cyqpalm_backend (const CyqloneStorage< real_t > &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template<index_t VL, StorageOrder DefaultOrder = StorageOrder::ColMajor> | |
| void | update_cyqpalm_backend (CyQPALMBackend< VL, DefaultOrder > &backend, const CyqloneStorage< real_t > &ocp) |
| template<index_t VL, StorageOrder DefaultOrder = StorageOrder::ColMajor> | |
| void | update_cyqpalm_backend (CyQPALMBackend< VL, DefaultOrder > &backend, const LinearOCPStorage &ocp) |
| template<index_t VL, StorageOrder DefaultOrder> | |
| unique_CyQPALMBackend< VL, DefaultOrder > | make_cyqpalm_backend (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template<class R, class F> | |
| static void | sort (R &&range, F key) |
| template<class R, class I, class F> | |
| static void | nth_element (R &&range, I mid, F key) |
| template<std::ranges::bidirectional_range R, class F, class C> | |
| static std::ranges::subrange< std::ranges::iterator_t< R > > | partition_min (R &&range, F pred, C cmp) |
| A variant of std::ranges::partition where the first element of the return value is the smallest element of the "false" partition. | |
| template<std::ranges::forward_range R, class F> | |
| static decltype(auto) | partition (R &&range, F key) |
| template<std::permutable I, std::sentinel_for< I > S, class F> | |
| static decltype(auto) | partition (I first, S last, F key) |
| template<class R, class F> | |
| static decltype(auto) | min_element (R &&range, F key) |
| template<class I, class T, class BinOp, class UnOp> | |
| T | transform_reduce (I first, I last, T init, BinOp binary_op, UnOp unary_op) |
| ABSums | partial_sum_negative (PartitionedBreakpoints breakpoints, real_t η=0, real_t β=0) |
| template<class Vec> | |
| std::span< Breakpoint > | compute_breakpoints_default (std::vector< Breakpoint > &breakpoints, const Vec &Σ, const Vec &y, const Vec &Ad, const Vec &Ax, const Vec &b_min, const Vec &b_max) |
| Compute the break points t[i] using formula (3.6) in the QPALM paper. | |
| PartitionedBreakpoints | partition_breakpoints_default (std::span< Breakpoint > breakpoints) |
| Moves any non-finite elements in t to the end of the range, and all negative elements to the front. | |
| const char * | enum_name (SolverStatus s) |
| std::ostream & | operator<< (std::ostream &os, SolverStatus s) |
| template unique_CyQPALMBackend< 1, StorageOrder::ColMajor > | make_cyqpalm_backend< 1, StorageOrder::ColMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 1, StorageOrder::ColMajor > (CyQPALMBackend< 1, StorageOrder::ColMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 1, StorageOrder::ColMajor > (CyQPALMBackend< 1, StorageOrder::ColMajor > &, const LinearOCPStorage &ocp) |
| template unique_CyQPALMBackend< 4, StorageOrder::ColMajor > | make_cyqpalm_backend< 4, StorageOrder::ColMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 4, StorageOrder::ColMajor > (CyQPALMBackend< 4, StorageOrder::ColMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 4, StorageOrder::ColMajor > (CyQPALMBackend< 4, StorageOrder::ColMajor > &, const LinearOCPStorage &ocp) |
| template unique_CyQPALMBackend< 8, StorageOrder::ColMajor > | make_cyqpalm_backend< 8, StorageOrder::ColMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 8, StorageOrder::ColMajor > (CyQPALMBackend< 8, StorageOrder::ColMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 8, StorageOrder::ColMajor > (CyQPALMBackend< 8, StorageOrder::ColMajor > &, const LinearOCPStorage &ocp) |
| template unique_CyQPALMBackend< 1, StorageOrder::RowMajor > | make_cyqpalm_backend< 1, StorageOrder::RowMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 1, StorageOrder::RowMajor > (CyQPALMBackend< 1, StorageOrder::RowMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 1, StorageOrder::RowMajor > (CyQPALMBackend< 1, StorageOrder::RowMajor > &, const LinearOCPStorage &ocp) |
| template unique_CyQPALMBackend< 4, StorageOrder::RowMajor > | make_cyqpalm_backend< 4, StorageOrder::RowMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 4, StorageOrder::RowMajor > (CyQPALMBackend< 4, StorageOrder::RowMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 4, StorageOrder::RowMajor > (CyQPALMBackend< 4, StorageOrder::RowMajor > &, const LinearOCPStorage &ocp) |
| template unique_CyQPALMBackend< 8, StorageOrder::RowMajor > | make_cyqpalm_backend< 8, StorageOrder::RowMajor > (const CyqloneStorage<> &ocp, CyqloneData data, const CyQPALMBackendSettings &settings) |
| template void | update_cyqpalm_backend< 8, StorageOrder::RowMajor > (CyQPALMBackend< 8, StorageOrder::RowMajor > &, const CyqloneStorage<> &ocp) |
| template void | update_cyqpalm_backend< 8, StorageOrder::RowMajor > (CyQPALMBackend< 8, StorageOrder::RowMajor > &, const LinearOCPStorage &ocp) |
| std::ostream & | operator<< (std::ostream &, const SolverTimings &) |
| struct cyqlone::qpalm::PartitionedBreakpoints |
| Class Members | ||
|---|---|---|
| span< Breakpoint > | neg_bp | |
| span< Breakpoint > | pos_bp | |
| struct cyqlone::qpalm::BreakpointsResult |
| Class Members | ||
|---|---|---|
| PartitionedBreakpoints | bp | |
| ABSums | ab_neg | |
| using cyqlone::qpalm::ABSum_t = real_t |
Definition at line 26 of file breakpoint.hpp.
|
strong |
| unique_CyQPALMBackend< VL, DefaultOrder > cyqlone::qpalm::make_cyqpalm_backend | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
Definition at line 602 of file ocp-backend-cyqlone.tpp.
|
static |
Definition at line 17 of file algorithms.hpp.
|
static |
Definition at line 28 of file algorithms.hpp.
|
static |
A variant of std::ranges::partition where the first element of the return value is the smallest element of the "false" partition.
Definition at line 37 of file algorithms.hpp.
|
static |
Definition at line 93 of file algorithms.hpp.
|
static |
Definition at line 98 of file algorithms.hpp.
|
static |
Definition at line 104 of file algorithms.hpp.
| T cyqlone::qpalm::transform_reduce | ( | I | first, |
| I | last, | ||
| T | init, | ||
| BinOp | binary_op, | ||
| UnOp | unary_op ) |
Definition at line 110 of file algorithms.hpp.
| ABSums cyqlone::qpalm::partial_sum_negative | ( | PartitionedBreakpoints | breakpoints, |
| real_t | η = 0, | ||
| real_t | β = 0 ) |
Definition at line 25 of file breakpoint.cpp.
| std::span< Breakpoint > cyqlone::qpalm::compute_breakpoints_default | ( | std::vector< Breakpoint > & | breakpoints, |
| const Vec & | Σ, | ||
| const Vec & | y, | ||
| const Vec & | Ad, | ||
| const Vec & | Ax, | ||
| const Vec & | b_min, | ||
| const Vec & | b_max ) |
Compute the break points t[i] using formula (3.6) in the QPALM paper.
Definition at line 11 of file breakpoint.tpp.
| PartitionedBreakpoints cyqlone::qpalm::partition_breakpoints_default | ( | std::span< Breakpoint > | breakpoints | ) |
Moves any non-finite elements in t to the end of the range, and all negative elements to the front.
Returns the negative and positive partitions.
Definition at line 7 of file breakpoint.cpp.
|
inline |
Definition at line 23 of file status.hpp.
| std::ostream & cyqlone::qpalm::operator<< | ( | std::ostream & | os, |
| SolverStatus | s ) |
Definition at line 6 of file status.cpp.
| template unique_CyQPALMBackend< 1, StorageOrder::ColMajor > cyqlone::qpalm::make_cyqpalm_backend< 1, StorageOrder::ColMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 1, StorageOrder::ColMajor > | ( | CyQPALMBackend< 1, StorageOrder::ColMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 1, StorageOrder::ColMajor > | ( | CyQPALMBackend< 1, StorageOrder::ColMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| template unique_CyQPALMBackend< 4, StorageOrder::ColMajor > cyqlone::qpalm::make_cyqpalm_backend< 4, StorageOrder::ColMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 4, StorageOrder::ColMajor > | ( | CyQPALMBackend< 4, StorageOrder::ColMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 4, StorageOrder::ColMajor > | ( | CyQPALMBackend< 4, StorageOrder::ColMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| template unique_CyQPALMBackend< 8, StorageOrder::ColMajor > cyqlone::qpalm::make_cyqpalm_backend< 8, StorageOrder::ColMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 8, StorageOrder::ColMajor > | ( | CyQPALMBackend< 8, StorageOrder::ColMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 8, StorageOrder::ColMajor > | ( | CyQPALMBackend< 8, StorageOrder::ColMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| template unique_CyQPALMBackend< 1, StorageOrder::RowMajor > cyqlone::qpalm::make_cyqpalm_backend< 1, StorageOrder::RowMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 1, StorageOrder::RowMajor > | ( | CyQPALMBackend< 1, StorageOrder::RowMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 1, StorageOrder::RowMajor > | ( | CyQPALMBackend< 1, StorageOrder::RowMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| template unique_CyQPALMBackend< 4, StorageOrder::RowMajor > cyqlone::qpalm::make_cyqpalm_backend< 4, StorageOrder::RowMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 4, StorageOrder::RowMajor > | ( | CyQPALMBackend< 4, StorageOrder::RowMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 4, StorageOrder::RowMajor > | ( | CyQPALMBackend< 4, StorageOrder::RowMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| template unique_CyQPALMBackend< 8, StorageOrder::RowMajor > cyqlone::qpalm::make_cyqpalm_backend< 8, StorageOrder::RowMajor > | ( | const CyqloneStorage<> & | ocp, |
| CyqloneData | data, | ||
| const CyQPALMBackendSettings & | settings ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 8, StorageOrder::RowMajor > | ( | CyQPALMBackend< 8, StorageOrder::RowMajor > & | , |
| const CyqloneStorage<> & | ocp ) |
| template void cyqlone::qpalm::update_cyqpalm_backend< 8, StorageOrder::RowMajor > | ( | CyQPALMBackend< 8, StorageOrder::RowMajor > & | , |
| const LinearOCPStorage & | ocp ) |
| struct cyqlone::qpalm::compute_breakpoints_fn cyqlone::qpalm::compute_breakpoints |
| struct cyqlone::qpalm::get_partitioned_breakpoints_fn cyqlone::qpalm::get_partitioned_breakpoints |
| struct cyqlone::qpalm::get_breakpoints_fn cyqlone::qpalm::get_breakpoints |