27 #ifndef INTERNAL_CLASSES_IOMANIP_H_
28 #define INTERNAL_CLASSES_IOMANIP_H_
37 template<
typename InputIterator>
44 const std::string& separator,
45 const std::string& start =
"[",
46 const std::string& end =
"]") :
49 separator_{separator},
63 std::ostream&
display(std::ostream& os)
const override
68 for (
auto it = first_; it !=
last_; ++it)
81 template<
typename Po
interType>
84 const PointerType*
p_;
89 const std::string& separator,
90 const std::string& start =
"[",
91 const std::string& end =
"]") :
94 separator_{separator},
106 std::ostream&
display(std::ostream& os)
const override
110 for (
idx i = 0; i < N_ - 1; ++i)
111 os << p_[i] << separator_;
127 template<
typename Derived>
130 A_{A.template cast<cplx>()},
137 A_{cmat::Zero(1, 1)}, chop_{
chop}
144 std::ostream&
display(std::ostream& os)
const override
constexpr double chop
Used in qpp::disp() for setting to zero numbers that have their absolute value smaller than qpp::chop...
Definition: constants.h:59
IOManipEigen(const Eigen::MatrixBase< Derived > &A, double chop=qpp::chop)
Definition: iomanip.h:128
const PointerType * p_
Definition: iomanip.h:84
std::ostream & display_impl_(const T &A, std::ostream &os, double chop=qpp::chop) const
Definition: util.h:391
IOManipPointer & operator=(const IOManipPointer &)=default
Quantum++ main namespace.
Definition: codes.h:30
std::string end_
Definition: iomanip.h:41
std::ostream & display(std::ostream &os) const override
Must be overridden by all derived classes.
Definition: iomanip.h:63
IOManipRange & operator=(const IOManipRange &)=default
double chop_
Definition: iomanip.h:124
std::string separator_
Definition: iomanip.h:86
std::ostream & display(std::ostream &os) const override
Must be overridden by all derived classes.
Definition: iomanip.h:106
Abstract class (interface) that mandates the definition of virtual std::ostream& display(std::ostream...
Definition: idisplay.h:43
Definition: iomanip.h:121
std::complex< double > cplx
Complex number in double precision.
Definition: types.h:46
cmat A_
Definition: iomanip.h:123
IOManipRange(InputIterator first, InputIterator last, const std::string &separator, const std::string &start="[", const std::string &end="]")
Definition: iomanip.h:43
IOManipEigen(const cplx z, double chop=qpp::chop)
Definition: iomanip.h:136
std::string start_
Definition: iomanip.h:86
std::string start_
Definition: iomanip.h:41
std::ostream & display(std::ostream &os) const override
Must be overridden by all derived classes.
Definition: iomanip.h:144
std::string separator_
Definition: iomanip.h:41
Eigen::MatrixXcd cmat
Complex (double precision) dynamic Eigen matrix.
Definition: types.h:61
InputIterator first_
Definition: iomanip.h:40
idx N_
Definition: iomanip.h:85
std::size_t idx
Non-negative integer index.
Definition: types.h:36
InputIterator last_
Definition: iomanip.h:40
IOManipPointer(const PointerType *p, idx N, const std::string &separator, const std::string &start="[", const std::string &end="]")
Definition: iomanip.h:88
std::string end_
Definition: iomanip.h:86