File ShorFastSimulator.hpp¶
-
class ShorFastSimulator : public Simulator¶
Public Functions
-
inline ShorFastSimulator(const std::uint32_t compositeNumber, const std::uint32_t coprimeA_, const bool verbose_ = false)¶
-
inline ShorFastSimulator(const std::uint32_t compositeNumber, const std::uint32_t coprimeA_, const std::uint64_t seed_, const bool verbose_ = false)¶
-
virtual std::map<std::string, std::size_t> simulate(std::size_t shots) override¶
Run the simulation in the (derived) class.
- Parameters:
shots – number of shots to take from the final quantum state
- Returns:
a map from the strings representing basis states to the number of times they have been measured
-
inline virtual std::string getName() const override¶
-
inline virtual std::size_t getNumberOfQubits() const override¶
-
inline virtual std::size_t getNumberOfOps() const override¶
-
inline std::pair<std::uint32_t, std::uint32_t> getFactors()¶
-
inline virtual std::map<std::string, std::string> additionalStatistics() override¶
Private Functions
-
void uAEmulate2(std::uint64_t a)¶
-
std::pair<std::uint32_t, std::uint32_t> postProcessing(const std::string &sample) const¶
-
void applyGate(dd::GateMatrix matrix, dd::Qubit target)¶
Private Members
-
std::vector<std::map<dd::vNode*, dd::vCachedEdge>> nodesOnLevel¶
-
std::uint32_t compositeN¶
composite number to be factored
-
std::uint32_t coprimeA¶
coprime number to
compositeN. Setting this to zero will randomly generate a suitable number
-
std::size_t requiredBits¶
-
std::size_t nQubits¶
-
std::string simResult = "did not start"¶
-
std::pair<std::uint32_t, std::uint32_t> simFactors = {0, 0}¶
-
std::size_t numberOfOperations = {}¶
-
bool verbose¶
-
inline ShorFastSimulator(const std::uint32_t compositeNumber, const std::uint32_t coprimeA_, const bool verbose_ = false)¶