bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
io_utils.h
Go to the documentation of this file.
1#ifndef IO_UTILS_H
2#define IO_UTILS_H
3
4#include "bitrl/bitrl_types.h"
5#include <ostream>
6#include <vector>
7#include <iomanip>
8#include <chrono>
9
10namespace bitrl
11{
12
13namespace utils::io
14{
20std::ostream& print_time_point(std::ostream &out,
21 const std::chrono::system_clock::time_point& tp);
22
23template <typename T> std::ostream &print_vector(std::ostream &out, const std::vector<T> &obs)
24{
25
26 if (obs.empty())
27 {
28 out << "[]" << std::endl;
29 }
30 else
31 {
32 auto obs_str = std::to_string(obs[0]);
33 for (uint_t i = 1; i < obs.size(); ++i)
34 {
35 obs_str += ",";
36 obs_str += std::to_string(obs[i]);
37 }
38 out << obs_str << std::endl;
39 }
40
41 return out;
42}
43
44template <typename T>
45std::ostream &print_vector(std::ostream &out, const std::vector<std::vector<T>> &obs)
46{
47
48 for (uint_t i = 0; i < obs.size(); ++i)
49 {
51 }
52 return out;
53}
54template <typename T>
55std::ostream &print_vector(std::ostream &out, const std::vector<std::vector<std::vector<T>>> &obs)
56{
57
58 for (uint_t i = 0; i < obs.size(); ++i)
59 {
61 }
62 return out;
63}
64
65}
66
67inline
68std::ostream &operator<<(std::ostream &out, const std::chrono::system_clock::time_point &tp)
69{
70 return utils::io::print_time_point(out, tp);
71}
72
80template <typename T> std::ostream &operator<<(std::ostream &out,
81 const std::vector<T> &obs)
82{
83 return utils::io::print_vector(out, obs);
84}
85
86} // namespace bitrl
87
88#endif
std::ostream & print_time_point(std::ostream &out, const std::chrono::system_clock::time_point &tp)
Definition io_utils.cpp:10
std::ostream & print_vector(std::ostream &out, const std::vector< T > &obs)
Definition io_utils.h:23
OutT resolve(const std::string &name, const std::map< std::string, std::any > &input)
Definition std_map_utils.h:25
Definition bitrl_consts.h:14
std::ostream & operator<<(std::ostream &out, const Null &)
Definition bitrl_types.h:165
std::size_t uint_t
uint_t
Definition bitrl_types.h:43