32#ifndef MADNESS_WORLD_PRINT_H__INCLUDED
33#define MADNESS_WORLD_PRINT_H__INCLUDED
75std::ostream &
operator<<(std::ostream &s,
const std::complex<T> &
c) {
76 s <<
c.real() <<
"+" <<
c.imag() <<
"j";
87template <
typename T,
typename U>
88std::ostream &
operator<<(std::ostream &s,
const std::pair<T, U> &
p) {
89 s <<
"(" <<
p.first <<
"," <<
p.second <<
")";
116 typename std::list<T>::const_iterator it =
c.begin();
117 while (it !=
c.end()) {
134std::ostream &
operator<<(std::ostream &s,
const std::vector<T> &
c) {
136 typename std::vector<T>::const_iterator it =
c.begin();
137 while (it !=
c.end()) {
155template <
typename T, std::
size_t N>
156typename std::enable_if<!std::is_same<T, char>::value, std::ostream &>
::type
159 for (std::size_t i = 0; i <
N; ++i) {
180 void print_justified(
const char* s,
int column=0,
bool underline=
true);
183 void print_centered(
const char* s,
int column=40,
bool underline=
true);
209 template <
typename T,
typename... Ts>
211 const T& t,
const Ts&... ts) {
212 using madness::operators::operator<<;
225 template<
typename T,
typename... Ts>
226 void print(
const T& t,
const Ts&... ts) {
227 using madness::operators::operator<<;
241 template<
typename T,
typename... Ts>
243 using madness::operators::operator<<;
259 constexpr std::size_t
bufsize = 256;
261 std::snprintf(cfilename,
bufsize,
"%s.%5.5ld",
filename.c_str(), task_number);
262 ofile = std::ofstream(cfilename);
263 if (
debug) std::cout <<
"redirecting to file " << cfilename << std::endl;
265 std::cout.sync_with_stdio(
true);
271 std::cout.sync_with_stdio(
true);
272 if (
debug) std::cout <<
"redirecting back to cout" << std::endl;
282 std::cout.sync_with_stdio(
true);
287 std::cout.sync_with_stdio(
true);
Supplements to the std::array class, such as I/O operations, for convenience.
Mutex that is applied/released at start/end of a scope.
Definition worldmutex.h:239
double(* energy)()
Definition derivatives.cc:58
char * p(char *buf, const char *name, int k, int initial_level, double thresh, int order)
Definition derivatives.cc:72
const std::size_t bufsize
Definition derivatives.cc:16
auto T(World &world, response_space &f) -> response_space
Definition global_functions.cc:28
io_redirect(const long task_number, std::string filename, bool debug=false)
Definition print.h:257
std::streambuf * stream_buffer_cout
Definition print.h:252
io_redirect_cout()
Definition print.h:280
static std::streambuf * stream_buffer_cout_default
default stream buffer for cout, used to restore cout
Definition print.h:253
std::streambuf * stream_buffer_cout
Definition print.h:278
bool debug
Definition print.h:255
std::ofstream ofile
Definition print.h:254
~io_redirect()
Definition print.h:268
~io_redirect_cout()
Definition print.h:285
static const double v
Definition hatom_sf_dirac.cc:20
Mutex printmutex
Definition worldmutex.cc:146
std::ostream & operator<<(std::ostream &s, const std::array< T, N > &a)
Output std::array to stream for human consumption.
Definition array_addons.h:59
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
static const char * filename
Definition legendre.cc:96
void print_header2(const std::string &s)
medium section heading
Definition print.cc:54
std::ostream & print_helper(std::ostream &out)
Helper function for print. Base case.
Definition print.h:195
void print(const T &t, const Ts &... ts)
Print items to std::cout (items separated by spaces) and terminate with a new line.
Definition print.h:226
void print_justified(const char *s, int column, bool underline)
Print a string justified on the left to start at the given column with optional underlining.
Definition print.cc:75
void printf_msg_energy_time(const std::string msg, const double energy, const double time)
Definition print.cc:70
std::string type(const PairType &n)
Definition PNOParameters.h:18
void print_header1(const std::string &s)
big section heading
Definition print.cc:44
void print_centered(const char *s, int column, bool underline)
Print a string centered at the given column with optional underlining.
Definition print.cc:85
void print_header3(const std::string &s)
small section heading
Definition print.cc:63
void print_error(const T &t, const Ts &... ts)
Print items to std::cerr (items separated by spaces) and terminate with a new line.
Definition print.h:242
#define ENDL
Definition print.h:56
static const double c
Definition relops.cc:10
class to temporarily redirect output to cout
Definition print.h:277
RAII class to redirect cout to a file.
Definition print.h:251
#define N
Definition testconv.cc:37
Implements Mutex, MutexFair, Spinlock, ConditionVariable.