WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
print_diagnostics.hpp File Reference
#include <stdint.h>
#include <algorithm>
#include <array>
#include <chrono>
#include <cmath>
#include <ranges>
#include <string>
#include <utility>
#include <Eigen/Core>
#include <gch/small_vector.hpp>
#include "sleipnir/util/print.hpp"
#include "sleipnir/util/setup_profiler.hpp"
#include "sleipnir/util/solve_profiler.hpp"

Go to the source code of this file.

Namespaces

namespace  slp

Enumerations

enum class  slp::IterationType : uint8_t { slp::NORMAL , slp::ACCEPTED_SOC , slp::REJECTED_SOC }
 Iteration type. More...

Functions

template<typename Rep, typename Period = std::ratio<1>>
constexpr double slp::to_ms (const std::chrono::duration< Rep, Period > &duration)
 Converts std::chrono::duration to a number of milliseconds rounded to three decimals.
template<typename Scalar>
std::string slp::power_of_10 (Scalar value)
 Renders value as power of 10.
template<typename Scalar>
void slp::print_too_few_dofs_error (const Eigen::Vector< Scalar, Eigen::Dynamic > &c_e)
 Prints error for too few degrees of freedom.
template<typename Scalar>
void slp::print_c_e_local_infeasibility_error (const Eigen::Vector< Scalar, Eigen::Dynamic > &c_e)
 Prints equality constraint local infeasibility error.
template<typename Scalar>
void slp::print_c_i_local_infeasibility_error (const Eigen::Vector< Scalar, Eigen::Dynamic > &c_i)
 Prints inequality constraint local infeasibility error.
void slp::print_bound_constraint_global_infeasibility_error (const std::span< const std::pair< Eigen::Index, Eigen::Index > > conflicting_lower_upper_bound_indices)
template<typename Scalar, typename Rep, typename Period = std::ratio<1>>
void slp::print_iteration_diagnostics (int iterations, IterationType type, const std::chrono::duration< Rep, Period > &time, Scalar error, Scalar cost, Scalar infeasibility, Scalar complementarity, Scalar μ, Scalar δ, Scalar primal_α, Scalar primal_α_max, Scalar α_reduction_factor, Scalar dual_α)
 Prints diagnostics for the current iteration.
void slp::print_bottom_iteration_diagnostics ()
 Prints bottom of iteration diagnostics table.
template<int Width>
requires (Width > 0)
std::string slp::histogram (double value)
 Renders histogram of the given normalized value.
void slp::print_solver_diagnostics (const gch::small_vector< SolveProfiler > &solve_profilers)
 Prints solver diagnostics.
void slp::print_autodiff_diagnostics (const gch::small_vector< SetupProfiler > &setup_profilers)
 Prints autodiff diagnostics.