SyTen

◆ project()

template<Rank rank>
Tensor< rank > syten::project ( Tensor< rank > const &  in,
Basis const &  b,
Index  leg,
bool  nowarn = false 
)
inline

Returns the tensor with its leg'th index projected onto the specified basis, i.e. all blocks not in that basis removed and those in it shrunk to match the size specified in the basis.

References syten::Tensor< rank >::dirs, syten::Tensor< rank >::emplace_back(), syten::Tensor< rank >::getBasis(), rank(), syten::Tensor< rank >::reduce(), resize(), SYTEN_ASSERT_DEBUG, and SYTEN_WARN_MSG.

Referenced by syten::T3N::DMRG::Run::build_rootContr_rec(), syten::T3N::TDVP::Worker::build_rootContr_rec(), syten::T3N::RDMs::OneParticleRDM::construct(), syten::IPEPSv2::CornerTransferMatrix::CornerTransferMatrix(), do_apply_op(), syten::IPEPSv2::expectation_value(), syten::IPEPS::Horz2CTM::expectation_value(), syten::IPEPSv2::full_update_apply_gate(), syten::IPEPSv2::full_update_split_evenly(), syten::IPEPSv2::Lat::gen_spin_nil(), syten::T3N::ProjectedPurification::genTransformation(), syten::IPEPSv2::Lattice::get(), syten::IPEPS::grow_bottom_rung(), syten::IPEPSv2::CornerTransferMatrix::grow_helper(), syten::IPEPS::grow_left_rung(), syten::IPEPS::grow_right_rung(), syten::IPEPS::grow_top_rung(), syten::IPEPS::FullCTM::init_vac(), syten::IPEPSv2::make_random_tensor(), syten::IPEPSv2::mult(), syten::MPS::overlap(), syten::IPEPSv2::simple_update(), syten::MPS::SState::SState(), syten::T3N::RDMs::OneParticleRDM::twoSite_right_rec(), and syten::T3N::RDMs::OneParticleRDM::twoSite_upwards_rec().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: