39 template<
class Matrix,
class SymmGroup>
45 typedef std::pair<typename SymmGroup::charge, std::size_t>
access_type;
47 template<
class Archive>
48 void serialize(Archive &ar,
const unsigned int version){
64 template <
class OtherMatrix>
68 for (std::size_t n=0; n<rhs.
aux_dim(); ++n)
69 data_.push_back(rhs[n]);
78 return data_.resize(n);
80 for(
int i = data_.size(); i < n; ++i)
84 std::vector<scalar_type>
traces()
const {
85 std::vector<scalar_type> ret; ret.reserve(data_.size());
86 for (
size_t k=0; k < data_.size(); ++k) ret.push_back(data_[k].trace());
91 for(
size_t i = 0; i < data_.size(); ++i)
96 template<
class Archive>
98 std::vector<std::string> children = ar.list_children(
"data");
99 data_.resize(children.size());
101 ar[
"data/"+children[i]] >> data_[alps::cast<std::size_t>(children[i])];
105 template<
class Archive>
106 void save(Archive & ar)
const {
115 std::vector<block_matrix<Matrix, SymmGroup> > data_;
119 template<
class Matrix,
class SymmGroup>
122 typedef typename alps::numeric::associated_real_diagonal_matrix<Matrix>::type dmt;
124 for (std::size_t k = 0; k < b.
aux_dim(); ++k)
129 if (b[k].left_basis().sum_of_sizes() == 0)
141 template<
class Matrix,
class SymmGroup>
145 for (
size_t i = 0; i < m.
aux_dim(); ++i)
Boundary(Index< SymmGroup > const &ud=Index< SymmGroup >(), Index< SymmGroup > const &ld=Index< SymmGroup >(), std::size_t ad=1)
std::size_t size_of(Boundary< Matrix, SymmGroup > const &m)
Boundary< Matrix, SymmGroup > simplify(Boundary< Matrix, SymmGroup > b)
declaration of block_matrix class
block_matrix< Matrix, SymmGroup > & operator[](std::size_t k)
#define semi_parallel_for(constraint,...)
include one of the Index class definitions
truncation_results svd_truncate(block_matrix< Matrix, SymmGroup > const &M, block_matrix< Matrix, SymmGroup > &U, block_matrix< Matrix, SymmGroup > &V, block_matrix< DiagMatrix, SymmGroup > &S, double rel_tol, std::size_t Mmax, bool verbose=true)
Matrix::value_type value_type
maquis::traits::scalar_type< Matrix >::type scalar_type
std::size_t aux_dim() const
std::vector< scalar_type > traces() const
std::pair< typename SymmGroup::charge, std::size_t > access_type
void gemm(block_matrix< Matrix1, SymmGroup > const &A, block_matrix< Matrix2, SymmGroup > const &B, block_matrix< Matrix3, SymmGroup > &C)
Boundary(Boundary< OtherMatrix, SymmGroup > const &rhs)
serializable & operator=(const serializable &rhs)
Boundary & operator=(const Boundary &rhs)
void serialize(Archive &ar, const unsigned int version)
void save(Archive &ar) const
block_matrix< Matrix, SymmGroup > const & operator[](std::size_t k) const