File ShorSimulator.hpp¶
-
class ShorSimulator : public Simulator¶
Public Functions
-
inline ShorSimulator(const std::size_t compositeNumber, const std::size_t coprimeNumber)¶
-
inline ShorSimulator(const std::size_t compositeNumber, const std::size_t coprimeNumber, const std::uint64_t seed_)¶
-
inline ShorSimulator(const std::size_t compositeNumber, const std::size_t coprimeNumber, const bool verbose_, const bool approximate_)¶
-
inline ShorSimulator(const std::size_t compositeNumber, const std::size_t coprimeNumber, const std::uint64_t seed_, const bool verbose_, const bool approximate_)¶
-
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 uAEmulate(std::uint64_t a, std::int32_t q)¶
-
std::pair<std::uint32_t, std::uint32_t> postProcessing(const std::string &sample) const¶
Private Members
-
std::vector<std::uint64_t> ts¶
-
std::size_t compositeN¶
composite number to be factored
-
std::size_t coprimeA¶
coprime number to
coprimeN. 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::string polrResult = "did not start"¶
-
std::pair<std::uint32_t, std::uint32_t> polrFactors = {0, 0}¶
-
bool verbose¶
-
bool approximate¶
-
std::uint64_t approximationRuns = {0}¶
-
long double finalFidelity = {1.0L}¶
-
double stepFidelity = {0.9}¶
-
inline ShorSimulator(const std::size_t compositeNumber, const std::size_t coprimeNumber)¶