Constructors

We provide two different constructors generating a uniform partitioning by defining the length of the entire system and the number of subsystems as well as a user defined input. The constructors set up all necessary data such as the Containers and the coefficients.

danceq::internal::BasisU1::BasisU1(uint64_t L_, uint64_t n_)

Constructor with a uniform partitioning.

Initiates a system of size L_ with

\[\textbf{Npart} = \texttt{std::ceil}\left(\frac{ L\cdot \textbf{Nbits}}{16} \right)\]

uniform parts.

Parameters:
  • L_ – System size

  • n_ – Particle number

danceq::internal::BasisU1::BasisU1(uint64_t L_, uint64_t n_, uint64_t Npart_)

Constructor with a uniform partitioning.

Initiates a system of size L_ with Npart_ uniform parts. Npart_ has to be smaller or equal than L_ and n_ has to be within 0 and L_ \(\cdot\) (Q-1).

Parameters:
  • L_ – System size

  • n_ – Particle number

  • Npart_ – Number of subsystems

danceq::internal::BasisU1::BasisU1(uint64_t n_, std::vector<uint64_t> partition_)

Constructor with a predefined partitioning.

The whole system is split according to the input vector partition_ which is a monotonously increasing. The i th subsystem ranges from partition_[i-1] to partition_[i] for i>0 and the first subsystem ranges from site 0 to partition_[0]. Hence, Npart=partition_.size() and L=partition_[partition_.size()-1]. n_ has to be within 0 and L_ \(\cdot\) (Q-1).

Parameters:
  • n_ – Particle number

  • partition_ – Partitioning

danceq::internal::BasisU1::BasisU1(const BasisU1 &input)

Copy constructor.

Creates a full copy of the class including the Container classes.

Parameters:

input – Instance to be copied