aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
logger.hpp
Go to the documentation of this file.
1
3#pragma once
4
5#include <array>
6#include <string_view>
7#include <vector>
8#include <map>
9
10namespace aligator {
11using uint = unsigned int;
12
13constexpr std::string_view int_format = "{: >{}d}";
14constexpr std::string_view sci_format = "{: >{}.4e}";
15constexpr std::string_view dbl_format = "{: >{}.4g}";
16struct LogColumn {
17 std::string_view name;
18 std::string_view format;
20};
21
22// log columns names and widths
23static const std::array<LogColumn, 11> BASIC_KEYS = {
24 {{"iter", int_format, 5U},
25 {"alpha", sci_format, 10U},
26 {"inner_crit", sci_format, 10U},
27 {"prim_err", sci_format, 10U},
28 {"dual_err", sci_format, 10U},
29 {"preg", sci_format, 10U},
30 {"dphi0", sci_format, 11U},
31 {"merit", sci_format, 11U},
32 {"ΔM", sci_format, 11U},
33 {"aliter", int_format, 7U},
34 {"mu", dbl_format, 8U}}};
35
37struct Logger {
38 bool active = true;
39 static constexpr std::string_view join_str = "|";
40
42
44 void log();
45 void finish(bool conv);
46 void reset();
47
48 void addColumn(std::string_view name, uint width, std::string_view format);
49 void addColumn(LogColumn col) { addColumn(col.name, col.width, col.format); }
50
51 void addEntry(std::string_view name, double val);
52 void addEntry(std::string_view name, size_t val);
53
54protected:
55 // sizes and formats
56 std::vector<std::string_view> m_colNames;
57 std::map<std::string_view, std::pair<uint, std::string>> m_colSpecs;
58 std::map<std::string_view, std::string> m_currentLine;
59};
60
61} // namespace aligator
Main package namespace.
constexpr std::string_view sci_format
Definition logger.hpp:14
static const std::array< LogColumn, 11 > BASIC_KEYS
Definition logger.hpp:23
unsigned int uint
Definition logger.hpp:11
constexpr std::string_view dbl_format
Definition logger.hpp:15
constexpr std::string_view int_format
Definition logger.hpp:13
std::string_view format
Definition logger.hpp:18
std::string_view name
Definition logger.hpp:17
A table logging utility to log the trace of the numerical solvers.
Definition logger.hpp:37
std::vector< std::string_view > m_colNames
Definition logger.hpp:56
void addEntry(std::string_view name, double val)
void addEntry(std::string_view name, size_t val)
std::map< std::string_view, std::pair< uint, std::string > > m_colSpecs
Definition logger.hpp:57
void addColumn(std::string_view name, uint width, std::string_view format)
static constexpr std::string_view join_str
Definition logger.hpp:39
void finish(bool conv)
void addColumn(LogColumn col)
Definition logger.hpp:49
std::map< std::string_view, std::string > m_currentLine
Definition logger.hpp:58