42 RngSeedManager::SetSeed(std::random_device{}() | 1u);
48 auto qref = ref_node->CreateQubit();
50 const auto ideal = net.
GetState(qref);
56 auto depol = CreateObject<DepolarizingQMap>();
58 ch->SetAttribute(
"Delay", TimeValue(NanoSeconds(10)));
59 ch->SetAttribute(
"QMap", PointerValue(depol));
62 std::shared_ptr<QState> received;
63 B->SetRecvCallback([&net, &received](std::shared_ptr<Qubit> q) { received = net.
GetState(q); });
65 const std::vector<double> probs = {0.0, 0.10, 0.25, 0.50, 0.75, 1.0};
67 std::cout << std::fixed << std::setprecision(4);
68 std::cout <<
"Depolarizing fidelity sweep (one trial per point)\n";
69 std::cout <<
" p F\n";
71 for (
double p : probs) {
73 depol->SetAttribute(
"Probability", DoubleValue(p));
75 auto q = A->CreateQubit();
78 Simulator::Schedule(NanoSeconds(1), [A, B, q]() { A->Send(q, B->GetId()); });
81 Simulator::Stop(Simulator::Now() + MilliSeconds(1));
85 std::cout <<
" " << p <<
" " << f <<
"\n";