225 std::size_t maximum_b = 0;
229 std::vector<op_t> left_ops, right_ops;
230 exp_and_split(bosonic_bond, alpha, left_ops, right_ops);
232 maximum_b = add_to_mpo(prempo, maximum_b, left_ops, right_ops, 1., ident, op_table);
238 std::vector<op_t> left_ops, right_ops;
239 exp_and_split(fermionic_bond, alpha, left_ops, right_ops);
241 maximum_b = add_to_mpo(prempo, maximum_b, left_ops, right_ops, .5, ident, op_table);
242 maximum_b = add_to_mpo(prempo, maximum_b, left_ops, right_ops, .5, fill, op_table);
247 std::vector<op_t> left_ops, right_ops;
248 exp_and_split(fermionic_bond, -alpha, left_ops, right_ops);
250 maximum_b = add_to_mpo(prempo, maximum_b, left_ops, right_ops, .5, ident, op_table);
251 maximum_b = add_to_mpo(prempo, maximum_b, left_ops, right_ops, -.5, fill, op_table);
257 for (
size_t p=0; p<L; ++p) {
260 boost::tie(nrows, ncols) =
rcdim(prempo[p]);
void swap(MPSTensor< Matrix, SymmGroup > &x, MPSTensor< Matrix, SymmGroup > &y)
std::pair< size_t, size_t > rcdim(Vector const &pm)