34 template <
class... t_Args>
62 impl_->output_stream_->flush();
73 impl_->emplace(
"ariles");
80 *
impl_->output_stream_
81 << std::setprecision(std::numeric_limits<double>::digits10)
84 <<
impl_->back().node_ <<
" = ";
90 *
impl_->output_stream_ <<
"{";
95 *
impl_->output_stream_ <<
"'" << map_name <<
"':";
96 impl_->emplace(map_name);
102 *
impl_->output_stream_ <<
",";
108 *
impl_->output_stream_ <<
"}";
114 *
impl_->output_stream_ <<
"[";
120 *
impl_->output_stream_ <<
"]";
128 *
impl_->output_stream_ <<
",";
134 *
impl_->output_stream_ <<
"numpy.array([";
135 impl_->emplace(
impl_->back().node_, impl::Writer::NodeWrapper::Type::VECTOR);
140 *
impl_->output_stream_ <<
",";
145 *
impl_->output_stream_ <<
"])";
156 *
impl_->output_stream_ <<
"numpy.array([";
157 impl_->emplace(
impl_->back().node_, impl::Writer::NodeWrapper::Type::MATRIX);
162 *
impl_->output_stream_ <<
"])";
169 *
impl_->output_stream_ <<
"[";
174 *
impl_->output_stream_ <<
"],";
180 *
impl_->output_stream_ <<
",";
185#define ARILES2_BASIC_TYPE(type) \
186 void Writer::writeElement(const type &element, const Parameters &) \
188 *impl_->output_stream_ << element; \
193#undef ARILES2_BASIC_TYPE
195#define ARILES2_BASIC_TYPE(type) \
196 void Writer::writeElement(const type &element, const Parameters &) \
198 if (std::isnan(element)) \
200 *impl_->output_stream_ << "float('nan')"; \
202 else if (std::isinf(element)) \
204 *impl_->output_stream_ << (element > 0 ? "float('inf')" : "float('-inf')"); \
208 *impl_->output_stream_ << element; \
214#undef ARILES2_BASIC_TYPE
218 *
impl_->output_stream_ << (element ?
"True" :
"False");
223 *
impl_->output_stream_ <<
"'" << element <<
"'";
void flush()
Flush the configuration to the output.
void startMatrix(const bool dynamic, const std::size_t cols, const std::size_t rows, const Parameters ¶m)
void endMatrix(const bool dynamic, const Parameters ¶m)
void endMap()
Ends a nested map in the configuration file.
void startArray(const std::size_t size, const bool=false)
Writer(const std::string &file_name)
void startMapEntry(const std::string &map_name)
Starts a nested map in the configuration file.
void startRoot(const std::string &name, const Parameters &)
void endMatrixRow(const Parameters ¶m)
void startMatrixRow(const std::size_t cols, const Parameters ¶m)
void startVector(const std::size_t size)
void startMap(const Parameters &, const std::size_t)
Starts a nested map in the configuration file.
std::vector< serialization::Node< std::string > > node_stack_
void makeImplPtr(t_Args &&...args)
FileVisitorImplementation(const std::string &file_name)
void writeElement(const std::complex< t_Scalar > &entry, const Parameters ¶m)
#define ARILES2_BASIC_REAL_TYPES_LIST
#define ARILES2_BASIC_INTEGER_TYPES_LIST
#define CPPUT_TRACE_FUNCTION