State syten::MPS::RandomState::generateCompleteState | ( | Lattice const & | lat, |
Basis const & | target, | ||
Index const | maxStates = 10 , |
||
Index | maxBlocksize = std::numeric_limits< Index >::max() , |
||
bool const | verbose = true |
||
) |
Generates a new state, considering every possible basis at every bond transforming as specified and right-normalised with norm 1.
If the lattice is uniform and the involved symmetries are all U(1) or SU(2), it is fairly easy to filter out unneeded reps on every step to reduce the maximal number of used representations. In theory, this would also work for nonuniform lattices, but will require more work.
lat | Lattice on which we should build the state |
target | Target basis for our state, used on LHS. |
maxBlocksize | Maximum sidelengths of blocks to generate. Only applies to generated bases, not to the physical, target or vacuum basis. |
maxStates | maximal number of (reduced) states |
verbose | Whether to verbosely print information. |
References syten::Basis::dir, syten::genRandom(), syten::Out, syten::MPS::State::resize(), SYTEN_ASSERT_DEBUG, SYTEN_ZERO_THRESHOLD, syten::MPS::State::truncate(), and syten::verbose().
Referenced by syten::MPS::ProjectedPurification::generateCompleteState(), generateCompleteState(), and syten::Pyten::init_mps_random().