[{"data":1,"prerenderedAt":100742},["ShallowReactive",2],{"topic-entanglement":3},[4,800,1034,4385,4618,4743,5213,7343,7465,7844,7955,8049,8182,8605,8751,8848,8942,9050,9150,9258,9283,9395,16809,28962,48600,48733,49050,74884,79460,79778,80454,80505,81138,81467,81800,82386,82699,83645,84335,85265,85871,86577,86973,87646,88461,88587,89267,90224,91115,91764,92216,92813,93372,93606,93956,94764,96040,96073,96104,97748,98694,99273,99308,99418,99846,99959,100442],{"id":5,"title":6,"authors":7,"body":8,"breadcrumb":7,"builders":7,"byline":7,"category":783,"categoryName":784,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":785,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":789,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":547,"outcomes":7,"path":791,"publishDate":792,"readingTime":7,"related":793,"relatedProjects":7,"seo":794,"stem":797,"tags":798,"track":7,"trackName":7,"__hash__":799},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Ferror-reference.md","Error reference",null,{"type":9,"value":10,"toc":776},"minimark",[11,15,24,29,344,348,359,491,495,501,511,518,683,695,699,748,752,772],[12,13,14],"p",{},"Errors reach you from three places: IonQ's service, the Qiskit provider that talks to it, and the playground itself.",[12,16,17,18,23],{},"The job-failure and API-response tables below are reproduced from IonQ's own reference, ",[19,20,22],"a",{"href":21},"https:\u002F\u002Fdocs.ionq.com\u002Fapi-reference\u002Fv0.4\u002Ferror-codes","IonQ's v0.4 error codes",", the source of truth for both. Crawled 2026-09-09.",[25,26,28],"h2",{"id":27},"job-failures-on-ionq-hardware","Job failures on IonQ hardware",[30,31,32,48],"table",{},[33,34,35],"thead",{},[36,37,38,42,45],"tr",{},[39,40,41],"th",{},"Code",[39,43,44],{},"What IonQ says",[39,46,47],{},"What to do on Qollab",[49,50,51,66,79,97,115,128,146,159,172,185,198,215,228,241,254,271,284,297,313,326],"tbody",{},[36,52,53,60,63],{},[54,55,56],"td",{},[57,58,59],"code",{},"CompilationError",[54,61,62],{},"\"Generic failure in our compilation service\"",[54,64,65],{},"Run the same circuit on the built-in simulator first. If it passes there, simplify the circuit and resubmit.",[36,67,68,73,76],{},[54,69,70],{},[57,71,72],{},"ContractExpiredError",[54,74,75],{},"\"The billing service shows that the contract governing the key being used has expired\"",[54,77,78],{},"Nothing you can fix from the editor: this is the platform's IonQ contract, not your account. Report it.",[36,80,81,86,89],{},[54,82,83],{},[57,84,85],{},"DebiasingError",[54,87,88],{},"\"Unknown execution error when using debiasing (an IonQ-provided error mitigation technique)\"",[54,90,91,92,96],{},"Debiasing is IonQ's own error mitigation and is on by default. It is switched off in code when you submit the job, not in a settings panel. See the ",[19,93,95],{"href":94},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-hardware","IonQ hardware lesson",", which shows exactly that call.",[36,98,99,104,107],{},[54,100,101],{},[57,102,103],{},"InternalError",[54,105,106],{},"\"An unattributable internal error\"",[54,108,109,110,114],{},"Retry once. If it repeats, check ",[19,111,113],{"href":112},"https:\u002F\u002Fstatus.ionq.co","status.ionq.co",".",[36,116,117,122,125],{},[54,118,119],{},[57,120,121],{},"InvalidInput",[54,123,124],{},"\"The job input failed validation. The message should indicate the specific part of the input which was invalid\"",[54,126,127],{},"The message names the part that failed. Usually a gate argument the backend will not take.",[36,129,130,135,138],{},[54,131,132],{},[57,133,134],{},"NotEnoughQubits",[54,136,137],{},"\"The backend you are submitting to has fewer qubits than this job requires\"",[54,139,140,141,145],{},"Your circuit asks for more qubits than the backend has. Check the qubit column on ",[19,142,144],{"href":143},"\u002Flearn\u002Fdocs\u002Fcompute-backends","Compute backends"," and pick a bigger one or shrink the circuit.",[36,147,148,153,156],{},[54,149,150],{},[57,151,152],{},"OptimizationError",[54,154,155],{},"\"Generic error in our optimization service\"",[54,157,158],{},"Retry once, then simplify the circuit.",[36,160,161,166,169],{},[54,162,163],{},[57,164,165],{},"PreflightError",[54,167,168],{},"\"Generic error during preflight checks. This most often occurs when the input circuit is syntax checked and includes malformed gates, commands, formats, or similar\"",[54,170,171],{},"Caught before anything ran, so it cost nothing. Run on the built-in simulator, which catches the same class of problem instantly.",[36,173,174,179,182],{},[54,175,176],{},[57,177,178],{},"QuantumCircuitComplexityError",[54,180,181],{},"\"This failure occurs when the coherent program used to execute this circuit cannot be feasibly run on the system targeted. Reducing the number of gates requested can often resolve this issue.\"",[54,183,184],{},"Too many gates to hold coherently on that machine. Reduce the gate count, or run it on a simulator where depth is free.",[36,186,187,192,195],{},[54,188,189],{},[57,190,191],{},"QuantumComputerError",[54,193,194],{},"\"Generic failure that occurred while the job was being processed on-QPU\"",[54,196,197],{},"The job reached the machine and failed there. Retry, and report it if credits were spent.",[36,199,200,205,208],{},[54,201,202],{},[57,203,204],{},"QuotaExhaustedError",[54,206,207],{},"\"The billing system shows that your user, project, or organization has an inadequate credit balance to run this job\"",[54,209,210,211,114],{},"Out of credits. See ",[19,212,214],{"href":213},"\u002Flearn\u002Fdocs\u002Fhow-credits-work","How credits work",[36,216,217,222,225],{},[54,218,219],{},[57,220,221],{},"SimulationError",[54,223,224],{},"\"Generic failure in our simulation service\"",[54,226,227],{},"This is IonQ's cloud simulator, not the local one. Try the built-in simulator, which runs in your browser.",[36,229,230,235,238],{},[54,231,232],{},[57,233,234],{},"SimulationTimeout",[54,236,237],{},"\"Timeout error in our simulation service. This is most commonly caused by simulations that are too large for the service to simulate before hitting our runaway process timeout\"",[54,239,240],{},"The simulation was too large for IonQ's service. Fewer qubits or fewer shots, or use a local simulator.",[36,242,243,248,251],{},[54,244,245],{},[57,246,247],{},"SystemCancel",[54,249,250],{},"\"A member of IonQ staff has manually cancelled your job. This most often occurs as a result of a customer request, but can sometimes represent manual resolution of an unknown failure mode\"",[54,252,253],{},"Cancelled by IonQ staff rather than by anything in your circuit. Resubmit.",[36,255,256,261,264],{},[54,257,258],{},[57,259,260],{},"TooLongPredictedExecutionTime",[54,262,263],{},"\"Preflight error of a specific type: the predicted execution time for the circuit was longer than the single-job timeout duration for a given backend\"",[54,265,266,267,270],{},"Predicted runtime is over the backend's single-job limit. Lower ",[57,268,269],{},"shots"," first, since runtime scales with it.",[36,272,273,278,281],{},[54,274,275],{},[57,276,277],{},"TooManyControls",[54,279,280],{},"\"The job submitted includes a multi-control gate with more control qubits than allowed (more than 7)\"",[54,282,283],{},"A multi-control gate with more than seven controls. Decompose it into smaller gates.",[36,285,286,291,294],{},[54,287,288],{},[57,289,290],{},"TooManyGates",[54,292,293],{},"\"Preflight error of a specific type: the job submitted includes more gates per circuit than the target backend allows\"",[54,295,296],{},"Over the backend's per-circuit gate limit. Note that transpiling can add gates, so the count you wrote is not the count submitted.",[36,298,299,304,307],{},[54,300,301],{},[57,302,303],{},"TooManyShots",[54,305,306],{},"\"Preflight error of a specific type: the job submitted requested more shots than the target backend allows\"",[54,308,309,310,312],{},"Lower the ",[57,311,269],{}," argument on your run.",[36,314,315,320,323],{},[54,316,317],{},[57,318,319],{},"UnknownBillingError",[54,321,322],{},"\"Unknown error related to but not originating from our billing service. This most often means the service is briefly unavailable for some reason.\"",[54,324,325],{},"Usually a brief billing service blip. Retry.",[36,327,328,333,336],{},[54,329,330],{},[57,331,332],{},"UnsupportedGate",[54,334,335],{},"\"Preflight error of a specific type: the job submitted uses a gate that the target backend does not allow\"",[54,337,338,339,343],{},"The gate is not in that backend's set. Transpile for the target, or swap the gate. See ",[19,340,342],{"href":341},"https:\u002F\u002Fdocs.ionq.com\u002Fsdks\u002Fqiskit\u002Fnative-gates-qiskit","Compilation and native gates"," in IonQ's docs.",[25,345,347],{"id":346},"api-responses","API responses",[12,349,350,351,354,355,358],{},"On Qollab the IonQ API key belongs to the platform, not to you. A ",[57,352,353],{},"401"," or ",[57,356,357],{},"403"," here is never something you can fix by rotating a key, which is exactly what IonQ's own wording would lead you to try.",[30,360,361,373],{},[33,362,363],{},[36,364,365,368,370],{},[39,366,367],{},"Status",[39,369,44],{},[39,371,372],{},"What it means on Qollab",[49,374,375,388,401,413,425,443,459,475],{},[36,376,377,382,385],{},[54,378,379],{},[57,380,381],{},"400 Bad Request",[54,383,384],{},"\"Generic request error. The message should indicate the specific parameter which was invalid.\"",[54,386,387],{},"A malformed job.",[36,389,390,395,398],{},[54,391,392],{},[57,393,394],{},"401 Unauthorized",[54,396,397],{},"\"The request failed to authenticate the supplied API key\"",[54,399,400],{},"Report it.",[36,402,403,408,411],{},[54,404,405],{},[57,406,407],{},"403 Forbidden",[54,409,410],{},"\"The supplied API key failed authorization for the requested resource\"",[54,412,400],{},[36,414,415,420,423],{},[54,416,417],{},[57,418,419],{},"404 Not Found",[54,421,422],{},"\"The specified resource does not exist or could not be found.\"",[54,424,400],{},[36,426,427,432,440],{},[54,428,429],{},[57,430,431],{},"429 Too Many Requests",[54,433,434,435,439],{},"\"The request was rate limited. To get a higher rate limit, please reach out to ",[19,436,438],{"href":437},"mailto:support@ionq.co","support@ionq.co","\"",[54,441,442],{},"Retry shortly. The key belongs to Qollab, not to you, so report it here rather than contacting IonQ.",[36,444,445,450,453],{},[54,446,447],{},[57,448,449],{},"500 Internal Server Error",[54,451,452],{},"\"A service was unexpectedly offline, unavailable, or failed in an unknown manner.\"",[54,454,455,456,458],{},"Check ",[19,457,113],{"href":112}," and retry.",[36,460,461,466,471],{},[54,462,463],{},[57,464,465],{},"502 Bad Gateway",[54,467,468,469,439],{},"\"This can be caused by misbehaving proxies or by service issues. These can be retried, and downtime can be found on ",[19,470,113],{"href":112},[54,472,455,473,458],{},[19,474,113],{"href":112},[36,476,477,482,487],{},[54,478,479],{},[57,480,481],{},"503 Service Unavailable",[54,483,484,485,439],{},"\"Indicative of a service outage - please check ",[19,486,113],{"href":112},[54,488,455,489,458],{},[19,490,113],{"href":112},[25,492,494],{"id":493},"errors-from-the-qiskit-provider","Errors from the Qiskit provider",[12,496,497,498,114],{},"Neither vendor documents this section, because it belongs to the client library sitting between them: ",[57,499,500],{},"qiskit-ionq",[12,502,503,504,507,508,510],{},"The one real case is an ",[57,505,506],{},"AttributeError"," raised inside ",[57,509,500],{}," while a job is being submitted. Quantum Garden's author traced it: the provider crashes parsing an IonQ error response that arrived as a plain string rather than an object. Its own failure then replaces IonQ's message, so the real cause never reaches you. It is usually authentication or an exhausted quota. Check credits first.",[12,512,513,517],{},[19,514,516],{"href":515},"\u002Fu\u002FAmberPincar\u002Fquantum-garden","Quantum Garden"," handles it in published code:",[519,520,523],"code-block",{"name":521,"run-href":515,"tag":522},"quantum_garden.py","Python · excerpt",[524,525,530],"pre",{"className":526,"code":527,"language":528,"meta":529,"style":529},"language-python shiki shiki-themes one-dark-pro","  try:\n    job = backend.run(circuit, shots=shots)\n  except AttributeError as e:\n    # qiskit-ionq bug: SDK crashes parsing error responses that are\n    # plain strings instead of dicts. The real error is usually\n    # an auth failure or quota issue.\n    print(f\"qiskit-ionq SDK parsing bug — check API key and backend target: {e}\")\n    return\n  except Exception as e:\n    print(f\"Job submission failed: {e}\")\n    return\n","python","",[57,531,532,545,573,588,595,601,607,638,644,656,678],{"__ignoreMap":529},[533,534,537,541],"span",{"class":535,"line":536},"line",1,[533,538,540],{"class":539},"seHd6","  try",[533,542,544],{"class":543},"sn6KH",":\n",[533,546,548,551,555,558,562,565,568,570],{"class":535,"line":547},2,[533,549,550],{"class":543},"    job ",[533,552,554],{"class":553},"sjrmR","=",[533,556,557],{"class":543}," backend.",[533,559,561],{"class":560},"sVbv2","run",[533,563,564],{"class":543},"(circuit, ",[533,566,269],{"class":567},"s_ZVi",[533,569,554],{"class":553},[533,571,572],{"class":543},"shots)\n",[533,574,576,579,582,585],{"class":535,"line":575},3,[533,577,578],{"class":539},"  except",[533,580,581],{"class":543}," AttributeError ",[533,583,584],{"class":539},"as",[533,586,587],{"class":543}," e:\n",[533,589,591],{"class":535,"line":590},4,[533,592,594],{"class":593},"sV9Aq","    # qiskit-ionq bug: SDK crashes parsing error responses that are\n",[533,596,598],{"class":535,"line":597},5,[533,599,600],{"class":593},"    # plain strings instead of dicts. The real error is usually\n",[533,602,604],{"class":535,"line":603},6,[533,605,606],{"class":593},"    # an auth failure or quota issue.\n",[533,608,610,613,616,619,623,627,630,633,635],{"class":535,"line":609},7,[533,611,612],{"class":553},"    print",[533,614,615],{"class":543},"(",[533,617,618],{"class":539},"f",[533,620,622],{"class":621},"subq3","\"qiskit-ionq SDK parsing bug — check API key and backend target: ",[533,624,626],{"class":625},"sVC51","{",[533,628,629],{"class":543},"e",[533,631,632],{"class":625},"}",[533,634,439],{"class":621},[533,636,637],{"class":543},")\n",[533,639,641],{"class":535,"line":640},8,[533,642,643],{"class":539},"    return\n",[533,645,647,649,652,654],{"class":535,"line":646},9,[533,648,578],{"class":539},[533,650,651],{"class":543}," Exception ",[533,653,584],{"class":539},[533,655,587],{"class":543},[533,657,659,661,663,665,668,670,672,674,676],{"class":535,"line":658},10,[533,660,612],{"class":553},[533,662,615],{"class":543},[533,664,618],{"class":539},[533,666,667],{"class":621},"\"Job submission failed: ",[533,669,626],{"class":625},[533,671,629],{"class":543},[533,673,632],{"class":625},[533,675,439],{"class":621},[533,677,637],{"class":543},[533,679,681],{"class":535,"line":680},11,[533,682,643],{"class":539},[12,684,685,686,689,690,694],{},"The general defence is wrapping the submit call in ",[57,687,688],{},"try",". ",[19,691,693],{"href":692},"\u002Fu\u002Flukeshim\u002Fentangled-body","Entangled Body's three-tier fallback"," is a worked example.",[25,696,698],{"id":697},"the-playground-itself","The playground itself",[30,700,701,711],{},[33,702,703],{},[36,704,705,708],{},[39,706,707],{},"Symptom",[39,709,710],{},"What to do",[49,712,713,730,740],{},[36,714,715,718],{},[54,716,717],{},"JSPI compatibility warning",[54,719,720,721,725,726,729],{},"See the ",[19,722,724],{"href":723},"\u002Flearn\u002Fdocs\u002Ffaq#the-playground-shows-a-compatibility-warning","FAQ"," for the ",[57,727,728],{},"about:config"," fix.",[36,731,732,735],{},[54,733,734],{},"Out of credits",[54,736,737,738,114],{},"See ",[19,739,214],{"href":213},[36,741,742,745],{},[54,743,744],{},"A red traceback in the console",[54,746,747],{},"Your Python, not the machine. Fix the line it points to and run again.",[25,749,751],{"id":750},"related","Related",[753,754,755,762,766],"ul",{},[756,757,758],"li",{},[19,759,761],{"href":760},"\u002Flearn\u002Fdocs\u002Ffaq","Troubleshooting and FAQ",[756,763,764],{},[19,765,144],{"href":143},[756,767,768],{},[19,769,771],{"href":770},"\u002Flearn\u002Fdocs\u002Fwhy-your-results-look-wrong","Why your results look wrong",[773,774,775],"style",{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":777},[778,779,780,781,782],{"id":27,"depth":547,"text":28},{"id":346,"depth":547,"text":347},{"id":493,"depth":547,"text":494},{"id":697,"depth":547,"text":698},{"id":750,"depth":547,"text":751},"troubleshooting","Troubleshooting","Every error a Qollab run can return, what it means, and what to do about it: IonQ job failures, API responses, the Qiskit provider, and the playground itself.",false,"md","doc",{},true,"\u002Fblog\u002Flearn\u002Fdocs\u002Ferror-reference","2026-09-09",[],{"title":795,"description":796},"Error reference · Qollab docs","What each Qollab and IonQ error means and how to fix it, including job failure codes, API responses, and Qiskit provider errors.","blog\u002Flearn\u002Fdocs\u002Ferror-reference",[],"FA_z0F4rtyRsCXsvY0Bt_bfl0lsF6ASPNYEAS7_yfV8",{"id":801,"title":771,"authors":7,"body":802,"breadcrumb":7,"builders":7,"byline":7,"category":783,"categoryName":784,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":1024,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":1025,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":575,"outcomes":7,"path":1026,"publishDate":792,"readingTime":7,"related":1027,"relatedProjects":7,"seo":1028,"stem":1031,"tags":1032,"track":7,"trackName":7,"__hash__":1033},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fwhy-your-results-look-wrong.md",{"type":9,"value":803,"toc":1017},[804,807,813,817,820,823,834,841,845,848,851,862,865,949,954,958,961,967,970,978,982,985,988,998,1000,1014],[12,805,806],{},"A circuit can run without an error and still return a result you did not expect. Four things cause that: too few shots, a transpiler that rewrote the circuit, hardware noise, and readout error.",[12,808,809,810,114],{},"If your run failed instead, see the ",[19,811,6],{"href":812},"\u002Flearn\u002Fdocs\u002Ferror-reference",[25,814,816],{"id":815},"not-enough-shots","Not enough shots",[12,818,819],{},"This is the cheapest cause to rule out, and the most common one.",[12,821,822],{},"A single run of a circuit returns one bitstring, not a distribution. A distribution only appears once you run the circuit many times, and each individual run is called a shot.",[12,824,825,826,829,830,833],{},"Try it yourself: run the same circuit at ",[57,827,828],{},"shots=1",", then again at ",[57,831,832],{},"shots=1000",", both on the built-in simulator. The tally goes from a single spike to a stable distribution, and both runs are free and return instantly.",[12,835,737,836,840],{},[19,837,839],{"href":838},"\u002Flearn\u002Fquantum-measurement","Understanding Quantum Measurement"," for why the results spread out the way they do.",[25,842,844],{"id":843},"the-transpiler-rewrote-your-circuit","The transpiler rewrote your circuit",[12,846,847],{},"Hardware backends only execute a fixed set of native gates. Before your circuit runs, it gets translated into that gate set, so what actually executes on the hardware is not always the circuit you submitted.",[12,849,850],{},"That translation can add gates, and more gates means more error. So the same circuit can come out noisier after translation, even when it runs perfectly with no error and no failed job.",[12,852,853,854,354,856,858,859,861],{},"A translated circuit that blows past a backend's gate limit outright is the loud version of the same cause. You would see it as ",[57,855,290],{},[57,857,332],{}," in the ",[19,860,6],{"href":812},". The quiet version still runs, just noisier.",[12,863,864],{},"Try it yourself: transpiling happens locally, so it submits no job and costs nothing. Compare your circuit before and after:",[519,866,868],{"name":867,"tag":522},"transpile_compare.py",[524,869,871],{"className":526,"code":870,"language":528,"meta":529,"style":529},"from qiskit import transpile\n\ntqc = transpile(qc, backend=backend)\nprint(qc.count_ops(), qc.depth())\nprint(tqc.count_ops(), tqc.depth())\n",[57,872,873,887,892,913,933],{"__ignoreMap":529},[533,874,875,878,881,884],{"class":535,"line":536},[533,876,877],{"class":539},"from",[533,879,880],{"class":543}," qiskit ",[533,882,883],{"class":539},"import",[533,885,886],{"class":543}," transpile\n",[533,888,889],{"class":535,"line":547},[533,890,891],{"emptyLinePlaceholder":790},"\n",[533,893,894,897,899,902,905,908,910],{"class":535,"line":575},[533,895,896],{"class":543},"tqc ",[533,898,554],{"class":553},[533,900,901],{"class":560}," transpile",[533,903,904],{"class":543},"(qc, ",[533,906,907],{"class":567},"backend",[533,909,554],{"class":553},[533,911,912],{"class":543},"backend)\n",[533,914,915,918,921,924,927,930],{"class":535,"line":590},[533,916,917],{"class":553},"print",[533,919,920],{"class":543},"(qc.",[533,922,923],{"class":560},"count_ops",[533,925,926],{"class":543},"(), qc.",[533,928,929],{"class":560},"depth",[533,931,932],{"class":543},"())\n",[533,934,935,937,940,942,945,947],{"class":535,"line":597},[533,936,917],{"class":553},[533,938,939],{"class":543},"(tqc.",[533,941,923],{"class":560},[533,943,944],{"class":543},"(), tqc.",[533,946,929],{"class":560},[533,948,932],{"class":543},[12,950,951,952,114],{},"The second line is what gets submitted, not what you wrote. IonQ then compiles again on its own side, so treat this as a lower bound on the gate count rather than a transcript of the run. For the specifics of which gates a given backend supports natively, see IonQ's ",[19,953,342],{"href":341},[25,955,957],{"id":956},"hardware-noise","Hardware noise",[12,959,960],{},"Real quantum hardware is noisy. A circuit that runs cleanly, with no error, can still return a distribution that does not match what you expected. The machine executing it is imperfect, not your circuit or your shot count.",[12,962,963,964,966],{},"The Playground's Select QPU dialog groups your options into three kinds. For this comparison, only two matter, and both sit inside the same locally run simulators group: the built-in simulator and the simulators that carry IBM's noise models. Both are free and run in your browser. See ",[19,965,144],{"href":143}," for the full list, including what runs on IonQ's cloud and what runs on real IonQ hardware.",[12,968,969],{},"Try it yourself: run the same circuit on the built-in simulator, then on an IBM noise-model simulator, then on an IonQ remote simulator, then optionally on IonQ hardware. The first three are free, so you can watch noise appear in the distribution without spending anything.",[12,971,972,973,977],{},"Be plain about what that middle run is: ",[974,975,976],"strong",{},"a noise-model simulator is a model of that machine, not the machine."," It executes locally in your browser. No IBM cloud service is contacted at any point, and you are not running on IBM hardware.",[25,979,981],{"id":980},"readout-error","Readout error",[12,983,984],{},"The last cause is different in kind from the other three. Readout error happens after your circuit has already run: it corrupts the record of the measurement, not the quantum state itself.",[12,986,987],{},"That distinction makes it fixable. The aggregate distribution can be corrected, because ordinary classical arithmetic can estimate the true counts from the measured ones. It does not recover which individual shots were flipped, and the correction carries statistical noise of its own.",[12,989,990,991,995,996,114],{},"Try it yourself: drag error sliders on a five-qubit GHZ state in ",[19,992,994],{"href":993},"\u002Fu\u002Fqollab\u002Freadout-mitigation-showcase-fi","Readout mitigation"," and watch three histograms, ideal, raw, and corrected, update together. It runs in your browser on a free simulator by default, so opening it costs you nothing. For the underlying idea, see ",[19,997,839],{"href":838},[25,999,751],{"id":750},[753,1001,1002,1006,1010],{},[756,1003,1004],{},[19,1005,6],{"href":812},[756,1007,1008],{},[19,1009,144],{"href":143},[756,1011,1012],{},[19,1013,761],{"href":760},[773,1015,1016],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":1018},[1019,1020,1021,1022,1023],{"id":815,"depth":547,"text":816},{"id":843,"depth":547,"text":844},{"id":956,"depth":547,"text":957},{"id":980,"depth":547,"text":981},{"id":750,"depth":547,"text":751},"Nothing errored and the answer is still wrong. The four causes: too few shots, hardware noise, a transpiler that rewrote your circuit, and readout error.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fwhy-your-results-look-wrong",[],{"title":1029,"description":1030},"Why your quantum results look wrong · Qollab docs","Your circuit ran without an error and the output is still not what you expected. How to tell shot noise, hardware noise, transpilation and readout error apart.","blog\u002Flearn\u002Fdocs\u002Fwhy-your-results-look-wrong",[],"63pBXC5KuW7gPrDeeC8mgzrIEao3FgT6iicFxLWqlMU",{"id":1035,"title":839,"authors":1036,"body":1038,"breadcrumb":4348,"builders":4352,"byline":4365,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":4366,"description":4367,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":4368,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":4371,"navigation":790,"newsItems":7,"next":7,"ogImage":4372,"order":7,"outcomes":7,"path":4373,"publishDate":792,"readingTime":4374,"related":4375,"relatedProjects":7,"seo":4376,"stem":4379,"tags":4380,"track":7,"trackName":7,"__hash__":4384},"blog\u002Fblog\u002Flearn\u002Fquantum-measurement.md",[1037],"nico",{"type":9,"value":1039,"toc":4333},[1040,1053,1061,1064,1067,1071,1074,1319,1328,1331,1342,1346,1349,1588,1598,1605,1609,1612,1630,1650,1673,1687,1700,1704,1713,1716,2081,2138,2144,2150,2153,2156,2164,2168,2171,2174,2181,2189,2282,2288,2291,2303,2312,2315,2318,2326,2333,2337,2340,2349,2722,2725,2728,2732,2736,2739,2744,2747,3063,3069,3075,3078,3081,3089,3096,3100,3103,3108,3111,3296,3299,3302,3305,3308,3313,3317,3320,3323,3328,3331,3545,3548,3551,3556,3559,3769,3772,3775,3788,3794,3798,3801,3804,4284,4287,4290,4293,4296,4304,4307,4311,4314,4317,4320,4330],[12,1041,1042,1043,1046,1047,354,1050,114],{},"There is no ",[57,1044,1045],{},"print(qubit)",". No debugger, no stepping through to watch one change. The only way to get anything out of a qubit is to measure it, and measurement does hand you a single ",[57,1048,1049],{},"0",[57,1051,1052],{},"1",[12,1054,1055,1056,354,1058,1060],{},"The catch is where that ",[57,1057,1049],{},[57,1059,1052],{}," comes from. Measurement does not find an answer sitting in the qubit; it produces one. Before you measure there is nothing in there to print, which is why no such function exists.",[12,1062,1063],{},"Quantum code feels alien for that reason. You write a program, run it, get back a tally of bitstrings, and everything you actually wanted to know has to be inferred from that tally.",[12,1065,1066],{},"Four things follow, and each shows up the first time you write a circuit. You can sample a qubit but never read it. Which answer you get depends on which question you ask. Asking is one-way, so whatever the qubit held before is gone. And the instrument doing the asking can be wrong in its own right, separately from all of that.",[25,1068,1070],{"id":1069},"the-smallest-measurement-you-can-make","The smallest measurement you can make",[12,1072,1073],{},"One qubit is enough to see the whole problem. Put it into a state that has no fixed value, read it, and count what comes back.",[519,1075,1079],{"name":1076,"tag":1077,"run-href":1078},"one_qubit.py","Python · Playground version","\u002Fu\u002Fqollab\u002Fbell-state",[524,1080,1082],{"className":526,"code":1081,"language":528,"meta":529,"style":529},"# 'backend' is pre-created for you in the Qollab Playground.\nfrom qiskit import QuantumCircuit\n\nqc = QuantumCircuit(1, 1)\nqc.h(0)\nqc.measure(0, 0)\n\none = backend.run(qc, shots=1).result().get_counts()\nmany = backend.run(qc, shots=1000).result().get_counts()\n\nprint(one, many)\n",[57,1083,1084,1094,1107,1114,1138,1155,1175,1181,1218,1251,1257,1266],{"__ignoreMap":529},[533,1085,1086,1091],{"class":535,"line":536},[533,1087,1090],{"class":1088,"aria-hidden":1089},"qg-cue qg-cue--empty","true","​",[533,1092,1093],{"class":593},"# 'backend' is pre-created for you in the Qollab Playground.\n",[533,1095,1096,1098,1100,1102,1104],{"class":535,"line":547},[533,1097,1090],{"class":1088,"aria-hidden":1089},[533,1099,877],{"class":539},[533,1101,880],{"class":543},[533,1103,883],{"class":539},[533,1105,1106],{"class":543}," QuantumCircuit\n",[533,1108,1109,1111],{"class":535,"line":575},[533,1110,1090],{"class":1088,"aria-hidden":1089},[533,1112,1113],{},"​\n",[533,1115,1116,1119,1122,1124,1127,1129,1131,1134,1136],{"class":535,"data-cue":1052,"line":590},[533,1117,1052],{"class":1118},"qg-cue",[533,1120,1121],{"class":543},"qc ",[533,1123,554],{"class":553},[533,1125,1126],{"class":560}," QuantumCircuit",[533,1128,615],{"class":543},[533,1130,1052],{"class":625},[533,1132,1133],{"class":543},", ",[533,1135,1052],{"class":625},[533,1137,637],{"class":543},[533,1139,1141,1143,1146,1149,1151,1153],{"class":535,"data-cue":1140,"line":597},"2",[533,1142,1140],{"class":1118},[533,1144,1145],{"class":543},"qc.",[533,1147,1148],{"class":560},"h",[533,1150,615],{"class":543},[533,1152,1049],{"class":625},[533,1154,637],{"class":543},[533,1156,1158,1160,1162,1165,1167,1169,1171,1173],{"class":535,"data-cue":1157,"line":603},"3",[533,1159,1157],{"class":1118},[533,1161,1145],{"class":543},[533,1163,1164],{"class":560},"measure",[533,1166,615],{"class":543},[533,1168,1049],{"class":625},[533,1170,1133],{"class":543},[533,1172,1049],{"class":625},[533,1174,637],{"class":543},[533,1176,1177,1179],{"class":535,"line":609},[533,1178,1090],{"class":1088,"aria-hidden":1089},[533,1180,1113],{},[533,1182,1184,1186,1189,1191,1193,1195,1197,1199,1201,1203,1206,1209,1212,1215],{"class":535,"data-cue":1183,"line":640},"4",[533,1185,1183],{"class":1118},[533,1187,1188],{"class":543},"one ",[533,1190,554],{"class":553},[533,1192,557],{"class":543},[533,1194,561],{"class":560},[533,1196,904],{"class":543},[533,1198,269],{"class":567},[533,1200,554],{"class":553},[533,1202,1052],{"class":625},[533,1204,1205],{"class":543},").",[533,1207,1208],{"class":560},"result",[533,1210,1211],{"class":543},"().",[533,1213,1214],{"class":560},"get_counts",[533,1216,1217],{"class":543},"()\n",[533,1219,1221,1223,1226,1228,1230,1232,1234,1236,1238,1241,1243,1245,1247,1249],{"class":535,"data-cue":1220,"line":646},"5",[533,1222,1220],{"class":1118},[533,1224,1225],{"class":543},"many ",[533,1227,554],{"class":553},[533,1229,557],{"class":543},[533,1231,561],{"class":560},[533,1233,904],{"class":543},[533,1235,269],{"class":567},[533,1237,554],{"class":553},[533,1239,1240],{"class":625},"1000",[533,1242,1205],{"class":543},[533,1244,1208],{"class":560},[533,1246,1211],{"class":543},[533,1248,1214],{"class":560},[533,1250,1217],{"class":543},[533,1252,1253,1255],{"class":535,"line":658},[533,1254,1090],{"class":1088,"aria-hidden":1089},[533,1256,1113],{},[533,1258,1259,1261,1263],{"class":535,"line":680},[533,1260,1090],{"class":1088,"aria-hidden":1089},[533,1262,917],{"class":553},[533,1264,1265],{"class":543},"(one, many)\n",[1267,1268,1270,1278,1291,1298,1312],"ol",{"class":1269},"qg-cues",[756,1271,1272,1274],{"data-cue":1052},[533,1273,1052],{"class":1118},[533,1275,1277],{"class":1276},"qg-cues__text","One qubit to do the quantum work, and one ordinary bit to read the answer into.",[756,1279,1280,1282],{"data-cue":1140},[533,1281,1140],{"class":1118},[533,1283,1284,1285,1287,1288,1290],{"class":1276},"A Hadamard puts the qubit into superposition: not ",[57,1286,1049],{},", not ",[57,1289,1052],{},", and not secretly one of them either. It has no value to read.",[756,1292,1293,1295],{"data-cue":1157},[533,1294,1157],{"class":1118},[533,1296,1297],{"class":1276},"The only way to get anything out. It forces the qubit to one definite answer and writes that answer to the bit.",[756,1299,1300,1302],{"data-cue":1183},[533,1301,1183],{"class":1118},[533,1303,1304,1305,354,1308,1311],{"class":1276},"Run the circuit once. You get ",[57,1306,1307],{},"{'0': 1}",[57,1309,1310],{},"{'1': 1}"," — one answer, with nothing to say whether the other was equally likely or nearly impossible.",[756,1313,1314,1316],{"data-cue":1220},[533,1315,1220],{"class":1118},[533,1317,1318],{"class":1276},"Run it a thousand times. Now the pattern shows: roughly 500 each. A shot is one complete run, and the odds only exist across a pile of them.",[12,1320,1321,1322,1324,1325,1327],{},"Eight lines, and every difficulty is in them. The qubit held something before line three, the measurement turned it into a ",[57,1323,1049],{}," or a ",[57,1326,1052],{},", and what it held cannot be recovered from what you got.",[12,1329,1330],{},"Run the same program twice and the thousand-shot tally comes back roughly the same, while the single shot flips between runs. Neither number is more true than the other. One is a sample and the other is a pattern in a thousand samples.",[12,1332,1333,1336,1337,1324,1339,1341],{},[974,1334,1335],{},"Superposition"," is the word for what the qubit had before the measurement. It does not mean the qubit is secretly a ",[57,1338,1049],{},[57,1340,1052],{}," and we have not looked yet. There is no answer in there to find; the measurement is what produces one.",[25,1343,1345],{"id":1344},"all-you-get-is-counts","All you get is counts",[12,1347,1348],{},"Every quantum program ends the same way: a dictionary mapping bitstrings to how many times each came up. Nothing else comes back.",[519,1350,1353],{"name":1351,"tag":522,"run-href":1352},"histograms.py","\u002Fu\u002Fqollab\u002Fshowcase-histograms",[524,1354,1356],{"className":526,"code":1355,"language":528,"meta":529,"style":529},"# Counts from an ideal Bell-state experiment: only correlated outcomes,\n# roughly 50\u002F50 between 00 and 11\nideal = {\"00\": 512, \"11\": 488}\nplot_histogram(ideal, filename=\"ideal.svg\")\n\n# The same experiment on noisy hardware leaks shots into 01 and 10.\n# plot_histogram overlays multiple experiments for direct comparison.\nnoisy = {\"00\": 462, \"01\": 27, \"10\": 31, \"11\": 480}\nplot_histogram(\n    [ideal, noisy],\n    legend=[\"ideal simulator\", \"noisy device\"],\n    filename=\"ideal_vs_noisy.svg\",\n)\n",[57,1357,1358,1365,1372,1406,1426,1432,1439,1446,1495,1504,1511,1534,1550,1557],{"__ignoreMap":529},[533,1359,1360,1362],{"class":535,"line":536},[533,1361,1090],{"class":1088,"aria-hidden":1089},[533,1363,1364],{"class":593},"# Counts from an ideal Bell-state experiment: only correlated outcomes,\n",[533,1366,1367,1369],{"class":535,"line":547},[533,1368,1090],{"class":1088,"aria-hidden":1089},[533,1370,1371],{"class":593},"# roughly 50\u002F50 between 00 and 11\n",[533,1373,1374,1376,1379,1381,1384,1387,1390,1393,1395,1398,1400,1403],{"class":535,"data-cue":1052,"line":575},[533,1375,1052],{"class":1118},[533,1377,1378],{"class":543},"ideal ",[533,1380,554],{"class":553},[533,1382,1383],{"class":543}," {",[533,1385,1386],{"class":621},"\"00\"",[533,1388,1389],{"class":543},": ",[533,1391,1392],{"class":625},"512",[533,1394,1133],{"class":543},[533,1396,1397],{"class":621},"\"11\"",[533,1399,1389],{"class":543},[533,1401,1402],{"class":625},"488",[533,1404,1405],{"class":543},"}\n",[533,1407,1408,1410,1413,1416,1419,1421,1424],{"class":535,"line":590},[533,1409,1090],{"class":1088,"aria-hidden":1089},[533,1411,1412],{"class":560},"plot_histogram",[533,1414,1415],{"class":543},"(ideal, ",[533,1417,1418],{"class":567},"filename",[533,1420,554],{"class":553},[533,1422,1423],{"class":621},"\"ideal.svg\"",[533,1425,637],{"class":543},[533,1427,1428,1430],{"class":535,"line":597},[533,1429,1090],{"class":1088,"aria-hidden":1089},[533,1431,1113],{},[533,1433,1434,1436],{"class":535,"line":603},[533,1435,1090],{"class":1088,"aria-hidden":1089},[533,1437,1438],{"class":593},"# The same experiment on noisy hardware leaks shots into 01 and 10.\n",[533,1440,1441,1443],{"class":535,"line":609},[533,1442,1090],{"class":1088,"aria-hidden":1089},[533,1444,1445],{"class":593},"# plot_histogram overlays multiple experiments for direct comparison.\n",[533,1447,1448,1450,1453,1455,1457,1459,1461,1464,1466,1469,1471,1474,1476,1479,1481,1484,1486,1488,1490,1493],{"class":535,"data-cue":1140,"line":640},[533,1449,1140],{"class":1118},[533,1451,1452],{"class":543},"noisy ",[533,1454,554],{"class":553},[533,1456,1383],{"class":543},[533,1458,1386],{"class":621},[533,1460,1389],{"class":543},[533,1462,1463],{"class":625},"462",[533,1465,1133],{"class":543},[533,1467,1468],{"class":621},"\"01\"",[533,1470,1389],{"class":543},[533,1472,1473],{"class":625},"27",[533,1475,1133],{"class":543},[533,1477,1478],{"class":621},"\"10\"",[533,1480,1389],{"class":543},[533,1482,1483],{"class":625},"31",[533,1485,1133],{"class":543},[533,1487,1397],{"class":621},[533,1489,1389],{"class":543},[533,1491,1492],{"class":625},"480",[533,1494,1405],{"class":543},[533,1496,1497,1499,1501],{"class":535,"line":646},[533,1498,1090],{"class":1088,"aria-hidden":1089},[533,1500,1412],{"class":560},[533,1502,1503],{"class":543},"(\n",[533,1505,1506,1508],{"class":535,"line":658},[533,1507,1090],{"class":1088,"aria-hidden":1089},[533,1509,1510],{"class":543},"    [ideal, noisy],\n",[533,1512,1513,1515,1518,1520,1523,1526,1528,1531],{"class":535,"line":680},[533,1514,1090],{"class":1088,"aria-hidden":1089},[533,1516,1517],{"class":567},"    legend",[533,1519,554],{"class":553},[533,1521,1522],{"class":543},"[",[533,1524,1525],{"class":621},"\"ideal simulator\"",[533,1527,1133],{"class":543},[533,1529,1530],{"class":621},"\"noisy device\"",[533,1532,1533],{"class":543},"],\n",[533,1535,1537,1539,1542,1544,1547],{"class":535,"line":1536},12,[533,1538,1090],{"class":1088,"aria-hidden":1089},[533,1540,1541],{"class":567},"    filename",[533,1543,554],{"class":553},[533,1545,1546],{"class":621},"\"ideal_vs_noisy.svg\"",[533,1548,1549],{"class":543},",\n",[533,1551,1553,1555],{"class":535,"data-cue":1157,"line":1552},13,[533,1554,1157],{"class":1118},[533,1556,637],{"class":543},[1267,1558,1559,1566,1581],{"class":1269},[756,1560,1561,1563],{"data-cue":1052},[533,1562,1052],{"class":1118},[533,1564,1565],{"class":1276},"A thousand shots of a Bell pair. Not a state, not amplitudes: a tally.",[756,1567,1568,1570],{"data-cue":1140},[533,1569,1140],{"class":1118},[533,1571,1572,1573,1576,1577,1580],{"class":1276},"The same circuit on real hardware. ",[57,1574,1575],{},"01"," and ",[57,1578,1579],{},"10"," should be impossible for this state, and 58 shots out of a thousand landed there anyway.",[756,1582,1583,1585],{"data-cue":1157},[533,1584,1157],{"class":1118},[533,1586,1587],{"class":1276},"Two runs on one chart. Comparing distributions is most of what reading quantum results consists of.",[12,1589,1590,1591,354,1594,1597],{},"Notice what a single shot would have told you here: one bitstring, ",[57,1592,1593],{},"00",[57,1595,1596],{},"11",", with no way to know whether the other was equally likely or nearly impossible. Only a pile of a thousand has a pattern in it at all.",[1599,1600],"project-card",{"description":1601,"framework":1602,"owner":1603,"title":1604,"to":1352},"Every quantum program ends the same way: a dictionary of measurement counts. plot_histogram from Qiskit's visualization module is the one-liner that turns those counts into a picture.","Python + Qiskit","qollab","Histograms",[25,1606,1608],{"id":1607},"the-gates-in-these-circuits","The gates in these circuits",[12,1610,1611],{},"Four gates and one instruction cover every excerpt below.",[1613,1614,1616,1627],"gate",{"token":1148,"name":1615},"Hadamard",[12,1617,1618,1619,1621,1622,354,1624,1626],{},"Takes a qubit sitting at ",[57,1620,1049],{}," and leaves it with no fixed value: measure it and you get ",[57,1623,1049],{},[57,1625,1052],{}," with equal probability.",[12,1628,1629],{},"The Hadamard is also its own undo. Two of them in a row put the qubit back exactly where it started, which is the trick the next section is built on.",[1613,1631,1633,1644],{"token":1632},"z",[12,1634,1635,1636,354,1638,1640,1641,1643],{},"Leaves a qubit exactly as likely to read ",[57,1637,1049],{},[57,1639,1052],{}," as it already was, and flips the sign in front of the ",[57,1642,1052],{}," half of the state.",[12,1645,1646,1647,1649],{},"A sign is not something a measurement reports, so a ",[57,1648,1632],{}," is invisible in the counts. The change is real all the same, and the next section is about how to see it.",[1613,1651,1653,1661],{"token":1652},"ry",[12,1654,1655,1656,1658,1659,114],{},"A rotation. The angle comes before the qubit and sets how likely a qubit starting at ",[57,1657,1049],{}," is to read ",[57,1660,1052],{},[12,1662,1663,1664,1666,1667,1669,1670,1672],{},"At ",[57,1665,1049],{}," it is certain to read ",[57,1668,1049],{},", at π certain to read ",[57,1671,1052],{},", and at π\u002F2 it gives the same even split the Hadamard does. Anything in between is a bias you pick, which is how a circuit gets odds other than fifty-fifty.",[1613,1674,1676,1684],{"token":1675},"rzz",[12,1677,1678,1679,354,1681,1683],{},"Couples two qubits by an angle. Unlike the others it does not change how often either qubit reads ",[57,1680,1049],{},[57,1682,1052],{}," on its own.",[12,1685,1686],{},"The coupling changes the relationship between the two instead, which is why Entangled Body's couplings entangle the state and still leave no trace in its counts.",[1613,1688,1689,1697],{"token":1164},[12,1690,1691,1692,354,1694,1696],{},"Reads a qubit into an ordinary bit and forces it to a definite ",[57,1693,1049],{},[57,1695,1052],{},". It is the one irreversible step: whatever the qubit held before is gone once you look.",[12,1698,1699],{},"So a single run tells you one outcome and nothing about the odds behind it, which is why every circuit here is run many times over.",[25,1701,1703],{"id":1702},"which-question-you-ask","Which question you ask",[12,1705,1706,1707,1709,1710,1712],{},"Measuring is not reading a value off a dial. It is putting a question to the qubit, and ",[57,1708,1049],{},"-or-",[57,1711,1052],{}," is only one of the questions available.",[12,1714,1715],{},"The cheapest way to see that is to build two qubits that give the same counts, and then ask them something else.",[519,1717,1719],{"name":1718,"tag":1077,"run-href":1078},"two_questions.py",[524,1720,1722],{"className":526,"code":1721,"language":528,"meta":529,"style":529},"# 'backend' is pre-created for you in the Qollab Playground.\nfrom qiskit import QuantumCircuit\n\ndef counts(add_z, ask_after_h):\n    qc = QuantumCircuit(1, 1)\n    qc.h(0)\n    if add_z:\n        qc.z(0)\n    if ask_after_h:\n        qc.h(0)\n    qc.measure(0, 0)\n    return backend.run(qc, shots=1000).result().get_counts()\n\nprint(\"h     asked directly  :\", counts(False, False))\nprint(\"h,z   asked directly  :\", counts(True, False))\nprint(\"h     asked after an h:\", counts(False, True))\nprint(\"h,z   asked after an h:\", counts(True, True))\n",[57,1723,1724,1730,1742,1748,1772,1793,1808,1818,1833,1842,1856,1874,1903,1909,1938,1965,1992,2019],{"__ignoreMap":529},[533,1725,1726,1728],{"class":535,"line":536},[533,1727,1090],{"class":1088,"aria-hidden":1089},[533,1729,1093],{"class":593},[533,1731,1732,1734,1736,1738,1740],{"class":535,"line":547},[533,1733,1090],{"class":1088,"aria-hidden":1089},[533,1735,877],{"class":539},[533,1737,880],{"class":543},[533,1739,883],{"class":539},[533,1741,1106],{"class":543},[533,1743,1744,1746],{"class":535,"line":575},[533,1745,1090],{"class":1088,"aria-hidden":1089},[533,1747,1113],{},[533,1749,1750,1752,1755,1758,1760,1764,1766,1769],{"class":535,"line":590},[533,1751,1090],{"class":1088,"aria-hidden":1089},[533,1753,1754],{"class":539},"def",[533,1756,1757],{"class":560}," counts",[533,1759,615],{"class":543},[533,1761,1763],{"class":1762},"sb9H8","add_z",[533,1765,1133],{"class":543},[533,1767,1768],{"class":1762},"ask_after_h",[533,1770,1771],{"class":543},"):\n",[533,1773,1774,1776,1779,1781,1783,1785,1787,1789,1791],{"class":535,"line":597},[533,1775,1090],{"class":1088,"aria-hidden":1089},[533,1777,1778],{"class":543},"    qc ",[533,1780,554],{"class":553},[533,1782,1126],{"class":560},[533,1784,615],{"class":543},[533,1786,1052],{"class":625},[533,1788,1133],{"class":543},[533,1790,1052],{"class":625},[533,1792,637],{"class":543},[533,1794,1795,1797,1800,1802,1804,1806],{"class":535,"data-cue":1052,"line":603},[533,1796,1052],{"class":1118},[533,1798,1799],{"class":543},"    qc.",[533,1801,1148],{"class":560},[533,1803,615],{"class":543},[533,1805,1049],{"class":625},[533,1807,637],{"class":543},[533,1809,1810,1812,1815],{"class":535,"line":609},[533,1811,1090],{"class":1088,"aria-hidden":1089},[533,1813,1814],{"class":539},"    if",[533,1816,1817],{"class":543}," add_z:\n",[533,1819,1820,1822,1825,1827,1829,1831],{"class":535,"data-cue":1140,"line":640},[533,1821,1140],{"class":1118},[533,1823,1824],{"class":543},"        qc.",[533,1826,1632],{"class":560},[533,1828,615],{"class":543},[533,1830,1049],{"class":625},[533,1832,637],{"class":543},[533,1834,1835,1837,1839],{"class":535,"line":646},[533,1836,1090],{"class":1088,"aria-hidden":1089},[533,1838,1814],{"class":539},[533,1840,1841],{"class":543}," ask_after_h:\n",[533,1843,1844,1846,1848,1850,1852,1854],{"class":535,"data-cue":1157,"line":658},[533,1845,1157],{"class":1118},[533,1847,1824],{"class":543},[533,1849,1148],{"class":560},[533,1851,615],{"class":543},[533,1853,1049],{"class":625},[533,1855,637],{"class":543},[533,1857,1858,1860,1862,1864,1866,1868,1870,1872],{"class":535,"line":680},[533,1859,1090],{"class":1088,"aria-hidden":1089},[533,1861,1799],{"class":543},[533,1863,1164],{"class":560},[533,1865,615],{"class":543},[533,1867,1049],{"class":625},[533,1869,1133],{"class":543},[533,1871,1049],{"class":625},[533,1873,637],{"class":543},[533,1875,1876,1878,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901],{"class":535,"line":1536},[533,1877,1090],{"class":1088,"aria-hidden":1089},[533,1879,1880],{"class":539},"    return",[533,1882,557],{"class":543},[533,1884,561],{"class":560},[533,1886,904],{"class":543},[533,1888,269],{"class":567},[533,1890,554],{"class":553},[533,1892,1240],{"class":625},[533,1894,1205],{"class":543},[533,1896,1208],{"class":560},[533,1898,1211],{"class":543},[533,1900,1214],{"class":560},[533,1902,1217],{"class":543},[533,1904,1905,1907],{"class":535,"line":1552},[533,1906,1090],{"class":1088,"aria-hidden":1089},[533,1908,1113],{},[533,1910,1912,1914,1916,1918,1921,1923,1926,1928,1931,1933,1935],{"class":535,"data-cue":1183,"line":1911},14,[533,1913,1183],{"class":1118},[533,1915,917],{"class":553},[533,1917,615],{"class":543},[533,1919,1920],{"class":621},"\"h     asked directly  :\"",[533,1922,1133],{"class":543},[533,1924,1925],{"class":560},"counts",[533,1927,615],{"class":543},[533,1929,1930],{"class":625},"False",[533,1932,1133],{"class":543},[533,1934,1930],{"class":625},[533,1936,1937],{"class":543},"))\n",[533,1939,1941,1943,1945,1947,1950,1952,1954,1956,1959,1961,1963],{"class":535,"data-cue":1220,"line":1940},15,[533,1942,1220],{"class":1118},[533,1944,917],{"class":553},[533,1946,615],{"class":543},[533,1948,1949],{"class":621},"\"h,z   asked directly  :\"",[533,1951,1133],{"class":543},[533,1953,1925],{"class":560},[533,1955,615],{"class":543},[533,1957,1958],{"class":625},"True",[533,1960,1133],{"class":543},[533,1962,1930],{"class":625},[533,1964,1937],{"class":543},[533,1966,1969,1971,1973,1975,1978,1980,1982,1984,1986,1988,1990],{"class":535,"data-cue":1967,"line":1968},"6",16,[533,1970,1967],{"class":1118},[533,1972,917],{"class":553},[533,1974,615],{"class":543},[533,1976,1977],{"class":621},"\"h     asked after an h:\"",[533,1979,1133],{"class":543},[533,1981,1925],{"class":560},[533,1983,615],{"class":543},[533,1985,1930],{"class":625},[533,1987,1133],{"class":543},[533,1989,1958],{"class":625},[533,1991,1937],{"class":543},[533,1993,1996,1998,2000,2002,2005,2007,2009,2011,2013,2015,2017],{"class":535,"data-cue":1994,"line":1995},"7",17,[533,1997,1994],{"class":1118},[533,1999,917],{"class":553},[533,2001,615],{"class":543},[533,2003,2004],{"class":621},"\"h,z   asked after an h:\"",[533,2006,1133],{"class":543},[533,2008,1925],{"class":560},[533,2010,615],{"class":543},[533,2012,1958],{"class":625},[533,2014,1133],{"class":543},[533,2016,1958],{"class":625},[533,2018,1937],{"class":543},[1267,2020,2021,2028,2041,2048,2055,2062,2072],{"class":1269},[756,2022,2023,2025],{"data-cue":1052},[533,2024,1052],{"class":1118},[533,2026,2027],{"class":1276},"Both states start the same way, with the Hadamard from the first listing.",[756,2029,2030,2032],{"data-cue":1140},[533,2031,1140],{"class":1118},[533,2033,2034,2035,2037,2038,2040],{"class":1276},"The only difference between the two states. A ",[57,2036,1632],{}," leaves the qubit just as undecided as it was; all it does is flip the sign in front of the ",[57,2039,1052],{}," half of it.",[756,2042,2043,2045],{"data-cue":1157},[533,2044,1157],{"class":1118},[533,2046,2047],{"class":1276},"This one is not part of the state. It lands after the state is finished and just before the measurement, and switching it on is what changes the question.",[756,2049,2050,2052],{"data-cue":1183},[533,2051,1183],{"class":1118},[533,2053,2054],{"class":1276},"Roughly 500 each, the same even split as the first listing.",[756,2056,2057,2059],{"data-cue":1220},[533,2058,1220],{"class":1118},[533,2060,2061],{"class":1276},"Roughly 500 each again. Nothing in this tally can tell the two states apart.",[756,2063,2064,2066],{"data-cue":1967},[533,2065,1967],{"class":1118},[533,2067,2068,2069,2071],{"class":1276},"Every shot reads ",[57,2070,1049],{},". Two Hadamards cancel, so the qubit is back where it started.",[756,2073,2074,2076],{"data-cue":1994},[533,2075,1994],{"class":1118},[533,2077,2068,2078,2080],{"class":1276},[57,2079,1052],{},". The same two states as the rows above, and now the answers are opposites.",[30,2082,2083,2098],{},[33,2084,2085],{},[36,2086,2087,2090,2093],{},[39,2088,2089],{},"prepared with",[39,2091,2092],{},"asked directly",[39,2094,2095,2096],{},"asked after an ",[57,2097,1148],{},[49,2099,2100,2119],{},[36,2101,2102,2106,2114],{},[54,2103,2104],{},[57,2105,1148],{},[54,2107,2108,2109,2111,2112],{},"~500 ",[57,2110,1049],{},", ~500 ",[57,2113,1052],{},[54,2115,2116,2117],{},"1000 ",[57,2118,1049],{},[36,2120,2121,2128,2134],{},[54,2122,2123,2125,2126],{},[57,2124,1148],{}," then ",[57,2127,1632],{},[54,2129,2108,2130,2111,2132],{},[57,2131,1049],{},[57,2133,1052],{},[54,2135,2116,2136],{},[57,2137,1052],{},[12,2139,2140,2141,2143],{},"Read the table down the first column and the two states are identical. Read it down the second and they are opposites. The ",[57,2142,1632],{}," did something real to the qubit, and the first question had no way to report it.",[12,2145,2146,2149],{},[974,2147,2148],{},"A basis is the question."," Measuring straight away asks one; putting a Hadamard in front of the measurement asks a different one. Nothing about the qubit changed between the two columns, only what you asked it.",[12,2151,2152],{},"A quantum state carries more than any single measurement can hand back. Ask the wrong question and the interesting half of your circuit is not in the output, and nothing about the output says so.",[12,2154,2155],{},"Each of those four rows needed its own run and its own fresh qubit. The measurement is the last line of the function every time, because there is no version of this where you ask one question, look, and then ask the other. That is the one-way part: you get one question per qubit, and the state is gone after it.",[12,2157,2158,2159,2163],{},"On real hardware the right-hand column will not come back as a clean 1000 and 0. A few dozen shots land in the wrong row, from gate and readout errors that ",[19,2160,2162],{"href":2161},"#when-the-instrument-is-wrong","a section below"," is about. Either way the pattern is unmistakable.",[25,2165,2167],{"id":2166},"when-the-odds-are-not-fifty-fifty","When the odds are not fifty-fifty",[12,2169,2170],{},"Every circuit so far has aimed at an even split or a certainty. Real circuits mostly want neither, and Entangled Body is a good place to see why that matters.",[12,2172,2173],{},"Entangled Body is a 3D human figure whose fourteen regions are fourteen qubits. Touch one and the figure responds around it, strongly nearby and less further away.",[2175,2176],"blog-figure",{"alt":2177,"caption":2178,"no":529,"poster":2179,"video":2180},"Entangled Body: a point-cloud figure whose regions react to each other across distance","Touch one region and the figure responds around it. Press play.","\u002F_content\u002Fimages\u002Fentangled-body\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F960a7fe3-a278-4e61-8478-cc142d11f9a9",[12,2182,2183,2184,2188],{},"Nothing in that description is a coin flip. Each region needs its own probability of lighting up, and the piece has a two-line function that turns a probability into an ",[19,2185,2187],{"href":2186},"#the-gates-in-these-circuits","Ry"," angle.",[519,2190,2192],{"name":2191,"tag":522,"run-href":692},"entangled_body_demo.py",[524,2193,2195],{"className":526,"code":2194,"language":528,"meta":529,"style":529},"def _prob_to_ry(prob):\n    p = max(0.0, min(1.0, prob))\n    return 2.0 * asin(sqrt(p))\n",[57,2196,2197,2213,2243,2266],{"__ignoreMap":529},[533,2198,2199,2201,2203,2206,2208,2211],{"class":535,"line":536},[533,2200,1090],{"class":1088,"aria-hidden":1089},[533,2202,1754],{"class":539},[533,2204,2205],{"class":560}," _prob_to_ry",[533,2207,615],{"class":543},[533,2209,2210],{"class":1762},"prob",[533,2212,1771],{"class":543},[533,2214,2215,2217,2220,2222,2225,2227,2230,2232,2235,2237,2240],{"class":535,"data-cue":1052,"line":547},[533,2216,1052],{"class":1118},[533,2218,2219],{"class":543},"    p ",[533,2221,554],{"class":553},[533,2223,2224],{"class":553}," max",[533,2226,615],{"class":543},[533,2228,2229],{"class":625},"0.0",[533,2231,1133],{"class":543},[533,2233,2234],{"class":553},"min",[533,2236,615],{"class":543},[533,2238,2239],{"class":625},"1.0",[533,2241,2242],{"class":543},", prob))\n",[533,2244,2245,2247,2249,2252,2255,2258,2260,2263],{"class":535,"data-cue":1140,"line":575},[533,2246,1140],{"class":1118},[533,2248,1880],{"class":539},[533,2250,2251],{"class":625}," 2.0",[533,2253,2254],{"class":553}," *",[533,2256,2257],{"class":560}," asin",[533,2259,615],{"class":543},[533,2261,2262],{"class":560},"sqrt",[533,2264,2265],{"class":543},"(p))\n",[1267,2267,2268,2275],{"class":1269},[756,2269,2270,2272],{"data-cue":1052},[533,2271,1052],{"class":1118},[533,2273,2274],{"class":1276},"Hold the requested probability between 0 and 1, so a rounding error upstream cannot ask for odds that do not exist.",[756,2276,2277,2279],{"data-cue":1140},[533,2278,1140],{"class":1118},[533,2280,2281],{"class":1276},"Turn it into an Ry angle. You name the odds you want and this hands back the rotation that produces them, which is the whole bridge between \"how likely\" and \"which gate\".",[12,2283,2284,2285,2287],{},"That conversion is exact rather than an approximation. Ask for 0.84 and the odds of reading ",[57,2286,1052],{}," are 0.84, not 0.839 or 0.841.",[12,2289,2290],{},"Entangled Body uses that to draw its ripple. A hover sets the region you touched to a certainty, its nearest neighbours to just under 0.995, and the furthest region to 0.90.",[12,2292,2293,2294,2296,2297,2299,2300,2302],{},"All three are close to ",[57,2295,1052],{}," and they are still very different. In a single shot every region reads ",[57,2298,1052],{}," and the figure tells you nothing at all. Across the 1024 shots the project runs, the nearest region reads ",[57,2301,1049],{}," about five times and the furthest about a hundred. No single run contains the ripple. It lives in the difference between five and a hundred.",[12,2304,2305,2306,2308,2309,2311],{},"On top of the rotations, the anatomical links between regions get an ",[57,2307,1675],{}," coupling, and those entangle the state. They also leave no trace in the counts, for the reason the last section demonstrated. An ",[57,2310,1675],{}," only moves signs around, and the circuit measures in the one question where signs do not show.",[12,2313,2314],{},"So the entanglement is there and the measurement cannot see it. Nothing is broken and nothing is hidden. You asked the one question this coupling does not answer.",[12,2316,2317],{},"Fork it and put a Hadamard on every region just before the measurement, the same move as the right-hand column of the table above. The couplings then reach the counts instead of hiding in the signs.",[12,2319,2320,2321,2325],{},"Measuring one qubit of an entangled group also changes what the rest will do, which is a subject of its own: ",[19,2322,2324],{"href":2323},"\u002Flearn\u002Fquantum-entanglement","Understanding Quantum Entanglement"," is the article about that.",[1599,2327],{"description":2328,"framework":1602,"owner":2329,"title":2330,"to":692,"builder":2331,"thumb":2332},"Entangled Body is an interactive 3D artwork that treats the body as a network of 14 quantum nodes, each mapped to a specific body region.","lukeshim","Entangled Body","Chanhyuk Park & Luke Shim","\u002F_content\u002Fimages\u002Fentangled-body\u002Fscreenshot.webp",[25,2334,2336],{"id":2335},"when-the-instrument-is-wrong","When the instrument is wrong",[12,2338,2339],{},"A second thing can go wrong, and it is a different thing from the first.",[12,2341,2342,2343,2345,2346,2348],{},"The state can be fine and the reading still wrong. A detector that reports ",[57,2344,1052],{}," when the qubit was ",[57,2347,1049],{}," has not disturbed any physics; it has mistyped. And because that error happens after the quantum part is over, ordinary arithmetic can undo it.",[519,2350,2353],{"name":2351,"tag":2352,"run-href":993},"readout.js","JavaScript · excerpt",[524,2354,2358],{"className":2355,"code":2356,"language":2357,"meta":529,"style":529},"language-javascript shiki shiki-themes one-dark-pro","function qubitMatrix(q){\n  let p10=state.p10, p01=state.p01;\n  if(state.hotQubit && q===2){p10=Math.min(0.25,p10*4); p01=Math.min(0.25,p01*4);}   \u002F\u002F1 One qubit can be worse than the others. Real devices are like this: readout quality is per-qubit and it drifts.\n  return [[1-p10,p01],[p10,1-p01]];   \u002F\u002F2 The whole error model for one qubit, as four numbers: how often a 0 is read as 0 or 1, and the same for a 1.\n}\nfunction Aentry(i,j){let p=1;\n  for(let q=0;q\u003CN;q++){const bi=(i>>q)&1, bj=(j>>q)&1; p*=qubitMatrix(q)[bi][bj];}   \u002F\u002F3 Multiply the per-qubit numbers together to get the chance that the true bitstring j was recorded as i. Do that for every pair and you have a matrix describing the whole readout.\n  return p;}\n","javascript",[57,2359,2360,2378,2416,2500,2537,2543,2576,2688,2699],{"__ignoreMap":529},[533,2361,2362,2364,2367,2370,2372,2375],{"class":535,"line":536},[533,2363,1090],{"class":1088,"aria-hidden":1089},[533,2365,2366],{"class":539},"function",[533,2368,2369],{"class":560}," qubitMatrix",[533,2371,615],{"class":543},[533,2373,2374],{"class":567},"q",[533,2376,2377],{"class":543},"){\n",[533,2379,2380,2382,2385,2389,2391,2395,2397,2400,2402,2405,2407,2409,2411,2413],{"class":535,"line":547},[533,2381,1090],{"class":1088,"aria-hidden":1089},[533,2383,2384],{"class":539},"  let",[533,2386,2388],{"class":2387},"sVyAn"," p10",[533,2390,554],{"class":553},[533,2392,2394],{"class":2393},"sU0A5","state",[533,2396,114],{"class":543},[533,2398,2399],{"class":2387},"p10",[533,2401,1133],{"class":543},[533,2403,2404],{"class":2387},"p01",[533,2406,554],{"class":553},[533,2408,2394],{"class":2393},[533,2410,114],{"class":543},[533,2412,2404],{"class":2387},[533,2414,2415],{"class":543},";\n",[533,2417,2418,2420,2423,2425,2427,2429,2432,2435,2438,2441,2443,2446,2448,2450,2453,2455,2457,2459,2462,2465,2467,2470,2472,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497],{"class":535,"data-cue":1052,"line":575},[533,2419,1052],{"class":1118},[533,2421,2422],{"class":539},"  if",[533,2424,615],{"class":543},[533,2426,2394],{"class":2393},[533,2428,114],{"class":543},[533,2430,2431],{"class":2387},"hotQubit",[533,2433,2434],{"class":553}," &&",[533,2436,2437],{"class":2387}," q",[533,2439,2440],{"class":553},"===",[533,2442,1140],{"class":625},[533,2444,2445],{"class":543},"){",[533,2447,2399],{"class":2387},[533,2449,554],{"class":553},[533,2451,2452],{"class":2393},"Math",[533,2454,114],{"class":543},[533,2456,2234],{"class":560},[533,2458,615],{"class":543},[533,2460,2461],{"class":625},"0.25",[533,2463,2464],{"class":543},",",[533,2466,2399],{"class":2387},[533,2468,2469],{"class":553},"*",[533,2471,1183],{"class":625},[533,2473,2474],{"class":543},"); ",[533,2476,2404],{"class":2387},[533,2478,554],{"class":553},[533,2480,2452],{"class":2393},[533,2482,114],{"class":543},[533,2484,2234],{"class":560},[533,2486,615],{"class":543},[533,2488,2461],{"class":625},[533,2490,2464],{"class":543},[533,2492,2404],{"class":2387},[533,2494,2469],{"class":553},[533,2496,1183],{"class":625},[533,2498,2499],{"class":543},");}\n",[533,2501,2502,2504,2507,2510,2512,2515,2517,2519,2521,2524,2526,2528,2530,2532,2534],{"class":535,"data-cue":1140,"line":590},[533,2503,1140],{"class":1118},[533,2505,2506],{"class":539},"  return",[533,2508,2509],{"class":543}," [[",[533,2511,1052],{"class":625},[533,2513,2514],{"class":553},"-",[533,2516,2399],{"class":2387},[533,2518,2464],{"class":543},[533,2520,2404],{"class":2387},[533,2522,2523],{"class":543},"],[",[533,2525,2399],{"class":2387},[533,2527,2464],{"class":543},[533,2529,1052],{"class":625},[533,2531,2514],{"class":553},[533,2533,2404],{"class":2387},[533,2535,2536],{"class":543},"]];\n",[533,2538,2539,2541],{"class":535,"line":597},[533,2540,1090],{"class":1088,"aria-hidden":1089},[533,2542,1405],{"class":543},[533,2544,2545,2547,2549,2552,2554,2557,2559,2562,2564,2567,2570,2572,2574],{"class":535,"line":603},[533,2546,1090],{"class":1088,"aria-hidden":1089},[533,2548,2366],{"class":539},[533,2550,2551],{"class":560}," Aentry",[533,2553,615],{"class":543},[533,2555,2556],{"class":567},"i",[533,2558,2464],{"class":543},[533,2560,2561],{"class":567},"j",[533,2563,2445],{"class":543},[533,2565,2566],{"class":539},"let",[533,2568,2569],{"class":2387}," p",[533,2571,554],{"class":553},[533,2573,1052],{"class":625},[533,2575,2415],{"class":543},[533,2577,2578,2580,2583,2585,2587,2589,2591,2593,2596,2598,2601,2604,2606,2608,2611,2613,2616,2619,2621,2623,2625,2628,2630,2633,2636,2638,2640,2643,2645,2647,2649,2651,2653,2655,2657,2659,2662,2664,2667,2670,2672,2674,2677,2680,2683,2685],{"class":535,"data-cue":1157,"line":609},[533,2579,1157],{"class":1118},[533,2581,2582],{"class":539},"  for",[533,2584,615],{"class":543},[533,2586,2566],{"class":539},[533,2588,2437],{"class":2387},[533,2590,554],{"class":553},[533,2592,1049],{"class":625},[533,2594,2595],{"class":543},";",[533,2597,2374],{"class":2387},[533,2599,2600],{"class":553},"\u003C",[533,2602,2603],{"class":2393},"N",[533,2605,2595],{"class":543},[533,2607,2374],{"class":2387},[533,2609,2610],{"class":553},"++",[533,2612,2445],{"class":543},[533,2614,2615],{"class":539},"const",[533,2617,2618],{"class":2393}," bi",[533,2620,554],{"class":553},[533,2622,615],{"class":543},[533,2624,2556],{"class":2387},[533,2626,2627],{"class":553},">>",[533,2629,2374],{"class":2387},[533,2631,2632],{"class":543},")",[533,2634,2635],{"class":553},"&",[533,2637,1052],{"class":625},[533,2639,1133],{"class":543},[533,2641,2642],{"class":2393},"bj",[533,2644,554],{"class":553},[533,2646,615],{"class":543},[533,2648,2561],{"class":2387},[533,2650,2627],{"class":553},[533,2652,2374],{"class":2387},[533,2654,2632],{"class":543},[533,2656,2635],{"class":553},[533,2658,1052],{"class":625},[533,2660,2661],{"class":543},"; ",[533,2663,12],{"class":2387},[533,2665,2666],{"class":553},"*=",[533,2668,2669],{"class":560},"qubitMatrix",[533,2671,615],{"class":543},[533,2673,2374],{"class":2387},[533,2675,2676],{"class":543},")[",[533,2678,2679],{"class":2387},"bi",[533,2681,2682],{"class":543},"][",[533,2684,2642],{"class":2387},[533,2686,2687],{"class":543},"];}\n",[533,2689,2690,2692,2694,2696],{"class":535,"line":640},[533,2691,1090],{"class":1088,"aria-hidden":1089},[533,2693,2506],{"class":539},[533,2695,2569],{"class":2387},[533,2697,2698],{"class":543},";}\n",[1267,2700,2701,2708,2715],{"class":1269},[756,2702,2703,2705],{"data-cue":1052},[533,2704,1052],{"class":1118},[533,2706,2707],{"class":1276},"One qubit can be worse than the others. Real devices are like this: readout quality is per-qubit and it drifts.",[756,2709,2710,2712],{"data-cue":1140},[533,2711,1140],{"class":1118},[533,2713,2714],{"class":1276},"The whole error model for one qubit, as four numbers: how often a 0 is read as 0 or 1, and the same for a 1.",[756,2716,2717,2719],{"data-cue":1157},[533,2718,1157],{"class":1118},[533,2720,2721],{"class":1276},"Multiply the per-qubit numbers together to get the chance that the true bitstring j was recorded as i. Do that for every pair and you have a matrix describing the whole readout.",[12,2723,2724],{},"Build that matrix, and correcting the results is a linear algebra problem: you have the corrupted counts and the matrix that corrupted them, so you solve for what went in. The project does exactly that and shows three histograms side by side, ideal, raw and corrected.",[12,2726,2727],{},"This repairs the record, not the run. Nothing recovers a state the measurement already destroyed.",[1599,2729],{"description":2730,"framework":2731,"owner":1603,"title":994,"to":993},"Readout error corrupts the measurement, not the quantum state - so classical math can undo it. Drag the error sliders on a GHZ-5 and watch three histograms (ideal, raw, corrected) update instantly.","JS + Qiskit",[25,2733,2735],{"id":2734},"hearing-the-distribution","Hearing the distribution",[12,2737,2738],{},"Musiq turns a circuit's output into sound. Because the output is a distribution, so is the music: run the same circuit again and you get a variation rather than a repeat.",[2175,2740],{"alt":2741,"caption":2742,"no":529,"src":2743},"Musiq, a browser-based quantum sonification platform","A circuit's measured outcomes, mapped to pitch and texture.","\u002F_content\u002Fimages\u002Fmusiq\u002Fscreenshot.webp",[12,2745,2746],{},"Its mapper offers two ways to do that, and the choice between them is the difference between probabilities and shots, in one function.",[519,2748,2751],{"name":2749,"tag":2750},"musiq\u002Futils\u002Faudio_mapper.py","Python · from the Musiq repository",[524,2752,2754],{"className":526,"code":2753,"language":528,"meta":529,"style":529},"        if method == \"weighted_sum\":\n            for bitstring, prob in probability_dist.items():\n                if prob > 0.01:\n                    amp = self.map_bitstring_to_amplitude(bitstring)\n                    waveform += prob * amp\n\n        elif method == \"stochastic\":\n            # Probabilistic sampling from quantum outcome distribution\n            bitstrings = list(probability_dist.keys())\n            probs = np.array(list(probability_dist.values()))\n            probs = probs \u002F np.sum(probs)\n\n            # Sample based on probability at each time point\n            for i in range(self.samples):\n                selected = np.random.choice(bitstrings, p=probs)\n                amp = self.map_bitstring_to_amplitude(selected)\n                waveform[i] = amp[i]\n",[57,2755,2756,2774,2796,2814,2834,2851,2857,2873,2880,2900,2928,2950,2956,2963,2985,3010,3028,3040],{"__ignoreMap":529},[533,2757,2758,2760,2763,2766,2769,2772],{"class":535,"line":536},[533,2759,1090],{"class":1088,"aria-hidden":1089},[533,2761,2762],{"class":539},"        if",[533,2764,2765],{"class":543}," method ",[533,2767,2768],{"class":553},"==",[533,2770,2771],{"class":621}," \"weighted_sum\"",[533,2773,544],{"class":543},[533,2775,2776,2778,2781,2784,2787,2790,2793],{"class":535,"line":547},[533,2777,1090],{"class":1088,"aria-hidden":1089},[533,2779,2780],{"class":539},"            for",[533,2782,2783],{"class":543}," bitstring, prob ",[533,2785,2786],{"class":539},"in",[533,2788,2789],{"class":543}," probability_dist.",[533,2791,2792],{"class":560},"items",[533,2794,2795],{"class":543},"():\n",[533,2797,2798,2800,2803,2806,2809,2812],{"class":535,"data-cue":1052,"line":575},[533,2799,1052],{"class":1118},[533,2801,2802],{"class":539},"                if",[533,2804,2805],{"class":543}," prob ",[533,2807,2808],{"class":553},">",[533,2810,2811],{"class":625}," 0.01",[533,2813,544],{"class":543},[533,2815,2816,2818,2821,2823,2826,2828,2831],{"class":535,"line":590},[533,2817,1090],{"class":1088,"aria-hidden":1089},[533,2819,2820],{"class":543},"                    amp ",[533,2822,554],{"class":553},[533,2824,2825],{"class":2393}," self",[533,2827,114],{"class":543},[533,2829,2830],{"class":560},"map_bitstring_to_amplitude",[533,2832,2833],{"class":543},"(bitstring)\n",[533,2835,2836,2838,2841,2844,2846,2848],{"class":535,"data-cue":1140,"line":597},[533,2837,1140],{"class":1118},[533,2839,2840],{"class":543},"                    waveform ",[533,2842,2843],{"class":553},"+=",[533,2845,2805],{"class":543},[533,2847,2469],{"class":553},[533,2849,2850],{"class":543}," amp\n",[533,2852,2853,2855],{"class":535,"line":603},[533,2854,1090],{"class":1088,"aria-hidden":1089},[533,2856,1113],{},[533,2858,2859,2861,2864,2866,2868,2871],{"class":535,"line":609},[533,2860,1090],{"class":1088,"aria-hidden":1089},[533,2862,2863],{"class":539},"        elif",[533,2865,2765],{"class":543},[533,2867,2768],{"class":553},[533,2869,2870],{"class":621}," \"stochastic\"",[533,2872,544],{"class":543},[533,2874,2875,2877],{"class":535,"line":640},[533,2876,1090],{"class":1088,"aria-hidden":1089},[533,2878,2879],{"class":593},"            # Probabilistic sampling from quantum outcome distribution\n",[533,2881,2882,2884,2887,2889,2892,2895,2898],{"class":535,"line":646},[533,2883,1090],{"class":1088,"aria-hidden":1089},[533,2885,2886],{"class":543},"            bitstrings ",[533,2888,554],{"class":553},[533,2890,2891],{"class":553}," list",[533,2893,2894],{"class":543},"(probability_dist.",[533,2896,2897],{"class":560},"keys",[533,2899,932],{"class":543},[533,2901,2902,2904,2907,2909,2912,2915,2917,2920,2922,2925],{"class":535,"line":658},[533,2903,1090],{"class":1088,"aria-hidden":1089},[533,2905,2906],{"class":543},"            probs ",[533,2908,554],{"class":553},[533,2910,2911],{"class":543}," np.",[533,2913,2914],{"class":560},"array",[533,2916,615],{"class":543},[533,2918,2919],{"class":553},"list",[533,2921,2894],{"class":543},[533,2923,2924],{"class":560},"values",[533,2926,2927],{"class":543},"()))\n",[533,2929,2930,2932,2934,2936,2939,2942,2944,2947],{"class":535,"line":680},[533,2931,1090],{"class":1088,"aria-hidden":1089},[533,2933,2906],{"class":543},[533,2935,554],{"class":553},[533,2937,2938],{"class":543}," probs ",[533,2940,2941],{"class":553},"\u002F",[533,2943,2911],{"class":543},[533,2945,2946],{"class":560},"sum",[533,2948,2949],{"class":543},"(probs)\n",[533,2951,2952,2954],{"class":535,"line":1536},[533,2953,1090],{"class":1088,"aria-hidden":1089},[533,2955,1113],{},[533,2957,2958,2960],{"class":535,"line":1552},[533,2959,1090],{"class":1088,"aria-hidden":1089},[533,2961,2962],{"class":593},"            # Sample based on probability at each time point\n",[533,2964,2965,2967,2969,2972,2974,2977,2979,2982],{"class":535,"line":1911},[533,2966,1090],{"class":1088,"aria-hidden":1089},[533,2968,2780],{"class":539},[533,2970,2971],{"class":543}," i ",[533,2973,2786],{"class":539},[533,2975,2976],{"class":553}," range",[533,2978,615],{"class":543},[533,2980,2981],{"class":2393},"self",[533,2983,2984],{"class":543},".samples):\n",[533,2986,2987,2989,2992,2994,2997,3000,3003,3005,3007],{"class":535,"data-cue":1157,"line":1940},[533,2988,1157],{"class":1118},[533,2990,2991],{"class":543},"                selected ",[533,2993,554],{"class":553},[533,2995,2996],{"class":543}," np.random.",[533,2998,2999],{"class":560},"choice",[533,3001,3002],{"class":543},"(bitstrings, ",[533,3004,12],{"class":567},[533,3006,554],{"class":553},[533,3008,3009],{"class":543},"probs)\n",[533,3011,3012,3014,3017,3019,3021,3023,3025],{"class":535,"line":1968},[533,3013,1090],{"class":1088,"aria-hidden":1089},[533,3015,3016],{"class":543},"                amp ",[533,3018,554],{"class":553},[533,3020,2825],{"class":2393},[533,3022,114],{"class":543},[533,3024,2830],{"class":560},[533,3026,3027],{"class":543},"(selected)\n",[533,3029,3030,3032,3035,3037],{"class":535,"line":1995},[533,3031,1090],{"class":1088,"aria-hidden":1089},[533,3033,3034],{"class":543},"                waveform[i] ",[533,3036,554],{"class":553},[533,3038,3039],{"class":543}," amp[i]\n",[1267,3041,3042,3049,3056],{"class":1269},[756,3043,3044,3046],{"data-cue":1052},[533,3045,1052],{"class":1118},[533,3047,3048],{"class":1276},"A threshold, and this one is Musiq's own. Any outcome under one per cent never reaches the chord at all.",[756,3050,3051,3053],{"data-cue":1140},[533,3052,1140],{"class":1118},[533,3054,3055],{"class":1276},"Every surviving outcome added in, scaled by how likely it is. You hear the whole tally at once, and the same circuit sounds identical every time.",[756,3057,3058,3060],{"data-cue":1157},[533,3059,1157],{"class":1118},[533,3061,3062],{"class":1276},"The other route. Draw one outcome, then another, weighted by those same probabilities. That is shots rather than the distribution, and it comes out different on every run.",[12,3064,3065,3068],{},[57,3066,3067],{},"weighted_sum"," sounds the entire distribution at once. Every outcome contributes in proportion to its probability, so what you hear is the tally as a chord, and the same circuit gives the same chord every time.",[12,3070,3071,3074],{},[57,3072,3073],{},"stochastic"," draws a single outcome per sample instead, which is shots made audible: a sequence of individual answers, different on every run. Tomoya Hatanaka's docstring is careful about the distinction, calling it sampling from \"the quantum outcome distribution (not classical random generation)\".",[12,3076,3077],{},"Two honest renderings of one measurement. The probabilities are what the state says will happen. The shots are what happened.",[12,3079,3080],{},"Look again at the threshold on the first branch. A rare outcome and a noise blip look identical in a distribution, and no line of code can separate them. Dropping everything under one per cent is a judgement, and every quantum program makes one somewhere.",[12,3082,3083,3084,3088],{},"This listing comes from ",[19,3085,3087],{"href":3086},"https:\u002F\u002Fgithub.com\u002Fdorakingx\u002Fmusiq","the project's repository"," rather than its Qollab page, which still carries the starter circuit.",[1599,3090],{"description":3091,"framework":1602,"owner":3092,"title":3093,"to":3094,"builder":3095,"thumb":2743},"Musiq is a browser-based quantum sonification platform that transforms quantum-circuit outputs into generative audio.","doraking","Musiq","\u002Fu\u002Fdoraking\u002Fmusiq","Tomoya Hatanaka & Emmanuella Adams",[25,3097,3099],{"id":3098},"measured-once-and-fixed-from-then-on","Measured once, and fixed from then on",[12,3101,3102],{},"Quantum Garden grows each plant from a real quantum measurement, and it shows the one-way part plainly.",[2175,3104],{"alt":3105,"caption":3106,"no":529,"src":3107},"Quantum Garden, a generative garden grown from real quantum measurements","Every plant's traits come from a measurement that already happened.","\u002F_content\u002Fimages\u002Fquantum-garden\u002Fscreenshot.webp",[12,3109,3110],{},"The circuit behind a plant is completely fixed. Each plant derives a seed from its own ID, and the same seed always builds the same five-qubit circuit.",[519,3112,3114],{"name":3113,"tag":522,"run-href":515},"plant_circuit.py",[524,3115,3117],{"className":526,"code":3116,"language":528,"meta":529,"style":529},"seed = 42  # Each plant gets a deterministic seed from its ID hash\n\ncircuit = QuantumCircuit(5, 5)\n\n# Layer 1: Full superposition — all 32 outcomes initially possible\nfor i in range(5):\n    circuit.h(i)\n# ...\n# Measure all qubits\ncircuit.measure([0, 1, 2, 3, 4], [0, 1, 2, 3, 4])\n",[57,3118,3119,3134,3140,3161,3167,3174,3193,3205,3212,3219,3273],{"__ignoreMap":529},[533,3120,3121,3123,3126,3128,3131],{"class":535,"line":536},[533,3122,1090],{"class":1088,"aria-hidden":1089},[533,3124,3125],{"class":543},"seed ",[533,3127,554],{"class":553},[533,3129,3130],{"class":625}," 42",[533,3132,3133],{"class":593},"  # Each plant gets a deterministic seed from its ID hash\n",[533,3135,3136,3138],{"class":535,"line":547},[533,3137,1090],{"class":1088,"aria-hidden":1089},[533,3139,1113],{},[533,3141,3142,3144,3147,3149,3151,3153,3155,3157,3159],{"class":535,"data-cue":1052,"line":575},[533,3143,1052],{"class":1118},[533,3145,3146],{"class":543},"circuit ",[533,3148,554],{"class":553},[533,3150,1126],{"class":560},[533,3152,615],{"class":543},[533,3154,1220],{"class":625},[533,3156,1133],{"class":543},[533,3158,1220],{"class":625},[533,3160,637],{"class":543},[533,3162,3163,3165],{"class":535,"line":590},[533,3164,1090],{"class":1088,"aria-hidden":1089},[533,3166,1113],{},[533,3168,3169,3171],{"class":535,"line":597},[533,3170,1090],{"class":1088,"aria-hidden":1089},[533,3172,3173],{"class":593},"# Layer 1: Full superposition — all 32 outcomes initially possible\n",[533,3175,3176,3178,3181,3183,3185,3187,3189,3191],{"class":535,"line":603},[533,3177,1090],{"class":1088,"aria-hidden":1089},[533,3179,3180],{"class":539},"for",[533,3182,2971],{"class":543},[533,3184,2786],{"class":539},[533,3186,2976],{"class":553},[533,3188,615],{"class":543},[533,3190,1220],{"class":625},[533,3192,1771],{"class":543},[533,3194,3195,3197,3200,3202],{"class":535,"data-cue":1140,"line":609},[533,3196,1140],{"class":1118},[533,3198,3199],{"class":543},"    circuit.",[533,3201,1148],{"class":560},[533,3203,3204],{"class":543},"(i)\n",[533,3206,3207,3209],{"class":535,"line":640},[533,3208,1090],{"class":1088,"aria-hidden":1089},[533,3210,3211],{"class":593},"# ...\n",[533,3213,3214,3216],{"class":535,"line":646},[533,3215,1090],{"class":1088,"aria-hidden":1089},[533,3217,3218],{"class":593},"# Measure all qubits\n",[533,3220,3221,3223,3226,3228,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270],{"class":535,"data-cue":1157,"line":658},[533,3222,1157],{"class":1118},[533,3224,3225],{"class":543},"circuit.",[533,3227,1164],{"class":560},[533,3229,3230],{"class":543},"([",[533,3232,1049],{"class":625},[533,3234,1133],{"class":543},[533,3236,1052],{"class":625},[533,3238,1133],{"class":543},[533,3240,1140],{"class":625},[533,3242,1133],{"class":543},[533,3244,1157],{"class":625},[533,3246,1133],{"class":543},[533,3248,1183],{"class":625},[533,3250,3251],{"class":543},"], [",[533,3253,1049],{"class":625},[533,3255,1133],{"class":543},[533,3257,1052],{"class":625},[533,3259,1133],{"class":543},[533,3261,1140],{"class":625},[533,3263,1133],{"class":543},[533,3265,1157],{"class":625},[533,3267,1133],{"class":543},[533,3269,1183],{"class":625},[533,3271,3272],{"class":543},"])\n",[1267,3274,3275,3282,3289],{"class":1269},[756,3276,3277,3279],{"data-cue":1052},[533,3278,1052],{"class":1118},[533,3280,3281],{"class":1276},"Five qubits to do the work, and five ordinary bits waiting to receive the answers. Five bits is thirty-two possible results.",[756,3283,3284,3286],{"data-cue":1140},[533,3285,1140],{"class":1118},[533,3287,3288],{"class":1276},"A Hadamard on each one, so all thirty-two start out equally likely. The five layers this excerpt skips then bend the odds between them, without ever closing any of them off.",[756,3290,3291,3293],{"data-cue":1157},[533,3292,1157],{"class":1118},[533,3294,3295],{"class":1276},"One draw from those odds. Five bits come out, and every trait the plant shows is read off them.",[12,3297,3298],{},"What the seed fixes is the odds, never the answer. Simulate the finished circuit and all thirty-two outcomes still carry some probability, the likeliest of them only 22%. Run that identical circuit twice and about seven times in eight the second run gives you a different plant.",[12,3300,3301],{},"A plant's identity, then, sits not in its circuit but in the one draw that happened, and no amount of re-running gets that particular draw back.",[12,3303,3304],{},"Which is why the garden keeps it rather than recomputing it. None of this runs while you watch. Its circuits went to IonQ ahead of time, and their results sit in a pool of 500. Hovering a plant assigns it one and fixes its traits from then on. Hover again and nothing changes, because there is nothing left to decide.",[12,3306,3307],{},"The randomness happened once, at the moment of measuring. Everything after it is a record.",[1599,3309],{"description":3310,"framework":1602,"owner":3311,"title":516,"to":515,"builder":3312,"thumb":3107},"Quantum Garden is an interactive generative art installation where digital plants exist in quantum superposition until observed.","AmberPincar","Amber Wang & Justin Pincar",[25,3314,3316],{"id":3315},"you-cannot-print-a-qubit","You cannot print a qubit",[12,3318,3319],{},"Every section above has been about inferring something from a tally. So the obvious question is what was actually in there. There is exactly one way to look, and the thing you have to do first says everything.",[12,3321,3322],{},"QAVE takes a Qiskit circuit and turns it into a deterministic trace: a frame-by-frame record of how the state evolves, which it then renders as an animation. To do that it has to get at the state, and the state is precisely the thing a measurement destroys.",[2175,3324],{"alt":3325,"caption":3326,"no":529,"src":3327},"QAVE rendering a quantum circuit as an animated trace","QAVE traces a circuit's evolution frame by frame.","\u002F_content\u002Fimages\u002Fqave\u002Fscreenshot.webp",[12,3329,3330],{},"Its solution is the only one available.",[519,3332,3335],{"name":3333,"tag":522,"run-href":3334},"ghz3_trace.py","\u002Fu\u002Fq-inho\u002Fqave",[524,3336,3338],{"className":526,"code":3337,"language":528,"meta":529,"style":529},"# Inspect the pre-measurement statevector\npre_measurement = circuit.remove_final_measurements(inplace=False)\npsi = Statevector.from_instruction(pre_measurement)\n\nprint(\"Non-zero amplitudes before measurement (bitstring is |q2 q1 q0>):\")\nfor basis, amp in sorted(psi.to_dict().items()):  # Keep output order stable.\n    if abs(amp) \u003C 1e-12:\n        continue\n    print(f\"  |{basis}>: {amp.real:+.6f}{amp.imag:+.6f}j\")\n",[57,3339,3340,3347,3373,3391,3397,3410,3440,3459,3466,3512],{"__ignoreMap":529},[533,3341,3342,3344],{"class":535,"line":536},[533,3343,1090],{"class":1088,"aria-hidden":1089},[533,3345,3346],{"class":593},"# Inspect the pre-measurement statevector\n",[533,3348,3349,3351,3354,3356,3359,3362,3364,3367,3369,3371],{"class":535,"data-cue":1052,"line":547},[533,3350,1052],{"class":1118},[533,3352,3353],{"class":543},"pre_measurement ",[533,3355,554],{"class":553},[533,3357,3358],{"class":543}," circuit.",[533,3360,3361],{"class":560},"remove_final_measurements",[533,3363,615],{"class":543},[533,3365,3366],{"class":567},"inplace",[533,3368,554],{"class":553},[533,3370,1930],{"class":625},[533,3372,637],{"class":543},[533,3374,3375,3377,3380,3382,3385,3388],{"class":535,"data-cue":1140,"line":575},[533,3376,1140],{"class":1118},[533,3378,3379],{"class":543},"psi ",[533,3381,554],{"class":553},[533,3383,3384],{"class":543}," Statevector.",[533,3386,3387],{"class":560},"from_instruction",[533,3389,3390],{"class":543},"(pre_measurement)\n",[533,3392,3393,3395],{"class":535,"line":590},[533,3394,1090],{"class":1088,"aria-hidden":1089},[533,3396,1113],{},[533,3398,3399,3401,3403,3405,3408],{"class":535,"line":597},[533,3400,1090],{"class":1088,"aria-hidden":1089},[533,3402,917],{"class":553},[533,3404,615],{"class":543},[533,3406,3407],{"class":621},"\"Non-zero amplitudes before measurement (bitstring is |q2 q1 q0>):\"",[533,3409,637],{"class":543},[533,3411,3412,3414,3416,3419,3421,3424,3427,3430,3432,3434,3437],{"class":535,"line":603},[533,3413,1090],{"class":1088,"aria-hidden":1089},[533,3415,3180],{"class":539},[533,3417,3418],{"class":543}," basis, amp ",[533,3420,2786],{"class":539},[533,3422,3423],{"class":553}," sorted",[533,3425,3426],{"class":543},"(psi.",[533,3428,3429],{"class":560},"to_dict",[533,3431,1211],{"class":543},[533,3433,2792],{"class":560},[533,3435,3436],{"class":543},"()):  ",[533,3438,3439],{"class":593},"# Keep output order stable.\n",[533,3441,3442,3444,3446,3449,3452,3454,3457],{"class":535,"line":609},[533,3443,1090],{"class":1088,"aria-hidden":1089},[533,3445,1814],{"class":539},[533,3447,3448],{"class":553}," abs",[533,3450,3451],{"class":543},"(amp) ",[533,3453,2600],{"class":553},[533,3455,3456],{"class":625}," 1e-12",[533,3458,544],{"class":543},[533,3460,3461,3463],{"class":535,"line":640},[533,3462,1090],{"class":1088,"aria-hidden":1089},[533,3464,3465],{"class":539},"        continue\n",[533,3467,3468,3470,3472,3474,3476,3479,3481,3484,3486,3489,3491,3494,3497,3500,3503,3505,3507,3510],{"class":535,"data-cue":1157,"line":646},[533,3469,1157],{"class":1118},[533,3471,612],{"class":553},[533,3473,615],{"class":543},[533,3475,618],{"class":539},[533,3477,3478],{"class":621},"\"  |",[533,3480,626],{"class":625},[533,3482,3483],{"class":543},"basis",[533,3485,632],{"class":625},[533,3487,3488],{"class":621},">: ",[533,3490,626],{"class":625},[533,3492,3493],{"class":543},"amp.real",[533,3495,3496],{"class":539},":+.6f",[533,3498,3499],{"class":625},"}{",[533,3501,3502],{"class":543},"amp.imag",[533,3504,3496],{"class":539},[533,3506,632],{"class":625},[533,3508,3509],{"class":621},"j\"",[533,3511,637],{"class":543},[1267,3513,3514,3521,3531],{"class":1269},[756,3515,3516,3518],{"data-cue":1052},[533,3517,1052],{"class":1118},[533,3519,3520],{"class":1276},"To look at the state, you first delete the measurement. Not a trick of this project: a circuit that has measured has no state left to inspect.",[756,3522,3523,3525],{"data-cue":1140},[533,3524,1140],{"class":1118},[533,3526,3527,3530],{"class":1276},[57,3528,3529],{},"Statevector"," does not read the qubits. It recomputes, from the gates alone, what the state must be. That is simulation, not observation.",[756,3532,3533,3535],{"data-cue":1157},[533,3534,1157],{"class":1118},[533,3536,3537,3538,1576,3541,3544],{"class":1276},"An amplitude per outcome. Eight are possible for three qubits; a GHZ state puts weight on just ",[57,3539,3540],{},"000",[57,3542,3543],{},"111"," and leaves the other six at zero.",[12,3546,3547],{},"The amplitudes are the full description, and nothing on real hardware will hand them to you. There is no slow API behind which they hide and no flag that turns them on. A device gives you bitstrings.",[12,3549,3550],{},"So this listing is not a way of reading a quantum computer. It is a simulator being asked to predict what the hardware would have had, on a circuit small enough that a laptop can work it out.",[3552,3553,3555],"h3",{"id":3554},"the-randomness-is-seeded","The randomness is seeded",[12,3557,3558],{},"The second half of QAVE's measurement handling makes a point the first half sets up. Because the trace is deterministic, the shots are reproducible.",[519,3560,3561],{"name":3333,"tag":522,"run-href":3334},[524,3562,3564],{"className":526,"code":3563,"language":528,"meta":529,"style":529},"# Require deterministic shot replay for terminal measurements.\nreplay = result.require_measurement_shot_replay()\n\nprint(f\"measurement_shot_replay.shots_total: {replay.shots_total}\")\nprint(f\"measurement_shot_replay.sampling_seed: {replay.sampling_seed}\")\n\n# Print outcomes sorted by probability.\nprint(\"Top outcomes from measurement_shot_replay.outcomes:\")\nfor outcome in sorted(replay.outcomes, key=lambda item: item.probability, reverse=True):\n    print(f\"  {outcome.label}: p={outcome.probability:.6f}\")\n",[57,3565,3566,3573,3590,3596,3620,3644,3650,3657,3670,3709,3746],{"__ignoreMap":529},[533,3567,3568,3570],{"class":535,"line":536},[533,3569,1090],{"class":1088,"aria-hidden":1089},[533,3571,3572],{"class":593},"# Require deterministic shot replay for terminal measurements.\n",[533,3574,3575,3577,3580,3582,3585,3588],{"class":535,"data-cue":1052,"line":547},[533,3576,1052],{"class":1118},[533,3578,3579],{"class":543},"replay ",[533,3581,554],{"class":553},[533,3583,3584],{"class":543}," result.",[533,3586,3587],{"class":560},"require_measurement_shot_replay",[533,3589,1217],{"class":543},[533,3591,3592,3594],{"class":535,"line":575},[533,3593,1090],{"class":1088,"aria-hidden":1089},[533,3595,1113],{},[533,3597,3598,3600,3602,3604,3606,3609,3611,3614,3616,3618],{"class":535,"line":590},[533,3599,1090],{"class":1088,"aria-hidden":1089},[533,3601,917],{"class":553},[533,3603,615],{"class":543},[533,3605,618],{"class":539},[533,3607,3608],{"class":621},"\"measurement_shot_replay.shots_total: ",[533,3610,626],{"class":625},[533,3612,3613],{"class":543},"replay.shots_total",[533,3615,632],{"class":625},[533,3617,439],{"class":621},[533,3619,637],{"class":543},[533,3621,3622,3624,3626,3628,3630,3633,3635,3638,3640,3642],{"class":535,"data-cue":1140,"line":597},[533,3623,1140],{"class":1118},[533,3625,917],{"class":553},[533,3627,615],{"class":543},[533,3629,618],{"class":539},[533,3631,3632],{"class":621},"\"measurement_shot_replay.sampling_seed: ",[533,3634,626],{"class":625},[533,3636,3637],{"class":543},"replay.sampling_seed",[533,3639,632],{"class":625},[533,3641,439],{"class":621},[533,3643,637],{"class":543},[533,3645,3646,3648],{"class":535,"line":603},[533,3647,1090],{"class":1088,"aria-hidden":1089},[533,3649,1113],{},[533,3651,3652,3654],{"class":535,"line":609},[533,3653,1090],{"class":1088,"aria-hidden":1089},[533,3655,3656],{"class":593},"# Print outcomes sorted by probability.\n",[533,3658,3659,3661,3663,3665,3668],{"class":535,"line":640},[533,3660,1090],{"class":1088,"aria-hidden":1089},[533,3662,917],{"class":553},[533,3664,615],{"class":543},[533,3666,3667],{"class":621},"\"Top outcomes from measurement_shot_replay.outcomes:\"",[533,3669,637],{"class":543},[533,3671,3672,3674,3676,3679,3681,3683,3686,3689,3691,3694,3697,3700,3703,3705,3707],{"class":535,"line":646},[533,3673,1090],{"class":1088,"aria-hidden":1089},[533,3675,3180],{"class":539},[533,3677,3678],{"class":543}," outcome ",[533,3680,2786],{"class":539},[533,3682,3423],{"class":553},[533,3684,3685],{"class":543},"(replay.outcomes, ",[533,3687,3688],{"class":567},"key",[533,3690,554],{"class":553},[533,3692,3693],{"class":539},"lambda",[533,3695,3696],{"class":1762}," item",[533,3698,3699],{"class":543},": item.probability, ",[533,3701,3702],{"class":567},"reverse",[533,3704,554],{"class":553},[533,3706,1958],{"class":625},[533,3708,1771],{"class":543},[533,3710,3711,3713,3715,3717,3719,3722,3724,3727,3729,3732,3734,3737,3740,3742,3744],{"class":535,"data-cue":1157,"line":658},[533,3712,1157],{"class":1118},[533,3714,612],{"class":553},[533,3716,615],{"class":543},[533,3718,618],{"class":539},[533,3720,3721],{"class":621},"\"  ",[533,3723,626],{"class":625},[533,3725,3726],{"class":543},"outcome.label",[533,3728,632],{"class":625},[533,3730,3731],{"class":621},": p=",[533,3733,626],{"class":625},[533,3735,3736],{"class":543},"outcome.probability",[533,3738,3739],{"class":539},":.6f",[533,3741,632],{"class":625},[533,3743,439],{"class":621},[533,3745,637],{"class":543},[1267,3747,3748,3755,3762],{"class":1269},[756,3749,3750,3752],{"data-cue":1052},[533,3751,1052],{"class":1118},[533,3753,3754],{"class":1276},"The individual draws, not just the summary. Every shot the trace generated, in order.",[756,3756,3757,3759],{"data-cue":1140},[533,3758,1140],{"class":1118},[533,3760,3761],{"class":1276},"A seed. Run the trace again with the same one and you get the same hundred shots back, which no real device would ever give you.",[756,3763,3764,3766],{"data-cue":1157},[533,3765,1157],{"class":1118},[533,3767,3768],{"class":1276},"The odds themselves, straight from the maths, to six decimal places. Hardware never prints this line: it only ever gives you draws you have to infer the odds from.",[12,3770,3771],{},"Those two listings carry the distinction. The probabilities are what the state says will happen. The shots are what happened.",[12,3773,3774],{},"A simulator can show you both. A quantum computer shows you only the second, and everything you want to know about the first has to be reconstructed from a pile of them.",[12,3776,3777,3780,3781,1576,3784,3787],{},[974,3778,3779],{},"Try this when you fork it."," The trace is configured with ",[57,3782,3783],{},"seed=24",[57,3785,3786],{},"shot_count=100",". Change the seed and re-run: the outcome probabilities printed above are identical, because the state has not changed, while the hundred individual shots are different. Then raise the shot count and watch the tally converge on those probabilities it never had access to.",[1599,3789],{"description":3790,"framework":1602,"owner":3791,"title":3792,"to":3334,"builder":3793,"thumb":3327},"Quantum Algorithm Visualization Engine turns Qiskit\u002FOpenQASM quantum circuits into deterministic traces and synchronized animations, making quantum algorithms easier to teach and understand.","q-inho","QAVE","Inho Choi",[25,3795,3797],{"id":3796},"where-the-circuit-actually-runs","Where the circuit actually runs",[12,3799,3800],{},"Every listing above assumes you can just run the circuit. You can, and the same circuit has more than one place to go.",[12,3802,3803],{},"Entangled Body settles the question in the open, and its answer is a fallback chain.",[519,3805,3806],{"name":2191,"tag":522,"run-href":692},[524,3807,3809],{"className":526,"code":3808,"language":528,"meta":529,"style":529},"def run_measurement(ops, shots, seed=None):\n    \"\"\"Run the circuit and return (counts, backend_label).\"\"\"\n    # 1. hosted runtime backend (e.g. IonQ \u002F IBM \u002F Aer provided as `backend`)\n    bk = globals().get(\"backend\", None)\n    if HAVE_QISKIT and bk is not None:\n        try:\n            tqc = transpile(build_circuit(ops, measure=True), backend=bk, optimization_level=1)\n            counts = bk.run(tqc, shots=shots).result().get_counts()\n            label = \"backend: %s\" % getattr(bk, \"name\", getattr(type(bk), \"__name__\", \"provided\"))\n            return dict(counts), label\n        except Exception as exc:\n            print(\"    (provided backend failed: %s -- falling back)\" % exc)\n\n    # 2. qiskit Statevector sampler (no qiskit_aer required)\n    if HAVE_QISKIT:\n        sv = Statevector(build_circuit(ops, measure=False))\n        counts = sv.sample_counts(shots)\n        return {k: int(v) for k, v in counts.items()}, \"qiskit Statevector\"\n\n    # 3. pure-Python fallback\n    return _py_run(ops, shots, seed), \"pure-Python state vector\"\n",[57,3810,3811,3841,3848,3855,3883,3909,3918,3962,3994,4046,4059,4073,4095,4101,4108,4118,4144,4162,4197,4204,4212,4228],{"__ignoreMap":529},[533,3812,3813,3815,3817,3820,3822,3825,3827,3829,3831,3834,3836,3839],{"class":535,"line":536},[533,3814,1090],{"class":1088,"aria-hidden":1089},[533,3816,1754],{"class":539},[533,3818,3819],{"class":560}," run_measurement",[533,3821,615],{"class":543},[533,3823,3824],{"class":1762},"ops",[533,3826,1133],{"class":543},[533,3828,269],{"class":1762},[533,3830,1133],{"class":543},[533,3832,3833],{"class":1762},"seed",[533,3835,554],{"class":543},[533,3837,3838],{"class":625},"None",[533,3840,1771],{"class":543},[533,3842,3843,3845],{"class":535,"line":547},[533,3844,1090],{"class":1088,"aria-hidden":1089},[533,3846,3847],{"class":621},"    \"\"\"Run the circuit and return (counts, backend_label).\"\"\"\n",[533,3849,3850,3852],{"class":535,"line":575},[533,3851,1090],{"class":1088,"aria-hidden":1089},[533,3853,3854],{"class":593},"    # 1. hosted runtime backend (e.g. IonQ \u002F IBM \u002F Aer provided as `backend`)\n",[533,3856,3857,3859,3862,3864,3867,3869,3872,3874,3877,3879,3881],{"class":535,"line":590},[533,3858,1090],{"class":1088,"aria-hidden":1089},[533,3860,3861],{"class":543},"    bk ",[533,3863,554],{"class":553},[533,3865,3866],{"class":553}," globals",[533,3868,1211],{"class":543},[533,3870,3871],{"class":560},"get",[533,3873,615],{"class":543},[533,3875,3876],{"class":621},"\"backend\"",[533,3878,1133],{"class":543},[533,3880,3838],{"class":625},[533,3882,637],{"class":543},[533,3884,3885,3887,3889,3892,3895,3898,3901,3904,3907],{"class":535,"line":597},[533,3886,1090],{"class":1088,"aria-hidden":1089},[533,3888,1814],{"class":539},[533,3890,3891],{"class":625}," HAVE_QISKIT",[533,3893,3894],{"class":539}," and",[533,3896,3897],{"class":543}," bk ",[533,3899,3900],{"class":539},"is",[533,3902,3903],{"class":539}," not",[533,3905,3906],{"class":625}," None",[533,3908,544],{"class":543},[533,3910,3911,3913,3916],{"class":535,"line":603},[533,3912,1090],{"class":1088,"aria-hidden":1089},[533,3914,3915],{"class":539},"        try",[533,3917,544],{"class":543},[533,3919,3920,3922,3925,3927,3929,3931,3934,3937,3939,3941,3943,3946,3948,3950,3953,3956,3958,3960],{"class":535,"data-cue":1052,"line":609},[533,3921,1052],{"class":1118},[533,3923,3924],{"class":543},"            tqc ",[533,3926,554],{"class":553},[533,3928,901],{"class":560},[533,3930,615],{"class":543},[533,3932,3933],{"class":560},"build_circuit",[533,3935,3936],{"class":543},"(ops, ",[533,3938,1164],{"class":567},[533,3940,554],{"class":553},[533,3942,1958],{"class":625},[533,3944,3945],{"class":543},"), ",[533,3947,907],{"class":567},[533,3949,554],{"class":553},[533,3951,3952],{"class":543},"bk, ",[533,3954,3955],{"class":567},"optimization_level",[533,3957,554],{"class":553},[533,3959,1052],{"class":625},[533,3961,637],{"class":543},[533,3963,3964,3966,3969,3971,3974,3976,3979,3981,3983,3986,3988,3990,3992],{"class":535,"data-cue":1140,"line":640},[533,3965,1140],{"class":1118},[533,3967,3968],{"class":543},"            counts ",[533,3970,554],{"class":553},[533,3972,3973],{"class":543}," bk.",[533,3975,561],{"class":560},[533,3977,3978],{"class":543},"(tqc, ",[533,3980,269],{"class":567},[533,3982,554],{"class":553},[533,3984,3985],{"class":543},"shots).",[533,3987,1208],{"class":560},[533,3989,1211],{"class":543},[533,3991,1214],{"class":560},[533,3993,1217],{"class":543},[533,3995,3996,3998,4001,4003,4006,4009,4011,4014,4017,4020,4023,4025,4028,4030,4033,4036,4039,4041,4044],{"class":535,"line":646},[533,3997,1090],{"class":1088,"aria-hidden":1089},[533,3999,4000],{"class":543},"            label ",[533,4002,554],{"class":553},[533,4004,4005],{"class":621}," \"backend: ",[533,4007,4008],{"class":625},"%s",[533,4010,439],{"class":621},[533,4012,4013],{"class":553}," %",[533,4015,4016],{"class":553}," getattr",[533,4018,4019],{"class":543},"(bk, ",[533,4021,4022],{"class":621},"\"name\"",[533,4024,1133],{"class":543},[533,4026,4027],{"class":553},"getattr",[533,4029,615],{"class":543},[533,4031,4032],{"class":553},"type",[533,4034,4035],{"class":543},"(bk), ",[533,4037,4038],{"class":621},"\"__name__\"",[533,4040,1133],{"class":543},[533,4042,4043],{"class":621},"\"provided\"",[533,4045,1937],{"class":543},[533,4047,4048,4050,4053,4056],{"class":535,"line":658},[533,4049,1090],{"class":1088,"aria-hidden":1089},[533,4051,4052],{"class":539},"            return",[533,4054,4055],{"class":553}," dict",[533,4057,4058],{"class":543},"(counts), label\n",[533,4060,4061,4063,4066,4068,4070],{"class":535,"line":680},[533,4062,1090],{"class":1088,"aria-hidden":1089},[533,4064,4065],{"class":539},"        except",[533,4067,651],{"class":543},[533,4069,584],{"class":539},[533,4071,4072],{"class":543}," exc:\n",[533,4074,4075,4077,4080,4082,4085,4087,4090,4092],{"class":535,"data-cue":1157,"line":1536},[533,4076,1157],{"class":1118},[533,4078,4079],{"class":553},"            print",[533,4081,615],{"class":543},[533,4083,4084],{"class":621},"\"    (provided backend failed: ",[533,4086,4008],{"class":625},[533,4088,4089],{"class":621}," -- falling back)\"",[533,4091,4013],{"class":553},[533,4093,4094],{"class":543}," exc)\n",[533,4096,4097,4099],{"class":535,"line":1552},[533,4098,1090],{"class":1088,"aria-hidden":1089},[533,4100,1113],{},[533,4102,4103,4105],{"class":535,"line":1911},[533,4104,1090],{"class":1088,"aria-hidden":1089},[533,4106,4107],{"class":593},"    # 2. qiskit Statevector sampler (no qiskit_aer required)\n",[533,4109,4110,4112,4114,4116],{"class":535,"line":1940},[533,4111,1090],{"class":1088,"aria-hidden":1089},[533,4113,1814],{"class":539},[533,4115,3891],{"class":625},[533,4117,544],{"class":543},[533,4119,4120,4122,4125,4127,4130,4132,4134,4136,4138,4140,4142],{"class":535,"data-cue":1183,"line":1968},[533,4121,1183],{"class":1118},[533,4123,4124],{"class":543},"        sv ",[533,4126,554],{"class":553},[533,4128,4129],{"class":560}," Statevector",[533,4131,615],{"class":543},[533,4133,3933],{"class":560},[533,4135,3936],{"class":543},[533,4137,1164],{"class":567},[533,4139,554],{"class":553},[533,4141,1930],{"class":625},[533,4143,1937],{"class":543},[533,4145,4146,4148,4151,4153,4156,4159],{"class":535,"data-cue":1220,"line":1995},[533,4147,1220],{"class":1118},[533,4149,4150],{"class":543},"        counts ",[533,4152,554],{"class":553},[533,4154,4155],{"class":543}," sv.",[533,4157,4158],{"class":560},"sample_counts",[533,4160,4161],{"class":543},"(shots)\n",[533,4163,4165,4167,4170,4173,4176,4179,4181,4184,4186,4189,4191,4194],{"class":535,"line":4164},18,[533,4166,1090],{"class":1088,"aria-hidden":1089},[533,4168,4169],{"class":539},"        return",[533,4171,4172],{"class":543}," {k: ",[533,4174,4175],{"class":553},"int",[533,4177,4178],{"class":543},"(v) ",[533,4180,3180],{"class":539},[533,4182,4183],{"class":543}," k, v ",[533,4185,2786],{"class":539},[533,4187,4188],{"class":543}," counts.",[533,4190,2792],{"class":560},[533,4192,4193],{"class":543},"()}, ",[533,4195,4196],{"class":621},"\"qiskit Statevector\"\n",[533,4198,4200,4202],{"class":535,"line":4199},19,[533,4201,1090],{"class":1088,"aria-hidden":1089},[533,4203,1113],{},[533,4205,4207,4209],{"class":535,"line":4206},20,[533,4208,1090],{"class":1088,"aria-hidden":1089},[533,4210,4211],{"class":593},"    # 3. pure-Python fallback\n",[533,4213,4215,4217,4219,4222,4225],{"class":535,"data-cue":1967,"line":4214},21,[533,4216,1967],{"class":1118},[533,4218,1880],{"class":539},[533,4220,4221],{"class":560}," _py_run",[533,4223,4224],{"class":543},"(ops, shots, seed), ",[533,4226,4227],{"class":621},"\"pure-Python state vector\"\n",[1267,4229,4230,4242,4249,4259,4270,4277],{"class":1269},[756,4231,4232,4234],{"data-cue":1052},[533,4233,1052],{"class":1118},[533,4235,4236,4237,1576,4239,4241],{"class":1276},"Rewrite the circuit into the gates this particular machine actually has. Hardware does not run ",[57,4238,1652],{},[57,4240,1675],{}," directly, it runs its own small set, and this is the translation. It is also where a circuit can get longer, and longer means noisier.",[756,4243,4244,4246],{"data-cue":1140},[533,4245,1140],{"class":1118},[533,4247,4248],{"class":1276},"The only line on this page that touches a quantum computer. Everything else here, including every listing above, is arithmetic about one.",[756,4250,4251,4253],{"data-cue":1157},[533,4252,1157],{"class":1118},[533,4254,4255,4256,4258],{"class":1276},"And it sits inside a ",[57,4257,688],{},", because a hardware run is a network call to a shared machine with a queue in front of it. It can fail, and this project would rather draw something than stop.",[756,4260,4261,4263],{"data-cue":1183},[533,4262,1183],{"class":1118},[533,4264,4265,4266,4269],{"class":1276},"Fallback one: work out the state from the gates alone. Note ",[57,4267,4268],{},"measure=False",", the same move QAVE had to make above. A circuit that measures has no state left to compute.",[756,4271,4272,4274],{"data-cue":1220},[533,4273,1220],{"class":1118},[533,4275,4276],{"class":1276},"Then draw shots from it. You get the same shot-to-shot randomness as hardware and none of the hardware's errors, which is either the point or the problem depending on what you are testing.",[756,4278,4279,4281],{"data-cue":1967},[533,4280,1967],{"class":1118},[533,4282,4283],{"class":1276},"Fallback two: the same maths again with no Qiskit at all, so the piece still runs on a machine with nothing installed.",[12,4285,4286],{},"Three ways to get a tally, and only the first is a quantum computer. Both fallbacks work out what the hardware should have produced and draw shots from that.",[12,4288,4289],{},"The simulator wins on nearly everything a developer cares about day to day. Runs are fast, free, exactly repeatable and never queued. At fourteen qubits it is also perfectly honest: it holds the same state the hardware would.",[12,4291,4292],{},"What it cannot do is keep up. Every qubit you add doubles the state a simulator has to track. Fourteen qubits is 16,384 amplitudes and fits in a quarter of a megabyte.",[12,4294,4295],{},"Fifty qubits is about 1.1 quadrillion amplitudes, which is eighteen petabytes and no longer a laptop problem. A fifty-qubit device holds that state anyway, because it stores nothing. It is the thing.",[12,4297,4298,4299,1576,4301,4303],{},"Errors are the other half of the trade. A simulator gives you the distribution the maths predicts; hardware gives you the distribution a physical device produces, which is the one your results will actually have. Those 58 shots in ",[57,4300,1575],{},[57,4302,1579],{}," in the very first histogram are what a real machine looks like, not a flaw in the example.",[12,4305,4306],{},"So the rule of thumb is unglamorous. Develop against the simulator, where a run takes a second and you can change one line and go again. Move to hardware when the question is whether the circuit survives contact with a real device, because that is the one question a simulator is guaranteed not to answer.",[25,4308,4310],{"id":4309},"start-with-the-counts","Start with the counts",[12,4312,4313],{},"Every project here ends in the same place: a dictionary of bitstrings and how often each one came up. That tally is the whole output of a quantum computer.",[12,4315,4316],{},"Which comes down to four habits. Read a pattern, never a value, because a single shot says nothing about the odds behind it. Choose the question before you run, because the same state answers different questions differently. Keep a corrupted reading separate from a destroyed state, because only one of those can be repaired. And know which of your runs was a machine and which was a prediction of one.",[12,4318,4319],{},"Fork the histogram example first. The listing needs no hardware and no setup, and once you have put two distributions side by side, everything above is about what you are allowed to conclude from them.",[4321,4322,4324],"make-it-yours",{"fork-href":1352,"title":4323},"Run it, then change the question.",[12,4325,4326,4327],{},"Fork the histograms example and change the counts by hand until you can predict the chart. Then open any project above and find the line where its measurement happens. ",[974,4328,4329],{},"Everything here is open and yours to build on.",[773,4331,4332],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}",{"title":529,"searchDepth":547,"depth":547,"links":4334},[4335,4336,4337,4338,4339,4340,4341,4342,4343,4346,4347],{"id":1069,"depth":547,"text":1070},{"id":1344,"depth":547,"text":1345},{"id":1607,"depth":547,"text":1608},{"id":1702,"depth":547,"text":1703},{"id":2166,"depth":547,"text":2167},{"id":2335,"depth":547,"text":2336},{"id":2734,"depth":547,"text":2735},{"id":3098,"depth":547,"text":3099},{"id":3315,"depth":547,"text":3316,"children":4344},[4345],{"id":3554,"depth":575,"text":3555},{"id":3796,"depth":547,"text":3797},{"id":4309,"depth":547,"text":4310},[4349,4350,4351],"Qollab","Learn","Quantum measurement",[4353],{"username":1037,"name":4354,"role":4355,"avatar":4356,"bio":4357,"links":4358},"Nicolaas Spijker","Community manager, Qollab","\u002F_content\u002Fimages\u002Fbuilders\u002Fnicolaas-spijker.webp","Nico runs the builder community at Qollab. These concept articles come out of that work: forking the projects people publish and running them. And talking with authors to learn more about their projects.",[4359,4362],{"label":4360,"href":4361},"Qollab ↗","https:\u002F\u002Fqollab.xyz\u002Fu\u002Fnico",{"label":4363,"href":4364},"GitHub ↗","https:\u002F\u002Fgithub.com\u002Fnicolaasspijker",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Measurement does not read a value off a qubit, it produces one. Why a single run tells you nothing, and why the question you ask changes the answer.","Measurement does not read a value off a qubit, it produces one. What that means for your code, and real projects you can run and fork to see it.",{"href":1352,"label":4369},"Fork the histogram example","article",{},"\u002F_content\u002Fimages\u002Fmeasurement\u002Fog.png","\u002Fblog\u002Flearn\u002Fquantum-measurement","14 min read",[],{"title":4377,"description":4378},"Quantum Measurement, Explained with Code You Can Run","What quantum measurement actually does: why one run tells you nothing, and why the question you ask changes the answer. With real projects to run and fork.","blog\u002Flearn\u002Fquantum-measurement",[4381,4382,4383],"measurement","education","quantum","FiSxZUZvH_Zyg8ac4zu456hu6mYwbltbZNhfWR4B8Fs",{"id":4386,"title":4387,"authors":4388,"body":4389,"breadcrumb":4593,"builders":4595,"byline":4596,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":4598,"description":4599,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":4600,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":4602,"navigation":790,"newsItems":7,"next":4603,"ogImage":7,"order":597,"outcomes":7,"path":4607,"publishDate":4608,"readingTime":4609,"related":4610,"relatedProjects":7,"seo":4611,"stem":4614,"tags":4615,"track":4616,"trackName":4594,"__hash__":4617},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fbring-your-own-code.md","Bring your own code into Qollab",[1603],{"type":9,"value":4390,"toc":4587},[4391,4394,4398,4412,4416,4419,4487,4499,4546,4550,4562,4564,4584],[12,4392,4393],{},"If you already write Qiskit locally, you do not have to start over in the browser. Paste your circuit into a Qollab project and run it. One thing changes: how you reach a backend.",[25,4395,4397],{"id":4396},"your-circuit-carries-over","Your circuit carries over",[12,4399,4400,4401,4404,4405,4407,4408,114],{},"The Qiskit you write is standard, so the part that builds your circuit works unchanged: ",[57,4402,4403],{},"QuantumCircuit",", gates, measurements, transpilation. Paste it into a project's ",[974,4406,41],{}," tab, the same editor from ",[19,4409,4411],{"href":4410},"\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcode-playground","Use the Code Playground",[25,4413,4415],{"id":4414},"swap-the-provider-setup-for-the-pre-created-backend","Swap the provider setup for the pre-created backend",[12,4417,4418],{},"Locally, you set up a provider with an API key and asked it for a backend:",[524,4420,4422],{"className":526,"code":4421,"language":528,"meta":529,"style":529},"# Local: you manage the provider and key yourself\nfrom qiskit_ionq import IonQProvider\n\nprovider = IonQProvider(token=\"your_api_key\")\nbackend = provider.get_backend(\"simulator\")\n",[57,4423,4424,4429,4441,4445,4467],{"__ignoreMap":529},[533,4425,4426],{"class":535,"line":536},[533,4427,4428],{"class":593},"# Local: you manage the provider and key yourself\n",[533,4430,4431,4433,4436,4438],{"class":535,"line":547},[533,4432,877],{"class":539},[533,4434,4435],{"class":543}," qiskit_ionq ",[533,4437,883],{"class":539},[533,4439,4440],{"class":543}," IonQProvider\n",[533,4442,4443],{"class":535,"line":575},[533,4444,891],{"emptyLinePlaceholder":790},[533,4446,4447,4450,4452,4455,4457,4460,4462,4465],{"class":535,"line":590},[533,4448,4449],{"class":543},"provider ",[533,4451,554],{"class":553},[533,4453,4454],{"class":560}," IonQProvider",[533,4456,615],{"class":543},[533,4458,4459],{"class":567},"token",[533,4461,554],{"class":553},[533,4463,4464],{"class":621},"\"your_api_key\"",[533,4466,637],{"class":543},[533,4468,4469,4472,4474,4477,4480,4482,4485],{"class":535,"line":597},[533,4470,4471],{"class":543},"backend ",[533,4473,554],{"class":553},[533,4475,4476],{"class":543}," provider.",[533,4478,4479],{"class":560},"get_backend",[533,4481,615],{"class":543},[533,4483,4484],{"class":621},"\"simulator\"",[533,4486,637],{"class":543},[12,4488,4489,4490,4494,4495,4498],{},"On Qollab you delete all of that. A ",[974,4491,4492],{},[57,4493,907],{}," is already created for you, and you choose where it runs in the ",[19,4496,4497],{"href":143},"Select QPU dialog"," when you press Run. There are no keys to manage:",[524,4500,4502],{"className":526,"code":4501,"language":528,"meta":529,"style":529},"# Qollab: backend is pre-created; just run against it\njob = backend.run(circuit, shots=100)\nprint(job.result().get_counts())\n",[57,4503,4504,4509,4531],{"__ignoreMap":529},[533,4505,4506],{"class":535,"line":536},[533,4507,4508],{"class":593},"# Qollab: backend is pre-created; just run against it\n",[533,4510,4511,4514,4516,4518,4520,4522,4524,4526,4529],{"class":535,"line":547},[533,4512,4513],{"class":543},"job ",[533,4515,554],{"class":553},[533,4517,557],{"class":543},[533,4519,561],{"class":560},[533,4521,564],{"class":543},[533,4523,269],{"class":567},[533,4525,554],{"class":553},[533,4527,4528],{"class":625},"100",[533,4530,637],{"class":543},[533,4532,4533,4535,4538,4540,4542,4544],{"class":535,"line":575},[533,4534,917],{"class":553},[533,4536,4537],{"class":543},"(job.",[533,4539,1208],{"class":560},[533,4541,1211],{"class":543},[533,4543,1214],{"class":560},[533,4545,932],{"class":543},[25,4547,4549],{"id":4548},"run-and-share","Run and share",[12,4551,4552,4553,4556,4557,4561],{},"Press ",[974,4554,4555],{},"Run",", pick a simulator (free) or real hardware (credits), and read your results in the console. Your project is now shareable, forkable, and one click from real hardware, without any local setup. ",[19,4558,4560],{"href":4559},"\u002Flearn\u002Fdocs\u002Fpublish","Publishing and versions"," covers making it public.",[25,4563,751],{"id":750},[753,4565,4566,4572,4578],{},[756,4567,4568],{},[19,4569,4571],{"href":4570},"\u002Flearn\u002Fdocs\u002Fruntime-environment","The runtime environment",[756,4573,4574],{},[19,4575,4577],{"href":4576},"\u002Flearn\u002Fdocs\u002Frun-your-code","Running your code",[756,4579,4580],{},[19,4581,4583],{"href":4582},"\u002Flearn\u002Fquantum-computing-with-python","Quantum computing with Python and Qiskit",[773,4585,4586],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}",{"title":529,"searchDepth":547,"depth":547,"links":4588},[4589,4590,4591,4592],{"id":4396,"depth":547,"text":4397},{"id":4414,"depth":547,"text":4415},{"id":4548,"depth":547,"text":4549},{"id":750,"depth":547,"text":751},[4349,4350,4594,4387],"Building your first Qollab project",[],{"username":1603,"name":4349,"role":4597,"avatar":529},"Product docs","Move a circuit you wrote locally into Qollab: the Qiskit carries over, the provider setup does not.","Move a circuit you wrote locally into a Qollab project: your Qiskit carries over, and you swap the local provider setup for a pre-created backend.","That is the course. You can create, run, fork, and bring your own code to Qollab.","lesson",{},{"slug":4604,"title":4605,"desc":4606},"\u002Fprojects","Share what you built","Publish your project so others can fork it, and browse what the community is building.","\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fbring-your-own-code","2026-09-07","3 min read",[],{"title":4612,"description":4613},"Bring your own code into Qollab · Building your first Qollab project","How to move a Qiskit circuit you wrote locally into a Qollab project and run it on the pre-created backend.","blog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fbring-your-own-code",[],"building-your-first-qollab-project","KfMK6oVgKolkluRSaNgVKIpmSN-lv43OpMayZBpmmwk",{"id":4619,"title":4620,"authors":4621,"body":4622,"breadcrumb":4724,"builders":4725,"byline":4726,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":4727,"description":4728,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":4729,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":4731,"navigation":790,"newsItems":7,"next":4732,"ogImage":7,"order":590,"outcomes":7,"path":4735,"publishDate":4608,"readingTime":4609,"related":4736,"relatedProjects":7,"seo":4737,"stem":4740,"tags":4741,"track":4616,"trackName":4594,"__hash__":4742},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Ffork-a-project.md","Fork and continue a project",[1603],{"type":9,"value":4623,"toc":4717},[4624,4627,4631,4639,4643,4650,4655,4664,4669,4673,4680,4684,4697,4699],[12,4625,4626],{},"Forking is how you start from someone else's work instead of a blank project. You make your own copy of any public project, then edit, run, and publish it as your own. It is the fastest way to learn from a project you like, or to build on one.",[25,4628,4630],{"id":4629},"_1-find-a-project-to-fork","1. Find a project to fork",[12,4632,4633,4634,4638],{},"Browse ",[19,4635,4637],{"href":4636},"\u002Fexplore","Explore"," or open any public project you want to build on. Anything the community has published can be forked.",[25,4640,4642],{"id":4641},"_2-fork-it","2. Fork it",[12,4644,4645,4646,4649],{},"Click ",[974,4647,4648],{},"Fork"," in the project header.",[2175,4651],{"alt":4652,"caption":4653,"no":529,"src":4654},"A public project's header with a Fork button.","The Fork button on any public project.","\u002F_content\u002Fimages\u002Fdocs\u002Ffork-button.webp",[12,4656,4657,4658,4661,4662,114],{},"The ",[974,4659,4660],{},"Fork Project"," dialog opens with a name and title prefilled from the original. Adjust them if you like, then confirm with ",[974,4663,4660],{},[2175,4665],{"alt":4666,"caption":4667,"no":529,"src":4668},"The Fork Project dialog with a prefilled name and title.","Name your copy, then confirm.","\u002F_content\u002Fimages\u002Fdocs\u002Ffork-modal.webp",[25,4670,4672],{"id":4671},"_3-continue-working","3. Continue working",[12,4674,4675,4676,4679],{},"Your fork is a private draft on your own account, opened in edit mode with the original's code and write-up already in place. From here it is a normal project: change the code, run it in the ",[19,4677,4678],{"href":4410},"Code Playground",", rewrite the description, and make it yours. The original is untouched, and it keeps a count of the forks it has.",[25,4681,4683],{"id":4682},"_4-publish-your-version","4. Publish your version",[12,4685,4686,4687,4691,4692,4696],{},"When your version is ready, publish it the way you published your first project. Keep the original author credited when you build on their work, as the ",[19,4688,4690],{"href":4689},"\u002Fcommunity-guidelines","community guidelines"," ask. If your fork adds something meaningful, the ",[19,4693,4695],{"href":4694},"\u002Fprograms\u002Fcredits-grant","Grant Program"," rewards fork-and-extend work with credits.",[25,4698,751],{"id":750},[753,4700,4701,4707,4713],{},[756,4702,4703],{},[19,4704,4706],{"href":4705},"\u002Flearn\u002Fdocs\u002Ffork-and-remix","Forking a project",[756,4708,4709],{},[19,4710,4712],{"href":4711},"\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcreate-project","Create a project on Qollab",[756,4714,4715],{},[19,4716,4411],{"href":4410},{"title":529,"searchDepth":547,"depth":547,"links":4718},[4719,4720,4721,4722,4723],{"id":4629,"depth":547,"text":4630},{"id":4641,"depth":547,"text":4642},{"id":4671,"depth":547,"text":4672},{"id":4682,"depth":547,"text":4683},{"id":750,"depth":547,"text":751},[4349,4350,4594,4620],[],{"username":1603,"name":4349,"role":4597,"avatar":529},"Fork any public project into your own editable copy, then keep building on it.","Fork any public project into your own editable copy, then keep building on it: edit the code, run it, and publish it as your own.",{"image":4668,"alt":4730},"The Fork Project dialog",{},{"slug":4607,"title":4733,"desc":4734},"5 · Bring your own code into Qollab","Move a circuit you wrote locally into a Qollab project and run it.","\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Ffork-a-project",[],{"title":4738,"description":4739},"Fork and continue a project · Building your first Qollab project","How to fork a public Qollab project into your own editable copy and keep building on it.","blog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Ffork-a-project",[],"Cc1KorVfDJwsAfIZMrTX2nfROyOmZRU1oX6woeASawI",{"id":4744,"title":4745,"authors":4746,"body":4747,"breadcrumb":5194,"builders":5195,"byline":5196,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":5197,"description":5198,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":5199,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":5202,"navigation":790,"newsItems":7,"next":5203,"ogImage":7,"order":575,"outcomes":7,"path":5205,"publishDate":4608,"readingTime":5206,"related":5207,"relatedProjects":7,"seo":5208,"stem":5210,"tags":5211,"track":4616,"trackName":4594,"__hash__":5212},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Frun-in-javascript.md","Run a circuit in JavaScript",[1603],{"type":9,"value":4748,"toc":5187},[4749,4760,4768,4772,4788,4792,4810,4813,4817,4820,4857,4860,5105,5112,5123,5127,5140,5159,5168,5172,5184],[12,4750,4751,4752,4755,4756,4759],{},"Most of this course runs on ",[19,4753,4754],{"href":4410},"Python and Qiskit",", the default framework. Qollab has a second one: ",[974,4757,4758],{},"JavaScript and Qiskit",". Use it when you want a circuit's results to drive something visual, like a widget, an animation, or a custom chart, rather than plain text.",[12,4761,4762,4763,4767],{},"If you are on the Python track, you already ran your first circuit in the previous lesson, so you can ",[19,4764,4766],{"href":4765},"\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Ffork-a-project","continue to forking a project",". This lesson is the JavaScript version of that same step.",[25,4769,4771],{"id":4770},"prerequisites","Prerequisites",[12,4773,4774,4775,4779,4780,4783,4784,4787],{},"You need a free Qollab account (you can ",[19,4776,4778],{"href":4777},"\u002Flogin","sign up here"," in seconds) and to be signed in. You also need a JavaScript project to work in. When you ",[19,4781,4782],{"href":4711},"create a project",", choose the ",[974,4785,4786],{},"JavaScript \u002F Qiskit"," framework in the create dialog. Each framework card has an ⓘ tooltip explaining the difference.",[25,4789,4791],{"id":4790},"the-four-panes","The four panes",[12,4793,4794,4795,1133,4798,4801,4802,4805,4806,4809],{},"A JavaScript project splits the editor into four panes: ",[974,4796,4797],{},"JS",[974,4799,4800],{},"HTML",", and ",[974,4803,4804],{},"CSS",", plus a live ",[974,4807,4808],{},"Preview",". Your HTML and CSS lay out the surface your results are drawn onto, and your JavaScript runs the circuit and draws onto that surface. The Preview is where the finished piece appears, the way a visitor to your project will see it.",[12,4811,4812],{},"That is the difference from the Python playground, where output lands as text and charts in a console. Here, you decide what the output looks like.",[25,4814,4816],{"id":4815},"write-a-circuit","Write a circuit",[12,4818,4819],{},"You write ordinary Qiskit, with a few conventions that come from running the Python API inside JavaScript. The three you meet first:",[753,4821,4822,4834,4845],{},[756,4823,4824,4830,4831,114],{},[974,4825,4826,4827,114],{},"No ",[57,4828,4829],{},"new"," Call the constructor directly, like Python: ",[57,4832,4833],{},"QuantumCircuit(2, 2)",[756,4835,4836,4841,4842,114],{},[974,4837,4838,4840],{},[57,4839,907],{}," is already there."," Qollab creates it for you from the QPU you pick, so you go straight to ",[57,4843,4844],{},"backend.run(...)",[756,4846,4847,4853,4854,4856],{},[974,4848,4849,4850,114],{},"Unpack results with ",[57,4851,4852],{},".toJs()"," Values come back as proxies to Python objects, and ",[57,4855,4852],{}," turns one into plain JavaScript data.",[12,4858,4859],{},"Here is a Bell state, start to finish:",[524,4861,4865],{"className":4862,"code":4863,"language":4864,"meta":529,"style":529},"language-js shiki shiki-themes one-dark-pro","import { QuantumCircuit } from 'qiskit';\n\nconst circuit = QuantumCircuit(2, 2);\ncircuit.h(0);\ncircuit.cx(0, 1);\ncircuit.measure([0, 1], [0, 1]);\n\n\u002F\u002F backend is pre-created; run() is async and returns a job\nconst job = await backend.run(circuit, { shots: 100 });\n\n\u002F\u002F Python objects come back as proxies; .toJs() unpacks them\nconst counts = (await job.result()).get_counts().toJs();\n\n\u002F\u002F Draw the result into the HTML you defined\ndocument.getElementById('out').textContent = JSON.stringify(counts);\n","js",[57,4866,4867,4886,4890,4913,4928,4947,4974,4978,4983,5018,5022,5027,5060,5064,5069],{"__ignoreMap":529},[533,4868,4869,4871,4874,4876,4879,4881,4884],{"class":535,"line":536},[533,4870,883],{"class":539},[533,4872,4873],{"class":543}," { ",[533,4875,4403],{"class":2387},[533,4877,4878],{"class":543}," } ",[533,4880,877],{"class":539},[533,4882,4883],{"class":621}," 'qiskit'",[533,4885,2415],{"class":543},[533,4887,4888],{"class":535,"line":547},[533,4889,891],{"emptyLinePlaceholder":790},[533,4891,4892,4894,4897,4900,4902,4904,4906,4908,4910],{"class":535,"line":575},[533,4893,2615],{"class":539},[533,4895,4896],{"class":2393}," circuit",[533,4898,4899],{"class":553}," =",[533,4901,1126],{"class":560},[533,4903,615],{"class":543},[533,4905,1140],{"class":625},[533,4907,1133],{"class":543},[533,4909,1140],{"class":625},[533,4911,4912],{"class":543},");\n",[533,4914,4915,4918,4920,4922,4924,4926],{"class":535,"line":590},[533,4916,4917],{"class":2393},"circuit",[533,4919,114],{"class":543},[533,4921,1148],{"class":560},[533,4923,615],{"class":543},[533,4925,1049],{"class":625},[533,4927,4912],{"class":543},[533,4929,4930,4932,4934,4937,4939,4941,4943,4945],{"class":535,"line":597},[533,4931,4917],{"class":2393},[533,4933,114],{"class":543},[533,4935,4936],{"class":560},"cx",[533,4938,615],{"class":543},[533,4940,1049],{"class":625},[533,4942,1133],{"class":543},[533,4944,1052],{"class":625},[533,4946,4912],{"class":543},[533,4948,4949,4951,4953,4955,4957,4959,4961,4963,4965,4967,4969,4971],{"class":535,"line":603},[533,4950,4917],{"class":2393},[533,4952,114],{"class":543},[533,4954,1164],{"class":560},[533,4956,3230],{"class":543},[533,4958,1049],{"class":625},[533,4960,1133],{"class":543},[533,4962,1052],{"class":625},[533,4964,3251],{"class":543},[533,4966,1049],{"class":625},[533,4968,1133],{"class":543},[533,4970,1052],{"class":625},[533,4972,4973],{"class":543},"]);\n",[533,4975,4976],{"class":535,"line":609},[533,4977,891],{"emptyLinePlaceholder":790},[533,4979,4980],{"class":535,"line":640},[533,4981,4982],{"class":593},"\u002F\u002F backend is pre-created; run() is async and returns a job\n",[533,4984,4985,4987,4990,4992,4995,4998,5000,5002,5004,5006,5009,5011,5013,5015],{"class":535,"line":646},[533,4986,2615],{"class":539},[533,4988,4989],{"class":2393}," job",[533,4991,4899],{"class":553},[533,4993,4994],{"class":539}," await",[533,4996,4997],{"class":2393}," backend",[533,4999,114],{"class":543},[533,5001,561],{"class":560},[533,5003,615],{"class":543},[533,5005,4917],{"class":2387},[533,5007,5008],{"class":543},", { ",[533,5010,269],{"class":2387},[533,5012,1389],{"class":543},[533,5014,4528],{"class":625},[533,5016,5017],{"class":543}," });\n",[533,5019,5020],{"class":535,"line":658},[533,5021,891],{"emptyLinePlaceholder":790},[533,5023,5024],{"class":535,"line":680},[533,5025,5026],{"class":593},"\u002F\u002F Python objects come back as proxies; .toJs() unpacks them\n",[533,5028,5029,5031,5033,5035,5038,5041,5043,5045,5047,5050,5052,5054,5057],{"class":535,"line":1536},[533,5030,2615],{"class":539},[533,5032,1757],{"class":2393},[533,5034,4899],{"class":553},[533,5036,5037],{"class":543}," (",[533,5039,5040],{"class":539},"await",[533,5042,4989],{"class":2393},[533,5044,114],{"class":543},[533,5046,1208],{"class":560},[533,5048,5049],{"class":543},"()).",[533,5051,1214],{"class":560},[533,5053,1211],{"class":543},[533,5055,5056],{"class":560},"toJs",[533,5058,5059],{"class":543},"();\n",[533,5061,5062],{"class":535,"line":1552},[533,5063,891],{"emptyLinePlaceholder":790},[533,5065,5066],{"class":535,"line":1911},[533,5067,5068],{"class":593},"\u002F\u002F Draw the result into the HTML you defined\n",[533,5070,5071,5074,5076,5079,5081,5084,5086,5089,5091,5094,5096,5099,5101,5103],{"class":535,"line":1940},[533,5072,5073],{"class":2393},"document",[533,5075,114],{"class":543},[533,5077,5078],{"class":560},"getElementById",[533,5080,615],{"class":543},[533,5082,5083],{"class":621},"'out'",[533,5085,1205],{"class":543},[533,5087,5088],{"class":2387},"textContent",[533,5090,4899],{"class":553},[533,5092,5093],{"class":2393}," JSON",[533,5095,114],{"class":543},[533,5097,5098],{"class":560},"stringify",[533,5100,615],{"class":543},[533,5102,1925],{"class":2387},[533,5104,4912],{"class":543},[12,5106,5107,5108,5111],{},"Give the HTML pane something to draw into, such as ",[57,5109,5110],{},"\u003Cpre id=\"out\">\u003C\u002Fpre>",", and the Preview shows your counts the moment the run finishes.",[12,5113,4657,5114,5118,5119,5122],{},[19,5115,5117],{"href":5116},"\u002Flearn\u002Fdocs\u002Fjs-qiskit-projects","JS \u002F Qiskit projects doc"," covers the rest: named arguments with ",[57,5120,5121],{},".callKwargs",", polling a job's status, and drawing the circuit itself as an image.",[25,5124,5126],{"id":5125},"run-it-and-choose-where","Run it and choose where",[12,5128,5129,5130,5132,5133,5135,5136,5139],{},"Running works the same as the Python playground. Open the runner, set your ",[974,5131,269],{},", and press ",[974,5134,4555],{}," to open the ",[974,5137,5138],{},"Select QPU"," dialog:",[753,5141,5142,5148],{},[756,5143,5144,5147],{},[974,5145,5146],{},"Simulators"," are free and run right away. Start here while you get the visuals right.",[756,5149,5150,5153,5154,5158],{},[974,5151,5152],{},"Hardware"," runs your circuit on a real ",[19,5155,5157],{"href":5156},"https:\u002F\u002Fwww.ionq.com\u002Fquantum-systems\u002Fcompare","IonQ quantum computer"," and consumes credits.",[5160,5161,5162],"aside-note",{},[12,5163,5164,5167],{},[974,5165,5166],{},"Pro tip:"," get your piece working on a free simulator first. The visuals and the wiring are identical on hardware, so once it looks right, a hardware run is the same Run button and one dialog.",[25,5169,5171],{"id":5170},"browser-compatibility","Browser compatibility",[12,5173,5174,5175,5177,5178,5181,5182,114],{},"Like the Python playground, this needs a browser with WebAssembly JSPI support, such as Chrome, Edge, or Opera. If you see a compatibility warning, switch to one of those. Firefox users can enable it from ",[57,5176,728],{}," by setting ",[57,5179,5180],{},"javascript.options.wasm_js_promise_integration"," to ",[57,5183,1089],{},[773,5185,5186],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":5188},[5189,5190,5191,5192,5193],{"id":4770,"depth":547,"text":4771},{"id":4790,"depth":547,"text":4791},{"id":4815,"depth":547,"text":4816},{"id":5125,"depth":547,"text":5126},{"id":5170,"depth":547,"text":5171},[4349,4350,4594,4745],[],{"username":1603,"name":4349,"role":4597,"avatar":529},"The JavaScript track: a four-pane editor where your JavaScript runs Qiskit and draws the results into your own HTML and CSS.","Build a visual quantum project in JavaScript on Qollab: create a JS\u002FQiskit project, run a circuit in the browser, and draw results into your own HTML.",{"image":5200,"alt":5201},"\u002F_content\u002Fimages\u002Fdocs\u002Fjs-qiskit.webp","A JavaScript project with four panes: JavaScript, HTML, CSS, and a live preview.",{},{"slug":4735,"title":5204,"desc":4727},"4 · Fork and continue a project","\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Frun-in-javascript","4 min read",[],{"title":5209,"description":5198},"Run a quantum circuit in JavaScript · Building your first Qollab project","blog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Frun-in-javascript",[],"cAgfOHHrQTNt0TuSf3HUdqrV6XJtHaN5DSKI6J1MW3s",{"id":5214,"title":5215,"authors":5216,"body":5217,"breadcrumb":7320,"builders":7322,"byline":7327,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7328,"description":7329,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7330,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":7332,"navigation":790,"newsItems":7,"next":7,"ogImage":7333,"order":7,"outcomes":7,"path":7334,"publishDate":4608,"readingTime":7335,"related":7336,"relatedProjects":7,"seo":7337,"stem":7340,"tags":7341,"track":7,"trackName":7,"__hash__":7342},"blog\u002Fblog\u002Flearn\u002Fquantum-entanglement.md","Building with Quantum Entanglement",[1037],{"type":9,"value":5218,"toc":7306},[5219,5222,5225,5228,5232,5235,5249,5252,5255,5258,5262,5265,5498,5518,5531,5541,5543,5546,5562,5586,5603,5615,5626,5629,5633,5636,5639,5645,5656,5659,5802,5805,5825,5832,5836,5839,5844,5847,5853,5856,5859,6097,6109,6131,6137,6141,6144,6146,6153,6156,6271,6274,6277,6279,6283,6286,6289,6293,6299,6302,6305,6458,6461,6463,6467,6470,6476,6479,6485,6488,6605,6620,6627,6631,6634,6640,6643,6646,6649,6652,6655,6658,6661,6794,6797,6800,6807,6811,6820,6984,6987,6990,6993,6999,7003,7006,7014,7017,7260,7268,7276,7279,7285,7289,7292,7295,7303],[12,5220,5221],{},"Entanglement is two or more qubits in one joint state that cannot be split into a separate state for each. For the pair built below, neither qubit has a definite value of its own until it is measured.",[12,5223,5224],{},"Measure both the same way and you know one result from the other straight away, however far apart they are. Nothing travels between them, and nothing can be sent this way: to see the agreement, both people still have to compare results over an ordinary channel, no faster than light.",[12,5226,5227],{},"This is not the same as two matched gloves posted in two boxes. There, each box held a definite glove all along and opening one only revealed it. An entangled pair holds no definite values before the measurement, and the answers still agree. The Bell state below shows how to tell the two apart.",[25,5229,5231],{"id":5230},"where-entanglement-came-from","Where entanglement came from",[12,5233,5234],{},"The effect was argued about for thirty years before anyone could test it.",[5236,5237],"timeline",{"l1":5238,"l2":5239,"l3":5240,"l4":5241,"l5":5242,"l6":5243,"w1":5244,"w2":5244,"w3":5245,"w4":5246,"w5":5247,"w6":5248},"Einstein, Podolsky and Rosen argue the effect means quantum theory is incomplete.","Schrödinger names it entanglement, the characteristic trait of quantum mechanics.","John Bell shows entangled particles correlate too strongly for any local hidden-variable theory.","Clauser and Freedman run the first experimental test of Bell's limit.","Aspect confirms the violation in tighter experiments.","Aspect, Clauser and Zeilinger share the Nobel Prize in Physics.","1935","1964","1972","1982","2022",[12,5250,5251],{},"Einstein called it \"spooky action at a distance\" and bet the result was carried by some hidden detail the theory had missed.",[12,5253,5254],{},"Bell turned that bet into a number: if the values were fixed in advance and nothing travelled between the particles, the correlations could not exceed a certain limit. Entangled pairs exceed it, and the last loopholes in those experiments were closed in 2015.",[12,5256,5257],{},"Einstein's kind of hidden detail, local and fixed in advance, is ruled out.",[25,5259,5261],{"id":5260},"the-smallest-one-you-can-make","The smallest one you can make",[12,5263,5264],{},"You do not need particles and a laboratory to make one. Two qubits are enough: put one into superposition with a Hadamard, then link it to the second with a CNOT. Two gates, and every project below reaches for the same pair or a close relative.",[519,5266,5268],{"name":5267,"run-href":1078,"tag":1077},"bell_state.py",[524,5269,5271],{"className":526,"code":5270,"language":528,"meta":529,"style":529},"# 'backend' is pre-created for you in the Qollab Playground.\nfrom qiskit import QuantumCircuit\n\nqc = QuantumCircuit(2, 2)\nqc.h(0)\nqc.cx(0, 1)\nqc.measure([0, 1], [0, 1])\n\njob = backend.run(qc, shots=1000)\ncounts = job.result().get_counts()\nprint(counts)\n",[57,5272,5273,5279,5291,5297,5317,5331,5349,5375,5381,5403,5423,5432],{"__ignoreMap":529},[533,5274,5275,5277],{"class":535,"line":536},[533,5276,1090],{"class":1088,"aria-hidden":1089},[533,5278,1093],{"class":593},[533,5280,5281,5283,5285,5287,5289],{"class":535,"line":547},[533,5282,1090],{"class":1088,"aria-hidden":1089},[533,5284,877],{"class":539},[533,5286,880],{"class":543},[533,5288,883],{"class":539},[533,5290,1106],{"class":543},[533,5292,5293,5295],{"class":535,"line":575},[533,5294,1090],{"class":1088,"aria-hidden":1089},[533,5296,1113],{},[533,5298,5299,5301,5303,5305,5307,5309,5311,5313,5315],{"class":535,"data-cue":1052,"line":590},[533,5300,1052],{"class":1118},[533,5302,1121],{"class":543},[533,5304,554],{"class":553},[533,5306,1126],{"class":560},[533,5308,615],{"class":543},[533,5310,1140],{"class":625},[533,5312,1133],{"class":543},[533,5314,1140],{"class":625},[533,5316,637],{"class":543},[533,5318,5319,5321,5323,5325,5327,5329],{"class":535,"data-cue":1140,"line":597},[533,5320,1140],{"class":1118},[533,5322,1145],{"class":543},[533,5324,1148],{"class":560},[533,5326,615],{"class":543},[533,5328,1049],{"class":625},[533,5330,637],{"class":543},[533,5332,5333,5335,5337,5339,5341,5343,5345,5347],{"class":535,"data-cue":1157,"line":603},[533,5334,1157],{"class":1118},[533,5336,1145],{"class":543},[533,5338,4936],{"class":560},[533,5340,615],{"class":543},[533,5342,1049],{"class":625},[533,5344,1133],{"class":543},[533,5346,1052],{"class":625},[533,5348,637],{"class":543},[533,5350,5351,5353,5355,5357,5359,5361,5363,5365,5367,5369,5371,5373],{"class":535,"data-cue":1183,"line":609},[533,5352,1183],{"class":1118},[533,5354,1145],{"class":543},[533,5356,1164],{"class":560},[533,5358,3230],{"class":543},[533,5360,1049],{"class":625},[533,5362,1133],{"class":543},[533,5364,1052],{"class":625},[533,5366,3251],{"class":543},[533,5368,1049],{"class":625},[533,5370,1133],{"class":543},[533,5372,1052],{"class":625},[533,5374,3272],{"class":543},[533,5376,5377,5379],{"class":535,"line":640},[533,5378,1090],{"class":1088,"aria-hidden":1089},[533,5380,1113],{},[533,5382,5383,5385,5387,5389,5391,5393,5395,5397,5399,5401],{"class":535,"data-cue":1220,"line":646},[533,5384,1220],{"class":1118},[533,5386,4513],{"class":543},[533,5388,554],{"class":553},[533,5390,557],{"class":543},[533,5392,561],{"class":560},[533,5394,904],{"class":543},[533,5396,269],{"class":567},[533,5398,554],{"class":553},[533,5400,1240],{"class":625},[533,5402,637],{"class":543},[533,5404,5405,5407,5410,5412,5415,5417,5419,5421],{"class":535,"data-cue":1967,"line":658},[533,5406,1967],{"class":1118},[533,5408,5409],{"class":543},"counts ",[533,5411,554],{"class":553},[533,5413,5414],{"class":543}," job.",[533,5416,1208],{"class":560},[533,5418,1211],{"class":543},[533,5420,1214],{"class":560},[533,5422,1217],{"class":543},[533,5424,5425,5427,5429],{"class":535,"line":680},[533,5426,1090],{"class":1088,"aria-hidden":1089},[533,5428,917],{"class":553},[533,5430,5431],{"class":543},"(counts)\n",[1267,5433,5434,5441,5453,5463,5475,5482],{"class":1269},[756,5435,5436,5438],{"data-cue":1052},[533,5437,1052],{"class":1118},[533,5439,5440],{"class":1276},"A circuit is a list of operations to run in order. This one asks for two qubits and two ordinary bits: the qubits do the quantum work, and the bits are storage for the answers you read out at the end.",[756,5442,5443,5445],{"data-cue":1140},[533,5444,1140],{"class":1118},[533,5446,5447,5448,354,5450,5452],{"class":1276},"A gate is one operation applied to a qubit. This is the Hadamard, applied to qubit 0, and it leaves that qubit in superposition: no fixed value, equally likely to read ",[57,5449,1049],{},[57,5451,1052],{}," once you measure it.",[756,5454,5455,5457],{"data-cue":1157},[533,5456,1157],{"class":1118},[533,5458,5459,5460,5462],{"class":1276},"The line that entangles. CNOT is a two-qubit gate: the first argument is the control, the second is the target, and it flips the target on every branch where the control reads ",[57,5461,1052],{},". Because qubit 0 has no fixed value yet, both branches survive, and the two qubits end up sharing one state.",[756,5464,5465,5467],{"data-cue":1183},[533,5466,1183],{"class":1118},[533,5468,5469,5470,354,5472,5474],{"class":1276},"Measuring is the only way to see a qubit, and it forces each one to a definite ",[57,5471,1049],{},[57,5473,1052],{},". This copies qubit 0 into bit 0 and qubit 1 into bit 1.",[756,5476,5477,5479],{"data-cue":1220},[533,5478,1220],{"class":1118},[533,5480,5481],{"class":1276},"Send the circuit to a real quantum computer, or to a simulator. One run gives one pair of bits and which pair is random, so you run it 1,000 times to see the pattern. Each run is called a shot.",[756,5483,5484,5486],{"data-cue":1967},[533,5485,1967],{"class":1118},[533,5487,5488,5489,5492,5493,5495,5496,114],{"class":1276},"Tally those 1,000 results. ",[57,5490,5491],{},"{'00': 502, '11': 498}"," means 502 runs gave both qubits ",[57,5494,1049],{},", and 498 gave both ",[57,5497,1052],{},[12,5499,5500,5503,5504,5506,5507,5509,5510,5512,5513,354,5515,5517],{},[57,5501,5502],{},"|00⟩"," means both qubits came out ",[57,5505,1049],{},". About half the shots come back ",[57,5508,1593],{}," and half ",[57,5511,1596],{},", never ",[57,5514,1575],{},[57,5516,1579],{},". Which one you get is random, but the two always agree. On real hardware a few mismatched shots appear: device noise, not the physics.",[12,5519,5520,5521,1576,5523,5525,5526,354,5528,5530],{},"Those counts alone do not prove entanglement: two gloves give the same ",[57,5522,1593],{},[57,5524,1596],{},". The difference shows if you ask a different question. A basis is the question you put to a qubit, and \"are you ",[57,5527,1049],{},[57,5529,1052],{},"\" is only one of them.",[12,5532,5533,5534,1576,5537,5540],{},"Fork the Bell state, add ",[57,5535,5536],{},"qc.h(0)",[57,5538,5539],{},"qc.h(1)"," just before the measurement, and you are asking another. The pair still agrees every time; gloves measured this way agree only half the time.",[25,5542,1608],{"id":1607},[12,5544,5545],{},"Five gates cover every excerpt on this page, and two of them are the ones you just ran. The full projects reach for a few more, mostly other rotations.",[1613,5547,5548,5556],{"token":1148,"name":1615},[12,5549,1618,5550,1621,5552,354,5554,1626],{},[57,5551,1049],{},[57,5553,1049],{},[57,5555,1052],{},[12,5557,5558,5559,5561],{},"The Hadamard is not a coin flip, though, and reversibility is what separates them. Apply a second Hadamard before measuring and the qubit reads ",[57,5560,1049],{}," every time, which no coin could do.",[1613,5563,5565,5577,5583],{"token":4936,"name":5564},"CNOT",[12,5566,5567,5568,5570,5571,5573,5574,5576],{},"A two-qubit gate. The first qubit you pass is the control and the second is the target, and it flips the target whenever the control reads ",[57,5569,1052],{},". On plain ",[57,5572,1049],{},"s and ",[57,5575,1052],{},"s that is an if-statement drawn as a circuit.",[12,5578,5579,5580,5582],{},"The CNOT becomes the entangling gate when the control has no fixed value and the target does have one. That is the Bell state: a control in superposition over a target sitting at ",[57,5581,1049],{},", so both branches survive and the pair ends up sharing one state.",[12,5584,5585],{},"Entangling is not automatic, though. Give it a target already sitting in an even split of its own and the gate can leave the pair exactly as it found it. That is the situation the Market Game runs into below.",[1613,5587,5588,5594],{"token":1652},[12,5589,1655,5590,1658,5592,114],{},[57,5591,1049],{},[57,5593,1052],{},[12,5595,1663,5596,1666,5598,1669,5600,5602],{},[57,5597,1049],{},[57,5599,1049],{},[57,5601,1052],{},", and at π\u002F2 it gives the same even split the Hadamard does. Anything in between is a bias you choose.",[1613,5604,5605,5612],{"token":1675},[12,5606,1678,5607,354,5609,5611],{},[57,5608,1049],{},[57,5610,1052],{}," on its own. The counts from a plain measurement look the same whether the coupling is there or not.",[12,5613,5614],{},"The coupling changes the relationship between the two instead, which is why Entangled Body's couplings entangle the state and still leave no trace in its results.",[1613,5616,5617,5623],{"token":1164},[12,5618,1691,5619,354,5621,1696],{},[57,5620,1049],{},[57,5622,1052],{},[12,5624,5625],{},"So a single run tells you one outcome and nothing about the odds behind it, which is why the circuits here that measure are run many times over.",[12,5627,5628],{},"The projects below each put an entangling operation to work in a different way: a game, a body, a garden, a grid of sound and a field of butterflies. Each one shows the line where the entangling happens, or where it would if you changed one thing, and all are open to fork.",[25,5630,5632],{"id":5631},"two-choices-that-stop-being-independent","Two choices that stop being independent",[12,5634,5635],{},"Two traders each pick buy or sell, and the payouts pull against each other: selling while the other buys pays the most, but if both sell they both lose money.",[12,5637,5638],{},"Classically the two decide independently. Quantum Market Game puts each decision on a qubit and lets you entangle the pair before measuring, so the choices can come out correlated instead of independent.",[2175,5640],{"alt":5641,"caption":5642,"no":529,"poster":5643,"video":5644},"Quantum Market Game running: two traders' buy and sell odds and the outcome table","Play both sides, then read who came out ahead. Press play, sound on.","\u002F_content\u002Fimages\u002Fquantum-market-game\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F38e61a99-e51d-4be0-86bf-afe6af5bdd9a",[12,5646,5647,5648,5651,5652,5655],{},"Each trader is a qubit: ",[57,5649,5650],{},"|0⟩"," means sell, ",[57,5653,5654],{},"|1⟩"," means buy. A rotation sets the odds, so a trader can be mostly buy, mostly sell, or anywhere between.",[12,5657,5658],{},"Unless a trader is set all the way to certain, both sit in superposition until the market opens, and measuring the pair is the moment each decision becomes real.",[519,5660,5663],{"name":5661,"run-href":5662,"tag":522},"simulator.py","\u002Fu\u002Fq-aad\u002Fquantum-market-game-theory-sim",[524,5664,5666],{"className":526,"code":5665,"language":528,"meta":529,"style":529},"qc = QuantumCircuit(2, 2)\nqc.ry(angle_1, 0)\nqc.ry(angle_2, 1)\nif entanglement:\n    qc.cx(0, 1)\nqc.measure([0, 1], [0, 1])\n",[57,5667,5668,5688,5703,5718,5728,5746,5772],{"__ignoreMap":529},[533,5669,5670,5672,5674,5676,5678,5680,5682,5684,5686],{"class":535,"line":536},[533,5671,1090],{"class":1088,"aria-hidden":1089},[533,5673,1121],{"class":543},[533,5675,554],{"class":553},[533,5677,1126],{"class":560},[533,5679,615],{"class":543},[533,5681,1140],{"class":625},[533,5683,1133],{"class":543},[533,5685,1140],{"class":625},[533,5687,637],{"class":543},[533,5689,5690,5692,5694,5696,5699,5701],{"class":535,"data-cue":1052,"line":547},[533,5691,1052],{"class":1118},[533,5693,1145],{"class":543},[533,5695,1652],{"class":560},[533,5697,5698],{"class":543},"(angle_1, ",[533,5700,1049],{"class":625},[533,5702,637],{"class":543},[533,5704,5705,5707,5709,5711,5714,5716],{"class":535,"line":575},[533,5706,1090],{"class":1088,"aria-hidden":1089},[533,5708,1145],{"class":543},[533,5710,1652],{"class":560},[533,5712,5713],{"class":543},"(angle_2, ",[533,5715,1052],{"class":625},[533,5717,637],{"class":543},[533,5719,5720,5722,5725],{"class":535,"data-cue":1140,"line":590},[533,5721,1140],{"class":1118},[533,5723,5724],{"class":539},"if",[533,5726,5727],{"class":543}," entanglement:\n",[533,5729,5730,5732,5734,5736,5738,5740,5742,5744],{"class":535,"data-cue":1157,"line":597},[533,5731,1157],{"class":1118},[533,5733,1799],{"class":543},[533,5735,4936],{"class":560},[533,5737,615],{"class":543},[533,5739,1049],{"class":625},[533,5741,1133],{"class":543},[533,5743,1052],{"class":625},[533,5745,637],{"class":543},[533,5747,5748,5750,5752,5754,5756,5758,5760,5762,5764,5766,5768,5770],{"class":535,"line":603},[533,5749,1090],{"class":1088,"aria-hidden":1089},[533,5751,1145],{"class":543},[533,5753,1164],{"class":560},[533,5755,3230],{"class":543},[533,5757,1049],{"class":625},[533,5759,1133],{"class":543},[533,5761,1052],{"class":625},[533,5763,3251],{"class":543},[533,5765,1049],{"class":625},[533,5767,1133],{"class":543},[533,5769,1052],{"class":625},[533,5771,3272],{"class":543},[1267,5773,5774,5784,5791],{"class":1269},[756,5775,5776,5778],{"data-cue":1052},[533,5777,1052],{"class":1118},[533,5779,5780,5781,5783],{"class":1276},"The angle sets this trader's odds, and it comes before the qubit. At ",[57,5782,1049],{}," they are certain to sell, at π certain to buy, at π\u002F2 the even 50\u002F50 the Hadamard makes. In between it is not linear: the chance of buying is sin²(angle\u002F2).",[756,5785,5786,5788],{"data-cue":1140},[533,5787,1140],{"class":1118},[533,5789,5790],{"class":1276},"Every bit of correlation in the game hangs on one optional line. With the flag off the two qubits stay independent and the round is ordinary game theory played with random draws.",[756,5792,5793,5795],{"data-cue":1157},[533,5794,1157],{"class":1118},[533,5796,5797,5798,5801],{"class":1276},"The same CNOT as the Bell state, and at the shipped defaults it does essentially nothing: two qubits both at π\u002F2 are one of the inputs a CNOT leaves unchanged, and ",[57,5799,5800],{},"1.5707"," is π\u002F2 to four places.",[12,5803,5804],{},"The game shows one basis only, buy or sell, and a table of correlated outcomes can always be reproduced by classical shared randomness, so this is not a Bell test. What you can see is the payoff shifting when the correlation switches on.",[12,5806,5807,5808,5811,5812,5181,5815,5817,5818,5820,5821,5824],{},"Set ",[57,5809,5810],{},"angle_1"," to π\u002F2 and ",[57,5813,5814],{},"angle_2",[57,5816,1049],{},", which is where the ",[19,5819,5564],{"href":2186}," does bite, then run with ",[57,5822,5823],{},"entanglement"," off and on. Same angles, different payoff table, and with it on the pair is a Bell state you could test in a second basis.",[1599,5826],{"builder":5827,"description":5828,"framework":1602,"owner":5829,"title":5830,"to":5662,"thumb":5831},"Aadarsh Venkat Ramanan","The project is a twist on a classical game theory scenario: Prisoner's Dilemma.","q-aad","Quantum Market Game","\u002F_content\u002Fimages\u002Fquantum-market-game\u002Fscreenshot.webp",[25,5833,5835],{"id":5834},"neither-half-has-a-state-of-its-own","Neither half has a state of its own",[12,5837,5838],{},"Put each qubit of a maximally entangled pair on its own Bloch sphere and the arrow that normally marks its state shrinks to the centre. A lone qubit points somewhere; each half of a Bell pair points nowhere.",[2175,5840],{"alt":5841,"caption":5842,"no":529,"src":5843},"A single qubit has a Bloch vector reaching the sphere surface; after entangling, each qubit of the pair has only a dot at the centre","Bloch spheres of one qubit (left) and of each qubit of a Bell pair (right). The pair's arrows have zero length: there is no local direction left to draw.","\u002F_content\u002Fimages\u002Fentanglement\u002Ftwo-bloch-collapse.svg",[12,5845,5846],{},"A pure two-qubit state is a list of four numbers, easy to write down and hard to picture. Entanglement makes it harder, because the interesting part is exactly what you cannot see by looking at either qubit alone. You can know the pair completely and still know nothing about each half.",[12,5848,5849,5850,5852],{},"Onri Benally's visualiser draws the same pictures for two states, the plain ",[57,5851,5502],{}," product state and a Bell pair, so you can put them side by side.",[12,5854,5855],{},"The visualiser builds its Bell pair from the same two gates as the Bell state above, then adds a couple of single-qubit turns that leave the entanglement untouched.",[12,5857,5858],{},"Each state goes to a set of plotting functions. The excerpt is the opening of one of them, the steering-ellipsoid plot, which is where the three parts of the state get computed.",[519,5860,5863],{"name":5861,"run-href":5862,"tag":522},"plot_steering_ellipsoid()","\u002Fu\u002Fonri-jay-benally\u002F2-qubit-state-visualization",[524,5864,5866],{"className":526,"code":5865,"language":528,"meta":529,"style":529},"    rho = state.data\n    # Calculate Bloch vectors and correlation tensor\n    a = np.array([np.trace(rho @ np.kron(s, np.eye(2))).real for s in pauli_matrices])\n    b = np.array([np.trace(rho @ np.kron(np.eye(2), s)).real for s in pauli_matrices])\n    T = np.array([[np.trace(rho @ np.kron(si, sj)).real for sj in pauli_matrices] for si in pauli_matrices])\n",[57,5867,5868,5880,5887,5940,5985,6033],{"__ignoreMap":529},[533,5869,5870,5872,5875,5877],{"class":535,"data-cue":1052,"line":536},[533,5871,1052],{"class":1118},[533,5873,5874],{"class":543},"    rho ",[533,5876,554],{"class":553},[533,5878,5879],{"class":543}," state.data\n",[533,5881,5882,5884],{"class":535,"line":547},[533,5883,1090],{"class":1088,"aria-hidden":1089},[533,5885,5886],{"class":593},"    # Calculate Bloch vectors and correlation tensor\n",[533,5888,5889,5891,5894,5896,5898,5900,5903,5906,5909,5912,5914,5917,5920,5923,5925,5927,5930,5932,5935,5937],{"class":535,"data-cue":1140,"line":575},[533,5890,1140],{"class":1118},[533,5892,5893],{"class":543},"    a ",[533,5895,554],{"class":553},[533,5897,2911],{"class":543},[533,5899,2914],{"class":560},[533,5901,5902],{"class":543},"([np.",[533,5904,5905],{"class":560},"trace",[533,5907,5908],{"class":543},"(rho ",[533,5910,5911],{"class":553},"@",[533,5913,2911],{"class":543},[533,5915,5916],{"class":560},"kron",[533,5918,5919],{"class":543},"(s, np.",[533,5921,5922],{"class":560},"eye",[533,5924,615],{"class":543},[533,5926,1140],{"class":625},[533,5928,5929],{"class":543},"))).real ",[533,5931,3180],{"class":539},[533,5933,5934],{"class":543}," s ",[533,5936,2786],{"class":539},[533,5938,5939],{"class":543}," pauli_matrices])\n",[533,5941,5942,5944,5947,5949,5951,5953,5955,5957,5959,5961,5963,5965,5968,5970,5972,5974,5977,5979,5981,5983],{"class":535,"data-cue":1157,"line":590},[533,5943,1157],{"class":1118},[533,5945,5946],{"class":543},"    b ",[533,5948,554],{"class":553},[533,5950,2911],{"class":543},[533,5952,2914],{"class":560},[533,5954,5902],{"class":543},[533,5956,5905],{"class":560},[533,5958,5908],{"class":543},[533,5960,5911],{"class":553},[533,5962,2911],{"class":543},[533,5964,5916],{"class":560},[533,5966,5967],{"class":543},"(np.",[533,5969,5922],{"class":560},[533,5971,615],{"class":543},[533,5973,1140],{"class":625},[533,5975,5976],{"class":543},"), s)).real ",[533,5978,3180],{"class":539},[533,5980,5934],{"class":543},[533,5982,2786],{"class":539},[533,5984,5939],{"class":543},[533,5986,5987,5989,5992,5994,5996,5998,6001,6003,6005,6007,6009,6011,6014,6016,6019,6021,6024,6026,6029,6031],{"class":535,"data-cue":1183,"line":597},[533,5988,1183],{"class":1118},[533,5990,5991],{"class":543},"    T ",[533,5993,554],{"class":553},[533,5995,2911],{"class":543},[533,5997,2914],{"class":560},[533,5999,6000],{"class":543},"([[np.",[533,6002,5905],{"class":560},[533,6004,5908],{"class":543},[533,6006,5911],{"class":553},[533,6008,2911],{"class":543},[533,6010,5916],{"class":560},[533,6012,6013],{"class":543},"(si, sj)).real ",[533,6015,3180],{"class":539},[533,6017,6018],{"class":543}," sj ",[533,6020,2786],{"class":539},[533,6022,6023],{"class":543}," pauli_matrices] ",[533,6025,3180],{"class":539},[533,6027,6028],{"class":543}," si ",[533,6030,2786],{"class":539},[533,6032,5939],{"class":543},[1267,6034,6035,6045,6062,6069],{"class":1269},[756,6036,6037,6039],{"data-cue":1052},[533,6038,1052],{"class":1118},[533,6040,6041,6042,6044],{"class":1276},"The density matrix: a 4 by 4 grid of numbers holding everything there is to know about the two qubits together. ",[57,6043,2394],{}," is whichever of the two states the visualiser was handed.",[756,6046,6047,6049],{"data-cue":1140},[533,6048,1140],{"class":1118},[533,6050,6051,6052,6055,6056,6059,6060,114],{"class":1276},"Qubit A on its own. ",[57,6053,6054],{},"np.kron"," pastes two small matrices into one that acts on A and leaves B alone, and the trace against ",[57,6057,6058],{},"rho"," turns that into a single number. Three axes, three numbers, and for a Bell pair all three are ",[57,6061,1049],{},[756,6063,6064,6066],{"data-cue":1157},[533,6065,1157],{"class":1118},[533,6067,6068],{"class":1276},"The same three numbers for qubit B, and also all zeros. Neither qubit points anywhere by itself.",[756,6070,6071,6073],{"data-cue":1183},[533,6072,1183],{"class":1118},[533,6074,6075,6076,6078,6079,6081,6082,1576,6084,6087,6088,6091,6092,6094,6095,114],{"class":1276},"Now both qubits at once: nine numbers, one for each pair of axes. On their own they do not prove anything, since a plain ",[57,6077,5502],{}," has a ",[57,6080,1052],{}," in there too. What matters is that for the Bell pair they survive while ",[57,6083,19],{},[57,6085,6086],{},"b"," go to zero, so ",[57,6089,6090],{},"T"," can no longer be ",[57,6093,19],{}," times ",[57,6096,6086],{},[12,6098,6099,6100,6102,6103,6105,6106,6108],{},"Fork it and print all three for ",[57,6101,5502],{},", then for the Bell pair. Both have entries in ",[57,6104,6090],{},", so a filled-in ",[57,6107,6090],{}," proves nothing by itself.",[12,6110,6111,6112,6114,6115,6117,6118,6094,6120,6122,6123,1576,6125,6127,6128,6130],{},"The difference is what ",[57,6113,6090],{}," is made of. For ",[57,6116,5502],{}," it is exactly ",[57,6119,19],{},[57,6121,6086],{},", the correlations two qubits that each point somewhere would give you anyway. For the Bell pair ",[57,6124,19],{},[57,6126,6086],{}," are zero and ",[57,6129,6090],{}," is not, so no pair of individual directions can account for it.",[1599,6132],{"builder":6133,"description":6134,"framework":1602,"owner":6135,"title":6136,"to":5862},"Onri Jay Benally","One entangled state, eight ways to see it.","onri-jay-benally","2-qubit states, visualized 8 ways",[25,6138,6140],{"id":6139},"entangled-and-invisible-in-the-counts","Entangled, and invisible in the counts",[12,6142,6143],{},"Entangled Body is a 3D human figure whose regions are qubits, linked by entangling gates that follow the body's own map: strong between head and chest, absent between distant limbs.",[2175,6145],{"alt":2177,"caption":2178,"no":529,"poster":2179,"video":2180},[12,6147,6148,6149,6152],{},"Fourteen regions map to fourteen qubits. A touch sets each region's rotation by its distance from the touched one. The anatomical links nearest that region then get an ",[19,6150,6151],{"href":2186},"Rzz"," coupling, eight of them on a hover and all seventeen on a click.",[12,6154,6155],{},"The ripple you see when you touch a region comes from those rotations: nearer regions are more likely to light up. The Rzz couplings entangle the state, but the circuit measures straight in the Z basis, and Rzz only changes phases, so the couplings leave no trace in the counts.",[519,6157,6158],{"name":2191,"run-href":692,"tag":522},[524,6159,6161],{"className":526,"code":6160,"language":528,"meta":529,"style":529},"for src, tgt, strength in _ranked_links(distances, interaction):\n    s = max(0.05, min(1.0, strength))\n    ops.append((\"rzz\", QUBIT_OF[src], QUBIT_OF[tgt], _edge_angle(s, interaction)))\n",[57,6162,6163,6180,6207,6242],{"__ignoreMap":529},[533,6164,6165,6167,6169,6172,6174,6177],{"class":535,"data-cue":1052,"line":536},[533,6166,1052],{"class":1118},[533,6168,3180],{"class":539},[533,6170,6171],{"class":543}," src, tgt, strength ",[533,6173,2786],{"class":539},[533,6175,6176],{"class":560}," _ranked_links",[533,6178,6179],{"class":543},"(distances, interaction):\n",[533,6181,6182,6184,6187,6189,6191,6193,6196,6198,6200,6202,6204],{"class":535,"data-cue":1140,"line":547},[533,6183,1140],{"class":1118},[533,6185,6186],{"class":543},"    s ",[533,6188,554],{"class":553},[533,6190,2224],{"class":553},[533,6192,615],{"class":543},[533,6194,6195],{"class":625},"0.05",[533,6197,1133],{"class":543},[533,6199,2234],{"class":553},[533,6201,615],{"class":543},[533,6203,2239],{"class":625},[533,6205,6206],{"class":543},", strength))\n",[533,6208,6209,6211,6214,6217,6220,6223,6225,6228,6231,6233,6236,6239],{"class":535,"data-cue":1157,"line":575},[533,6210,1157],{"class":1118},[533,6212,6213],{"class":543},"    ops.",[533,6215,6216],{"class":560},"append",[533,6218,6219],{"class":543},"((",[533,6221,6222],{"class":621},"\"rzz\"",[533,6224,1133],{"class":543},[533,6226,6227],{"class":625},"QUBIT_OF",[533,6229,6230],{"class":543},"[src], ",[533,6232,6227],{"class":625},[533,6234,6235],{"class":543},"[tgt], ",[533,6237,6238],{"class":560},"_edge_angle",[533,6240,6241],{"class":543},"(s, interaction)))\n",[1267,6243,6244,6251,6258],{"class":1269},[756,6245,6246,6248],{"data-cue":1052},[533,6247,1052],{"class":1118},[533,6249,6250],{"class":1276},"Walk the seventeen anatomical links the piece defines, ordered by how close each one sits to the region you touched. A hover takes only the nearest eight; a click or a hold takes all seventeen.",[756,6252,6253,6255],{"data-cue":1140},[533,6254,1140],{"class":1118},[533,6256,6257],{"class":1276},"Hold that strength inside 0.05 to 1 before it becomes an angle, so the faintest link still couples a little and the strongest is capped.",[756,6259,6260,6262],{"data-cue":1157},[533,6261,1157],{"class":1118},[533,6263,6264,6265,6267,6268,6270],{"class":1276},"The entangling line. ",[57,6266,6238],{}," turns the link strength into the Rzz angle, and ",[57,6269,6227],{}," looks up which qubit a body region is. The circuit is collected as a list of operations rather than built by calling gate methods.",[12,6272,6273],{},"To make the couplings visible, fork it and add a Hadamard on every region before the measurement. The couplings then reach the counts instead of hiding in the phases.",[12,6275,6276],{},"Look for it on the linked pairs a touch actually selected. The region you touched is prepared close to certain, and a network of edges does not respond one edge at a time. It will not light up everywhere at once.",[1599,6278],{"builder":2331,"description":2328,"framework":1602,"owner":2329,"title":2330,"to":692,"thumb":2332},[25,6280,6282],{"id":6281},"one-draw-instead-of-five-separate-rolls","One draw instead of five separate rolls",[12,6284,6285],{},"Quantum Garden grows its plants from real quantum measurements. The circuit below is the one its rarest plants use, and it entangles five qubits so a plant's traits come out correlated rather than as five independent rolls.",[12,6287,6288],{},"The garden also mirrors traits between plants in the same entanglement group, wherever they stand. That link is bookkeeping rather than physics: the groups are stored alongside the results, and no gate in this circuit reaches another plant.",[2175,6290],{"alt":6291,"caption":6292,"no":529,"src":3107},"Quantum Garden, a generative garden whose plants come from real quantum hardware","Every plant is grown from a real quantum measurement.",[12,6294,6295,6296,6298],{},"The circuit has six layers. A ",[19,6297,1615],{"href":2186}," on every qubit opens all thirty-two outcomes, seed-based rotations bias each qubit toward the plant's own tendencies, and a chain of CNOTs ties neighbours together.",[12,6300,6301],{},"Phase rotations add interference, a second set of CNOTs couples qubits across the chain, and a last round of rotations sets the final state before measurement. Five measured bits come out, and every trait the plant shows is read off them.",[12,6303,6304],{},"None of that runs while you watch. The circuit went to IonQ ahead of time and its results sit in a pool of 500. Hovering a plant assigns it one and fixes its traits from then on, group and all.",[519,6306,6307],{"name":3113,"run-href":515,"tag":522},[524,6308,6310],{"className":526,"code":6309,"language":528,"meta":529,"style":529},"# Layer 3: Linear entanglement chain — correlates neighboring qubits\nfor i in range(4):\n    circuit.cx(i, i + 1)\n\n# Layer 4: Seed-based Rz phases — creates interference patterns\n# ...\n\n# Layer 5: Cross-entanglement — non-local correlations across the circuit\ncircuit.cx(0, 2)\ncircuit.cx(1, 3)\ncircuit.cx(2, 4)\n",[57,6311,6312,6319,6337,6356,6362,6369,6375,6381,6388,6406,6424,6442],{"__ignoreMap":529},[533,6313,6314,6316],{"class":535,"line":536},[533,6315,1090],{"class":1088,"aria-hidden":1089},[533,6317,6318],{"class":593},"# Layer 3: Linear entanglement chain — correlates neighboring qubits\n",[533,6320,6321,6323,6325,6327,6329,6331,6333,6335],{"class":535,"line":547},[533,6322,1090],{"class":1088,"aria-hidden":1089},[533,6324,3180],{"class":539},[533,6326,2971],{"class":543},[533,6328,2786],{"class":539},[533,6330,2976],{"class":553},[533,6332,615],{"class":543},[533,6334,1183],{"class":625},[533,6336,1771],{"class":543},[533,6338,6339,6341,6343,6345,6348,6351,6354],{"class":535,"data-cue":1052,"line":575},[533,6340,1052],{"class":1118},[533,6342,3199],{"class":543},[533,6344,4936],{"class":560},[533,6346,6347],{"class":543},"(i, i ",[533,6349,6350],{"class":553},"+",[533,6352,6353],{"class":625}," 1",[533,6355,637],{"class":543},[533,6357,6358,6360],{"class":535,"line":590},[533,6359,1090],{"class":1088,"aria-hidden":1089},[533,6361,1113],{},[533,6363,6364,6366],{"class":535,"line":597},[533,6365,1090],{"class":1088,"aria-hidden":1089},[533,6367,6368],{"class":593},"# Layer 4: Seed-based Rz phases — creates interference patterns\n",[533,6370,6371,6373],{"class":535,"line":603},[533,6372,1090],{"class":1088,"aria-hidden":1089},[533,6374,3211],{"class":593},[533,6376,6377,6379],{"class":535,"line":609},[533,6378,1090],{"class":1088,"aria-hidden":1089},[533,6380,1113],{},[533,6382,6383,6385],{"class":535,"line":640},[533,6384,1090],{"class":1088,"aria-hidden":1089},[533,6386,6387],{"class":593},"# Layer 5: Cross-entanglement — non-local correlations across the circuit\n",[533,6389,6390,6392,6394,6396,6398,6400,6402,6404],{"class":535,"line":646},[533,6391,1090],{"class":1088,"aria-hidden":1089},[533,6393,3225],{"class":543},[533,6395,4936],{"class":560},[533,6397,615],{"class":543},[533,6399,1049],{"class":625},[533,6401,1133],{"class":543},[533,6403,1140],{"class":625},[533,6405,637],{"class":543},[533,6407,6408,6410,6412,6414,6416,6418,6420,6422],{"class":535,"line":658},[533,6409,1090],{"class":1088,"aria-hidden":1089},[533,6411,3225],{"class":543},[533,6413,4936],{"class":560},[533,6415,615],{"class":543},[533,6417,1052],{"class":625},[533,6419,1133],{"class":543},[533,6421,1157],{"class":625},[533,6423,637],{"class":543},[533,6425,6426,6428,6430,6432,6434,6436,6438,6440],{"class":535,"data-cue":1140,"line":680},[533,6427,1140],{"class":1118},[533,6429,3225],{"class":543},[533,6431,4936],{"class":560},[533,6433,615],{"class":543},[533,6435,1140],{"class":625},[533,6437,1133],{"class":543},[533,6439,1183],{"class":625},[533,6441,637],{"class":543},[1267,6443,6444,6451],{"class":1269},[756,6445,6446,6448],{"data-cue":1052},[533,6447,1052],{"class":1118},[533,6449,6450],{"class":1276},"Four CNOTs in a row: 0 to 1, 1 to 2, 2 to 3, 3 to 4. Each ties a qubit to its neighbour, so the five bits stop being five independent coin flips.",[756,6452,6453,6455],{"data-cue":1140},[533,6454,1140],{"class":1118},[533,6456,6457],{"class":1276},"Three more that skip a neighbour. The chain already carried correlation past adjacent pairs, so these add direct long-range couplings rather than creating the first ones.",[12,6459,6460],{},"Fork the plant circuit and delete the three cross-chain CNOTs. The neighbour chain still entangles the qubits, but the output distribution changes. Run the same seed both ways and compare which pairs of bits still move together, or compute each pair's mutual information to put a number on it.",[1599,6462],{"builder":3312,"description":3310,"framework":1602,"owner":3311,"title":516,"to":515,"thumb":3107},[25,6464,6466],{"id":6465},"entanglement-that-does-not-stay-in-its-cell","Entanglement that does not stay in its cell",[12,6468,6469],{},"Quantum Patterns runs a grid of cells and updates every one with the same small circuit. The cells overlap from step to step, so whatever that circuit does to its two qubits does not stay in one cell. Entangle them and the correlation walks across the grid.",[2175,6471],{"alt":6472,"caption":6473,"no":529,"poster":6474,"video":6475},"The Satori live-coding environment: a quantum cellular automaton beside its musical script","A cell circuit applied across the grid, and the grid driving the music. Press play.","\u002F_content\u002Fimages\u002Fquantum-patterns\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002Fef35c47f-a7cc-4dae-9613-64db0498c750",[12,6477,6478],{},"The rule is a partitioned quantum cellular automaton. The grid is cut into two-qubit cells. Two tessellations, offset by one qubit, alternate each step, so a cell's right qubit is the next cell's left qubit a step later.",[12,6480,6481,6482,6484],{},"The quickstart's cell circuit is a single ",[19,6483,5564],{"href":2186}," on a grid that starts with one excitation at the left edge. On its own that is a classical, reversible rule: it moves bits around and creates neither superposition nor entanglement. Treat it as the baseline.",[12,6486,6487],{},"Entanglement enters when the cell puts its control qubit into superposition before the CNOT. Superposition alone is not enough: a Hadamard on the target leaves the two qubits as independent as it found them.",[519,6489,6492],{"name":6490,"run-href":6491,"tag":522},"pqca_quickstart.py","\u002Fu\u002Fcephasteom\u002Fquantum-patterns",[524,6493,6495],{"className":526,"code":6494,"language":528,"meta":529,"style":529},"# The circuit applied to every cell. Here: a single CX on 2 qubits.\ncell = qiskit.QuantumCircuit(CELL_SIZE)\ncell.cx(0, 1)\n# Two offset tessellations make the update couple across cell borders.\ntes = pqca.tessellation.one_dimensional(NUM_QUBITS, CELL_SIZE)\n",[57,6496,6497,6504,6525,6544,6551,6577],{"__ignoreMap":529},[533,6498,6499,6501],{"class":535,"line":536},[533,6500,1090],{"class":1088,"aria-hidden":1089},[533,6502,6503],{"class":593},"# The circuit applied to every cell. Here: a single CX on 2 qubits.\n",[533,6505,6506,6508,6511,6513,6516,6518,6520,6523],{"class":535,"data-cue":1052,"line":547},[533,6507,1052],{"class":1118},[533,6509,6510],{"class":543},"cell ",[533,6512,554],{"class":553},[533,6514,6515],{"class":543}," qiskit.",[533,6517,4403],{"class":560},[533,6519,615],{"class":543},[533,6521,6522],{"class":625},"CELL_SIZE",[533,6524,637],{"class":543},[533,6526,6527,6529,6532,6534,6536,6538,6540,6542],{"class":535,"data-cue":1140,"line":575},[533,6528,1140],{"class":1118},[533,6530,6531],{"class":543},"cell.",[533,6533,4936],{"class":560},[533,6535,615],{"class":543},[533,6537,1049],{"class":625},[533,6539,1133],{"class":543},[533,6541,1052],{"class":625},[533,6543,637],{"class":543},[533,6545,6546,6548],{"class":535,"line":590},[533,6547,1090],{"class":1088,"aria-hidden":1089},[533,6549,6550],{"class":593},"# Two offset tessellations make the update couple across cell borders.\n",[533,6552,6553,6555,6558,6560,6563,6566,6568,6571,6573,6575],{"class":535,"data-cue":1157,"line":597},[533,6554,1157],{"class":1118},[533,6556,6557],{"class":543},"tes ",[533,6559,554],{"class":553},[533,6561,6562],{"class":543}," pqca.tessellation.",[533,6564,6565],{"class":560},"one_dimensional",[533,6567,615],{"class":543},[533,6569,6570],{"class":625},"NUM_QUBITS",[533,6572,1133],{"class":543},[533,6574,6522],{"class":625},[533,6576,637],{"class":543},[1267,6578,6579,6586,6598],{"class":1269},[756,6580,6581,6583],{"data-cue":1052},[533,6582,1052],{"class":1118},[533,6584,6585],{"class":1276},"The rule: one small circuit, applied to every cell of the grid on every step.",[756,6587,6588,6590],{"data-cue":1140},[533,6589,1140],{"class":1118},[533,6591,6592,6593,5573,6595,6597],{"class":1276},"A single CNOT. On plain ",[57,6594,1049],{},[57,6596,1052],{},"s that only shuffles bits around, which makes this the classical baseline: no superposition, no entanglement. Put a Hadamard in front of it and the same rule starts spreading entanglement instead.",[756,6599,6600,6602],{"data-cue":1157},[533,6601,1157],{"class":1118},[533,6603,6604],{"class":1276},"How the grid gets cut into cells. Two cuts offset by one qubit take turns, so a cell's right qubit is the next cell's left qubit on the following step, and whatever the rule does travels along the grid.",[12,6606,6607,6608,6611,6612,6615,6616,6619],{},"Fork it and put ",[57,6609,6610],{},"cell.h(0)"," in front of ",[57,6613,6614],{},"cell.cx(0, 1)",". One gate is enough to make the rule quantum: each step now creates superposition and the CNOT entangles it across the cell border. Raise ",[57,6617,6618],{},"STEPS"," and watch how far the correlation has travelled by the end.",[1599,6621],{"builder":6622,"description":6623,"framework":1602,"owner":6624,"title":6625,"to":6491,"thumb":6626},"Peter Thomas & Paulo Itaboraí","Quantum Patterns explores Partitioned Quantum Cellular Automata (PQCA) as the basis for live-coded musical composition.","cephasteom","Quantum Patterns","\u002F_content\u002Fimages\u002Fquantum-patterns\u002Fscreenshot.webp",[25,6628,6630],{"id":6629},"information-that-no-longer-lives-in-one-qubit","Information that no longer lives in one qubit",[12,6632,6633],{},"Quantum Butterfly Field scrambles five qubits together with random entangling gates until the state is spread across all of them, then damages one qubit. Running the scramble backwards recovers much of what that qubit held.",[2175,6635],{"alt":6636,"caption":6637,"no":529,"poster":6638,"video":6639},"Quantum Butterfly Field: five butterflies as five qubits in one entangled field","Five qubits scramble into one field; a damaged one is repaired from the rest. Press play.","\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F3768811c-0ddc-4ad3-b2cd-416c8cebee9c",[12,6641,6642],{},"Five butterflies are five qubits. Each layer rotates every qubit by a random angle and then entangles two random pairs, and three layers are enough to dissolve the butterflies' separate identities into one field. Then one butterfly is damaged: an extra qubit is coupled into it, which severs its correlations with the rest.",[12,6644,6645],{},"In a classical chaotic system that damage would be permanent: small damage cascades, the butterfly effect. Once information is scrambled deeply enough across an entangled system, it no longer lives in any single qubit but in the correlations between them.",[12,6647,6648],{},"So running the scramble backwards can pull much of the damaged qubit back out of the field it was spread into.",[12,6650,6651],{},"Partly, not perfectly: on an exact simulation the repaired qubit matches what it started as about 83% of the time. Yan and Sinitsyn showed this in 2020, in a paper on recovering damaged information, and it is known as the quantum anti-butterfly effect.",[12,6653,6654],{},"Xinyi Zhang pairs the physics with lōkahi, the Native Hawaiian idea of wholeness through relationship.",[12,6656,6657],{},"What the project reports is worth reading closely. The score is built from the length of the repaired qubit's Bloch vector, so it measures how sharply defined that qubit ended up.",[12,6659,6660],{},"The score does not measure whether the qubit came back as the state it started in, and a confidently wrong answer scores as well as a right one.",[519,6662,6665],{"name":6663,"run-href":6664,"tag":522},"qbf_protocol.py","\u002Fu\u002Fxinyi\u002Fquantum-butterfly-field",[524,6666,6668],{"className":526,"code":6667,"language":528,"meta":529,"style":529},"# Random disjoint CX pairs: shuffle all qubits, pair them up.\nqubits = list(range(n_qubits))\nrng.shuffle(qubits)\nfor i in range(0, n_qubits - 1, 2):\n    layer.append(('cx', int(qubits[i]), int(qubits[i + 1])))\n",[57,6669,6670,6677,6696,6709,6738,6771],{"__ignoreMap":529},[533,6671,6672,6674],{"class":535,"line":536},[533,6673,1090],{"class":1088,"aria-hidden":1089},[533,6675,6676],{"class":593},"# Random disjoint CX pairs: shuffle all qubits, pair them up.\n",[533,6678,6679,6681,6684,6686,6688,6690,6693],{"class":535,"line":547},[533,6680,1090],{"class":1088,"aria-hidden":1089},[533,6682,6683],{"class":543},"qubits ",[533,6685,554],{"class":553},[533,6687,2891],{"class":553},[533,6689,615],{"class":543},[533,6691,6692],{"class":553},"range",[533,6694,6695],{"class":543},"(n_qubits))\n",[533,6697,6698,6700,6703,6706],{"class":535,"data-cue":1052,"line":575},[533,6699,1052],{"class":1118},[533,6701,6702],{"class":543},"rng.",[533,6704,6705],{"class":560},"shuffle",[533,6707,6708],{"class":543},"(qubits)\n",[533,6710,6711,6713,6715,6717,6719,6721,6723,6725,6728,6730,6732,6734,6736],{"class":535,"data-cue":1140,"line":590},[533,6712,1140],{"class":1118},[533,6714,3180],{"class":539},[533,6716,2971],{"class":543},[533,6718,2786],{"class":539},[533,6720,2976],{"class":553},[533,6722,615],{"class":543},[533,6724,1049],{"class":625},[533,6726,6727],{"class":543},", n_qubits ",[533,6729,2514],{"class":553},[533,6731,6353],{"class":625},[533,6733,1133],{"class":543},[533,6735,1140],{"class":625},[533,6737,1771],{"class":543},[533,6739,6740,6742,6745,6747,6749,6752,6754,6756,6759,6761,6764,6766,6768],{"class":535,"data-cue":1157,"line":597},[533,6741,1157],{"class":1118},[533,6743,6744],{"class":543},"    layer.",[533,6746,6216],{"class":560},[533,6748,6219],{"class":543},[533,6750,6751],{"class":621},"'cx'",[533,6753,1133],{"class":543},[533,6755,4175],{"class":553},[533,6757,6758],{"class":543},"(qubits[i]), ",[533,6760,4175],{"class":553},[533,6762,6763],{"class":543},"(qubits[i ",[533,6765,6350],{"class":553},[533,6767,6353],{"class":625},[533,6769,6770],{"class":543},"])))\n",[1267,6772,6773,6780,6787],{"class":1269},[756,6774,6775,6777],{"data-cue":1052},[533,6776,1052],{"class":1118},[533,6778,6779],{"class":1276},"Shuffle the five qubits into a random order, so each layer draws its own pairing rather than reusing one.",[756,6781,6782,6784],{"data-cue":1140},[533,6783,1140],{"class":1118},[533,6785,6786],{"class":1276},"Step through them two at a time. Five qubits gives two pairs, with one left out of this layer.",[756,6788,6789,6791],{"data-cue":1157},[533,6790,1157],{"class":1118},[533,6792,6793],{"class":1276},"One CNOT per pair. Stack the three layers the project ships and no qubit is left holding a state of its own: what the field knows has moved into the correlations between them.",[12,6795,6796],{},"Fork it and set the layer count to one, then two, then three.",[12,6798,6799],{},"The score does not climb steadily: on an exact simulation it lands near 0.79, 0.67 and 0.79. To ask the sharper question, compare the repaired qubit against the state it was prepared in rather than against its own sharpness.",[1599,6801],{"builder":6802,"description":6803,"framework":1602,"owner":6804,"title":6805,"to":6664,"thumb":6806},"Xinyi Zhang","Quantum Butterfly Field is an interactive artwork bridging quantum computing concepts with indigenous epistemologies to explore repair and resilience in an interconnected world.","xinyi","Quantum Butterfly Field","\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Fscreenshot.webp",[25,6808,6810],{"id":6809},"more-than-two-qubits","More than two qubits",[12,6812,6813,6814,6816,6817,6819],{},"Two qubits is the smallest case. With more, they can all share one state, a GHZ state, where every qubit comes out ",[57,6815,1049],{}," together or ",[57,6818,1052],{}," together:",[519,6821,6824],{"name":6822,"run-href":6823,"tag":1077},"ghz_state.py","\u002Fu\u002Fqollab\u002Fscaled-entanglement",[524,6825,6827],{"className":526,"code":6826,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\n\nn = 5\nqc = QuantumCircuit(n, n)\nqc.h(0)\nfor i in range(n - 1):\n    qc.cx(i, i + 1)\nqc.measure(range(n), range(n))\n# All five qubits now share one state: you only ever see |00000⟩ or |11111⟩.\n",[57,6828,6829,6841,6847,6859,6872,6886,6907,6923,6943,6950],{"__ignoreMap":529},[533,6830,6831,6833,6835,6837,6839],{"class":535,"line":536},[533,6832,1090],{"class":1088,"aria-hidden":1089},[533,6834,877],{"class":539},[533,6836,880],{"class":543},[533,6838,883],{"class":539},[533,6840,1106],{"class":543},[533,6842,6843,6845],{"class":535,"line":547},[533,6844,1090],{"class":1088,"aria-hidden":1089},[533,6846,1113],{},[533,6848,6849,6851,6854,6856],{"class":535,"line":575},[533,6850,1090],{"class":1088,"aria-hidden":1089},[533,6852,6853],{"class":543},"n ",[533,6855,554],{"class":553},[533,6857,6858],{"class":625}," 5\n",[533,6860,6861,6863,6865,6867,6869],{"class":535,"data-cue":1052,"line":590},[533,6862,1052],{"class":1118},[533,6864,1121],{"class":543},[533,6866,554],{"class":553},[533,6868,1126],{"class":560},[533,6870,6871],{"class":543},"(n, n)\n",[533,6873,6874,6876,6878,6880,6882,6884],{"class":535,"data-cue":1140,"line":597},[533,6875,1140],{"class":1118},[533,6877,1145],{"class":543},[533,6879,1148],{"class":560},[533,6881,615],{"class":543},[533,6883,1049],{"class":625},[533,6885,637],{"class":543},[533,6887,6888,6890,6892,6894,6896,6898,6901,6903,6905],{"class":535,"line":603},[533,6889,1090],{"class":1088,"aria-hidden":1089},[533,6891,3180],{"class":539},[533,6893,2971],{"class":543},[533,6895,2786],{"class":539},[533,6897,2976],{"class":553},[533,6899,6900],{"class":543},"(n ",[533,6902,2514],{"class":553},[533,6904,6353],{"class":625},[533,6906,1771],{"class":543},[533,6908,6909,6911,6913,6915,6917,6919,6921],{"class":535,"data-cue":1157,"line":609},[533,6910,1157],{"class":1118},[533,6912,1799],{"class":543},[533,6914,4936],{"class":560},[533,6916,6347],{"class":543},[533,6918,6350],{"class":553},[533,6920,6353],{"class":625},[533,6922,637],{"class":543},[533,6924,6925,6927,6929,6931,6933,6935,6938,6940],{"class":535,"data-cue":1183,"line":640},[533,6926,1183],{"class":1118},[533,6928,1145],{"class":543},[533,6930,1164],{"class":560},[533,6932,615],{"class":543},[533,6934,6692],{"class":553},[533,6936,6937],{"class":543},"(n), ",[533,6939,6692],{"class":553},[533,6941,6942],{"class":543},"(n))\n",[533,6944,6945,6947],{"class":535,"line":646},[533,6946,1090],{"class":1088,"aria-hidden":1089},[533,6948,6949],{"class":593},"# All five qubits now share one state: you only ever see |00000⟩ or |11111⟩.\n",[1267,6951,6952,6959,6966,6973],{"class":1269},[756,6953,6954,6956],{"data-cue":1052},[533,6955,1052],{"class":1118},[533,6957,6958],{"class":1276},"Five qubits this time, and five ordinary bits to read them into.",[756,6960,6961,6963],{"data-cue":1140},[533,6962,1140],{"class":1118},[533,6964,6965],{"class":1276},"Put the first qubit into superposition, exactly as in the Bell state.",[756,6967,6968,6970],{"data-cue":1157},[533,6969,1157],{"class":1118},[533,6971,6972],{"class":1276},"Then pass it along the line: 0 entangles 1, 1 entangles 2, and so on to the end.",[756,6974,6975,6977],{"data-cue":1183},[533,6976,1183],{"class":1118},[533,6978,6979,6980,6983],{"class":1276},"Measure all five at once. ",[57,6981,6982],{},"range(n)"," is just qubits 0 to 4, read into bits 0 to 4.",[12,6985,6986],{},"A GHZ state is all-or-nothing: measure any one qubit and the other four are decided with it, and lose one and the rest fall out of the shared state. That fragility is why it is a standard test of a quantum computer, and its correlations are what error correction and precision sensing build on.",[12,6988,6989],{},"Counts show the outcomes, and for a GHZ state they could not be simpler.",[12,6991,6992],{},"You can dig pair correlations out of them by hand, but only in the basis you measured, and reading a whole circuit that way is work. QCFlows draws it directly, as a graph: run a GHZ state through it and every qubit links to every other.",[2175,6994],{"alt":6995,"caption":6996,"no":529,"src":6997,"url":6998},"The QCFlows dashboard rendering a circuit as a graph of correlations between qubits","QCFlows draws a circuit's correlations as a live graph. Open the live app.","\u002F_content\u002Fimages\u002Fqcflows\u002Fhero.webp","https:\u002F\u002Fapp.qcflows.net\u002F",[25,7000,7002],{"id":7001},"what-survives-on-real-hardware","What survives on real hardware",[12,7004,7005],{},"Every listing above runs in two very different places, and for entanglement the difference is most of the story.",[12,7007,7008,7009,7013],{},"A simulator holds the state as numbers. Ask it for a Bell pair and it hands back the amplitudes, entanglement and all, with nothing left to infer. That is how the ",[19,7010,7012],{"href":7011},"#neither-half-has-a-state-of-its-own","2-qubit visualiser"," draws what it draws, and it is reading a state, which no quantum computer will ever let you do.",[12,7015,7016],{},"Hardware gives you counts and nothing else, so the Bell state example ends by squeezing what it can out of them.",[519,7018,7019],{"name":5267,"run-href":1078,"tag":522},[524,7020,7022],{"className":526,"code":7021,"language":528,"meta":529,"style":529},"correlated = counts.get(\"00\", 0) + counts.get(\"11\", 0)\nuncorrelated = counts.get(\"01\", 0) + counts.get(\"10\", 0)\nprint(f\"\\nCorrelated (|00⟩+|11⟩): {100*correlated\u002Fshots:.1f}%\")\nprint(f\"Uncorrelated (|01⟩+|10⟩): {100*uncorrelated\u002Fshots:.1f}%\")\n\nif correlated \u002F shots > 0.95:\n    print(\"✓ Strong entanglement confirmed!\")\nelse:\n    print(\"⚠ Noise detected — some uncorrelated outcomes\")\n",[57,7023,7024,7064,7103,7143,7175,7181,7202,7215,7224,7237],{"__ignoreMap":529},[533,7025,7026,7028,7031,7033,7035,7037,7039,7041,7043,7045,7048,7050,7052,7054,7056,7058,7060,7062],{"class":535,"data-cue":1052,"line":536},[533,7027,1052],{"class":1118},[533,7029,7030],{"class":543},"correlated ",[533,7032,554],{"class":553},[533,7034,4188],{"class":543},[533,7036,3871],{"class":560},[533,7038,615],{"class":543},[533,7040,1386],{"class":621},[533,7042,1133],{"class":543},[533,7044,1049],{"class":625},[533,7046,7047],{"class":543},") ",[533,7049,6350],{"class":553},[533,7051,4188],{"class":543},[533,7053,3871],{"class":560},[533,7055,615],{"class":543},[533,7057,1397],{"class":621},[533,7059,1133],{"class":543},[533,7061,1049],{"class":625},[533,7063,637],{"class":543},[533,7065,7066,7068,7071,7073,7075,7077,7079,7081,7083,7085,7087,7089,7091,7093,7095,7097,7099,7101],{"class":535,"data-cue":1140,"line":547},[533,7067,1140],{"class":1118},[533,7069,7070],{"class":543},"uncorrelated ",[533,7072,554],{"class":553},[533,7074,4188],{"class":543},[533,7076,3871],{"class":560},[533,7078,615],{"class":543},[533,7080,1468],{"class":621},[533,7082,1133],{"class":543},[533,7084,1049],{"class":625},[533,7086,7047],{"class":543},[533,7088,6350],{"class":553},[533,7090,4188],{"class":543},[533,7092,3871],{"class":560},[533,7094,615],{"class":543},[533,7096,1478],{"class":621},[533,7098,1133],{"class":543},[533,7100,1049],{"class":625},[533,7102,637],{"class":543},[533,7104,7105,7107,7109,7111,7113,7115,7118,7121,7124,7126,7129,7131,7133,7136,7138,7141],{"class":535,"line":575},[533,7106,1090],{"class":1088,"aria-hidden":1089},[533,7108,917],{"class":553},[533,7110,615],{"class":543},[533,7112,618],{"class":539},[533,7114,439],{"class":621},[533,7116,7117],{"class":553},"\\n",[533,7119,7120],{"class":621},"Correlated (|00⟩+|11⟩): ",[533,7122,7123],{"class":625},"{100",[533,7125,2469],{"class":553},[533,7127,7128],{"class":543},"correlated",[533,7130,2941],{"class":553},[533,7132,269],{"class":543},[533,7134,7135],{"class":539},":.1f",[533,7137,632],{"class":625},[533,7139,7140],{"class":621},"%\"",[533,7142,637],{"class":543},[533,7144,7145,7147,7149,7151,7153,7156,7158,7160,7163,7165,7167,7169,7171,7173],{"class":535,"line":590},[533,7146,1090],{"class":1088,"aria-hidden":1089},[533,7148,917],{"class":553},[533,7150,615],{"class":543},[533,7152,618],{"class":539},[533,7154,7155],{"class":621},"\"Uncorrelated (|01⟩+|10⟩): ",[533,7157,7123],{"class":625},[533,7159,2469],{"class":553},[533,7161,7162],{"class":543},"uncorrelated",[533,7164,2941],{"class":553},[533,7166,269],{"class":543},[533,7168,7135],{"class":539},[533,7170,632],{"class":625},[533,7172,7140],{"class":621},[533,7174,637],{"class":543},[533,7176,7177,7179],{"class":535,"line":597},[533,7178,1090],{"class":1088,"aria-hidden":1089},[533,7180,1113],{},[533,7182,7183,7185,7187,7190,7192,7195,7197,7200],{"class":535,"data-cue":1157,"line":603},[533,7184,1157],{"class":1118},[533,7186,5724],{"class":539},[533,7188,7189],{"class":543}," correlated ",[533,7191,2941],{"class":553},[533,7193,7194],{"class":543}," shots ",[533,7196,2808],{"class":553},[533,7198,7199],{"class":625}," 0.95",[533,7201,544],{"class":543},[533,7203,7204,7206,7208,7210,7213],{"class":535,"line":609},[533,7205,1090],{"class":1088,"aria-hidden":1089},[533,7207,612],{"class":553},[533,7209,615],{"class":543},[533,7211,7212],{"class":621},"\"✓ Strong entanglement confirmed!\"",[533,7214,637],{"class":543},[533,7216,7217,7219,7222],{"class":535,"line":640},[533,7218,1090],{"class":1088,"aria-hidden":1089},[533,7220,7221],{"class":539},"else",[533,7223,544],{"class":543},[533,7225,7226,7228,7230,7232,7235],{"class":535,"line":646},[533,7227,1090],{"class":1088,"aria-hidden":1089},[533,7229,612],{"class":553},[533,7231,615],{"class":543},[533,7233,7234],{"class":621},"\"⚠ Noise detected — some uncorrelated outcomes\"",[533,7236,637],{"class":543},[1267,7238,7239,7246,7253],{"class":1269},[756,7240,7241,7243],{"data-cue":1052},[533,7242,1052],{"class":1118},[533,7244,7245],{"class":1276},"The two outcomes a Bell state is allowed to produce.",[756,7247,7248,7250],{"data-cue":1140},[533,7249,1140],{"class":1118},[533,7251,7252],{"class":1276},"The two it is not. On an ideal simulator this comes out zero every single time.",[756,7254,7255,7257],{"data-cue":1157},[533,7256,1157],{"class":1118},[533,7258,7259],{"class":1276},"A threshold picked by hand. Below it, the device has leaked more shots into the impossible outcomes than this example is willing to call clean.",[12,7261,7262,7263,1576,7265,7267],{},"Be exact about what that threshold establishes, because the second-basis test above is the tool for checking it. ",[57,7264,1575],{},[57,7266,1579],{}," are impossible for a Bell state. Every shot that lands there came from the device rather than from the circuit, so the percentage is a noise reading and a useful one.",[12,7269,7270,7271,7275],{},"What it cannot establish is entanglement. A pair of gloves clears 95% correlated as comfortably as a Bell pair does. That is ",[19,7272,7274],{"href":7273},"#the-smallest-one-you-can-make","the gloves problem from the top of this page",", and a single basis cannot separate the two. Confirming entanglement takes the second-basis run, which is another job on the machine.",[12,7277,7278],{},"Which is the honest answer to why you would use hardware at all. A simulator hands you a flawless Bell pair every time. So it can never tell you the one thing you want to know about a real device: how much entanglement is left by the time the circuit ends. A GHZ state across five qubits is a standard benchmark for that reason. Entanglement is the first thing noise takes, which makes it the most sensitive thing on the machine to count.",[12,7280,7281,7282,7284],{},"Why a device hands you a tally and never a state is a subject of its own, and ",[19,7283,839],{"href":838}," is the article about it.",[25,7286,7288],{"id":7287},"start-with-two-qubits","Start with two qubits",[12,7290,7291],{},"Every project on this page uses the same ingredient: an entangling operation on qubits that then share one state. The game, the body, the garden, the music, the butterflies and the two visualisers each do something different with it. They also differ in how much of it their measurements let you see.",[12,7293,7294],{},"The Bell state is the smallest version, two gates and a measurement, and the second-basis check above is what separates it from a pair of gloves. Each project shows the line where the entangling happens, or the line where one added gate would start it, so you can change it.",[4321,7296,7298],{"fork-href":1078,"title":7297},"Run it, then build on it.",[12,7299,7300,7301],{},"Fork the Bell state, run it, and watch the two qubits agree. Then open any project above and see the same idea doing something else. ",[974,7302,4329],{},[773,7304,7305],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}",{"title":529,"searchDepth":547,"depth":547,"links":7307},[7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319],{"id":5230,"depth":547,"text":5231},{"id":5260,"depth":547,"text":5261},{"id":1607,"depth":547,"text":1608},{"id":5631,"depth":547,"text":5632},{"id":5834,"depth":547,"text":5835},{"id":6139,"depth":547,"text":6140},{"id":6281,"depth":547,"text":6282},{"id":6465,"depth":547,"text":6466},{"id":6629,"depth":547,"text":6630},{"id":6809,"depth":547,"text":6810},{"id":7001,"depth":547,"text":7002},{"id":7287,"depth":547,"text":7288},[4349,4350,7321],"Quantum entanglement",[7323],{"username":1037,"name":4354,"role":4355,"avatar":4356,"bio":4357,"links":7324},[7325,7326],{"label":4360,"href":4361},{"label":4363,"href":4364},{"username":1037,"name":4354,"role":4355,"avatar":4356},"What entanglement means, where the idea came from, and real projects built on it that you can run and fork.","What quantum entanglement means, where it came from, and real projects built on it that you can run and fork on Qollab.",{"href":1078,"label":7331},"Fork the Bell state",{},"\u002F_content\u002Fimages\u002Fentanglement\u002Fog.png","\u002Fblog\u002Flearn\u002Fquantum-entanglement","16 min read",[],{"title":7338,"description":7339},"Quantum Entanglement Examples You Can Run and Fork","What quantum entanglement means and where it came from, shown through real projects: a Bell state, a game, generative art, and music, each one you can run and fork.","blog\u002Flearn\u002Fquantum-entanglement",[5823,4382,4383],"6NshNuGd455KKcFsI3xiYzfNl15Uc0BxOVriZv_2E7o",{"id":7344,"title":7345,"authors":7,"body":7346,"breadcrumb":7,"builders":7,"byline":7,"category":7452,"categoryName":7453,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":7454,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":7455,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":536,"outcomes":7,"path":7456,"publishDate":7457,"readingTime":7,"related":7458,"relatedProjects":7,"seo":7459,"stem":7462,"tags":7463,"track":7,"trackName":7,"__hash__":7464},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Faccount-and-profile.md","Account and profile",{"type":9,"value":7347,"toc":7446},[7348,7351,7355,7362,7366,7377,7381,7384,7417,7427,7429],[12,7349,7350],{},"Signing in takes one click. Everything worth setting up happens after.",[25,7352,7354],{"id":7353},"signing-in","Signing in",[12,7356,7357,7358,7361],{},"Qollab uses ",[974,7359,7360],{},"Google or GitHub"," to sign in, so there is no password to manage. Your account is tied to the provider you pick, so use the same one every time. Signing in with the other provider creates a separate, empty account rather than logging you into the first.",[25,7363,7365],{"id":7364},"your-username","Your username",[12,7367,7368,7369,7372,7373,7376],{},"On first sign-in you choose a ",[974,7370,7371],{},"username",", 3 to 20 characters of letters, numbers, hyphens, and underscores. It becomes the address of your profile and your projects, at ",[57,7374,7375],{},"qollab.xyz\u002Fu\u002F\u003Cyour-username>",". Qollab checks availability as you type, and you can change it later in settings.",[25,7378,7380],{"id":7379},"profile-settings","Profile settings",[12,7382,7383],{},"Your settings, reached from your profile menu, let you set:",[753,7385,7386,7396,7405,7411],{},[756,7387,7388,7389,7392,7393,114],{},"Your ",[974,7390,7391],{},"name"," and a short ",[974,7394,7395],{},"bio",[756,7397,7388,7398,1576,7401,7404],{},[974,7399,7400],{},"GitHub",[974,7402,7403],{},"LinkedIn"," handles, and whether to show those links on your public profile.",[756,7406,7407,7410],{},[974,7408,7409],{},"Profile visibility",": whether your full name and your email appear publicly.",[756,7412,7413,7416],{},[974,7414,7415],{},"Email preferences",": product updates and marketing emails.",[12,7418,7419,7420,7423,7424,7426],{},"Your sign-in email cannot be changed. Your ",[974,7421,7422],{},"credit balance"," also lives here; see ",[19,7425,214],{"href":213}," for what credits are and how to earn them.",[25,7428,751],{"id":750},[753,7430,7431,7435,7441],{},[756,7432,7433],{},[19,7434,214],{"href":213},[756,7436,7437],{},[19,7438,7440],{"href":7439},"\u002Flearn\u002Fdocs\u002Fproject-anatomy","The project page",[756,7442,7443],{},[19,7444,7445],{"href":4689},"Community guidelines",{"title":529,"searchDepth":547,"depth":547,"links":7447},[7448,7449,7450,7451],{"id":7353,"depth":547,"text":7354},{"id":7364,"depth":547,"text":7365},{"id":7379,"depth":547,"text":7380},{"id":750,"depth":547,"text":751},"account","Account","Signing in takes one click. This covers the parts that matter after: your username, your public profile, and your settings.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Faccount-and-profile","2026-09-05",[],{"title":7460,"description":7461},"Account and profile · Qollab docs","Signing in to Qollab, choosing a username, and the profile and email settings you can configure.","blog\u002Flearn\u002Fdocs\u002Faccount-and-profile",[],"PA4vnzqQjvtBNrDxk3T9oATANT46-q1MckUKpEb0BQY",{"id":7466,"title":144,"authors":7,"body":7467,"breadcrumb":7,"builders":7,"byline":7,"category":7832,"categoryName":7833,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":7834,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":7835,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":575,"outcomes":7,"path":7836,"publishDate":7457,"readingTime":7,"related":7837,"relatedProjects":7,"seo":7838,"stem":7841,"tags":7842,"track":7,"trackName":7,"__hash__":7843},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fcompute-backends.md",{"type":9,"value":7468,"toc":7826},[7469,7475,7480,7484,7512,7516,7759,7762,7766,7802,7804],[12,7470,7471,7472,7474],{},"When you run a project, the ",[974,7473,5138],{}," dialog asks where it should execute. Every option falls into one of three groups, from free and instant to real quantum hardware.",[2175,7476],{"alt":7477,"caption":7478,"no":529,"src":7479},"The Select QPU dialog, grouped into locally run simulators, remotely run simulators, and quantum computers.","The Select QPU dialog. Simulators are free; only the hardware group spends credits.","\u002F_content\u002Fimages\u002Fdocs\u002Fselect-qpu.webp",[25,7481,7483],{"id":7482},"the-three-groups","The three groups",[753,7485,7486,7496,7502],{},[756,7487,7488,7491,7492,7495],{},[974,7489,7490],{},"Locally run simulators"," run in your browser through WebAssembly. They are free, start immediately, and never queue. This group includes a built-in simulator, an AWS Braket local simulator, and a set of simulators that carry the real ",[974,7493,7494],{},"noise models"," of IBM devices. Those let you see how a circuit behaves on noisy hardware without leaving your browser. They are simulations of those machines, not the machines themselves.",[756,7497,7498,7501],{},[974,7499,7500],{},"Remotely run simulators"," run on IonQ's cloud rather than in your browser. They are also free, and they model IonQ's own Aria and Forte systems more closely than a local simulator can.",[756,7503,7504,7507,7508,7511],{},[974,7505,7506],{},"Quantum computers"," are the real thing: physical IonQ hardware. Runs here ",[974,7509,7510],{},"consume credits",", and a device is only available when it is online, so you may see one listed as offline.",[25,7513,7515],{"id":7514},"every-backend","Every backend",[30,7517,7518,7537],{},[33,7519,7520],{},[36,7521,7522,7525,7528,7531,7534],{},[39,7523,7524],{},"Backend",[39,7526,7527],{},"Group",[39,7529,7530],{},"Qubits",[39,7532,7533],{},"Runs",[39,7535,7536],{},"Cost",[49,7538,7539,7556,7570,7585,7598,7611,7624,7637,7651,7664,7677,7692,7705,7719,7732,7747],{},[36,7540,7541,7544,7547,7550,7553],{},[54,7542,7543],{},"Built-in simulator",[54,7545,7546],{},"Local simulator",[54,7548,7549],{},"24",[54,7551,7552],{},"In your browser",[54,7554,7555],{},"Free",[36,7557,7558,7561,7563,7566,7568],{},[54,7559,7560],{},"AWS Braket local simulator",[54,7562,7546],{},[54,7564,7565],{},"25",[54,7567,7552],{},[54,7569,7555],{},[36,7571,7572,7575,7578,7581,7583],{},[54,7573,7574],{},"IBM Boston (Heron r3)",[54,7576,7577],{},"Local simulator, IBM noise model",[54,7579,7580],{},"156",[54,7582,7552],{},[54,7584,7555],{},[36,7586,7587,7590,7592,7594,7596],{},[54,7588,7589],{},"IBM Kingston (Heron r2)",[54,7591,7577],{},[54,7593,7580],{},[54,7595,7552],{},[54,7597,7555],{},[36,7599,7600,7603,7605,7607,7609],{},[54,7601,7602],{},"IBM Pittsburgh (Heron r3)",[54,7604,7577],{},[54,7606,7580],{},[54,7608,7552],{},[54,7610,7555],{},[36,7612,7613,7616,7618,7620,7622],{},[54,7614,7615],{},"IBM Fez (Heron r2)",[54,7617,7577],{},[54,7619,7580],{},[54,7621,7552],{},[54,7623,7555],{},[36,7625,7626,7629,7631,7633,7635],{},[54,7627,7628],{},"IBM Marrakesh (Heron r2)",[54,7630,7577],{},[54,7632,7580],{},[54,7634,7552],{},[54,7636,7555],{},[36,7638,7639,7642,7644,7647,7649],{},[54,7640,7641],{},"IBM Miami (Nighthawk r1)",[54,7643,7577],{},[54,7645,7646],{},"120",[54,7648,7552],{},[54,7650,7555],{},[36,7652,7653,7656,7658,7660,7662],{},[54,7654,7655],{},"IBM Aachen (Heron r3)",[54,7657,7577],{},[54,7659,7580],{},[54,7661,7552],{},[54,7663,7555],{},[36,7665,7666,7669,7671,7673,7675],{},[54,7667,7668],{},"IBM Berlin (Nighthawk r1)",[54,7670,7577],{},[54,7672,7646],{},[54,7674,7552],{},[54,7676,7555],{},[36,7678,7679,7682,7685,7687,7690],{},[54,7680,7681],{},"IonQ Aria 1",[54,7683,7684],{},"Remote simulator",[54,7686,7565],{},[54,7688,7689],{},"IonQ cloud",[54,7691,7555],{},[36,7693,7694,7697,7699,7701,7703],{},[54,7695,7696],{},"IonQ Aria 2",[54,7698,7684],{},[54,7700,7565],{},[54,7702,7689],{},[54,7704,7555],{},[36,7706,7707,7710,7712,7715,7717],{},[54,7708,7709],{},"IonQ Forte 1",[54,7711,7684],{},[54,7713,7714],{},"36",[54,7716,7689],{},[54,7718,7555],{},[36,7720,7721,7724,7726,7728,7730],{},[54,7722,7723],{},"IonQ Forte Enterprise 1",[54,7725,7684],{},[54,7727,7714],{},[54,7729,7689],{},[54,7731,7555],{},[36,7733,7734,7736,7739,7741,7744],{},[54,7735,7709],{},[54,7737,7738],{},"Quantum computer",[54,7740,7714],{},[54,7742,7743],{},"IonQ hardware",[54,7745,7746],{},"Credits",[36,7748,7749,7751,7753,7755,7757],{},[54,7750,7723],{},[54,7752,7738],{},[54,7754,7714],{},[54,7756,7743],{},[54,7758,7746],{},[12,7760,7761],{},"The list of live machines changes as hardware comes online, so treat the dialog itself as the source of truth for what is available right now.",[25,7763,7765],{"id":7764},"which-one-to-pick","Which one to pick",[753,7767,7768,7778,7792],{},[756,7769,7770,7773,7774,7777],{},[974,7771,7772],{},"Writing or debugging a circuit?"," Start on the ",[974,7775,7776],{},"built-in simulator",". It is free, instant, and enough to catch logic and syntax errors.",[756,7779,7780,7783,7784,7787,7788,7791],{},[974,7781,7782],{},"Want to see noise before you spend anything?"," Run one of the ",[974,7785,7786],{},"IBM noise-model"," simulators or an ",[974,7789,7790],{},"IonQ remote"," simulator. Same circuit, a realistic picture of how a real device would answer.",[756,7793,7794,7797,7798,7801],{},[974,7795,7796],{},"Ready for real hardware?"," Choose a ",[974,7799,7800],{},"quantum computer"," from the last group. This is the only group that uses credits, so verify your circuit on a simulator first.",[25,7803,751],{"id":750},[753,7805,7806,7810,7814,7818,7822],{},[756,7807,7808],{},[19,7809,4577],{"href":4576},[756,7811,7812],{},[19,7813,214],{"href":213},[756,7815,7816],{},[19,7817,4411],{"href":4410},[756,7819,7820],{},[19,7821,6],{"href":812},[756,7823,7824],{},[19,7825,771],{"href":770},{"title":529,"searchDepth":547,"depth":547,"links":7827},[7828,7829,7830,7831],{"id":7482,"depth":547,"text":7483},{"id":7514,"depth":547,"text":7515},{"id":7764,"depth":547,"text":7765},{"id":750,"depth":547,"text":751},"running-code","Running code","Every simulator and quantum computer you can run a Qollab project on, what each one costs, and how to choose between them.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fcompute-backends",[],{"title":7839,"description":7840},"Compute backends · Qollab docs","The simulators and quantum computers available in the Qollab playground, with qubit counts and costs, and guidance on which to pick.","blog\u002Flearn\u002Fdocs\u002Fcompute-backends",[],"-cTa_CDDP47iRbVmLWSd0374LxkeN42Gs1fkLKHXx7I",{"id":7845,"title":761,"authors":7,"body":7846,"breadcrumb":7,"builders":7,"byline":7,"category":783,"categoryName":784,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":7945,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":7946,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":536,"outcomes":7,"path":7947,"publishDate":7457,"readingTime":7,"related":7948,"relatedProjects":7,"seo":7949,"stem":7952,"tags":7953,"track":7,"trackName":7,"__hash__":7954},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Ffaq.md",{"type":9,"value":7847,"toc":7936},[7848,7852,7867,7871,7877,7881,7887,7891,7896,7900,7903,7907,7912,7914],[25,7849,7851],{"id":7850},"the-playground-shows-a-compatibility-warning","The playground shows a compatibility warning",[12,7853,7854,7855,7857,7858,5181,7860,7862,7863,7866],{},"The playground needs a browser that supports WebAssembly JSPI. Use a recent Chrome, Edge, or Opera. Firefox users can turn it on by opening ",[57,7856,728],{}," and setting ",[57,7859,5180],{},[57,7861,1089],{},". See the ",[19,7864,7865],{"href":4410},"Code Playground lesson"," for details.",[25,7868,7870],{"id":7869},"my-run-is-queued-or-slow","My run is queued or slow",[12,7872,7873,7874,7876],{},"Simulators are near-instant. Real hardware jobs are queued and processed in order, so they take longer to resolve, and a device can be offline. The ",[19,7875,144],{"href":143}," page shows which backends are simulators and which are hardware.",[25,7878,7880],{"id":7879},"my-run-failed-with-a-red-error","My run failed with a red error",[12,7882,7883,7884,7886],{},"Errors in your own code show as a console traceback pointing at the failing line, so fix it and run again. Errors that come back from the backend carry a code instead, and every one of those is listed on ",[19,7885,6],{"href":812},". Running on a simulator first is the quickest way to catch problems before they cost anything.",[25,7888,7890],{"id":7889},"i-cannot-edit-a-project","I cannot edit a project",[12,7892,7893,7894,114],{},"You can only edit projects you own. Edits happen on the draft, and a published project updates only when you publish your changes. See ",[19,7895,4560],{"href":4559},[25,7897,7899],{"id":7898},"i-signed-in-but-my-work-is-missing","I signed in but my work is missing",[12,7901,7902],{},"A Qollab account is tied to the provider you signed in with, Google or GitHub. Signing in with a different provider creates a separate account, so use the same one you started with.",[25,7904,7906],{"id":7905},"does-running-cost-anything","Does running cost anything",[12,7908,7909,7910,114],{},"Simulators, both local and on IonQ's cloud, are free. Only real quantum hardware uses credits. See ",[19,7911,214],{"href":213},[25,7913,751],{"id":750},[753,7915,7916,7920,7924,7928,7932],{},[756,7917,7918],{},[19,7919,144],{"href":143},[756,7921,7922],{},[19,7923,4577],{"href":4576},[756,7925,7926],{},[19,7927,214],{"href":213},[756,7929,7930],{},[19,7931,6],{"href":812},[756,7933,7934],{},[19,7935,771],{"href":770},{"title":529,"searchDepth":547,"depth":547,"links":7937},[7938,7939,7940,7941,7942,7943,7944],{"id":7850,"depth":547,"text":7851},{"id":7869,"depth":547,"text":7870},{"id":7879,"depth":547,"text":7880},{"id":7889,"depth":547,"text":7890},{"id":7898,"depth":547,"text":7899},{"id":7905,"depth":547,"text":7906},{"id":750,"depth":547,"text":751},"Answers to the common questions: browser support, queued runs, run errors, editing, sign-in, and what running costs.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Ffaq",[],{"title":7950,"description":7951},"Troubleshooting and FAQ · Qollab docs","Common Qollab questions: browser compatibility, queued runs, run errors, editing, accounts, and credits.","blog\u002Flearn\u002Fdocs\u002Ffaq",[],"SLnvMD296xAGCobgMdWBNjgTgMaK7egoc_tvAzvtpao",{"id":7956,"title":4706,"authors":7,"body":7957,"breadcrumb":7,"builders":7,"byline":7,"category":8037,"categoryName":8038,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8039,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8040,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":590,"outcomes":7,"path":8041,"publishDate":7457,"readingTime":7,"related":8042,"relatedProjects":7,"seo":8043,"stem":8046,"tags":8047,"track":7,"trackName":7,"__hash__":8048},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Ffork-and-remix.md",{"type":9,"value":7958,"toc":8030},[7959,7962,7966,7972,7975,7979,7986,7989,7993,8000,8004,8012,8014],[12,7960,7961],{},"Forking makes your own copy of any public project. It is how you build on someone else's work, whether you are extending a project or just taking it apart to learn from it.",[25,7963,7965],{"id":7964},"fork-a-project","Fork a project",[12,7967,7968,7969,7971],{},"Open any public project and click ",[974,7970,4648],{}," in the header.",[2175,7973],{"alt":4652,"caption":7974,"no":529,"src":4654},"The Fork button on a public project.",[25,7976,7978],{"id":7977},"name-your-copy","Name your copy",[12,7980,4657,7981,7983,7984,114],{},[974,7982,4660],{}," dialog asks for a project name and a title, both prefilled from the original. Adjust them if you like, then confirm with ",[974,7985,4660],{},[2175,7987],{"alt":7988,"caption":4667,"no":529,"src":4668},"The Fork Project dialog, with a project name and title prefilled from the original and a Fork Project button.",[25,7990,7992],{"id":7991},"what-you-get","What you get",[12,7994,7995,7996,7999],{},"Qollab creates ",[974,7997,7998],{},"your own copy",": a private draft on your account, carrying the original's code and write-up, opened in edit mode. From there it is a normal project. Edit it, run it, and publish it as your own. The original project is untouched, and it keeps a count of how many times it has been forked.",[25,8001,8003],{"id":8002},"credit-and-licensing","Credit and licensing",[12,8005,8006,8007,4691,8009,8011],{},"Published projects are open so the community can build on them, which is exactly what forking is for. Keep the original author credited when you extend their work, as the ",[19,8008,4690],{"href":4689},[19,8010,4695],{"href":4694}," rewards fork-and-extend work with compute credits.",[25,8013,751],{"id":750},[753,8015,8016,8020,8026],{},[756,8017,8018],{},[19,8019,7440],{"href":7439},[756,8021,8022],{},[19,8023,8025],{"href":8024},"\u002Flearn\u002Fdocs\u002Fwrite-your-project-page","Editing your project",[756,8027,8028],{},[19,8029,4560],{"href":4559},{"title":529,"searchDepth":547,"depth":547,"links":8031},[8032,8033,8034,8035,8036],{"id":7964,"depth":547,"text":7965},{"id":7977,"depth":547,"text":7978},{"id":7991,"depth":547,"text":7992},{"id":8002,"depth":547,"text":8003},{"id":750,"depth":547,"text":751},"projects","Projects","Forking makes your own editable copy of any public project, so you can build on someone else’s work and publish it as your own.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Ffork-and-remix",[],{"title":8044,"description":8045},"Forking a project · Qollab docs","How to fork a public Qollab project into your own editable copy, and what happens to the original.","blog\u002Flearn\u002Fdocs\u002Ffork-and-remix",[],"XNa17HAXh7878hSaLSzifjRepY-ckVDtuy-kwwsaaeE",{"id":8050,"title":214,"authors":7,"body":8051,"breadcrumb":7,"builders":7,"byline":7,"category":8171,"categoryName":7746,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8172,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8173,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":536,"outcomes":7,"path":8174,"publishDate":7457,"readingTime":7,"related":8175,"relatedProjects":7,"seo":8176,"stem":8179,"tags":8180,"track":7,"trackName":7,"__hash__":8181},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fhow-credits-work.md",{"type":9,"value":8052,"toc":8163},[8053,8056,8060,8066,8070,8076,8090,8094,8122,8126,8132,8136,8147,8149],[12,8054,8055],{},"Credits are a balance on your account. You spend them to run on real quantum hardware, and nothing else on Qollab costs credits.",[25,8057,8059],{"id":8058},"what-is-free","What is free",[12,8061,8062,8063,8065],{},"Every simulator is free, both the ones that run locally in your browser and the ones that run remotely on IonQ's cloud. You can write, run, and publish an entire project without spending a credit. ",[19,8064,144],{"href":143}," shows which backends are simulators and which are hardware.",[25,8067,8069],{"id":8068},"what-a-run-costs","What a run costs",[12,8071,8072,8073,8075],{},"Only the ",[974,8074,7800],{}," backends spend credits, and you see the price before anything is charged. When you run on hardware, the runner shows the exact cost in credits alongside your current balance and asks you to confirm. Approve it and the run proceeds; decline and nothing is spent.",[12,8077,8078,8079,8081,8082,8085,8086,8089],{},"The amount depends on your circuit and how many ",[974,8080,269],{}," you run, so more shots or a larger circuit costs more. On hardware the quoted figure is an ",[974,8083,8084],{},"estimate","; once the job finishes, the runner shows the ",[974,8087,8088],{},"actual credits withdrawn",", which can differ from the estimate. Simulators report a cost of zero and run for free.",[25,8091,8093],{"id":8092},"keeping-costs-down","Keeping costs down",[753,8095,8096,8105,8111],{},[756,8097,8098,8101,8102,8104],{},[974,8099,8100],{},"Simulate first."," Get the circuit right on a free simulator before spending anything. ",[19,8103,144],{"href":143}," lists which backends are free.",[756,8106,8107,8110],{},[974,8108,8109],{},"Start with fewer shots."," Shots drive the cost, so keep the first hardware run's shot count modest while you confirm the circuit behaves on a real device.",[756,8112,8113,8116,8117,8121],{},[974,8114,8115],{},"Set a spending limit."," Your ",[19,8118,8120],{"href":8119},"\u002Flearn\u002Fdocs\u002Faccount-and-profile","profile settings"," let you cap what a single run may spend; the runner rejects any run above that cap or above your balance.",[25,8123,8125],{"id":8124},"your-balance","Your balance",[12,8127,8128,8129,8131],{},"Your credit balance lives in your ",[19,8130,8120],{"href":8119},". The runner reads it before every hardware run. If a run would cost more than you have, it links you to where to get more.",[25,8133,8135],{"id":8134},"getting-credits","Getting credits",[12,8137,8138,8139,8142,8143,114],{},"The way to earn credits today is the ",[19,8140,8141],{"href":4694},"Qollab Grant Program",": port, fork, or publish open-source quantum work on Qollab, and get compute credits for it. The award amounts, and how those credits are issued and expire, live on the program page and its ",[19,8144,8146],{"href":8145},"\u002Fprograms\u002Fcredits-terms","terms",[25,8148,751],{"id":750},[753,8150,8151,8155,8159],{},[756,8152,8153],{},[19,8154,144],{"href":143},[756,8156,8157],{},[19,8158,4577],{"href":4576},[756,8160,8161],{},[19,8162,8141],{"href":4694},{"title":529,"searchDepth":547,"depth":547,"links":8164},[8165,8166,8167,8168,8169,8170],{"id":8058,"depth":547,"text":8059},{"id":8068,"depth":547,"text":8069},{"id":8092,"depth":547,"text":8093},{"id":8124,"depth":547,"text":8125},{"id":8134,"depth":547,"text":8135},{"id":750,"depth":547,"text":751},"credits","Credits are your account balance for running on real quantum hardware: what is free, what a hardware run costs, and how you approve it before spending.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fhow-credits-work",[],{"title":8177,"description":8178},"How credits work · Qollab docs","What Qollab credits are, what is free versus what a hardware run costs, and how you see and approve the cost before any credits are spent.","blog\u002Flearn\u002Fdocs\u002Fhow-credits-work",[],"UrlBZyRl68opl8qNQapRqckGgAqP89XTj-lKgIa2Wbo",{"id":8183,"title":8184,"authors":7,"body":8185,"breadcrumb":7,"builders":7,"byline":7,"category":7832,"categoryName":7833,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8595,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8596,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":597,"outcomes":7,"path":8597,"publishDate":7457,"readingTime":7,"related":8598,"relatedProjects":7,"seo":8599,"stem":8602,"tags":8603,"track":7,"trackName":7,"__hash__":8604},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fjs-qiskit-projects.md","JS \u002F Qiskit projects",{"type":9,"value":8186,"toc":8588},[8187,8198,8202,8214,8218,8222,8225,8317,8321,8544,8548,8568,8570,8585],[12,8188,4657,8189,8192,8193,8197],{},[974,8190,8191],{},"JS \u002F Qiskit"," framework is Qollab's path for interactive, visual quantum projects. You write JavaScript that calls the Qiskit API, and you render the results into your own HTML and CSS. It runs entirely in the browser, in a sandboxed iframe. This is the framework to choose when you want a widget, an animation, or a custom chart rather than plain text output. For standard, textual quantum work, use ",[19,8194,8196],{"href":8195},"\u002Flearn\u002Fdocs\u002Fpython-qiskit-projects","Python \u002F Qiskit"," instead.",[25,8199,8201],{"id":8200},"the-editor","The editor",[12,8203,8204,8205,1133,8207,4801,8209,4805,8211,8213],{},"A JS \u002F Qiskit project has four panes: ",[974,8206,4797],{},[974,8208,4800],{},[974,8210,4804],{},[974,8212,4808],{},". Your HTML and CSS define the surface your results are drawn onto; your JavaScript runs the circuit and updates that surface.",[2175,8215],{"alt":8216,"caption":8217,"no":529,"src":5200},"A JS\u002FQiskit project with four panes: JavaScript, HTML, CSS, and a live preview.","A JS\u002FQiskit project: JavaScript, HTML, CSS, and a live preview.",[25,8219,8221],{"id":8220},"the-api","The API",[12,8223,8224],{},"Under the hood this is the Python Qiskit 2.x API made available to JavaScript, so it looks close to Python with a few conventions worth knowing.",[753,8226,8227,8243,8260,8274,8288],{},[756,8228,8229,8235,8236,8239,8240,114],{},[974,8230,8231,8232,114],{},"Import from ",[57,8233,8234],{},"qiskit"," For example ",[57,8237,8238],{},"import { QuantumCircuit } from 'qiskit'",", or ",[57,8241,8242],{},"import { JobStatus } from 'qiskit.providers.jobstatus'",[756,8244,8245,8249,8250,8253,8254,1576,8257,114],{},[974,8246,4826,8247,114],{},[57,8248,4829],{}," Create objects by calling the constructor directly, just like Python: ",[57,8251,8252],{},"const circuit = QuantumCircuit(2, 2)",". Methods match Qiskit too, such as ",[57,8255,8256],{},"circuit.h(0)",[57,8258,8259],{},"circuit.measure([0, 1], [0, 1])",[756,8261,8262,8267,8268,1389,8271,114],{},[974,8263,8264,8265,114],{},"Named arguments use ",[57,8266,5121],{}," Where Python takes keyword arguments, pass them as a trailing object through ",[57,8269,8270],{},"callKwargs",[57,8272,8273],{},"circuit.draw.callKwargs({ output: 'mpl' })",[756,8275,8276,8281,8282,8284,8285,114],{},[974,8277,8278,8279,114],{},"Unpack Python values with ",[57,8280,4852],{}," Return values arrive as proxies to Python objects. Call ",[57,8283,4852],{}," to use one as plain JavaScript data, for example ",[57,8286,8287],{},"result.get_counts().toJs()",[756,8289,8290,8295,8296,8299,8300,8302,8303,8306,8307,8310,8311,1576,8314,114],{},[974,8291,8292,8294],{},[57,8293,907],{}," is pre-created, and running is async."," Submit with ",[57,8297,8298],{},"const job = await backend.run(circuit, { shots: 100 })",". The code runs in an async context, so top-level ",[57,8301,5040],{}," works, and the injected ",[57,8304,8305],{},"setTimeout"," returns a promise you can await while polling ",[57,8308,8309],{},"job.status()"," against ",[57,8312,8313],{},"JobStatus.DONE",[57,8315,8316],{},"JobStatus.ERROR",[25,8318,8320],{"id":8319},"a-minimal-example","A minimal example",[524,8322,8324],{"className":4862,"code":8323,"language":4864,"meta":529,"style":529},"import { QuantumCircuit } from 'qiskit';\n\n\u002F\u002F No `new`: call the constructor like the Python API\nconst circuit = QuantumCircuit(2, 2);\ncircuit.h(0);\ncircuit.cx(0, 1);\ncircuit.measure([0, 1], [0, 1]);\n\n\u002F\u002F `backend` is pre-created; run() is async and returns a job\nconst job = await backend.run(circuit, { shots: 100 });\n\n\u002F\u002F Python objects come back as proxies; .toJs() unpacks them\nconst counts = (await job.result()).get_counts().toJs();\n\n\u002F\u002F Render into the HTML you defined\ndocument.getElementById('legend').textContent = JSON.stringify(counts);\n",[57,8325,8326,8342,8346,8351,8371,8385,8403,8429,8433,8438,8468,8472,8476,8504,8508,8513],{"__ignoreMap":529},[533,8327,8328,8330,8332,8334,8336,8338,8340],{"class":535,"line":536},[533,8329,883],{"class":539},[533,8331,4873],{"class":543},[533,8333,4403],{"class":2387},[533,8335,4878],{"class":543},[533,8337,877],{"class":539},[533,8339,4883],{"class":621},[533,8341,2415],{"class":543},[533,8343,8344],{"class":535,"line":547},[533,8345,891],{"emptyLinePlaceholder":790},[533,8347,8348],{"class":535,"line":575},[533,8349,8350],{"class":593},"\u002F\u002F No `new`: call the constructor like the Python API\n",[533,8352,8353,8355,8357,8359,8361,8363,8365,8367,8369],{"class":535,"line":590},[533,8354,2615],{"class":539},[533,8356,4896],{"class":2393},[533,8358,4899],{"class":553},[533,8360,1126],{"class":560},[533,8362,615],{"class":543},[533,8364,1140],{"class":625},[533,8366,1133],{"class":543},[533,8368,1140],{"class":625},[533,8370,4912],{"class":543},[533,8372,8373,8375,8377,8379,8381,8383],{"class":535,"line":597},[533,8374,4917],{"class":2393},[533,8376,114],{"class":543},[533,8378,1148],{"class":560},[533,8380,615],{"class":543},[533,8382,1049],{"class":625},[533,8384,4912],{"class":543},[533,8386,8387,8389,8391,8393,8395,8397,8399,8401],{"class":535,"line":603},[533,8388,4917],{"class":2393},[533,8390,114],{"class":543},[533,8392,4936],{"class":560},[533,8394,615],{"class":543},[533,8396,1049],{"class":625},[533,8398,1133],{"class":543},[533,8400,1052],{"class":625},[533,8402,4912],{"class":543},[533,8404,8405,8407,8409,8411,8413,8415,8417,8419,8421,8423,8425,8427],{"class":535,"line":609},[533,8406,4917],{"class":2393},[533,8408,114],{"class":543},[533,8410,1164],{"class":560},[533,8412,3230],{"class":543},[533,8414,1049],{"class":625},[533,8416,1133],{"class":543},[533,8418,1052],{"class":625},[533,8420,3251],{"class":543},[533,8422,1049],{"class":625},[533,8424,1133],{"class":543},[533,8426,1052],{"class":625},[533,8428,4973],{"class":543},[533,8430,8431],{"class":535,"line":640},[533,8432,891],{"emptyLinePlaceholder":790},[533,8434,8435],{"class":535,"line":646},[533,8436,8437],{"class":593},"\u002F\u002F `backend` is pre-created; run() is async and returns a job\n",[533,8439,8440,8442,8444,8446,8448,8450,8452,8454,8456,8458,8460,8462,8464,8466],{"class":535,"line":658},[533,8441,2615],{"class":539},[533,8443,4989],{"class":2393},[533,8445,4899],{"class":553},[533,8447,4994],{"class":539},[533,8449,4997],{"class":2393},[533,8451,114],{"class":543},[533,8453,561],{"class":560},[533,8455,615],{"class":543},[533,8457,4917],{"class":2387},[533,8459,5008],{"class":543},[533,8461,269],{"class":2387},[533,8463,1389],{"class":543},[533,8465,4528],{"class":625},[533,8467,5017],{"class":543},[533,8469,8470],{"class":535,"line":680},[533,8471,891],{"emptyLinePlaceholder":790},[533,8473,8474],{"class":535,"line":1536},[533,8475,5026],{"class":593},[533,8477,8478,8480,8482,8484,8486,8488,8490,8492,8494,8496,8498,8500,8502],{"class":535,"line":1552},[533,8479,2615],{"class":539},[533,8481,1757],{"class":2393},[533,8483,4899],{"class":553},[533,8485,5037],{"class":543},[533,8487,5040],{"class":539},[533,8489,4989],{"class":2393},[533,8491,114],{"class":543},[533,8493,1208],{"class":560},[533,8495,5049],{"class":543},[533,8497,1214],{"class":560},[533,8499,1211],{"class":543},[533,8501,5056],{"class":560},[533,8503,5059],{"class":543},[533,8505,8506],{"class":535,"line":1911},[533,8507,891],{"emptyLinePlaceholder":790},[533,8509,8510],{"class":535,"line":1940},[533,8511,8512],{"class":593},"\u002F\u002F Render into the HTML you defined\n",[533,8514,8515,8517,8519,8521,8523,8526,8528,8530,8532,8534,8536,8538,8540,8542],{"class":535,"line":1968},[533,8516,5073],{"class":2393},[533,8518,114],{"class":543},[533,8520,5078],{"class":560},[533,8522,615],{"class":543},[533,8524,8525],{"class":621},"'legend'",[533,8527,1205],{"class":543},[533,8529,5088],{"class":2387},[533,8531,4899],{"class":553},[533,8533,5093],{"class":2393},[533,8535,114],{"class":543},[533,8537,5098],{"class":560},[533,8539,615],{"class":543},[533,8541,1925],{"class":2387},[533,8543,4912],{"class":543},[25,8545,8547],{"id":8546},"drawing-circuits","Drawing circuits",[12,8549,8550,8552,8553,8556,8557,8560,8561,8564,8565,114],{},[57,8551,8273],{}," returns an image blob, but it needs the ",[974,8554,8555],{},"Qiskit Visualizations"," extra feature turned on first, from the ",[19,8558,8559],{"href":4570},"Extra runtime features \u002F libraries"," control. From there, ",[57,8562,8563],{},"URL.createObjectURL(blob)"," gives you a URL you can drop into an ",[57,8566,8567],{},"\u003Cimg>",[25,8569,751],{"id":750},[753,8571,8572,8577,8581],{},[756,8573,8574],{},[19,8575,8576],{"href":8195},"Python \u002F Qiskit projects",[756,8578,8579],{},[19,8580,4571],{"href":4570},[756,8582,8583],{},[19,8584,4577],{"href":4576},[773,8586,8587],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":8589},[8590,8591,8592,8593,8594],{"id":8200,"depth":547,"text":8201},{"id":8220,"depth":547,"text":8221},{"id":8319,"depth":547,"text":8320},{"id":8546,"depth":547,"text":8547},{"id":750,"depth":547,"text":751},"Build interactive, visual quantum projects in JavaScript: the Qiskit API in the browser, with your own HTML and CSS for output.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fjs-qiskit-projects",[],{"title":8600,"description":8601},"JS \u002F Qiskit projects · Qollab docs","How the JS\u002FQiskit framework works on Qollab: the Qiskit API in JavaScript, calling conventions, the pre-created backend, and rendering results to the DOM.","blog\u002Flearn\u002Fdocs\u002Fjs-qiskit-projects",[],"rXq9svWxHuBKUqiLUdFjQkcG2brZyGBdcDHozW8fH0U",{"id":8606,"title":7440,"authors":7,"body":8607,"breadcrumb":7,"builders":7,"byline":7,"category":8037,"categoryName":8038,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8741,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8742,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":536,"outcomes":7,"path":8743,"publishDate":7457,"readingTime":7,"related":8744,"relatedProjects":7,"seo":8745,"stem":8748,"tags":8749,"track":7,"trackName":7,"__hash__":8750},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fproject-anatomy.md",{"type":9,"value":8608,"toc":8737},[8609,8612,8617,8697,8701,8716,8718],[12,8610,8611],{},"Every Qollab project uses the same layout. Here is the map, so the rest of these docs make sense.",[2175,8613],{"alt":8614,"caption":8615,"no":529,"src":8616},"A Qollab project page with four numbered areas: the tabs, the main column, the sidebar, and the header.","The four areas of a project page.","\u002F_content\u002Fimages\u002Fdocs\u002Fproject-anatomy.webp",[1267,8618,8619,8631,8649,8675],{},[756,8620,8621,8624,8625,1576,8628,8630],{},[974,8622,8623],{},"The tabs."," A project has two: ",[974,8626,8627],{},"Project Card",[974,8629,41],{},". Project Card holds your write-up and details. Code holds the editor and the runner where circuits execute.",[756,8632,8633,8636,8637,8640,8641,8644,8645,8648],{},[974,8634,8635],{},"The main column."," Your project ",[974,8638,8639],{},"title",", an optional ",[974,8642,8643],{},"thumbnail"," image, and the ",[974,8646,8647],{},"write-up",", a Markdown editor with a Preview toggle and support for math notation.",[756,8650,8651,8116,8654,1133,8657,8660,8661,8664,8665,8668,8669,1324,8672,114],{},[974,8652,8653],{},"The sidebar.",[974,8655,8656],{},"contributors",[974,8658,8659],{},"tags",", the ",[974,8662,8663],{},"About"," summary that shows on your project card, your published ",[974,8666,8667],{},"versions",", and links to a ",[974,8670,8671],{},"repository",[974,8673,8674],{},"website",[756,8676,8677,8680,8681,8684,8685,8688,8689,8692,8693,8696],{},[974,8678,8679],{},"The header."," A ",[974,8682,8683],{},"Draft"," label until you publish, the ",[974,8686,8687],{},"Publish"," button, ",[974,8690,8691],{},"Run on Qollab",", and the ",[974,8694,8695],{},"⋯"," menu for project settings and delete. The autosave status also appears here as you edit.",[25,8698,8700],{"id":8699},"draft-versus-published","Draft versus published",[12,8702,8703,8704,8707,8708,8711,8712,8715],{},"A project is ",[974,8705,8706],{},"private"," while it is a draft: only you can see it. ",[974,8709,8710],{},"Publishing"," makes it publicly reachable at ",[57,8713,8714],{},"qollab.xyz\u002Fu\u002F\u003Cyour-username>\u002F\u003Cproject>"," and tags a version, starting at v1.0. After that, edits save as a new draft on top of the published version, and you choose when to publish those changes. Nothing you edit goes live until you publish it.",[25,8717,751],{"id":750},[753,8719,8720,8725,8729,8733],{},[756,8721,8722],{},[19,8723,8724],{"href":4711},"Create a Project on Qollab",[756,8726,8727],{},[19,8728,8025],{"href":8024},[756,8730,8731],{},[19,8732,4560],{"href":4559},[756,8734,8735],{},[19,8736,4577],{"href":4576},{"title":529,"searchDepth":547,"depth":547,"links":8738},[8739,8740],{"id":8699,"depth":547,"text":8700},{"id":750,"depth":547,"text":751},"A map of the Qollab project page: the two tabs, the write-up, the sidebar, and the header, and what draft versus published means.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fproject-anatomy",[],{"title":8746,"description":8747},"The project page · Qollab docs","The parts of a Qollab project page and how they fit together, plus what changes when you publish.","blog\u002Flearn\u002Fdocs\u002Fproject-anatomy",[],"1SdoXQ5bCHa1JwyqnYPtJHW3XaRhOr8COq3HqjypZw8",{"id":8752,"title":4560,"authors":7,"body":8753,"breadcrumb":7,"builders":7,"byline":7,"category":8037,"categoryName":8038,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8838,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8839,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":575,"outcomes":7,"path":8840,"publishDate":7457,"readingTime":7,"related":8841,"relatedProjects":7,"seo":8842,"stem":8845,"tags":8846,"track":7,"trackName":7,"__hash__":8847},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fpublish.md",{"type":9,"value":8754,"toc":8831},[8755,8758,8761,8780,8785,8789,8796,8799,8805,8809,8815,8817],[12,8756,8757],{},"A project is private while it is a draft. Publishing makes it public and gives it a version.",[25,8759,8687],{"id":8760},"publish",[12,8762,4645,8763,8766,8767,8769,8770,8772,8773,8776,8777,114],{},[974,8764,8765],{},"Publish Project"," in the header. The ",[974,8768,8683],{}," label clears, your project becomes reachable at ",[57,8771,8714],{},", and this first release is tagged ",[974,8774,8775],{},"v1.0",". Publishing confirms that your work follows the ",[19,8778,8779],{"href":4689},"Community Guidelines",[2175,8781],{"alt":8782,"caption":8783,"no":529,"src":8784},"The project header showing the Draft label and the Publish button.","The Draft label and the Publish button in the project header.","\u002F_content\u002Fimages\u002Fdocs\u002Fpublish.webp",[25,8786,8788],{"id":8787},"updating-a-published-project","Updating a published project",[12,8790,8791,8792,8795],{},"After you publish, any edits save as a ",[974,8793,8794],{},"new draft on top"," of the live version. The header shows \"Unpublished changes\" and offers to publish them when you are ready. Your public project stays exactly as it is until you choose to update it, so you can work in the open without pushing half-finished changes live.",[25,8797,8798],{"id":8667},"Versions",[12,8800,8801,8802,114],{},"Each time you publish, Qollab tags a version, starting at v1.0. Your published versions are listed in the sidebar under ",[974,8803,8804],{},"Project Versions",[25,8806,8808],{"id":8807},"unpublish-or-delete","Unpublish or delete",[12,8810,8811,8812,8814],{},"Both live in the ",[974,8813,8695],{}," menu in the project header. Unpublishing returns a project to a private draft; deleting removes it for good.",[25,8816,751],{"id":750},[753,8818,8819,8823,8827],{},[756,8820,8821],{},[19,8822,7440],{"href":7439},[756,8824,8825],{},[19,8826,8025],{"href":8024},[756,8828,8829],{},[19,8830,7445],{"href":4689},{"title":529,"searchDepth":547,"depth":547,"links":8832},[8833,8834,8835,8836,8837],{"id":8760,"depth":547,"text":8687},{"id":8787,"depth":547,"text":8788},{"id":8667,"depth":547,"text":8798},{"id":8807,"depth":547,"text":8808},{"id":750,"depth":547,"text":751},"Publishing turns your draft into a public project, tags a version, and lets you update it later without anything going live before you say so.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fpublish",[],{"title":8843,"description":8844},"Publishing and versions · Qollab docs","How publishing works on Qollab: making a project public, version tags, and updating a live project.","blog\u002Flearn\u002Fdocs\u002Fpublish",[],"63QH1-Hh55tc30R6IGwO-fEJW8hTa27ux4pxlWPc4ic",{"id":8849,"title":8576,"authors":7,"body":8850,"breadcrumb":7,"builders":7,"byline":7,"category":7832,"categoryName":7833,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":8932,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":8933,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":603,"outcomes":7,"path":8934,"publishDate":7457,"readingTime":7,"related":8935,"relatedProjects":7,"seo":8936,"stem":8939,"tags":8940,"track":7,"trackName":7,"__hash__":8941},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fpython-qiskit-projects.md",{"type":9,"value":8851,"toc":8926},[8852,8859,8863,8882,8886,8895,8899,8910,8912],[12,8853,8854,8856,8857,8197],{},[974,8855,8196],{}," is the default framework, and the one to use for standard quantum work. You write ordinary Python with Qiskit, and it runs in the browser with nothing to install. For interactive, visual projects, use ",[19,8858,8191],{"href":5116},[25,8860,8862],{"id":8861},"the-environment","The environment",[12,8864,8865,8866,8869,8870,8873,8874,8878,8879,8881],{},"The runtime is ",[974,8867,8868],{},"Python 3.14 with Qiskit 2.x",", plus most of the standard library and extras like ",[974,8871,8872],{},"NumPy 2.x",". A ",[974,8875,8876],{},[57,8877,907],{}," variable is pre-created for the circuit you build, so you can run it without wiring up a provider yourself. Every new project opens on a runnable Bell-state starter; the ",[19,8880,7865],{"href":4410}," walks through running it.",[25,8883,8885],{"id":8884},"visualizations","Visualizations",[12,8887,8888,8889,8891,8892,8894],{},"Circuit drawings and plots need the ",[974,8890,8555],{}," package, which you turn on from the ",[19,8893,8559],{"href":4570}," control. Leave it off for text-only runs to keep the environment light.",[25,8896,8898],{"id":8897},"learning-qiskit","Learning Qiskit",[12,8900,8901,8902,8906,8907,8909],{},"The Qiskit API itself is standard, so this doc does not repeat it. For building circuits, gates, transpilation, and primitives, use ",[19,8903,8905],{"href":8904},"https:\u002F\u002Fquantum.cloud.ibm.com\u002Fdocs","Qiskit's own documentation"," as the source of truth. Qollab's part is the runtime and the ",[57,8908,907],{},"; the language is Qiskit's.",[25,8911,751],{"id":750},[753,8913,8914,8918,8922],{},[756,8915,8916],{},[19,8917,8184],{"href":5116},[756,8919,8920],{},[19,8921,4571],{"href":4570},[756,8923,8924],{},[19,8925,144],{"href":143},{"title":529,"searchDepth":547,"depth":547,"links":8927},[8928,8929,8930,8931],{"id":8861,"depth":547,"text":8862},{"id":8884,"depth":547,"text":8885},{"id":8897,"depth":547,"text":8898},{"id":750,"depth":547,"text":751},"The default framework: standard Python and Qiskit, running in the browser, with a pre-created backend.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fpython-qiskit-projects",[],{"title":8937,"description":8938},"Python \u002F Qiskit projects · Qollab docs","The Python\u002FQiskit framework on Qollab: the browser runtime, the pre-created backend, visualizations, and where to learn the Qiskit API.","blog\u002Flearn\u002Fdocs\u002Fpython-qiskit-projects",[],"gQdFjoVjNjq-xhhnya81QrmGXvwDi5xTCXbx8mdYWCQ",{"id":8943,"title":4577,"authors":7,"body":8944,"breadcrumb":7,"builders":7,"byline":7,"category":7832,"categoryName":7833,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":9040,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":9041,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":547,"outcomes":7,"path":9042,"publishDate":7457,"readingTime":7,"related":9043,"relatedProjects":7,"seo":9044,"stem":9047,"tags":9048,"track":7,"trackName":7,"__hash__":9049},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Frun-your-code.md",{"type":9,"value":8945,"toc":9034},[8946,8954,8958,8968,8973,8977,8986,8990,8994,9003,9008,9018,9020],[12,8947,4657,8948,8950,8951,8953],{},[974,8949,41],{}," tab has two modes: an editor and a runner. This is the short version of running a circuit. The ",[19,8952,7865],{"href":4410}," walks through it in full.",[25,8955,8957],{"id":8956},"_1-open-the-runner","1. Open the runner",[12,8959,8960,8961,8964,8965,8967],{},"On the Code tab, click ",[974,8962,8963],{},"Run Project"," to switch from the editor to the runner. Set how many ",[974,8966,269],{}," to take; the default is 100.",[2175,8969],{"alt":8970,"caption":8971,"no":529,"src":8972},"The runner in the Code tab, with a Shots field and a Run button.","The runner. Set your shots, then press Run.","\u002F_content\u002Fimages\u002Fdocs\u002Frun-mode.webp",[25,8974,8976],{"id":8975},"_2-pick-where-it-runs","2. Pick where it runs",[12,8978,4552,8979,8692,8981,8983,8984,114],{},[974,8980,4555],{},[974,8982,5138],{}," dialog opens. Choose a backend: simulators are free and instant, and only real hardware uses credits. The full list is in ",[19,8985,144],{"href":143},[2175,8987],{"alt":8988,"caption":8989,"no":529,"src":7479},"The Select QPU dialog listing free simulators and quantum hardware.","Start on a free simulator before spending credits on hardware.",[25,8991,8993],{"id":8992},"_3-run-and-read-the-results","3. Run and read the results",[12,8995,4552,8996,8998,8999,9002],{},[974,8997,4555],{}," in the dialog. The console tracks progress, then shows your results: the standard output from any ",[57,9000,9001],{},"print()"," calls, the circuit that ran, and a bar chart of the measurement probabilities.",[2175,9004],{"alt":9005,"caption":9006,"no":529,"src":9007},"The console after a run, showing the circuit, the counts, and a probabilities chart.","A finished run: the circuit, the counts, and the probabilities.","\u002F_content\u002Fimages\u002Fdocs\u002Frun-output.webp",[12,9009,9010,9011,1576,9014,9017],{},"The toolbar above the console has ",[974,9012,9013],{},"copy",[974,9015,9016],{},"download"," buttons, so you can paste real results into your project write-up.",[25,9019,751],{"id":750},[753,9021,9022,9026,9030],{},[756,9023,9024],{},[19,9025,4411],{"href":4410},[756,9027,9028],{},[19,9029,144],{"href":143},[756,9031,9032],{},[19,9033,214],{"href":213},{"title":529,"searchDepth":547,"depth":547,"links":9035},[9036,9037,9038,9039],{"id":8956,"depth":547,"text":8957},{"id":8975,"depth":547,"text":8976},{"id":8992,"depth":547,"text":8993},{"id":750,"depth":547,"text":751},"Run a circuit from the Code tab: open the runner, set your shots, pick a backend in the Select QPU dialog, and read the results.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Frun-your-code",[],{"title":9045,"description":9046},"Running your code · Qollab docs","How to run a Qiskit circuit in the Qollab playground: the runner, the Select QPU dialog, and the results.","blog\u002Flearn\u002Fdocs\u002Frun-your-code",[],"8BA2k3JI78VjHekCX1QvOxT9BQHcsQ4qgq78V508M_0",{"id":9051,"title":4571,"authors":7,"body":9052,"breadcrumb":7,"builders":7,"byline":7,"category":7832,"categoryName":7833,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":9140,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":9141,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":590,"outcomes":7,"path":9142,"publishDate":7457,"readingTime":7,"related":9143,"relatedProjects":7,"seo":9144,"stem":9147,"tags":9148,"track":7,"trackName":7,"__hash__":9149},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fruntime-environment.md",{"type":9,"value":9053,"toc":9134},[9054,9057,9061,9064,9084,9094,9098,9104,9108,9118,9120],[12,9055,9056],{},"When you run a project, Qollab gives you a ready-to-go environment in the browser. Here is what is in it.",[25,9058,9060],{"id":9059},"two-frameworks","Two frameworks",[12,9062,9063],{},"You pick a framework when you create a project, and it sets what the editor runs:",[753,9065,9066,9079],{},[756,9067,9068,9070,9071,9074,9075,9078],{},[974,9069,8196],{}," runs Python with ",[974,9072,9073],{},"Qiskit 2.x"," in your browser, with ",[974,9076,9077],{},"NumPy"," and most of the standard library available.",[756,9080,9081,9083],{},[974,9082,8191],{}," runs your own HTML, CSS, and JavaScript in a sandboxed iframe, with the Qiskit 2.x API exported to JavaScript.",[12,9085,9086,9087,9091,9092,114],{},"Either way, a ",[974,9088,9089],{},[57,9090,907],{}," variable is pre-created for the circuit you build, so you can run it without wiring up a provider yourself. The backend you actually run against is the one you choose in the ",[19,9093,4497],{"href":143},[25,9095,9097],{"id":9096},"extra-libraries","Extra libraries",[12,9099,9100,9101,9103],{},"The Code tab has an ",[974,9102,8559],{}," control for turning on additional providers and packages, each with a link to its own documentation. Enable the ones your circuit needs, and leave the rest off to keep the environment light.",[25,9105,9107],{"id":9106},"browser-support","Browser support",[12,9109,9110,9111,9114,9115,9117],{},"The environment runs on WebAssembly and needs a browser that supports JSPI: a recent ",[974,9112,9113],{},"Chrome, Edge, or Opera",". If you see a compatibility warning, the ",[19,9116,724],{"href":760}," has the fix, including how to turn it on in Firefox.",[25,9119,751],{"id":750},[753,9121,9122,9126,9130],{},[756,9123,9124],{},[19,9125,4577],{"href":4576},[756,9127,9128],{},[19,9129,144],{"href":143},[756,9131,9132],{},[19,9133,4411],{"href":4410},{"title":529,"searchDepth":547,"depth":547,"links":9135},[9136,9137,9138,9139],{"id":9059,"depth":547,"text":9060},{"id":9096,"depth":547,"text":9097},{"id":9106,"depth":547,"text":9107},{"id":750,"depth":547,"text":751},"What runs your code in the playground: the two frameworks, the pre-created backend, the extra-libraries control, and the browser requirement.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fruntime-environment",[],{"title":9145,"description":9146},"The runtime environment · Qollab docs","The Qollab code environment: Python\u002FQiskit and JS\u002FQiskit frameworks, the pre-created backend, extra libraries, and the JSPI browser requirement.","blog\u002Flearn\u002Fdocs\u002Fruntime-environment",[],"WtES7p6VRHubJAzvbkYBqfjQcnj82NXpa05JanIUK1Q",{"id":9151,"title":8025,"authors":7,"body":9152,"breadcrumb":7,"builders":7,"byline":7,"category":8037,"categoryName":8038,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":9248,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":788,"lessonCount":7,"meta":9249,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":547,"outcomes":7,"path":9250,"publishDate":7457,"readingTime":7,"related":9251,"relatedProjects":7,"seo":9252,"stem":9255,"tags":9256,"track":7,"trackName":7,"__hash__":9257},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Fwrite-your-project-page.md",{"type":9,"value":9153,"toc":9243},[9154,9159,9163,9176,9181,9185,9227,9229],[12,9155,4657,9156,9158],{},[974,9157,8627],{}," tab is where you document your work, so others can understand it and build on it. Everything here saves on its own as you type; there is no Save button, and the header shows a save status.",[25,9160,9162],{"id":9161},"the-write-up","The write-up",[12,9164,9165,9166,8873,9169,9171,9172,9175],{},"The main editor takes ",[974,9167,9168],{},"Markdown",[974,9170,4808],{}," toggle shows it the way readers will see it, and the toolbar includes a ",[974,9173,9174],{},"math"," button for the equations quantum write-ups usually need.",[2175,9177],{"alt":9178,"caption":9179,"no":529,"src":9180},"The Markdown write-up editor with a Write and Preview toggle and a formatting toolbar.","The write-up editor: Markdown, a Preview toggle, and math notation.","\u002F_content\u002Fimages\u002Fdocs\u002Fwrite-editor.webp",[25,9182,9184],{"id":9183},"the-rest-of-the-card","The rest of the card",[753,9186,9187,9193,9207,9213],{},[756,9188,9189,9192],{},[974,9190,9191],{},"Thumbnail"," (optional): drag and drop an image, or Browse. It is the picture that represents your project wherever it is listed. Without one, a default image is used.",[756,9194,9195,9198,9199,1133,9201,8239,9204,9206],{},[974,9196,9197],{},"Tags",": topics like ",[57,9200,8234],{},[57,9202,9203],{},"ionq",[57,9205,5823],{}," that help people find your work.",[756,9208,9209,9212],{},[974,9210,9211],{},"Contributors",": add collaborators to the project.",[756,9214,9215,9218,9219,9222,9223,9226],{},[974,9216,9217],{},"Links",": a ",[974,9220,9221],{},"Git repository"," and a ",[974,9224,9225],{},"project website",", for anyone who wants the full source or a live demo.",[25,9228,751],{"id":750},[753,9230,9231,9235,9239],{},[756,9232,9233],{},[19,9234,7440],{"href":7439},[756,9236,9237],{},[19,9238,4560],{"href":4559},[756,9240,9241],{},[19,9242,8724],{"href":4711},{"title":529,"searchDepth":547,"depth":547,"links":9244},[9245,9246,9247],{"id":9161,"depth":547,"text":9162},{"id":9183,"depth":547,"text":9184},{"id":750,"depth":547,"text":751},"The Project Card tab: the Markdown write-up with math and preview, plus your thumbnail, tags, contributors, and links.",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Fwrite-your-project-page",[],{"title":9253,"description":9254},"Editing your project · Qollab docs","How to document a Qollab project: the Markdown editor, thumbnail, tags, contributors, and repository links.","blog\u002Flearn\u002Fdocs\u002Fwrite-your-project-page",[],"0A1nvEqz3Ww2gOpS5yl_3-WbL5L9Hsvk-3R5epN7z_Q",{"id":9259,"title":9260,"authors":9261,"body":9262,"breadcrumb":7,"builders":7,"byline":7,"category":7,"categoryName":7,"challenge":9266,"courseAuthor":7,"courseLead":7,"dek":7,"description":9273,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":9274,"lessonCount":7,"meta":9275,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":9276,"publishDate":9277,"readingTime":7,"related":9278,"relatedProjects":7,"seo":9279,"stem":9280,"tags":9281,"track":7,"trackName":7,"__hash__":9282},"blog\u002Fblog\u002Fprograms\u002Fquantum-hackathon.md","Qollab Quantum Hackathon",[1037],{"type":9,"value":9263,"toc":9264},[],{"title":529,"searchDepth":547,"depth":547,"links":9265},[],{"type":9267,"status":9268,"deadline":9269,"prize":9270,"terms":9271,"to":9272,"pinned":790},"competition","upcoming","Registration opens Sept 28 · builds Oct 9–11","$10,000 cash and $20,000 in compute for the global winner, plus node awards","MIT licensed, built inside the 48-hour window, published and runnable on Qollab","\u002Fprograms\u002Fhackathon","A 48-hour global quantum hackathon with Qollab, IonQ and partners. Build an open-source quantum project on Qollab, judged first at your university node and then by a global panel.","challenge",{},"\u002Fblog\u002Fprograms\u002Fquantum-hackathon","2026-09-02",[],{"title":9260,"description":9273},"blog\u002Fprograms\u002Fquantum-hackathon",[9203,4383],"BqjySwKT3skwC-HAaPJ-Fy9fp6JDrqFXFTRC7KaxBqc",{"id":9284,"title":9285,"authors":9286,"body":9288,"breadcrumb":9379,"builders":9381,"byline":7,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":9382,"description":9383,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":9384,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":9385,"publishDate":9386,"readingTime":5206,"related":9387,"relatedProjects":7,"seo":9388,"stem":9389,"tags":9390,"track":7,"trackName":7,"__hash__":9394},"blog\u002Fblog\u002Fgoogle-ecdsa-circuit-nine-weeks.md","Google withheld an ECDSA circuit. It lasted nine weeks.",[9287],"mirya",{"type":9,"value":9289,"toc":9375},[9290,9293,9296,9299,9313,9316,9319,9323,9326,9329,9340,9343,9346,9353,9356,9360,9363,9366,9369,9372],[12,9291,9292],{},"On 31 March, Google's quantum team published a resource estimate for the elliptic-curve discrete log problem and withheld the circuit behind it.",[12,9294,9295],{},"The estimate covers point addition on secp256k1, the primitive Shor's algorithm repeats inside a windowed phase-estimation loop to recover a private key: roughly 1,175 logical qubits and 2.6 million Toffoli gates, about 3.0 × 10⁹ on the qubit-Toffoli product. In place of the construction, Google published a zero-knowledge proof that a circuit meeting those counts exists. The stated reason was responsible disclosure, reportedly at US government urging.",[12,9297,9298],{},"Two things then happened to that decision:",[753,9300,9301,9307],{},[756,9302,9303,9306],{},[974,9304,9305],{},"The prover, not the proof."," In April, Trail of Bits found memory-safety and logic bugs in Google's Rust prover, enough to forge a proof for a claim that was not true. The protocol was sound. The implementation was not, and the disclosure format put that implementation beyond anyone's reach to audit.",[756,9308,9309,9312],{},[974,9310,9311],{},"The construction, from the literature."," On 2 June, André Schrottenloher published open circuits reconstructed from Google's own prior published work. Space-optimised: about 1,192 logical qubits against Google's 1,175. Gate-optimised: 1,446 against 1,425, with roughly 10% fewer Toffolis. No leak, days of work, and the load-bearing ideas were already in print.",[12,9314,9315],{},"Craig Gidney, who designed the originals, wrote afterwards that open publication would have been the better path. Nine weeks from announcement to independent reconstruction.",[12,9317,9318],{},"The full attack moved just as fast. It now sits near 1,460 logical qubits and 56 million Toffolis, against roughly 200 million under 2023 constructions: half the qubits and a third of the gates in a year.",[25,9320,9322],{"id":9321},"what-ecdsafail-scores","What ecdsa.fail scores",[12,9324,9325],{},"Eigen Labs turned point addition into a leaderboard. Submit a circuit computing the same function at a lower qubits × Toffolis product.",[12,9327,9328],{},"The verification is what makes the score mean anything:",[753,9330,9331,9334,9337],{},[756,9332,9333],{},"Reversible circuit, checked over 9,024 test cases",[756,9335,9336],{},"Ancillas uncomputed back to zero",[756,9338,9339],{},"Circuit composed with its inverse must restore the input state exactly",[12,9341,9342],{},"Nothing here executes. No QPU, no simulator, nothing close: these circuits are orders of magnitude past runnable, and every entrant knows it. On hardware you can book today, factoring 35 fails because the circuit runs long enough that noise dominates the output before filtration helps.",[12,9344,9345],{},"A mechanically checkable objective is one an agent loop can grind against, and several entrants wired LLMs straight into the harness. As of late August 2026 the board sits near half of Google's cost and moves most days, now in fractions of a percent. The remaining headroom is smaller than that churn suggests: the arithmetic floor for a 256-bit prime is around 2n qubits, roughly 500, so getting from ~1,150 down to it is a factor of two rather than another order of magnitude.",[12,9347,9348,9349,9352],{},"doubleAI's WarpSpeed reports 1,205 qubits and 993,181 Toffolis: 1.20 × 10⁹ against the board leader's 1.49 × 10⁹ and Google's ~3.0 × 10⁹. It skipped the truncated-Schrottenloher inverse the board had been optimising and used a Kaliski almost-inverse instead, with an AVX-512 simulator checking 512 inputs per pass. Days of work, under $5k in tokens. Along the way it found a sandbox escape in the evaluation harness: constructor functions in a submitted Rust binary run before ",[57,9350,9351],{},"main",", so a submission could execute code inside the grader before its circuit was ever evaluated. Reported and patched before use.",[12,9354,9355],{},"The circuit itself is unpublished. What doubleAI released is a zero-knowledge proof of its cost, the same disclosure move Google made in March, from the team that had just beaten it.",[25,9357,9359],{"id":9358},"checkable-not-open","Checkable, not open",[12,9361,9362],{},"\"Open wins\" is the wrong reading, because a closed team currently holds the best number: what survives the episode is checkable versus not.",[12,9364,9365],{},"Schrottenloher's reconstruction was possible because Google's prior work was published. The leaderboard means something because its verifier is public and deterministic. Trail of Bits found the forgery path because they could reach the binary. The one artifact nobody could examine is the one that failed.",[12,9367,9368],{},"And of everything produced across five months, only the published circuits are usable by anyone else. Google's and WarpSpeed's are, from outside, indistinguishable from claims that are wrong.",[12,9370,9371],{},"So the conclusion is not that Google should have published. It is that publishing norms did not settle this and a verifier did. WarpSpeed withheld its circuit and took the top score anyway, so the norm plainly does not bind. What made both withheld circuits irrelevant was that anyone could check a better one inside a quarter. If you want a field where secrecy does not pay, build the checker rather than argue for openness.",[12,9373,9374],{},"Which is easier said than done, because a checker needs a scalar. Point addition has one. So do a handful of other quantum problems: circuit optimisation against a fixed unitary, state preparation to a target fidelity on a fixed gate budget, decoder design scored on logical error rate under a fixed noise model. Most work has none, and for that the closest substitute is an artifact someone else can fork and run: a much weaker check, and still the whole difference between a claim and a result.",{"title":529,"searchDepth":547,"depth":547,"links":9376},[9377,9378],{"id":9321,"depth":547,"text":9322},{"id":9358,"depth":547,"text":9359},[4349,4637,9380],"ECDSA.fail",[],"What a forged proof, one independent reconstruction, and an agent-driven leaderboard say about checkable work.","Google published a resource estimate for breaking secp256k1 and withheld the circuit behind a zero-knowledge proof. The proof was forged in April and the construction was independently rebuilt in June.",{},"\u002Fblog\u002Fgoogle-ecdsa-circuit-nine-weeks","2026-08-26",[],{"title":9285,"description":9383},"blog\u002Fgoogle-ecdsa-circuit-nine-weeks",[9391,9392,9393],"algorithms","cryptography","open-source","hUm9WB5FIIqPrRTfBQgxYboG09RtwFnzvH-f6r-jrt4",{"id":9396,"title":9397,"authors":9398,"body":9399,"breadcrumb":16781,"builders":16784,"byline":16793,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":16795,"draft":786,"extension":787,"eyebrow":16796,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":16797,"navigation":790,"newsItems":7,"next":7,"ogImage":16798,"order":7,"outcomes":7,"path":16799,"publishDate":16800,"readingTime":16801,"related":16802,"relatedProjects":7,"seo":16803,"stem":16804,"tags":16805,"track":7,"trackName":7,"__hash__":16808},"blog\u002Fblog\u002Fexpert-notes\u002Fcross-resonance-gate-visualization.md","Cross-Resonance Gate: Slices and Heatmaps",[6135],{"type":9,"value":9400,"toc":16776},[9401,9412,9416,10992,10995,10999,11077,14064,14068,14072,14076,14080,15064,15068,16769,16773],[12,9402,9403],{},[9404,9405,9406,9407,9411],"em",{},"Republished with the author's permission from ",[19,9408,9410],{"href":9409},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum\u002FQC-Hardware-How-To\u002Fblob\u002Fmain\u002FJupyter%20Notebook%20Scripts\u002FCross_Resonance_Gate_Visualization.ipynb","the original notebook"," and shared under CC-BY-4.0. The text, code, and figures below are Onri's, as published.",[25,9413,9415],{"id":9414},"cross-resonance-cr-gate","Cross-Resonance (CR) Gate",[30,9417,9418,9432],{},[33,9419,9420],{},[36,9421,9422,9426,9429],{},[39,9423,9425],{"align":9424},"right","#",[39,9427,9428],{},"Figure",[39,9430,9431],{},"What to notice",[49,9433,9434,9707,9939,10188,10389,10662,10834],{},[36,9435,9436,9438,9676],{},[54,9437,1052],{"align":9424},[54,9439,9440,9556,9557,9644,9645,2632],{},[533,9441,9444,9477],{"className":9442},[9443],"katex",[533,9445,9448],{"className":9446},[9447],"katex-mathml",[9174,9449,9451],{"xmlns":9450},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[9452,9453,9454,9472],"semantics",{},[9455,9456,9457],"mrow",{},[9458,9459,9460,9464],"msub",{},[9461,9462,9463],"mi",{},"ω",[9455,9465,9466,9469],{},[9461,9467,9468],{},"Z",[9461,9470,9471],{},"X",[9473,9474,9476],"annotation",{"encoding":9475},"application\u002Fx-tex","\\omega_{ZX}",[533,9478,9481],{"className":9479,"ariaHidden":1089},[9480],"katex-html",[533,9482,9485,9490],{"className":9483},[9484],"base",[533,9486],{"className":9487,"style":9489},[9488],"strut","height:0.5806em;vertical-align:-0.15em;",[533,9491,9494,9499],{"className":9492},[9493],"mord",[533,9495,9463],{"className":9496,"style":9498},[9493,9497],"mathnormal","margin-right:0.0359em;",[533,9500,9503],{"className":9501},[9502],"msupsub",[533,9504,9508,9547],{"className":9505},[9506,9507],"vlist-t","vlist-t2",[533,9509,9512,9543],{"className":9510},[9511],"vlist-r",[533,9513,9517],{"className":9514,"style":9516},[9515],"vlist","height:0.3283em;",[533,9518,9520,9525],{"style":9519},"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;",[533,9521],{"className":9522,"style":9524},[9523],"pstrut","height:2.7em;",[533,9526,9532],{"className":9527},[9528,9529,9530,9531],"sizing","reset-size6","size3","mtight",[533,9533,9535,9539],{"className":9534},[9493,9531],[533,9536,9468],{"className":9537,"style":9538},[9493,9497,9531],"margin-right:0.0715em;",[533,9540,9471],{"className":9541,"style":9542},[9493,9497,9531],"margin-right:0.0785em;",[533,9544,1090],{"className":9545},[9546],"vlist-s",[533,9548,9550],{"className":9549},[9511],[533,9551,9554],{"className":9552,"style":9553},[9515],"height:0.15em;",[533,9555],{}," vs ",[533,9558,9560,9586],{"className":9559},[9443],[533,9561,9563],{"className":9562},[9447],[9174,9564,9565],{"xmlns":9450},[9452,9566,9567,9583],{},[9455,9568,9569],{},[9458,9570,9571,9575],{},[9461,9572,9574],{"mathvariant":9573},"normal","Δ",[9455,9576,9577,9580],{},[9461,9578,9579],{},"c",[9461,9581,9582],{},"t",[9473,9584,9585],{"encoding":9475},"\\Delta_{ct}",[533,9587,9589],{"className":9588,"ariaHidden":1089},[9480],[533,9590,9592,9596],{"className":9591},[9484],[533,9593],{"className":9594,"style":9595},[9488],"height:0.8333em;vertical-align:-0.15em;",[533,9597,9599,9602],{"className":9598},[9493],[533,9600,9574],{"className":9601},[9493],[533,9603,9605],{"className":9604},[9502],[533,9606,9608,9636],{"className":9607},[9506,9507],[533,9609,9611,9633],{"className":9610},[9511],[533,9612,9615],{"className":9613,"style":9614},[9515],"height:0.2806em;",[533,9616,9618,9621],{"style":9617},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[533,9619],{"className":9620,"style":9524},[9523],[533,9622,9624],{"className":9623},[9528,9529,9530,9531],[533,9625,9627,9630],{"className":9626},[9493,9531],[533,9628,9579],{"className":9629},[9493,9497,9531],[533,9631,9582],{"className":9632},[9493,9497,9531],[533,9634,1090],{"className":9635},[9546],[533,9637,9639],{"className":9638},[9511],[533,9640,9642],{"className":9641,"style":9553},[9515],[533,9643],{}," (slice at fixed ",[533,9646,9648,9663],{"className":9647},[9443],[533,9649,9651],{"className":9650},[9447],[9174,9652,9653],{"xmlns":9450},[9452,9654,9655,9660],{},[9455,9656,9657],{},[9461,9658,9659],{"mathvariant":9573},"Ω",[9473,9661,9662],{"encoding":9475},"\\Omega",[533,9664,9666],{"className":9665,"ariaHidden":1089},[9480],[533,9667,9669,9673],{"className":9668},[9484],[533,9670],{"className":9671,"style":9672},[9488],"height:0.6833em;",[533,9674,9659],{"className":9675},[9493],[54,9677,9678,9679,114],{},"Entangling-rate sign flips at poles; magnitude peaks between poles; roughly linear in drive amplitude ",[533,9680,9682,9695],{"className":9681},[9443],[533,9683,9685],{"className":9684},[9447],[9174,9686,9687],{"xmlns":9450},[9452,9688,9689,9693],{},[9455,9690,9691],{},[9461,9692,9659],{"mathvariant":9573},[9473,9694,9662],{"encoding":9475},[533,9696,9698],{"className":9697,"ariaHidden":1089},[9480],[533,9699,9701,9704],{"className":9700},[9484],[533,9702],{"className":9703,"style":9672},[9488],[533,9705,9659],{"className":9706},[9493],[36,9708,9709,9711,9872],{},[54,9710,1140],{"align":9424},[54,9712,9713,9556,9793],{},[533,9714,9716,9738],{"className":9715},[9443],[533,9717,9719],{"className":9718},[9447],[9174,9720,9721],{"xmlns":9450},[9452,9722,9723,9735],{},[9455,9724,9725],{},[9458,9726,9727,9729],{},[9461,9728,9463],{},[9455,9730,9731,9733],{},[9461,9732,9468],{},[9461,9734,9468],{},[9473,9736,9737],{"encoding":9475},"\\omega_{ZZ}",[533,9739,9741],{"className":9740,"ariaHidden":1089},[9480],[533,9742,9744,9747],{"className":9743},[9484],[533,9745],{"className":9746,"style":9489},[9488],[533,9748,9750,9753],{"className":9749},[9493],[533,9751,9463],{"className":9752,"style":9498},[9493,9497],[533,9754,9756],{"className":9755},[9502],[533,9757,9759,9785],{"className":9758},[9506,9507],[533,9760,9762,9782],{"className":9761},[9511],[533,9763,9765],{"className":9764,"style":9516},[9515],[533,9766,9767,9770],{"style":9519},[533,9768],{"className":9769,"style":9524},[9523],[533,9771,9773],{"className":9772},[9528,9529,9530,9531],[533,9774,9776,9779],{"className":9775},[9493,9531],[533,9777,9468],{"className":9778,"style":9538},[9493,9497,9531],[533,9780,9468],{"className":9781,"style":9538},[9493,9497,9531],[533,9783,1090],{"className":9784},[9546],[533,9786,9788],{"className":9787},[9511],[533,9789,9791],{"className":9790,"style":9553},[9515],[533,9792],{},[533,9794,9796,9817],{"className":9795},[9443],[533,9797,9799],{"className":9798},[9447],[9174,9800,9801],{"xmlns":9450},[9452,9802,9803,9815],{},[9455,9804,9805],{},[9458,9806,9807,9809],{},[9461,9808,9574],{"mathvariant":9573},[9455,9810,9811,9813],{},[9461,9812,9579],{},[9461,9814,9582],{},[9473,9816,9585],{"encoding":9475},[533,9818,9820],{"className":9819,"ariaHidden":1089},[9480],[533,9821,9823,9826],{"className":9822},[9484],[533,9824],{"className":9825,"style":9595},[9488],[533,9827,9829,9832],{"className":9828},[9493],[533,9830,9574],{"className":9831},[9493],[533,9833,9835],{"className":9834},[9502],[533,9836,9838,9864],{"className":9837},[9506,9507],[533,9839,9841,9861],{"className":9840},[9511],[533,9842,9844],{"className":9843,"style":9614},[9515],[533,9845,9846,9849],{"style":9617},[533,9847],{"className":9848,"style":9524},[9523],[533,9850,9852],{"className":9851},[9528,9529,9530,9531],[533,9853,9855,9858],{"className":9854},[9493,9531],[533,9856,9579],{"className":9857},[9493,9497,9531],[533,9859,9582],{"className":9860},[9493,9497,9531],[533,9862,1090],{"className":9863},[9546],[533,9865,9867],{"className":9866},[9511],[533,9868,9870],{"className":9869,"style":9553},[9515],[533,9871],{},[54,9873,9874,9875,9909,9910,9938],{},"Static ",[533,9876,9878,9894],{"className":9877},[9443],[533,9879,9881],{"className":9880},[9447],[9174,9882,9883],{"xmlns":9450},[9452,9884,9885,9891],{},[9455,9886,9887,9889],{},[9461,9888,9468],{},[9461,9890,9468],{},[9473,9892,9893],{"encoding":9475},"ZZ",[533,9895,9897],{"className":9896,"ariaHidden":1089},[9480],[533,9898,9900,9903,9906],{"className":9899},[9484],[533,9901],{"className":9902,"style":9672},[9488],[533,9904,9468],{"className":9905,"style":9538},[9493,9497],[533,9907,9468],{"className":9908,"style":9538},[9493,9497]," varies strongly near poles; lowest between poles; independent of ",[533,9911,9913,9926],{"className":9912},[9443],[533,9914,9916],{"className":9915},[9447],[9174,9917,9918],{"xmlns":9450},[9452,9919,9920,9924],{},[9455,9921,9922],{},[9461,9923,9659],{"mathvariant":9573},[9473,9925,9662],{"encoding":9475},[533,9927,9929],{"className":9928,"ariaHidden":1089},[9480],[533,9930,9932,9935],{"className":9931},[9484],[533,9933],{"className":9934,"style":9672},[9488],[533,9936,9659],{"className":9937},[9493]," at leading order.",[36,9940,9941,9943,10181],{},[54,9942,1157],{"align":9424},[54,9944,9945,9556,10102],{},[533,9946,9948,9989],{"className":9947},[9443],[533,9949,9951],{"className":9950},[9447],[9174,9952,9953],{"xmlns":9450},[9452,9954,9955,9986],{},[9455,9956,9957,9962,9972,9974,9984],{},[9958,9959,9961],"mo",{"stretchy":9960},"false","∣",[9458,9963,9964,9966],{},[9461,9965,9463],{},[9455,9967,9968,9970],{},[9461,9969,9468],{},[9461,9971,9471],{},[9461,9973,2941],{"mathvariant":9573},[9458,9975,9976,9978],{},[9461,9977,9463],{},[9455,9979,9980,9982],{},[9461,9981,9468],{},[9461,9983,9468],{},[9958,9985,9961],{"stretchy":9960},[9473,9987,9988],{"encoding":9475},"\\lvert \\omega_{ZX}\u002F\\omega_{ZZ}\\rvert",[533,9990,9992],{"className":9991,"ariaHidden":1089},[9480],[533,9993,9995,9999,10003,10049,10052,10098],{"className":9994},[9484],[533,9996],{"className":9997,"style":9998},[9488],"height:1em;vertical-align:-0.25em;",[533,10000,9961],{"className":10001},[10002],"mopen",[533,10004,10006,10009],{"className":10005},[9493],[533,10007,9463],{"className":10008,"style":9498},[9493,9497],[533,10010,10012],{"className":10011},[9502],[533,10013,10015,10041],{"className":10014},[9506,9507],[533,10016,10018,10038],{"className":10017},[9511],[533,10019,10021],{"className":10020,"style":9516},[9515],[533,10022,10023,10026],{"style":9519},[533,10024],{"className":10025,"style":9524},[9523],[533,10027,10029],{"className":10028},[9528,9529,9530,9531],[533,10030,10032,10035],{"className":10031},[9493,9531],[533,10033,9468],{"className":10034,"style":9538},[9493,9497,9531],[533,10036,9471],{"className":10037,"style":9542},[9493,9497,9531],[533,10039,1090],{"className":10040},[9546],[533,10042,10044],{"className":10043},[9511],[533,10045,10047],{"className":10046,"style":9553},[9515],[533,10048],{},[533,10050,2941],{"className":10051},[9493],[533,10053,10055,10058],{"className":10054},[9493],[533,10056,9463],{"className":10057,"style":9498},[9493,9497],[533,10059,10061],{"className":10060},[9502],[533,10062,10064,10090],{"className":10063},[9506,9507],[533,10065,10067,10087],{"className":10066},[9511],[533,10068,10070],{"className":10069,"style":9516},[9515],[533,10071,10072,10075],{"style":9519},[533,10073],{"className":10074,"style":9524},[9523],[533,10076,10078],{"className":10077},[9528,9529,9530,9531],[533,10079,10081,10084],{"className":10080},[9493,9531],[533,10082,9468],{"className":10083,"style":9538},[9493,9497,9531],[533,10085,9468],{"className":10086,"style":9538},[9493,9497,9531],[533,10088,1090],{"className":10089},[9546],[533,10091,10093],{"className":10092},[9511],[533,10094,10096],{"className":10095,"style":9553},[9515],[533,10097],{},[533,10099,9961],{"className":10100},[10101],"mclose",[533,10103,10105,10126],{"className":10104},[9443],[533,10106,10108],{"className":10107},[9447],[9174,10109,10110],{"xmlns":9450},[9452,10111,10112,10124],{},[9455,10113,10114],{},[9458,10115,10116,10118],{},[9461,10117,9574],{"mathvariant":9573},[9455,10119,10120,10122],{},[9461,10121,9579],{},[9461,10123,9582],{},[9473,10125,9585],{"encoding":9475},[533,10127,10129],{"className":10128,"ariaHidden":1089},[9480],[533,10130,10132,10135],{"className":10131},[9484],[533,10133],{"className":10134,"style":9595},[9488],[533,10136,10138,10141],{"className":10137},[9493],[533,10139,9574],{"className":10140},[9493],[533,10142,10144],{"className":10143},[9502],[533,10145,10147,10173],{"className":10146},[9506,9507],[533,10148,10150,10170],{"className":10149},[9511],[533,10151,10153],{"className":10152,"style":9614},[9515],[533,10154,10155,10158],{"style":9617},[533,10156],{"className":10157,"style":9524},[9523],[533,10159,10161],{"className":10160},[9528,9529,9530,9531],[533,10162,10164,10167],{"className":10163},[9493,9531],[533,10165,9579],{"className":10166},[9493,9497,9531],[533,10168,9582],{"className":10169},[9493,9497,9531],[533,10171,1090],{"className":10172},[9546],[533,10174,10176],{"className":10175},[9511],[533,10177,10179],{"className":10178,"style":9553},[9515],[533,10180],{},[54,10182,10183,10184,10187],{},"Heuristic ",[974,10185,10186],{},"speed-vs-static"," figure; tall regions mark friendlier operating points (away from poles).",[36,10189,10190,10192,10357],{},[54,10191,1183],{"align":9424},[54,10193,10194,10356],{},[533,10195,10197,10237],{"className":10196},[9443],[533,10198,10200],{"className":10199},[9447],[9174,10201,10202],{"xmlns":9450},[9452,10203,10204,10234],{},[9455,10205,10206,10216,10218,10228,10230,10232],{},[9458,10207,10208,10210],{},[9461,10209,9463],{},[9455,10211,10212,10214],{},[9461,10213,9468],{},[9461,10215,9471],{},[9958,10217,615],{"stretchy":9960},[9458,10219,10220,10222],{},[9461,10221,9574],{"mathvariant":9573},[9455,10223,10224,10226],{},[9461,10225,9579],{},[9461,10227,9582],{},[9958,10229,2464],{"separator":1089},[9461,10231,9659],{"mathvariant":9573},[9958,10233,2632],{"stretchy":9960},[9473,10235,10236],{"encoding":9475},"\\omega_{ZX}(\\Delta_{ct}, \\Omega)",[533,10238,10240],{"className":10239,"ariaHidden":1089},[9480],[533,10241,10243,10246,10292,10295,10341,10345,10350,10353],{"className":10242},[9484],[533,10244],{"className":10245,"style":9998},[9488],[533,10247,10249,10252],{"className":10248},[9493],[533,10250,9463],{"className":10251,"style":9498},[9493,9497],[533,10253,10255],{"className":10254},[9502],[533,10256,10258,10284],{"className":10257},[9506,9507],[533,10259,10261,10281],{"className":10260},[9511],[533,10262,10264],{"className":10263,"style":9516},[9515],[533,10265,10266,10269],{"style":9519},[533,10267],{"className":10268,"style":9524},[9523],[533,10270,10272],{"className":10271},[9528,9529,9530,9531],[533,10273,10275,10278],{"className":10274},[9493,9531],[533,10276,9468],{"className":10277,"style":9538},[9493,9497,9531],[533,10279,9471],{"className":10280,"style":9542},[9493,9497,9531],[533,10282,1090],{"className":10283},[9546],[533,10285,10287],{"className":10286},[9511],[533,10288,10290],{"className":10289,"style":9553},[9515],[533,10291],{},[533,10293,615],{"className":10294},[10002],[533,10296,10298,10301],{"className":10297},[9493],[533,10299,9574],{"className":10300},[9493],[533,10302,10304],{"className":10303},[9502],[533,10305,10307,10333],{"className":10306},[9506,9507],[533,10308,10310,10330],{"className":10309},[9511],[533,10311,10313],{"className":10312,"style":9614},[9515],[533,10314,10315,10318],{"style":9617},[533,10316],{"className":10317,"style":9524},[9523],[533,10319,10321],{"className":10320},[9528,9529,9530,9531],[533,10322,10324,10327],{"className":10323},[9493,9531],[533,10325,9579],{"className":10326},[9493,9497,9531],[533,10328,9582],{"className":10329},[9493,9497,9531],[533,10331,1090],{"className":10332},[9546],[533,10334,10336],{"className":10335},[9511],[533,10337,10339],{"className":10338,"style":9553},[9515],[533,10340],{},[533,10342,2464],{"className":10343},[10344],"mpunct",[533,10346],{"className":10347,"style":10349},[10348],"mspace","margin-right:0.1667em;",[533,10351,9659],{"className":10352},[9493],[533,10354,2632],{"className":10355},[10101]," heatmap",[54,10358,10359,10360,10388],{},"Linear growth with ",[533,10361,10363,10376],{"className":10362},[9443],[533,10364,10366],{"className":10365},[9447],[9174,10367,10368],{"xmlns":9450},[9452,10369,10370,10374],{},[9455,10371,10372],{},[9461,10373,9659],{"mathvariant":9573},[9473,10375,9662],{"encoding":9475},[533,10377,10379],{"className":10378,"ariaHidden":1089},[9480],[533,10380,10382,10385],{"className":10381},[9484],[533,10383],{"className":10384,"style":9672},[9488],[533,10386,9659],{"className":10387},[9493],"; detuning structure set by anharmonicities; region boundaries visible as sharp changes.",[36,10390,10391,10393,10625],{},[54,10392,1220],{"align":9424},[54,10394,10395,10356],{},[533,10396,10398,10454],{"className":10397},[9443],[533,10399,10401],{"className":10400},[9447],[9174,10402,10403],{"xmlns":9450},[9452,10404,10405,10451],{},[9455,10406,10407,10409,10419,10421,10431,10433,10435,10445,10447,10449],{},[9958,10408,9961],{"stretchy":9960},[9458,10410,10411,10413],{},[9461,10412,9463],{},[9455,10414,10415,10417],{},[9461,10416,9468],{},[9461,10418,9471],{},[9461,10420,2941],{"mathvariant":9573},[9458,10422,10423,10425],{},[9461,10424,9463],{},[9455,10426,10427,10429],{},[9461,10428,9468],{},[9461,10430,9468],{},[9958,10432,9961],{"stretchy":9960},[9958,10434,615],{"stretchy":9960},[9458,10436,10437,10439],{},[9461,10438,9574],{"mathvariant":9573},[9455,10440,10441,10443],{},[9461,10442,9579],{},[9461,10444,9582],{},[9958,10446,2464],{"separator":1089},[9461,10448,9659],{"mathvariant":9573},[9958,10450,2632],{"stretchy":9960},[9473,10452,10453],{"encoding":9475},"\\lvert \\omega_{ZX}\u002F\\omega_{ZZ}\\rvert(\\Delta_{ct}, \\Omega)",[533,10455,10457],{"className":10456,"ariaHidden":1089},[9480],[533,10458,10460,10463,10466,10512,10515,10561,10564,10567,10613,10616,10619,10622],{"className":10459},[9484],[533,10461],{"className":10462,"style":9998},[9488],[533,10464,9961],{"className":10465},[10002],[533,10467,10469,10472],{"className":10468},[9493],[533,10470,9463],{"className":10471,"style":9498},[9493,9497],[533,10473,10475],{"className":10474},[9502],[533,10476,10478,10504],{"className":10477},[9506,9507],[533,10479,10481,10501],{"className":10480},[9511],[533,10482,10484],{"className":10483,"style":9516},[9515],[533,10485,10486,10489],{"style":9519},[533,10487],{"className":10488,"style":9524},[9523],[533,10490,10492],{"className":10491},[9528,9529,9530,9531],[533,10493,10495,10498],{"className":10494},[9493,9531],[533,10496,9468],{"className":10497,"style":9538},[9493,9497,9531],[533,10499,9471],{"className":10500,"style":9542},[9493,9497,9531],[533,10502,1090],{"className":10503},[9546],[533,10505,10507],{"className":10506},[9511],[533,10508,10510],{"className":10509,"style":9553},[9515],[533,10511],{},[533,10513,2941],{"className":10514},[9493],[533,10516,10518,10521],{"className":10517},[9493],[533,10519,9463],{"className":10520,"style":9498},[9493,9497],[533,10522,10524],{"className":10523},[9502],[533,10525,10527,10553],{"className":10526},[9506,9507],[533,10528,10530,10550],{"className":10529},[9511],[533,10531,10533],{"className":10532,"style":9516},[9515],[533,10534,10535,10538],{"style":9519},[533,10536],{"className":10537,"style":9524},[9523],[533,10539,10541],{"className":10540},[9528,9529,9530,9531],[533,10542,10544,10547],{"className":10543},[9493,9531],[533,10545,9468],{"className":10546,"style":9538},[9493,9497,9531],[533,10548,9468],{"className":10549,"style":9538},[9493,9497,9531],[533,10551,1090],{"className":10552},[9546],[533,10554,10556],{"className":10555},[9511],[533,10557,10559],{"className":10558,"style":9553},[9515],[533,10560],{},[533,10562,9961],{"className":10563},[10101],[533,10565,615],{"className":10566},[10002],[533,10568,10570,10573],{"className":10569},[9493],[533,10571,9574],{"className":10572},[9493],[533,10574,10576],{"className":10575},[9502],[533,10577,10579,10605],{"className":10578},[9506,9507],[533,10580,10582,10602],{"className":10581},[9511],[533,10583,10585],{"className":10584,"style":9614},[9515],[533,10586,10587,10590],{"style":9617},[533,10588],{"className":10589,"style":9524},[9523],[533,10591,10593],{"className":10592},[9528,9529,9530,9531],[533,10594,10596,10599],{"className":10595},[9493,9531],[533,10597,9579],{"className":10598},[9493,9497,9531],[533,10600,9582],{"className":10601},[9493,9497,9531],[533,10603,1090],{"className":10604},[9546],[533,10606,10608],{"className":10607},[9511],[533,10609,10611],{"className":10610,"style":9553},[9515],[533,10612],{},[533,10614,2464],{"className":10615},[10344],[533,10617],{"className":10618,"style":10349},[10348],[533,10620,9659],{"className":10621},[9493],[533,10623,2632],{"className":10624},[10101],[54,10626,10627,10628,10661],{},"Bright bands away from poles suggest high entangling-rate with low static ",[533,10629,10631,10646],{"className":10630},[9443],[533,10632,10634],{"className":10633},[9447],[9174,10635,10636],{"xmlns":9450},[9452,10637,10638,10644],{},[9455,10639,10640,10642],{},[9461,10641,9468],{},[9461,10643,9468],{},[9473,10645,9893],{"encoding":9475},[533,10647,10649],{"className":10648,"ariaHidden":1089},[9480],[533,10650,10652,10655,10658],{"className":10651},[9484],[533,10653],{"className":10654,"style":9672},[9488],[533,10656,9468],{"className":10657,"style":9538},[9493,9497],[533,10659,9468],{"className":10660,"style":9538},[9493,9497]," (good for echoed-CR).",[36,10663,10664,10666,10669],{},[54,10665,1967],{"align":9424},[54,10667,10668],{},"Echoed-CR coefficients (two-segment echo)",[54,10670,10671,10672,10700,10701,10735,10736,10764,10765,1133,10800,10833],{},"Echo preserves odd-in-",[533,10673,10675,10688],{"className":10674},[9443],[533,10676,10678],{"className":10677},[9447],[9174,10679,10680],{"xmlns":9450},[9452,10681,10682,10686],{},[9455,10683,10684],{},[9461,10685,9659],{"mathvariant":9573},[9473,10687,9662],{"encoding":9475},[533,10689,10691],{"className":10690,"ariaHidden":1089},[9480],[533,10692,10694,10697],{"className":10693},[9484],[533,10695],{"className":10696,"style":9672},[9488],[533,10698,9659],{"className":10699},[9493]," ",[533,10702,10704,10720],{"className":10703},[9443],[533,10705,10707],{"className":10706},[9447],[9174,10708,10709],{"xmlns":9450},[9452,10710,10711,10717],{},[9455,10712,10713,10715],{},[9461,10714,9468],{},[9461,10716,9471],{},[9473,10718,10719],{"encoding":9475},"ZX",[533,10721,10723],{"className":10722,"ariaHidden":1089},[9480],[533,10724,10726,10729,10732],{"className":10725},[9484],[533,10727],{"className":10728,"style":9672},[9488],[533,10730,9468],{"className":10731,"style":9538},[9493,9497],[533,10733,9471],{"className":10734,"style":9542},[9493,9497]," and suppresses even-in-",[533,10737,10739,10752],{"className":10738},[9443],[533,10740,10742],{"className":10741},[9447],[9174,10743,10744],{"xmlns":9450},[9452,10745,10746,10750],{},[9455,10747,10748],{},[9461,10749,9659],{"mathvariant":9573},[9473,10751,9662],{"encoding":9475},[533,10753,10755],{"className":10754,"ariaHidden":1089},[9480],[533,10756,10758,10761],{"className":10757},[9484],[533,10759],{"className":10760,"style":9672},[9488],[533,10762,9659],{"className":10763},[9493]," terms (",[533,10766,10768,10785],{"className":10767},[9443],[533,10769,10771],{"className":10770},[9447],[9174,10772,10773],{"xmlns":9450},[9452,10774,10775,10782],{},[9455,10776,10777,10780],{},[9461,10778,10779],{},"I",[9461,10781,9468],{},[9473,10783,10784],{"encoding":9475},"IZ",[533,10786,10788],{"className":10787,"ariaHidden":1089},[9480],[533,10789,10791,10794,10797],{"className":10790},[9484],[533,10792],{"className":10793,"style":9672},[9488],[533,10795,10779],{"className":10796,"style":9542},[9493,9497],[533,10798,9468],{"className":10799,"style":9538},[9493,9497],[533,10801,10803,10818],{"className":10802},[9443],[533,10804,10806],{"className":10805},[9447],[9174,10807,10808],{"xmlns":9450},[9452,10809,10810,10816],{},[9455,10811,10812,10814],{},[9461,10813,9468],{},[9461,10815,9468],{},[9473,10817,9893],{"encoding":9475},[533,10819,10821],{"className":10820,"ariaHidden":1089},[9480],[533,10822,10824,10827,10830],{"className":10823},[9484],[533,10825],{"className":10826,"style":9672},[9488],[533,10828,9468],{"className":10829,"style":9538},[9493,9497],[533,10831,9468],{"className":10832,"style":9538},[9493,9497],") to first order.",[36,10835,10836,10838,10921],{},[54,10837,1994],{"align":9424},[54,10839,10840,10841,9556,10882,2632],{},"Conditional target Rabi (control ",[533,10842,10844,10864],{"className":10843},[9443],[533,10845,10847],{"className":10846},[9447],[9174,10848,10849],{"xmlns":9450},[9452,10850,10851,10861],{},[9455,10852,10853,10855,10858],{},[9958,10854,9961],{"stretchy":9960},[10856,10857,1049],"mn",{},[9958,10859,10860],{"stretchy":9960},"⟩",[9473,10862,10863],{"encoding":9475},"\\lvert0\\rangle",[533,10865,10867],{"className":10866,"ariaHidden":1089},[9480],[533,10868,10870,10873,10876,10879],{"className":10869},[9484],[533,10871],{"className":10872,"style":9998},[9488],[533,10874,9961],{"className":10875},[10002],[533,10877,1049],{"className":10878},[9493],[533,10880,10860],{"className":10881},[10101],[533,10883,10885,10903],{"className":10884},[9443],[533,10886,10888],{"className":10887},[9447],[9174,10889,10890],{"xmlns":9450},[9452,10891,10892,10900],{},[9455,10893,10894,10896,10898],{},[9958,10895,9961],{"stretchy":9960},[10856,10897,1052],{},[9958,10899,10860],{"stretchy":9960},[9473,10901,10902],{"encoding":9475},"\\lvert1\\rangle",[533,10904,10906],{"className":10905,"ariaHidden":1089},[9480],[533,10907,10909,10912,10915,10918],{"className":10908},[9484],[533,10910],{"className":10911,"style":9998},[9488],[533,10913,9961],{"className":10914},[10002],[533,10916,1052],{"className":10917},[9493],[533,10919,10860],{"className":10920},[10101],[54,10922,10923,10924,10957,10958,1205],{},"Target oscillation frequency\u002Fphase depends on control state due to the ",[533,10925,10927,10942],{"className":10926},[9443],[533,10928,10930],{"className":10929},[9447],[9174,10931,10932],{"xmlns":9450},[9452,10933,10934,10940],{},[9455,10935,10936,10938],{},[9461,10937,9468],{},[9461,10939,9471],{},[9473,10941,10719],{"encoding":9475},[533,10943,10945],{"className":10944,"ariaHidden":1089},[9480],[533,10946,10948,10951,10954],{"className":10947},[9484],[533,10949],{"className":10950,"style":9672},[9488],[533,10952,9468],{"className":10953,"style":9538},[9493,9497],[533,10955,9471],{"className":10956,"style":9542},[9493,9497]," term (and any residual ",[533,10959,10961,10977],{"className":10960},[9443],[533,10962,10964],{"className":10963},[9447],[9174,10965,10966],{"xmlns":9450},[9452,10967,10968,10974],{},[9455,10969,10970,10972],{},[9461,10971,10779],{},[9461,10973,9471],{},[9473,10975,10976],{"encoding":9475},"IX",[533,10978,10980],{"className":10979,"ariaHidden":1089},[9480],[533,10981,10983,10986,10989],{"className":10982},[9484],[533,10984],{"className":10985,"style":9672},[9488],[533,10987,10779],{"className":10988,"style":9542},[9493,9497],[533,10990,9471],{"className":10991,"style":9542},[9493,9497],[10993,10994],"hr",{},[3552,10996,10998],{"id":10997},"references","References",[753,11000,11001,11048,11063],{},[756,11002,11003,11004,11007,11008,11041,11042,11045],{},"The Quantum Aviary — ",[9404,11005,11006],{},"How the Cross-Resonance Gate Works"," (overview of ",[533,11009,11011,11026],{"className":11010},[9443],[533,11012,11014],{"className":11013},[9447],[9174,11015,11016],{"xmlns":9450},[9452,11017,11018,11024],{},[9455,11019,11020,11022],{},[9461,11021,9468],{},[9461,11023,9471],{},[9473,11025,10719],{"encoding":9475},[533,11027,11029],{"className":11028,"ariaHidden":1089},[9480],[533,11030,11032,11035,11038],{"className":11031},[9484],[533,11033],{"className":11034,"style":9672},[9488],[533,11036,9468],{"className":11037,"style":9538},[9493,9497],[533,11039,9471],{"className":11040,"style":9542},[9493,9497],", echo, and intuition)",[11043,11044],"br",{},[19,11046,11047],{"href":11047},"https:\u002F\u002Fthequantumaviary.blogspot.com\u002F2021\u002F07\u002Fhow-cross-resonance-gate-works.html",[756,11049,11050,11051,1133,11054,11057,11058,11060],{},"Malekakhlagh, Magesan & McKay — ",[9404,11052,11053],{},"First-principles analysis of cross-resonance gate operation",[974,11055,11056],{},"Phys. Rev. A"," 102, 042605 (2020)",[11043,11059],{},[19,11061,11062],{"href":11062},"https:\u002F\u002Flink.aps.org\u002Fdoi\u002F10.1103\u002FPhysRevA.102.042605",[756,11064,11065,11066,1133,11069,11071,11072,11074],{},"Magesan & Gambetta — ",[9404,11067,11068],{},"Effective Hamiltonian models of the cross-resonance gate",[974,11070,11056],{}," 101, 052308 (2020)",[11043,11073],{},[19,11075,11076],{"href":11076},"https:\u002F\u002Flink.aps.org\u002Fdoi\u002F10.1103\u002FPhysRevA.101.052308",[524,11078,11080],{"className":526,"code":11079,"language":528,"meta":529,"style":529},"#@title Cross-Resonance (CR) gate — slices & heatmaps (PRA 2020 formulas)\n\nfrom dataclasses import dataclass\nfrom typing import Tuple\nimport math\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# -----------------------------\n# Control knobs (MHz)\n# -----------------------------\n@dataclass\nclass CRKnobs:\n    f_c: float = 5114.0        # control frequency\n    f_t: float = 4914.0        # target frequency\n    alpha_c: float = -330.0    # control anharmonicity (negative)\n    alpha_t: float = -330.0    # target anharmonicity\n    J: float = 3.8             # exchange coupling\n    Omega0: float = 30.0       # default drive for Δ-slices\n    use_energy_basis: bool = False  # toggle ν-corrections (~10–15%)\n\n    # Sweep grids\n    delta_span: Tuple[float, float] = (-500.0, 500.0)\n    delta_points: int = 1801\n    omega_span: Tuple[float, float] = (0.0, 60.0)\n    omega_points: int = 361\n\nK = CRKnobs()\n\n# -----------------------------\n# Helpers & ν-coefficients\n# -----------------------------\ndef _safe_div(a: float, b: float, eps: float = 1e-12) -> float:\n    \"\"\"Return a\u002Fb with a small guard to avoid blow-ups at poles.\"\"\"\n    if abs(b) \u003C eps:\n        return np.sign(b) * 1e12\n    return a \u002F b\n\ndef _epsilon_from_alpha_over_omega(alpha_mhz: float, omega_mhz: float) -> float:\n    \"\"\"Solve ε from (9 − 4r) ε² + 16(1 − r) ε + 64 r = 0, with r = α\u002Fω.\"\"\"\n    r = alpha_mhz \u002F omega_mhz\n    A = (9.0 - 4.0 * r)\n    B = 16.0 * (1.0 - r)\n    C = 64.0 * r\n    disc = max(B * B - 4.0 * A * C, 0.0)\n    if abs(A) \u003C 1e-15:\n        return 0.2\n    e1 = (-B + math.sqrt(disc)) \u002F (2.0 * A)\n    e2 = (-B - math.sqrt(disc)) \u002F (2.0 * A)\n    roots = [e for e in (e1, e2) if e > 0.0 and np.isfinite(e)]\n    return min(roots) if roots else 0.2\n\ndef _nu_energy_basis(alpha_mhz: float, omega_mhz: float) -> Tuple[float, float]:\n    \"\"\"Energy-basis ν_01, ν_12 up to O(ε²).\"\"\"\n    eps = _epsilon_from_alpha_over_omega(alpha_mhz, omega_mhz)\n    nu01 = 1.0 - (1.0 \u002F 8.0) * eps - (11.0 \u002F 256.0) * (eps ** 2)\n    nu12 = (1.0 - 0.25 * eps - (73.0 \u002F 512.0) * (eps ** 2)) \u002F math.sqrt(2.0)\n    return nu01, nu12\n\ndef _nu_kerr() -> Tuple[float, float]:\n    \"\"\"Kerr-limit charge matrix elements.\"\"\"\n    return 1.0, 1.0 \u002F math.sqrt(2.0)\n\nif K.use_energy_basis:\n    nu_c01, nu_c12 = _nu_energy_basis(K.alpha_c, K.f_c)\n    nu_t01, nu_t12 = _nu_energy_basis(K.alpha_t, K.f_t)\nelse:\n    nu_c01, nu_c12 = _nu_kerr()\n    nu_t01, nu_t12 = _nu_kerr()\n\n# -----------------------------\n# Leading-order rates (MHz)\n# -----------------------------\ndef omega_zx_mhz(delta_ct: float, J: float, Omega: float, alpha_c: float) -> float:\n    r\"\"\"Entangling rate ω_ZX ≈ JΩ[(Δ+α_c)^{-1} − Δ^{-1}] with small ν-correction.\"\"\"\n    kerr = J * Omega * (_safe_div(1.0, delta_ct + alpha_c) - _safe_div(1.0, delta_ct))\n    eb = 0.5 * J * Omega * nu_t01 * (\n        (nu_c12 ** 2) * _safe_div(1.0, delta_ct + alpha_c) - 2.0 * (nu_c01 ** 2) * _safe_div(1.0, delta_ct)\n    )\n    return 0.5 * (kerr + eb)\n\ndef omega_zz_mhz(delta_ct: float, J: float, alpha_c: float, alpha_t: float) -> float:\n    r\"\"\"Static ZZ ≈ J²[(Δ−α_t)^{-1} − (Δ+α_c)^{-1}] with small ν-correction.\"\"\"\n    kerr = (J ** 2) * (_safe_div(1.0, delta_ct - alpha_t) - _safe_div(1.0, delta_ct + alpha_c))\n    eb = 0.5 * (J ** 2) * (\n        (nu_c01 ** 2) * (nu_t12 ** 2) * _safe_div(1.0, delta_ct - alpha_t) -\n        (nu_t01 ** 2) * (nu_c12 ** 2) * _safe_div(1.0, delta_ct + alpha_c)\n    )\n    return 0.5 * (kerr + eb)\n\n# Region boundaries (poles) for I–V:\nREGION_LINES = (K.alpha_t, 0.0, -K.alpha_c \u002F 2.0, -K.alpha_c, -1.5 * K.alpha_c)\ndef _annotate_regions(ax):\n    for x in REGION_LINES:\n        ax.axvline(x, linestyle=\"--\", linewidth=1.0)\n\n# -----------------------------\n# Slices\n# -----------------------------\nDELTA = np.linspace(K.delta_span[0], K.delta_span[1], K.delta_points)\nOMEGA = np.linspace(K.omega_span[0], K.omega_span[1], K.omega_points)\n\nwzx_slice = np.array([omega_zx_mhz(d, K.J, K.Omega0, K.alpha_c) for d in DELTA])\nwzz_slice = np.array([omega_zz_mhz(d, K.J, K.alpha_c, K.alpha_t) for d in DELTA])\nratio_slice = np.abs(np.where(np.abs(wzz_slice) > 1e-12, wzx_slice \u002F wzz_slice, np.nan))\n\n# Plot 1: ω_ZX vs Δ_ct\nplt.figure(figsize=(8, 5), dpi=150)\nplt.plot(DELTA, wzx_slice, label=rf'$\\omega_{{ZX}}$ (Ω={K.Omega0:.1f} MHz)', color='blue')\nplt.axhline(0.0, linestyle=\":\")\n_annotate_regions(plt.gca())\nplt.xlabel(r'$\\Delta_{ct}$ (MHz)')\nplt.ylabel(r'$\\omega_{ZX}$ (MHz)')\nplt.title(r'Leading-order $\\omega_{ZX}$ vs detuning')\nplt.legend()\nplt.show()\n\n# Plot 2: ω_ZZ vs Δ_ct\nplt.figure(figsize=(8, 5), dpi=150)\nplt.plot(DELTA, wzz_slice, label=r'$\\omega_{ZZ}$ (static; lowest order)', color='blue')\nplt.axhline(0.0, linestyle=\":\")\n_annotate_regions(plt.gca())\nplt.xlabel(r'$\\Delta_{ct}$ (MHz)')\nplt.ylabel(r'$\\omega_{ZZ}$ (MHz)')\nplt.title(r'Lowest-order $\\omega_{ZZ}$ vs detuning')\nplt.legend()\nplt.show()\n\n# Heatmap 1: ω_ZX(Δ, Ω)\nwzx_map = np.empty((DELTA.size, OMEGA.size))\nfor i, d in enumerate(DELTA):\n    for j, om in enumerate(OMEGA):\n        wzx_map[i, j] = omega_zx_mhz(d, K.J, om, K.alpha_c)\n\nplt.figure(figsize=(8, 6), dpi=150)\nextent = [OMEGA.min(), OMEGA.max(), DELTA.min(), DELTA.max()]\nplt.imshow(wzx_map, origin=\"lower\", aspect=\"auto\", extent=extent, cmap=\"magma\")\nplt.colorbar(label=r'$\\omega_{ZX}$ (MHz)')\nplt.xlabel(r'$\\Omega$ (MHz)')\nplt.ylabel(r'$\\Delta_{ct}$ (MHz)')\nplt.title(r'$\\omega_{ZX}(\\Delta_{ct}, \\Omega)$ (leading-order)')\nplt.show()\n\n# Heatmap 2: |ω_ZX\u002Fω_ZZ|(Δ, Ω) (clipped for visibility)\nratio_map = np.empty_like(wzx_map)\nfor i, d in enumerate(DELTA):\n    zz = omega_zz_mhz(d, K.J, K.alpha_c, K.alpha_t)\n    for j, om in enumerate(OMEGA):\n        zx = omega_zx_mhz(d, K.J, om, K.alpha_c)\n        ratio_map[i, j] = abs(zx \u002F zz) if abs(zz) > 1e-12 else np.nan\n\nclip_max = np.nanpercentile(ratio_map[np.isfinite(ratio_map)], 99.5)\nratio_map_vis = np.clip(ratio_map, 0.0, clip_max)\n\nplt.figure(figsize=(8, 6), dpi=150)\nplt.imshow(ratio_map_vis, origin=\"lower\", aspect=\"auto\", extent=extent)\nplt.colorbar(label=r'$|\\omega_{ZX}\u002F\\omega_{ZZ}|$')\nplt.xlabel(r'$\\Omega$ (MHz)')\nplt.ylabel(r'$\\Delta_{ct}$ (MHz)')\nplt.title(r'Heuristic $|\\omega_{ZX}\u002F\\omega_{ZZ}|$ map (clipped at 99.5th pct)')\nplt.show()\n",[57,11081,11082,11087,11091,11103,11115,11122,11134,11146,11150,11155,11160,11164,11169,11179,11195,11210,11228,11244,11259,11274,11290,11294,11300,11330,11343,11370,11383,11388,11400,11405,11410,11416,11421,11465,11471,11486,11503,11516,11521,11553,11559,11575,11598,11619,11635,11670,11687,11695,11732,11764,11804,11824,11829,11865,11871,11884,11941,11999,12007,12012,12031,12037,12060,12065,12073,12086,12099,12106,12117,12128,12133,12138,12144,12149,12199,12208,12254,12283,12335,12341,12358,12363,12410,12418,12466,12489,12529,12567,12572,12587,12592,12598,12639,12654,12670,12701,12706,12711,12717,12722,12748,12773,12778,12810,12840,12877,12882,12888,12925,12986,13009,13023,13051,13082,13103,13113,13123,13128,13134,13165,13211,13232,13243,13266,13293,13314,13323,13332,13337,13343,13368,13387,13405,13418,13423,13454,13500,13549,13581,13610,13633,13677,13686,13691,13697,13713,13730,13743,13760,13772,13807,13812,13838,13859,13864,13895,13928,13965,13992,14015,14055],{"__ignoreMap":529},[533,11083,11084],{"class":535,"line":536},[533,11085,11086],{"class":593},"#@title Cross-Resonance (CR) gate — slices & heatmaps (PRA 2020 formulas)\n",[533,11088,11089],{"class":535,"line":547},[533,11090,891],{"emptyLinePlaceholder":790},[533,11092,11093,11095,11098,11100],{"class":535,"line":575},[533,11094,877],{"class":539},[533,11096,11097],{"class":543}," dataclasses ",[533,11099,883],{"class":539},[533,11101,11102],{"class":543}," dataclass\n",[533,11104,11105,11107,11110,11112],{"class":535,"line":590},[533,11106,877],{"class":539},[533,11108,11109],{"class":543}," typing ",[533,11111,883],{"class":539},[533,11113,11114],{"class":543}," Tuple\n",[533,11116,11117,11119],{"class":535,"line":597},[533,11118,883],{"class":539},[533,11120,11121],{"class":543}," math\n",[533,11123,11124,11126,11129,11131],{"class":535,"line":603},[533,11125,883],{"class":539},[533,11127,11128],{"class":543}," numpy ",[533,11130,584],{"class":539},[533,11132,11133],{"class":543}," np\n",[533,11135,11136,11138,11141,11143],{"class":535,"line":609},[533,11137,883],{"class":539},[533,11139,11140],{"class":543}," matplotlib.pyplot ",[533,11142,584],{"class":539},[533,11144,11145],{"class":543}," plt\n",[533,11147,11148],{"class":535,"line":640},[533,11149,891],{"emptyLinePlaceholder":790},[533,11151,11152],{"class":535,"line":646},[533,11153,11154],{"class":593},"# -----------------------------\n",[533,11156,11157],{"class":535,"line":658},[533,11158,11159],{"class":593},"# Control knobs (MHz)\n",[533,11161,11162],{"class":535,"line":680},[533,11163,11154],{"class":593},[533,11165,11166],{"class":535,"line":1536},[533,11167,11168],{"class":560},"@dataclass\n",[533,11170,11171,11174,11177],{"class":535,"line":1552},[533,11172,11173],{"class":539},"class",[533,11175,11176],{"class":2393}," CRKnobs",[533,11178,544],{"class":543},[533,11180,11181,11184,11187,11189,11192],{"class":535,"line":1911},[533,11182,11183],{"class":543},"    f_c: ",[533,11185,11186],{"class":553},"float",[533,11188,4899],{"class":553},[533,11190,11191],{"class":625}," 5114.0",[533,11193,11194],{"class":593},"        # control frequency\n",[533,11196,11197,11200,11202,11204,11207],{"class":535,"line":1940},[533,11198,11199],{"class":543},"    f_t: ",[533,11201,11186],{"class":553},[533,11203,4899],{"class":553},[533,11205,11206],{"class":625}," 4914.0",[533,11208,11209],{"class":593},"        # target frequency\n",[533,11211,11212,11215,11217,11219,11222,11225],{"class":535,"line":1968},[533,11213,11214],{"class":543},"    alpha_c: ",[533,11216,11186],{"class":553},[533,11218,4899],{"class":553},[533,11220,11221],{"class":553}," -",[533,11223,11224],{"class":625},"330.0",[533,11226,11227],{"class":593},"    # control anharmonicity (negative)\n",[533,11229,11230,11233,11235,11237,11239,11241],{"class":535,"line":1995},[533,11231,11232],{"class":543},"    alpha_t: ",[533,11234,11186],{"class":553},[533,11236,4899],{"class":553},[533,11238,11221],{"class":553},[533,11240,11224],{"class":625},[533,11242,11243],{"class":593},"    # target anharmonicity\n",[533,11245,11246,11249,11251,11253,11256],{"class":535,"line":4164},[533,11247,11248],{"class":543},"    J: ",[533,11250,11186],{"class":553},[533,11252,4899],{"class":553},[533,11254,11255],{"class":625}," 3.8",[533,11257,11258],{"class":593},"             # exchange coupling\n",[533,11260,11261,11264,11266,11268,11271],{"class":535,"line":4199},[533,11262,11263],{"class":543},"    Omega0: ",[533,11265,11186],{"class":553},[533,11267,4899],{"class":553},[533,11269,11270],{"class":625}," 30.0",[533,11272,11273],{"class":593},"       # default drive for Δ-slices\n",[533,11275,11276,11279,11282,11284,11287],{"class":535,"line":4206},[533,11277,11278],{"class":543},"    use_energy_basis: ",[533,11280,11281],{"class":553},"bool",[533,11283,4899],{"class":553},[533,11285,11286],{"class":625}," False",[533,11288,11289],{"class":593},"  # toggle ν-corrections (~10–15%)\n",[533,11291,11292],{"class":535,"line":4214},[533,11293,891],{"emptyLinePlaceholder":790},[533,11295,11297],{"class":535,"line":11296},22,[533,11298,11299],{"class":593},"    # Sweep grids\n",[533,11301,11303,11306,11308,11310,11312,11315,11317,11319,11321,11324,11326,11328],{"class":535,"line":11302},23,[533,11304,11305],{"class":543},"    delta_span: Tuple[",[533,11307,11186],{"class":553},[533,11309,1133],{"class":543},[533,11311,11186],{"class":553},[533,11313,11314],{"class":543},"] ",[533,11316,554],{"class":553},[533,11318,5037],{"class":543},[533,11320,2514],{"class":553},[533,11322,11323],{"class":625},"500.0",[533,11325,1133],{"class":543},[533,11327,11323],{"class":625},[533,11329,637],{"class":543},[533,11331,11333,11336,11338,11340],{"class":535,"line":11332},24,[533,11334,11335],{"class":543},"    delta_points: ",[533,11337,4175],{"class":553},[533,11339,4899],{"class":553},[533,11341,11342],{"class":625}," 1801\n",[533,11344,11346,11349,11351,11353,11355,11357,11359,11361,11363,11365,11368],{"class":535,"line":11345},25,[533,11347,11348],{"class":543},"    omega_span: Tuple[",[533,11350,11186],{"class":553},[533,11352,1133],{"class":543},[533,11354,11186],{"class":553},[533,11356,11314],{"class":543},[533,11358,554],{"class":553},[533,11360,5037],{"class":543},[533,11362,2229],{"class":625},[533,11364,1133],{"class":543},[533,11366,11367],{"class":625},"60.0",[533,11369,637],{"class":543},[533,11371,11373,11376,11378,11380],{"class":535,"line":11372},26,[533,11374,11375],{"class":543},"    omega_points: ",[533,11377,4175],{"class":553},[533,11379,4899],{"class":553},[533,11381,11382],{"class":625}," 361\n",[533,11384,11386],{"class":535,"line":11385},27,[533,11387,891],{"emptyLinePlaceholder":790},[533,11389,11391,11394,11396,11398],{"class":535,"line":11390},28,[533,11392,11393],{"class":543},"K ",[533,11395,554],{"class":553},[533,11397,11176],{"class":560},[533,11399,1217],{"class":543},[533,11401,11403],{"class":535,"line":11402},29,[533,11404,891],{"emptyLinePlaceholder":790},[533,11406,11408],{"class":535,"line":11407},30,[533,11409,11154],{"class":593},[533,11411,11413],{"class":535,"line":11412},31,[533,11414,11415],{"class":593},"# Helpers & ν-coefficients\n",[533,11417,11419],{"class":535,"line":11418},32,[533,11420,11154],{"class":593},[533,11422,11424,11426,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11450,11452,11454,11456,11458,11461,11463],{"class":535,"line":11423},33,[533,11425,1754],{"class":539},[533,11427,11428],{"class":560}," _safe_div",[533,11430,615],{"class":543},[533,11432,19],{"class":1762},[533,11434,1389],{"class":543},[533,11436,11186],{"class":553},[533,11438,1133],{"class":543},[533,11440,6086],{"class":1762},[533,11442,1389],{"class":543},[533,11444,11186],{"class":553},[533,11446,1133],{"class":543},[533,11448,11449],{"class":1762},"eps",[533,11451,1389],{"class":543},[533,11453,11186],{"class":553},[533,11455,4899],{"class":553},[533,11457,3456],{"class":625},[533,11459,11460],{"class":543},") -> ",[533,11462,11186],{"class":553},[533,11464,544],{"class":543},[533,11466,11468],{"class":535,"line":11467},34,[533,11469,11470],{"class":621},"    \"\"\"Return a\u002Fb with a small guard to avoid blow-ups at poles.\"\"\"\n",[533,11472,11474,11476,11478,11481,11483],{"class":535,"line":11473},35,[533,11475,1814],{"class":539},[533,11477,3448],{"class":553},[533,11479,11480],{"class":543},"(b) ",[533,11482,2600],{"class":553},[533,11484,11485],{"class":543}," eps:\n",[533,11487,11489,11491,11493,11496,11498,11500],{"class":535,"line":11488},36,[533,11490,4169],{"class":539},[533,11492,2911],{"class":543},[533,11494,11495],{"class":560},"sign",[533,11497,11480],{"class":543},[533,11499,2469],{"class":553},[533,11501,11502],{"class":625}," 1e12\n",[533,11504,11506,11508,11511,11513],{"class":535,"line":11505},37,[533,11507,1880],{"class":539},[533,11509,11510],{"class":543}," a ",[533,11512,2941],{"class":553},[533,11514,11515],{"class":543}," b\n",[533,11517,11519],{"class":535,"line":11518},38,[533,11520,891],{"emptyLinePlaceholder":790},[533,11522,11524,11526,11529,11531,11534,11536,11538,11540,11543,11545,11547,11549,11551],{"class":535,"line":11523},39,[533,11525,1754],{"class":539},[533,11527,11528],{"class":560}," _epsilon_from_alpha_over_omega",[533,11530,615],{"class":543},[533,11532,11533],{"class":1762},"alpha_mhz",[533,11535,1389],{"class":543},[533,11537,11186],{"class":553},[533,11539,1133],{"class":543},[533,11541,11542],{"class":1762},"omega_mhz",[533,11544,1389],{"class":543},[533,11546,11186],{"class":553},[533,11548,11460],{"class":543},[533,11550,11186],{"class":553},[533,11552,544],{"class":543},[533,11554,11556],{"class":535,"line":11555},40,[533,11557,11558],{"class":621},"    \"\"\"Solve ε from (9 − 4r) ε² + 16(1 − r) ε + 64 r = 0, with r = α\u002Fω.\"\"\"\n",[533,11560,11562,11565,11567,11570,11572],{"class":535,"line":11561},41,[533,11563,11564],{"class":543},"    r ",[533,11566,554],{"class":553},[533,11568,11569],{"class":543}," alpha_mhz ",[533,11571,2941],{"class":553},[533,11573,11574],{"class":543}," omega_mhz\n",[533,11576,11578,11581,11583,11585,11588,11590,11593,11595],{"class":535,"line":11577},42,[533,11579,11580],{"class":543},"    A ",[533,11582,554],{"class":553},[533,11584,5037],{"class":543},[533,11586,11587],{"class":625},"9.0",[533,11589,11221],{"class":553},[533,11591,11592],{"class":625}," 4.0",[533,11594,2254],{"class":553},[533,11596,11597],{"class":543}," r)\n",[533,11599,11601,11604,11606,11609,11611,11613,11615,11617],{"class":535,"line":11600},43,[533,11602,11603],{"class":543},"    B ",[533,11605,554],{"class":553},[533,11607,11608],{"class":625}," 16.0",[533,11610,2254],{"class":553},[533,11612,5037],{"class":543},[533,11614,2239],{"class":625},[533,11616,11221],{"class":553},[533,11618,11597],{"class":543},[533,11620,11622,11625,11627,11630,11632],{"class":535,"line":11621},44,[533,11623,11624],{"class":543},"    C ",[533,11626,554],{"class":553},[533,11628,11629],{"class":625}," 64.0",[533,11631,2254],{"class":553},[533,11633,11634],{"class":543}," r\n",[533,11636,11638,11641,11643,11645,11648,11650,11653,11655,11657,11659,11661,11663,11666,11668],{"class":535,"line":11637},45,[533,11639,11640],{"class":543},"    disc ",[533,11642,554],{"class":553},[533,11644,2224],{"class":553},[533,11646,11647],{"class":543},"(B ",[533,11649,2469],{"class":553},[533,11651,11652],{"class":543}," B ",[533,11654,2514],{"class":553},[533,11656,11592],{"class":625},[533,11658,2254],{"class":553},[533,11660,8680],{"class":543},[533,11662,2469],{"class":553},[533,11664,11665],{"class":543}," C, ",[533,11667,2229],{"class":625},[533,11669,637],{"class":543},[533,11671,11673,11675,11677,11680,11682,11685],{"class":535,"line":11672},46,[533,11674,1814],{"class":539},[533,11676,3448],{"class":553},[533,11678,11679],{"class":543},"(A) ",[533,11681,2600],{"class":553},[533,11683,11684],{"class":625}," 1e-15",[533,11686,544],{"class":543},[533,11688,11690,11692],{"class":535,"line":11689},47,[533,11691,4169],{"class":539},[533,11693,11694],{"class":625}," 0.2\n",[533,11696,11698,11701,11703,11705,11707,11710,11712,11715,11717,11720,11722,11724,11727,11729],{"class":535,"line":11697},48,[533,11699,11700],{"class":543},"    e1 ",[533,11702,554],{"class":553},[533,11704,5037],{"class":543},[533,11706,2514],{"class":553},[533,11708,11709],{"class":543},"B ",[533,11711,6350],{"class":553},[533,11713,11714],{"class":543}," math.",[533,11716,2262],{"class":560},[533,11718,11719],{"class":543},"(disc)) ",[533,11721,2941],{"class":553},[533,11723,5037],{"class":543},[533,11725,11726],{"class":625},"2.0",[533,11728,2254],{"class":553},[533,11730,11731],{"class":543}," A)\n",[533,11733,11735,11738,11740,11742,11744,11746,11748,11750,11752,11754,11756,11758,11760,11762],{"class":535,"line":11734},49,[533,11736,11737],{"class":543},"    e2 ",[533,11739,554],{"class":553},[533,11741,5037],{"class":543},[533,11743,2514],{"class":553},[533,11745,11709],{"class":543},[533,11747,2514],{"class":553},[533,11749,11714],{"class":543},[533,11751,2262],{"class":560},[533,11753,11719],{"class":543},[533,11755,2941],{"class":553},[533,11757,5037],{"class":543},[533,11759,11726],{"class":625},[533,11761,2254],{"class":553},[533,11763,11731],{"class":543},[533,11765,11767,11770,11772,11775,11777,11780,11782,11785,11787,11789,11791,11794,11796,11798,11801],{"class":535,"line":11766},50,[533,11768,11769],{"class":543},"    roots ",[533,11771,554],{"class":553},[533,11773,11774],{"class":543}," [e ",[533,11776,3180],{"class":539},[533,11778,11779],{"class":543}," e ",[533,11781,2786],{"class":539},[533,11783,11784],{"class":543}," (e1, e2) ",[533,11786,5724],{"class":539},[533,11788,11779],{"class":543},[533,11790,2808],{"class":553},[533,11792,11793],{"class":625}," 0.0",[533,11795,3894],{"class":539},[533,11797,2911],{"class":543},[533,11799,11800],{"class":560},"isfinite",[533,11802,11803],{"class":543},"(e)]\n",[533,11805,11807,11809,11812,11815,11817,11820,11822],{"class":535,"line":11806},51,[533,11808,1880],{"class":539},[533,11810,11811],{"class":553}," min",[533,11813,11814],{"class":543},"(roots) ",[533,11816,5724],{"class":539},[533,11818,11819],{"class":543}," roots ",[533,11821,7221],{"class":539},[533,11823,11694],{"class":625},[533,11825,11827],{"class":535,"line":11826},52,[533,11828,891],{"emptyLinePlaceholder":790},[533,11830,11832,11834,11837,11839,11841,11843,11845,11847,11849,11851,11853,11856,11858,11860,11862],{"class":535,"line":11831},53,[533,11833,1754],{"class":539},[533,11835,11836],{"class":560}," _nu_energy_basis",[533,11838,615],{"class":543},[533,11840,11533],{"class":1762},[533,11842,1389],{"class":543},[533,11844,11186],{"class":553},[533,11846,1133],{"class":543},[533,11848,11542],{"class":1762},[533,11850,1389],{"class":543},[533,11852,11186],{"class":553},[533,11854,11855],{"class":543},") -> Tuple[",[533,11857,11186],{"class":553},[533,11859,1133],{"class":543},[533,11861,11186],{"class":553},[533,11863,11864],{"class":543},"]:\n",[533,11866,11868],{"class":535,"line":11867},54,[533,11869,11870],{"class":621},"    \"\"\"Energy-basis ν_01, ν_12 up to O(ε²).\"\"\"\n",[533,11872,11874,11877,11879,11881],{"class":535,"line":11873},55,[533,11875,11876],{"class":543},"    eps ",[533,11878,554],{"class":553},[533,11880,11528],{"class":560},[533,11882,11883],{"class":543},"(alpha_mhz, omega_mhz)\n",[533,11885,11887,11890,11892,11895,11897,11899,11901,11904,11907,11909,11911,11914,11916,11918,11921,11923,11926,11928,11930,11933,11936,11939],{"class":535,"line":11886},56,[533,11888,11889],{"class":543},"    nu01 ",[533,11891,554],{"class":553},[533,11893,11894],{"class":625}," 1.0",[533,11896,11221],{"class":553},[533,11898,5037],{"class":543},[533,11900,2239],{"class":625},[533,11902,11903],{"class":553}," \u002F",[533,11905,11906],{"class":625}," 8.0",[533,11908,7047],{"class":543},[533,11910,2469],{"class":553},[533,11912,11913],{"class":543}," eps ",[533,11915,2514],{"class":553},[533,11917,5037],{"class":543},[533,11919,11920],{"class":625},"11.0",[533,11922,11903],{"class":553},[533,11924,11925],{"class":625}," 256.0",[533,11927,7047],{"class":543},[533,11929,2469],{"class":553},[533,11931,11932],{"class":543}," (eps ",[533,11934,11935],{"class":553},"**",[533,11937,11938],{"class":625}," 2",[533,11940,637],{"class":543},[533,11942,11944,11947,11949,11951,11953,11955,11958,11960,11962,11964,11966,11969,11971,11974,11976,11978,11980,11982,11984,11987,11989,11991,11993,11995,11997],{"class":535,"line":11943},57,[533,11945,11946],{"class":543},"    nu12 ",[533,11948,554],{"class":553},[533,11950,5037],{"class":543},[533,11952,2239],{"class":625},[533,11954,11221],{"class":553},[533,11956,11957],{"class":625}," 0.25",[533,11959,2254],{"class":553},[533,11961,11913],{"class":543},[533,11963,2514],{"class":553},[533,11965,5037],{"class":543},[533,11967,11968],{"class":625},"73.0",[533,11970,11903],{"class":553},[533,11972,11973],{"class":625}," 512.0",[533,11975,7047],{"class":543},[533,11977,2469],{"class":553},[533,11979,11932],{"class":543},[533,11981,11935],{"class":553},[533,11983,11938],{"class":625},[533,11985,11986],{"class":543},")) ",[533,11988,2941],{"class":553},[533,11990,11714],{"class":543},[533,11992,2262],{"class":560},[533,11994,615],{"class":543},[533,11996,11726],{"class":625},[533,11998,637],{"class":543},[533,12000,12002,12004],{"class":535,"line":12001},58,[533,12003,1880],{"class":539},[533,12005,12006],{"class":543}," nu01, nu12\n",[533,12008,12010],{"class":535,"line":12009},59,[533,12011,891],{"emptyLinePlaceholder":790},[533,12013,12015,12017,12020,12023,12025,12027,12029],{"class":535,"line":12014},60,[533,12016,1754],{"class":539},[533,12018,12019],{"class":560}," _nu_kerr",[533,12021,12022],{"class":543},"() -> Tuple[",[533,12024,11186],{"class":553},[533,12026,1133],{"class":543},[533,12028,11186],{"class":553},[533,12030,11864],{"class":543},[533,12032,12034],{"class":535,"line":12033},61,[533,12035,12036],{"class":621},"    \"\"\"Kerr-limit charge matrix elements.\"\"\"\n",[533,12038,12040,12042,12044,12046,12048,12050,12052,12054,12056,12058],{"class":535,"line":12039},62,[533,12041,1880],{"class":539},[533,12043,11894],{"class":625},[533,12045,1133],{"class":543},[533,12047,2239],{"class":625},[533,12049,11903],{"class":553},[533,12051,11714],{"class":543},[533,12053,2262],{"class":560},[533,12055,615],{"class":543},[533,12057,11726],{"class":625},[533,12059,637],{"class":543},[533,12061,12063],{"class":535,"line":12062},63,[533,12064,891],{"emptyLinePlaceholder":790},[533,12066,12068,12070],{"class":535,"line":12067},64,[533,12069,5724],{"class":539},[533,12071,12072],{"class":543}," K.use_energy_basis:\n",[533,12074,12076,12079,12081,12083],{"class":535,"line":12075},65,[533,12077,12078],{"class":543},"    nu_c01, nu_c12 ",[533,12080,554],{"class":553},[533,12082,11836],{"class":560},[533,12084,12085],{"class":543},"(K.alpha_c, K.f_c)\n",[533,12087,12089,12092,12094,12096],{"class":535,"line":12088},66,[533,12090,12091],{"class":543},"    nu_t01, nu_t12 ",[533,12093,554],{"class":553},[533,12095,11836],{"class":560},[533,12097,12098],{"class":543},"(K.alpha_t, K.f_t)\n",[533,12100,12102,12104],{"class":535,"line":12101},67,[533,12103,7221],{"class":539},[533,12105,544],{"class":543},[533,12107,12109,12111,12113,12115],{"class":535,"line":12108},68,[533,12110,12078],{"class":543},[533,12112,554],{"class":553},[533,12114,12019],{"class":560},[533,12116,1217],{"class":543},[533,12118,12120,12122,12124,12126],{"class":535,"line":12119},69,[533,12121,12091],{"class":543},[533,12123,554],{"class":553},[533,12125,12019],{"class":560},[533,12127,1217],{"class":543},[533,12129,12131],{"class":535,"line":12130},70,[533,12132,891],{"emptyLinePlaceholder":790},[533,12134,12136],{"class":535,"line":12135},71,[533,12137,11154],{"class":593},[533,12139,12141],{"class":535,"line":12140},72,[533,12142,12143],{"class":593},"# Leading-order rates (MHz)\n",[533,12145,12147],{"class":535,"line":12146},73,[533,12148,11154],{"class":593},[533,12150,12152,12154,12157,12159,12162,12164,12166,12168,12171,12173,12175,12177,12180,12182,12184,12186,12189,12191,12193,12195,12197],{"class":535,"line":12151},74,[533,12153,1754],{"class":539},[533,12155,12156],{"class":560}," omega_zx_mhz",[533,12158,615],{"class":543},[533,12160,12161],{"class":1762},"delta_ct",[533,12163,1389],{"class":543},[533,12165,11186],{"class":553},[533,12167,1133],{"class":543},[533,12169,12170],{"class":1762},"J",[533,12172,1389],{"class":543},[533,12174,11186],{"class":553},[533,12176,1133],{"class":543},[533,12178,12179],{"class":1762},"Omega",[533,12181,1389],{"class":543},[533,12183,11186],{"class":553},[533,12185,1133],{"class":543},[533,12187,12188],{"class":1762},"alpha_c",[533,12190,1389],{"class":543},[533,12192,11186],{"class":553},[533,12194,11460],{"class":543},[533,12196,11186],{"class":553},[533,12198,544],{"class":543},[533,12200,12202,12205],{"class":535,"line":12201},75,[533,12203,12204],{"class":539},"    r",[533,12206,12207],{"class":621},"\"\"\"Entangling rate ω_ZX ≈ JΩ[(Δ+α_c)^{-1} − Δ^{-1}] with small ν-correction.\"\"\"\n",[533,12209,12211,12214,12216,12219,12221,12224,12226,12228,12231,12233,12235,12238,12240,12243,12245,12247,12249,12251],{"class":535,"line":12210},76,[533,12212,12213],{"class":543},"    kerr ",[533,12215,554],{"class":553},[533,12217,12218],{"class":543}," J ",[533,12220,2469],{"class":553},[533,12222,12223],{"class":543}," Omega ",[533,12225,2469],{"class":553},[533,12227,5037],{"class":543},[533,12229,12230],{"class":560},"_safe_div",[533,12232,615],{"class":543},[533,12234,2239],{"class":625},[533,12236,12237],{"class":543},", delta_ct ",[533,12239,6350],{"class":553},[533,12241,12242],{"class":543}," alpha_c) ",[533,12244,2514],{"class":553},[533,12246,11428],{"class":560},[533,12248,615],{"class":543},[533,12250,2239],{"class":625},[533,12252,12253],{"class":543},", delta_ct))\n",[533,12255,12257,12260,12262,12265,12267,12269,12271,12273,12275,12278,12280],{"class":535,"line":12256},77,[533,12258,12259],{"class":543},"    eb ",[533,12261,554],{"class":553},[533,12263,12264],{"class":625}," 0.5",[533,12266,2254],{"class":553},[533,12268,12218],{"class":543},[533,12270,2469],{"class":553},[533,12272,12223],{"class":543},[533,12274,2469],{"class":553},[533,12276,12277],{"class":543}," nu_t01 ",[533,12279,2469],{"class":553},[533,12281,12282],{"class":543}," (\n",[533,12284,12286,12289,12291,12293,12295,12297,12299,12301,12303,12305,12307,12309,12311,12313,12315,12318,12320,12322,12324,12326,12328,12330,12332],{"class":535,"line":12285},78,[533,12287,12288],{"class":543},"        (nu_c12 ",[533,12290,11935],{"class":553},[533,12292,11938],{"class":625},[533,12294,7047],{"class":543},[533,12296,2469],{"class":553},[533,12298,11428],{"class":560},[533,12300,615],{"class":543},[533,12302,2239],{"class":625},[533,12304,12237],{"class":543},[533,12306,6350],{"class":553},[533,12308,12242],{"class":543},[533,12310,2514],{"class":553},[533,12312,2251],{"class":625},[533,12314,2254],{"class":553},[533,12316,12317],{"class":543}," (nu_c01 ",[533,12319,11935],{"class":553},[533,12321,11938],{"class":625},[533,12323,7047],{"class":543},[533,12325,2469],{"class":553},[533,12327,11428],{"class":560},[533,12329,615],{"class":543},[533,12331,2239],{"class":625},[533,12333,12334],{"class":543},", delta_ct)\n",[533,12336,12338],{"class":535,"line":12337},79,[533,12339,12340],{"class":543},"    )\n",[533,12342,12344,12346,12348,12350,12353,12355],{"class":535,"line":12343},80,[533,12345,1880],{"class":539},[533,12347,12264],{"class":625},[533,12349,2254],{"class":553},[533,12351,12352],{"class":543}," (kerr ",[533,12354,6350],{"class":553},[533,12356,12357],{"class":543}," eb)\n",[533,12359,12361],{"class":535,"line":12360},81,[533,12362,891],{"emptyLinePlaceholder":790},[533,12364,12366,12368,12371,12373,12375,12377,12379,12381,12383,12385,12387,12389,12391,12393,12395,12397,12400,12402,12404,12406,12408],{"class":535,"line":12365},82,[533,12367,1754],{"class":539},[533,12369,12370],{"class":560}," omega_zz_mhz",[533,12372,615],{"class":543},[533,12374,12161],{"class":1762},[533,12376,1389],{"class":543},[533,12378,11186],{"class":553},[533,12380,1133],{"class":543},[533,12382,12170],{"class":1762},[533,12384,1389],{"class":543},[533,12386,11186],{"class":553},[533,12388,1133],{"class":543},[533,12390,12188],{"class":1762},[533,12392,1389],{"class":543},[533,12394,11186],{"class":553},[533,12396,1133],{"class":543},[533,12398,12399],{"class":1762},"alpha_t",[533,12401,1389],{"class":543},[533,12403,11186],{"class":553},[533,12405,11460],{"class":543},[533,12407,11186],{"class":553},[533,12409,544],{"class":543},[533,12411,12413,12415],{"class":535,"line":12412},83,[533,12414,12204],{"class":539},[533,12416,12417],{"class":621},"\"\"\"Static ZZ ≈ J²[(Δ−α_t)^{-1} − (Δ+α_c)^{-1}] with small ν-correction.\"\"\"\n",[533,12419,12421,12423,12425,12428,12430,12432,12434,12436,12438,12440,12442,12444,12446,12448,12451,12453,12455,12457,12459,12461,12463],{"class":535,"line":12420},84,[533,12422,12213],{"class":543},[533,12424,554],{"class":553},[533,12426,12427],{"class":543}," (J ",[533,12429,11935],{"class":553},[533,12431,11938],{"class":625},[533,12433,7047],{"class":543},[533,12435,2469],{"class":553},[533,12437,5037],{"class":543},[533,12439,12230],{"class":560},[533,12441,615],{"class":543},[533,12443,2239],{"class":625},[533,12445,12237],{"class":543},[533,12447,2514],{"class":553},[533,12449,12450],{"class":543}," alpha_t) ",[533,12452,2514],{"class":553},[533,12454,11428],{"class":560},[533,12456,615],{"class":543},[533,12458,2239],{"class":625},[533,12460,12237],{"class":543},[533,12462,6350],{"class":553},[533,12464,12465],{"class":543}," alpha_c))\n",[533,12467,12469,12471,12473,12475,12477,12479,12481,12483,12485,12487],{"class":535,"line":12468},85,[533,12470,12259],{"class":543},[533,12472,554],{"class":553},[533,12474,12264],{"class":625},[533,12476,2254],{"class":553},[533,12478,12427],{"class":543},[533,12480,11935],{"class":553},[533,12482,11938],{"class":625},[533,12484,7047],{"class":543},[533,12486,2469],{"class":553},[533,12488,12282],{"class":543},[533,12490,12492,12495,12497,12499,12501,12503,12506,12508,12510,12512,12514,12516,12518,12520,12522,12524,12526],{"class":535,"line":12491},86,[533,12493,12494],{"class":543},"        (nu_c01 ",[533,12496,11935],{"class":553},[533,12498,11938],{"class":625},[533,12500,7047],{"class":543},[533,12502,2469],{"class":553},[533,12504,12505],{"class":543}," (nu_t12 ",[533,12507,11935],{"class":553},[533,12509,11938],{"class":625},[533,12511,7047],{"class":543},[533,12513,2469],{"class":553},[533,12515,11428],{"class":560},[533,12517,615],{"class":543},[533,12519,2239],{"class":625},[533,12521,12237],{"class":543},[533,12523,2514],{"class":553},[533,12525,12450],{"class":543},[533,12527,12528],{"class":553},"-\n",[533,12530,12532,12535,12537,12539,12541,12543,12546,12548,12550,12552,12554,12556,12558,12560,12562,12564],{"class":535,"line":12531},87,[533,12533,12534],{"class":543},"        (nu_t01 ",[533,12536,11935],{"class":553},[533,12538,11938],{"class":625},[533,12540,7047],{"class":543},[533,12542,2469],{"class":553},[533,12544,12545],{"class":543}," (nu_c12 ",[533,12547,11935],{"class":553},[533,12549,11938],{"class":625},[533,12551,7047],{"class":543},[533,12553,2469],{"class":553},[533,12555,11428],{"class":560},[533,12557,615],{"class":543},[533,12559,2239],{"class":625},[533,12561,12237],{"class":543},[533,12563,6350],{"class":553},[533,12565,12566],{"class":543}," alpha_c)\n",[533,12568,12570],{"class":535,"line":12569},88,[533,12571,12340],{"class":543},[533,12573,12575,12577,12579,12581,12583,12585],{"class":535,"line":12574},89,[533,12576,1880],{"class":539},[533,12578,12264],{"class":625},[533,12580,2254],{"class":553},[533,12582,12352],{"class":543},[533,12584,6350],{"class":553},[533,12586,12357],{"class":543},[533,12588,12590],{"class":535,"line":12589},90,[533,12591,891],{"emptyLinePlaceholder":790},[533,12593,12595],{"class":535,"line":12594},91,[533,12596,12597],{"class":593},"# Region boundaries (poles) for I–V:\n",[533,12599,12601,12604,12606,12609,12611,12613,12615,12618,12620,12622,12624,12626,12629,12631,12634,12636],{"class":535,"line":12600},92,[533,12602,12603],{"class":625},"REGION_LINES",[533,12605,4899],{"class":553},[533,12607,12608],{"class":543}," (K.alpha_t, ",[533,12610,2229],{"class":625},[533,12612,1133],{"class":543},[533,12614,2514],{"class":553},[533,12616,12617],{"class":543},"K.alpha_c ",[533,12619,2941],{"class":553},[533,12621,2251],{"class":625},[533,12623,1133],{"class":543},[533,12625,2514],{"class":553},[533,12627,12628],{"class":543},"K.alpha_c, ",[533,12630,2514],{"class":553},[533,12632,12633],{"class":625},"1.5",[533,12635,2254],{"class":553},[533,12637,12638],{"class":543}," K.alpha_c)\n",[533,12640,12642,12644,12647,12649,12652],{"class":535,"line":12641},93,[533,12643,1754],{"class":539},[533,12645,12646],{"class":560}," _annotate_regions",[533,12648,615],{"class":543},[533,12650,12651],{"class":1762},"ax",[533,12653,1771],{"class":543},[533,12655,12657,12660,12663,12665,12668],{"class":535,"line":12656},94,[533,12658,12659],{"class":539},"    for",[533,12661,12662],{"class":543}," x ",[533,12664,2786],{"class":539},[533,12666,12667],{"class":625}," REGION_LINES",[533,12669,544],{"class":543},[533,12671,12673,12676,12679,12682,12685,12687,12690,12692,12695,12697,12699],{"class":535,"line":12672},95,[533,12674,12675],{"class":543},"        ax.",[533,12677,12678],{"class":560},"axvline",[533,12680,12681],{"class":543},"(x, ",[533,12683,12684],{"class":567},"linestyle",[533,12686,554],{"class":553},[533,12688,12689],{"class":621},"\"--\"",[533,12691,1133],{"class":543},[533,12693,12694],{"class":567},"linewidth",[533,12696,554],{"class":553},[533,12698,2239],{"class":625},[533,12700,637],{"class":543},[533,12702,12704],{"class":535,"line":12703},96,[533,12705,891],{"emptyLinePlaceholder":790},[533,12707,12709],{"class":535,"line":12708},97,[533,12710,11154],{"class":593},[533,12712,12714],{"class":535,"line":12713},98,[533,12715,12716],{"class":593},"# Slices\n",[533,12718,12720],{"class":535,"line":12719},99,[533,12721,11154],{"class":593},[533,12723,12725,12728,12730,12732,12735,12738,12740,12743,12745],{"class":535,"line":12724},100,[533,12726,12727],{"class":625},"DELTA",[533,12729,4899],{"class":553},[533,12731,2911],{"class":543},[533,12733,12734],{"class":560},"linspace",[533,12736,12737],{"class":543},"(K.delta_span[",[533,12739,1049],{"class":625},[533,12741,12742],{"class":543},"], K.delta_span[",[533,12744,1052],{"class":625},[533,12746,12747],{"class":543},"], K.delta_points)\n",[533,12749,12751,12754,12756,12758,12760,12763,12765,12768,12770],{"class":535,"line":12750},101,[533,12752,12753],{"class":625},"OMEGA",[533,12755,4899],{"class":553},[533,12757,2911],{"class":543},[533,12759,12734],{"class":560},[533,12761,12762],{"class":543},"(K.omega_span[",[533,12764,1049],{"class":625},[533,12766,12767],{"class":543},"], K.omega_span[",[533,12769,1052],{"class":625},[533,12771,12772],{"class":543},"], K.omega_points)\n",[533,12774,12776],{"class":535,"line":12775},102,[533,12777,891],{"emptyLinePlaceholder":790},[533,12779,12781,12784,12786,12788,12790,12792,12795,12798,12800,12803,12805,12808],{"class":535,"line":12780},103,[533,12782,12783],{"class":543},"wzx_slice ",[533,12785,554],{"class":553},[533,12787,2911],{"class":543},[533,12789,2914],{"class":560},[533,12791,3230],{"class":543},[533,12793,12794],{"class":560},"omega_zx_mhz",[533,12796,12797],{"class":543},"(d, K.J, K.Omega0, K.alpha_c) ",[533,12799,3180],{"class":539},[533,12801,12802],{"class":543}," d ",[533,12804,2786],{"class":539},[533,12806,12807],{"class":625}," DELTA",[533,12809,3272],{"class":543},[533,12811,12813,12816,12818,12820,12822,12824,12827,12830,12832,12834,12836,12838],{"class":535,"line":12812},104,[533,12814,12815],{"class":543},"wzz_slice ",[533,12817,554],{"class":553},[533,12819,2911],{"class":543},[533,12821,2914],{"class":560},[533,12823,3230],{"class":543},[533,12825,12826],{"class":560},"omega_zz_mhz",[533,12828,12829],{"class":543},"(d, K.J, K.alpha_c, K.alpha_t) ",[533,12831,3180],{"class":539},[533,12833,12802],{"class":543},[533,12835,2786],{"class":539},[533,12837,12807],{"class":625},[533,12839,3272],{"class":543},[533,12841,12843,12846,12848,12850,12853,12855,12858,12860,12862,12865,12867,12869,12872,12874],{"class":535,"line":12842},105,[533,12844,12845],{"class":543},"ratio_slice ",[533,12847,554],{"class":553},[533,12849,2911],{"class":543},[533,12851,12852],{"class":560},"abs",[533,12854,5967],{"class":543},[533,12856,12857],{"class":560},"where",[533,12859,5967],{"class":543},[533,12861,12852],{"class":560},[533,12863,12864],{"class":543},"(wzz_slice) ",[533,12866,2808],{"class":553},[533,12868,3456],{"class":625},[533,12870,12871],{"class":543},", wzx_slice ",[533,12873,2941],{"class":553},[533,12875,12876],{"class":543}," wzz_slice, np.nan))\n",[533,12878,12880],{"class":535,"line":12879},106,[533,12881,891],{"emptyLinePlaceholder":790},[533,12883,12885],{"class":535,"line":12884},107,[533,12886,12887],{"class":593},"# Plot 1: ω_ZX vs Δ_ct\n",[533,12889,12891,12894,12897,12899,12902,12904,12906,12909,12911,12913,12915,12918,12920,12923],{"class":535,"line":12890},108,[533,12892,12893],{"class":543},"plt.",[533,12895,12896],{"class":560},"figure",[533,12898,615],{"class":543},[533,12900,12901],{"class":567},"figsize",[533,12903,554],{"class":553},[533,12905,615],{"class":543},[533,12907,12908],{"class":625},"8",[533,12910,1133],{"class":543},[533,12912,1220],{"class":625},[533,12914,3945],{"class":543},[533,12916,12917],{"class":567},"dpi",[533,12919,554],{"class":553},[533,12921,12922],{"class":625},"150",[533,12924,637],{"class":543},[533,12926,12928,12930,12933,12935,12937,12940,12943,12945,12948,12951,12954,12956,12959,12962,12964,12967,12969,12971,12974,12976,12979,12981,12984],{"class":535,"line":12927},109,[533,12929,12893],{"class":543},[533,12931,12932],{"class":560},"plot",[533,12934,615],{"class":543},[533,12936,12727],{"class":625},[533,12938,12939],{"class":543},", wzx_slice, ",[533,12941,12942],{"class":567},"label",[533,12944,554],{"class":553},[533,12946,12947],{"class":539},"rf",[533,12949,12950],{"class":621},"'$\\omega_",[533,12952,12953],{"class":553},"{{",[533,12955,10719],{"class":621},[533,12957,12958],{"class":553},"}}",[533,12960,12961],{"class":621},"$ (Ω=",[533,12963,626],{"class":625},[533,12965,12966],{"class":543},"K.Omega0",[533,12968,7135],{"class":539},[533,12970,632],{"class":625},[533,12972,12973],{"class":621}," MHz)'",[533,12975,1133],{"class":543},[533,12977,12978],{"class":567},"color",[533,12980,554],{"class":553},[533,12982,12983],{"class":621},"'blue'",[533,12985,637],{"class":543},[533,12987,12989,12991,12994,12996,12998,13000,13002,13004,13007],{"class":535,"line":12988},110,[533,12990,12893],{"class":543},[533,12992,12993],{"class":560},"axhline",[533,12995,615],{"class":543},[533,12997,2229],{"class":625},[533,12999,1133],{"class":543},[533,13001,12684],{"class":567},[533,13003,554],{"class":553},[533,13005,13006],{"class":621},"\":\"",[533,13008,637],{"class":543},[533,13010,13012,13015,13018,13021],{"class":535,"line":13011},111,[533,13013,13014],{"class":560},"_annotate_regions",[533,13016,13017],{"class":543},"(plt.",[533,13019,13020],{"class":560},"gca",[533,13022,932],{"class":543},[533,13024,13026,13028,13031,13033,13036,13039,13041,13044,13046,13049],{"class":535,"line":13025},112,[533,13027,12893],{"class":543},[533,13029,13030],{"class":560},"xlabel",[533,13032,615],{"class":543},[533,13034,13035],{"class":539},"r",[533,13037,13038],{"class":2387},"'$\\Delta_{ct}$ ",[533,13040,615],{"class":625},[533,13042,13043],{"class":2387},"MHz",[533,13045,2632],{"class":625},[533,13047,13048],{"class":2387},"'",[533,13050,637],{"class":543},[533,13052,13054,13056,13059,13061,13063,13066,13069,13072,13074,13076,13078,13080],{"class":535,"line":13053},113,[533,13055,12893],{"class":543},[533,13057,13058],{"class":560},"ylabel",[533,13060,615],{"class":543},[533,13062,13035],{"class":539},[533,13064,13065],{"class":2387},"'$",[533,13067,13068],{"class":553},"\\o",[533,13070,13071],{"class":2387},"mega_{ZX}$ ",[533,13073,615],{"class":625},[533,13075,13043],{"class":2387},[533,13077,2632],{"class":625},[533,13079,13048],{"class":2387},[533,13081,637],{"class":543},[533,13083,13085,13087,13089,13091,13093,13096,13098,13101],{"class":535,"line":13084},114,[533,13086,12893],{"class":543},[533,13088,8639],{"class":560},[533,13090,615],{"class":543},[533,13092,13035],{"class":539},[533,13094,13095],{"class":2387},"'Leading-order $",[533,13097,13068],{"class":553},[533,13099,13100],{"class":2387},"mega_{ZX}$ vs detuning'",[533,13102,637],{"class":543},[533,13104,13106,13108,13111],{"class":535,"line":13105},115,[533,13107,12893],{"class":543},[533,13109,13110],{"class":560},"legend",[533,13112,1217],{"class":543},[533,13114,13116,13118,13121],{"class":535,"line":13115},116,[533,13117,12893],{"class":543},[533,13119,13120],{"class":560},"show",[533,13122,1217],{"class":543},[533,13124,13126],{"class":535,"line":13125},117,[533,13127,891],{"emptyLinePlaceholder":790},[533,13129,13131],{"class":535,"line":13130},118,[533,13132,13133],{"class":593},"# Plot 2: ω_ZZ vs Δ_ct\n",[533,13135,13137,13139,13141,13143,13145,13147,13149,13151,13153,13155,13157,13159,13161,13163],{"class":535,"line":13136},119,[533,13138,12893],{"class":543},[533,13140,12896],{"class":560},[533,13142,615],{"class":543},[533,13144,12901],{"class":567},[533,13146,554],{"class":553},[533,13148,615],{"class":543},[533,13150,12908],{"class":625},[533,13152,1133],{"class":543},[533,13154,1220],{"class":625},[533,13156,3945],{"class":543},[533,13158,12917],{"class":567},[533,13160,554],{"class":553},[533,13162,12922],{"class":625},[533,13164,637],{"class":543},[533,13166,13168,13170,13172,13174,13176,13179,13181,13183,13185,13187,13189,13192,13194,13197,13199,13201,13203,13205,13207,13209],{"class":535,"line":13167},120,[533,13169,12893],{"class":543},[533,13171,12932],{"class":560},[533,13173,615],{"class":543},[533,13175,12727],{"class":625},[533,13177,13178],{"class":543},", wzz_slice, ",[533,13180,12942],{"class":567},[533,13182,554],{"class":553},[533,13184,13035],{"class":539},[533,13186,13065],{"class":2387},[533,13188,13068],{"class":553},[533,13190,13191],{"class":2387},"mega_{ZZ}$ ",[533,13193,615],{"class":625},[533,13195,13196],{"class":2387},"static; lowest order",[533,13198,2632],{"class":625},[533,13200,13048],{"class":2387},[533,13202,1133],{"class":543},[533,13204,12978],{"class":567},[533,13206,554],{"class":553},[533,13208,12983],{"class":621},[533,13210,637],{"class":543},[533,13212,13214,13216,13218,13220,13222,13224,13226,13228,13230],{"class":535,"line":13213},121,[533,13215,12893],{"class":543},[533,13217,12993],{"class":560},[533,13219,615],{"class":543},[533,13221,2229],{"class":625},[533,13223,1133],{"class":543},[533,13225,12684],{"class":567},[533,13227,554],{"class":553},[533,13229,13006],{"class":621},[533,13231,637],{"class":543},[533,13233,13235,13237,13239,13241],{"class":535,"line":13234},122,[533,13236,13014],{"class":560},[533,13238,13017],{"class":543},[533,13240,13020],{"class":560},[533,13242,932],{"class":543},[533,13244,13246,13248,13250,13252,13254,13256,13258,13260,13262,13264],{"class":535,"line":13245},123,[533,13247,12893],{"class":543},[533,13249,13030],{"class":560},[533,13251,615],{"class":543},[533,13253,13035],{"class":539},[533,13255,13038],{"class":2387},[533,13257,615],{"class":625},[533,13259,13043],{"class":2387},[533,13261,2632],{"class":625},[533,13263,13048],{"class":2387},[533,13265,637],{"class":543},[533,13267,13269,13271,13273,13275,13277,13279,13281,13283,13285,13287,13289,13291],{"class":535,"line":13268},124,[533,13270,12893],{"class":543},[533,13272,13058],{"class":560},[533,13274,615],{"class":543},[533,13276,13035],{"class":539},[533,13278,13065],{"class":2387},[533,13280,13068],{"class":553},[533,13282,13191],{"class":2387},[533,13284,615],{"class":625},[533,13286,13043],{"class":2387},[533,13288,2632],{"class":625},[533,13290,13048],{"class":2387},[533,13292,637],{"class":543},[533,13294,13296,13298,13300,13302,13304,13307,13309,13312],{"class":535,"line":13295},125,[533,13297,12893],{"class":543},[533,13299,8639],{"class":560},[533,13301,615],{"class":543},[533,13303,13035],{"class":539},[533,13305,13306],{"class":2387},"'Lowest-order $",[533,13308,13068],{"class":553},[533,13310,13311],{"class":2387},"mega_{ZZ}$ vs detuning'",[533,13313,637],{"class":543},[533,13315,13317,13319,13321],{"class":535,"line":13316},126,[533,13318,12893],{"class":543},[533,13320,13110],{"class":560},[533,13322,1217],{"class":543},[533,13324,13326,13328,13330],{"class":535,"line":13325},127,[533,13327,12893],{"class":543},[533,13329,13120],{"class":560},[533,13331,1217],{"class":543},[533,13333,13335],{"class":535,"line":13334},128,[533,13336,891],{"emptyLinePlaceholder":790},[533,13338,13340],{"class":535,"line":13339},129,[533,13341,13342],{"class":593},"# Heatmap 1: ω_ZX(Δ, Ω)\n",[533,13344,13346,13349,13351,13353,13356,13358,13360,13363,13365],{"class":535,"line":13345},130,[533,13347,13348],{"class":543},"wzx_map ",[533,13350,554],{"class":553},[533,13352,2911],{"class":543},[533,13354,13355],{"class":560},"empty",[533,13357,6219],{"class":543},[533,13359,12727],{"class":625},[533,13361,13362],{"class":543},".size, ",[533,13364,12753],{"class":625},[533,13366,13367],{"class":543},".size))\n",[533,13369,13371,13373,13376,13378,13381,13383,13385],{"class":535,"line":13370},131,[533,13372,3180],{"class":539},[533,13374,13375],{"class":543}," i, d ",[533,13377,2786],{"class":539},[533,13379,13380],{"class":553}," enumerate",[533,13382,615],{"class":543},[533,13384,12727],{"class":625},[533,13386,1771],{"class":543},[533,13388,13390,13392,13395,13397,13399,13401,13403],{"class":535,"line":13389},132,[533,13391,12659],{"class":539},[533,13393,13394],{"class":543}," j, om ",[533,13396,2786],{"class":539},[533,13398,13380],{"class":553},[533,13400,615],{"class":543},[533,13402,12753],{"class":625},[533,13404,1771],{"class":543},[533,13406,13408,13411,13413,13415],{"class":535,"line":13407},133,[533,13409,13410],{"class":543},"        wzx_map[i, j] ",[533,13412,554],{"class":553},[533,13414,12156],{"class":560},[533,13416,13417],{"class":543},"(d, K.J, om, K.alpha_c)\n",[533,13419,13421],{"class":535,"line":13420},134,[533,13422,891],{"emptyLinePlaceholder":790},[533,13424,13426,13428,13430,13432,13434,13436,13438,13440,13442,13444,13446,13448,13450,13452],{"class":535,"line":13425},135,[533,13427,12893],{"class":543},[533,13429,12896],{"class":560},[533,13431,615],{"class":543},[533,13433,12901],{"class":567},[533,13435,554],{"class":553},[533,13437,615],{"class":543},[533,13439,12908],{"class":625},[533,13441,1133],{"class":543},[533,13443,1967],{"class":625},[533,13445,3945],{"class":543},[533,13447,12917],{"class":567},[533,13449,554],{"class":553},[533,13451,12922],{"class":625},[533,13453,637],{"class":543},[533,13455,13457,13460,13462,13465,13467,13469,13471,13474,13476,13478,13481,13483,13485,13487,13489,13491,13493,13495,13497],{"class":535,"line":13456},136,[533,13458,13459],{"class":543},"extent ",[533,13461,554],{"class":553},[533,13463,13464],{"class":543}," [",[533,13466,12753],{"class":625},[533,13468,114],{"class":543},[533,13470,2234],{"class":560},[533,13472,13473],{"class":543},"(), ",[533,13475,12753],{"class":625},[533,13477,114],{"class":543},[533,13479,13480],{"class":560},"max",[533,13482,13473],{"class":543},[533,13484,12727],{"class":625},[533,13486,114],{"class":543},[533,13488,2234],{"class":560},[533,13490,13473],{"class":543},[533,13492,12727],{"class":625},[533,13494,114],{"class":543},[533,13496,13480],{"class":560},[533,13498,13499],{"class":543},"()]\n",[533,13501,13503,13505,13508,13511,13514,13516,13519,13521,13524,13526,13529,13531,13534,13536,13539,13542,13544,13547],{"class":535,"line":13502},137,[533,13504,12893],{"class":543},[533,13506,13507],{"class":560},"imshow",[533,13509,13510],{"class":543},"(wzx_map, ",[533,13512,13513],{"class":567},"origin",[533,13515,554],{"class":553},[533,13517,13518],{"class":621},"\"lower\"",[533,13520,1133],{"class":543},[533,13522,13523],{"class":567},"aspect",[533,13525,554],{"class":553},[533,13527,13528],{"class":621},"\"auto\"",[533,13530,1133],{"class":543},[533,13532,13533],{"class":567},"extent",[533,13535,554],{"class":553},[533,13537,13538],{"class":543},"extent, ",[533,13540,13541],{"class":567},"cmap",[533,13543,554],{"class":553},[533,13545,13546],{"class":621},"\"magma\"",[533,13548,637],{"class":543},[533,13550,13552,13554,13557,13559,13561,13563,13565,13567,13569,13571,13573,13575,13577,13579],{"class":535,"line":13551},138,[533,13553,12893],{"class":543},[533,13555,13556],{"class":560},"colorbar",[533,13558,615],{"class":543},[533,13560,12942],{"class":567},[533,13562,554],{"class":553},[533,13564,13035],{"class":539},[533,13566,13065],{"class":2387},[533,13568,13068],{"class":553},[533,13570,13071],{"class":2387},[533,13572,615],{"class":625},[533,13574,13043],{"class":2387},[533,13576,2632],{"class":625},[533,13578,13048],{"class":2387},[533,13580,637],{"class":543},[533,13582,13584,13586,13588,13590,13592,13594,13597,13600,13602,13604,13606,13608],{"class":535,"line":13583},139,[533,13585,12893],{"class":543},[533,13587,13030],{"class":560},[533,13589,615],{"class":543},[533,13591,13035],{"class":539},[533,13593,13065],{"class":2387},[533,13595,13596],{"class":553},"\\O",[533,13598,13599],{"class":2387},"mega$ ",[533,13601,615],{"class":625},[533,13603,13043],{"class":2387},[533,13605,2632],{"class":625},[533,13607,13048],{"class":2387},[533,13609,637],{"class":543},[533,13611,13613,13615,13617,13619,13621,13623,13625,13627,13629,13631],{"class":535,"line":13612},140,[533,13614,12893],{"class":543},[533,13616,13058],{"class":560},[533,13618,615],{"class":543},[533,13620,13035],{"class":539},[533,13622,13038],{"class":2387},[533,13624,615],{"class":625},[533,13626,13043],{"class":2387},[533,13628,2632],{"class":625},[533,13630,13048],{"class":2387},[533,13632,637],{"class":543},[533,13634,13636,13638,13640,13642,13644,13646,13648,13651,13653,13656,13658,13661,13663,13666,13668,13671,13673,13675],{"class":535,"line":13635},141,[533,13637,12893],{"class":543},[533,13639,8639],{"class":560},[533,13641,615],{"class":543},[533,13643,13035],{"class":539},[533,13645,13065],{"class":2387},[533,13647,13068],{"class":553},[533,13649,13650],{"class":2387},"mega_{ZX}",[533,13652,615],{"class":625},[533,13654,13655],{"class":2387},"\\Delta_{ct}, ",[533,13657,13596],{"class":553},[533,13659,13660],{"class":2387},"mega",[533,13662,2632],{"class":625},[533,13664,13665],{"class":2387},"$ ",[533,13667,615],{"class":625},[533,13669,13670],{"class":2387},"leading-order",[533,13672,2632],{"class":625},[533,13674,13048],{"class":2387},[533,13676,637],{"class":543},[533,13678,13680,13682,13684],{"class":535,"line":13679},142,[533,13681,12893],{"class":543},[533,13683,13120],{"class":560},[533,13685,1217],{"class":543},[533,13687,13689],{"class":535,"line":13688},143,[533,13690,891],{"emptyLinePlaceholder":790},[533,13692,13694],{"class":535,"line":13693},144,[533,13695,13696],{"class":593},"# Heatmap 2: |ω_ZX\u002Fω_ZZ|(Δ, Ω) (clipped for visibility)\n",[533,13698,13700,13703,13705,13707,13710],{"class":535,"line":13699},145,[533,13701,13702],{"class":543},"ratio_map ",[533,13704,554],{"class":553},[533,13706,2911],{"class":543},[533,13708,13709],{"class":560},"empty_like",[533,13711,13712],{"class":543},"(wzx_map)\n",[533,13714,13716,13718,13720,13722,13724,13726,13728],{"class":535,"line":13715},146,[533,13717,3180],{"class":539},[533,13719,13375],{"class":543},[533,13721,2786],{"class":539},[533,13723,13380],{"class":553},[533,13725,615],{"class":543},[533,13727,12727],{"class":625},[533,13729,1771],{"class":543},[533,13731,13733,13736,13738,13740],{"class":535,"line":13732},147,[533,13734,13735],{"class":543},"    zz ",[533,13737,554],{"class":553},[533,13739,12370],{"class":560},[533,13741,13742],{"class":543},"(d, K.J, K.alpha_c, K.alpha_t)\n",[533,13744,13746,13748,13750,13752,13754,13756,13758],{"class":535,"line":13745},148,[533,13747,12659],{"class":539},[533,13749,13394],{"class":543},[533,13751,2786],{"class":539},[533,13753,13380],{"class":553},[533,13755,615],{"class":543},[533,13757,12753],{"class":625},[533,13759,1771],{"class":543},[533,13761,13763,13766,13768,13770],{"class":535,"line":13762},149,[533,13764,13765],{"class":543},"        zx ",[533,13767,554],{"class":553},[533,13769,12156],{"class":560},[533,13771,13417],{"class":543},[533,13773,13775,13778,13780,13782,13785,13787,13790,13792,13794,13797,13799,13801,13804],{"class":535,"line":13774},150,[533,13776,13777],{"class":543},"        ratio_map[i, j] ",[533,13779,554],{"class":553},[533,13781,3448],{"class":553},[533,13783,13784],{"class":543},"(zx ",[533,13786,2941],{"class":553},[533,13788,13789],{"class":543}," zz) ",[533,13791,5724],{"class":539},[533,13793,3448],{"class":553},[533,13795,13796],{"class":543},"(zz) ",[533,13798,2808],{"class":553},[533,13800,3456],{"class":625},[533,13802,13803],{"class":539}," else",[533,13805,13806],{"class":543}," np.nan\n",[533,13808,13810],{"class":535,"line":13809},151,[533,13811,891],{"emptyLinePlaceholder":790},[533,13813,13815,13818,13820,13822,13825,13828,13830,13833,13836],{"class":535,"line":13814},152,[533,13816,13817],{"class":543},"clip_max ",[533,13819,554],{"class":553},[533,13821,2911],{"class":543},[533,13823,13824],{"class":560},"nanpercentile",[533,13826,13827],{"class":543},"(ratio_map[np.",[533,13829,11800],{"class":560},[533,13831,13832],{"class":543},"(ratio_map)], ",[533,13834,13835],{"class":625},"99.5",[533,13837,637],{"class":543},[533,13839,13841,13844,13846,13848,13851,13854,13856],{"class":535,"line":13840},153,[533,13842,13843],{"class":543},"ratio_map_vis ",[533,13845,554],{"class":553},[533,13847,2911],{"class":543},[533,13849,13850],{"class":560},"clip",[533,13852,13853],{"class":543},"(ratio_map, ",[533,13855,2229],{"class":625},[533,13857,13858],{"class":543},", clip_max)\n",[533,13860,13862],{"class":535,"line":13861},154,[533,13863,891],{"emptyLinePlaceholder":790},[533,13865,13867,13869,13871,13873,13875,13877,13879,13881,13883,13885,13887,13889,13891,13893],{"class":535,"line":13866},155,[533,13868,12893],{"class":543},[533,13870,12896],{"class":560},[533,13872,615],{"class":543},[533,13874,12901],{"class":567},[533,13876,554],{"class":553},[533,13878,615],{"class":543},[533,13880,12908],{"class":625},[533,13882,1133],{"class":543},[533,13884,1967],{"class":625},[533,13886,3945],{"class":543},[533,13888,12917],{"class":567},[533,13890,554],{"class":553},[533,13892,12922],{"class":625},[533,13894,637],{"class":543},[533,13896,13898,13900,13902,13905,13907,13909,13911,13913,13915,13917,13919,13921,13923,13925],{"class":535,"line":13897},156,[533,13899,12893],{"class":543},[533,13901,13507],{"class":560},[533,13903,13904],{"class":543},"(ratio_map_vis, ",[533,13906,13513],{"class":567},[533,13908,554],{"class":553},[533,13910,13518],{"class":621},[533,13912,1133],{"class":543},[533,13914,13523],{"class":567},[533,13916,554],{"class":553},[533,13918,13528],{"class":621},[533,13920,1133],{"class":543},[533,13922,13533],{"class":567},[533,13924,554],{"class":553},[533,13926,13927],{"class":543},"extent)\n",[533,13929,13931,13933,13935,13937,13939,13941,13943,13945,13948,13950,13953,13955,13958,13960,13963],{"class":535,"line":13930},157,[533,13932,12893],{"class":543},[533,13934,13556],{"class":560},[533,13936,615],{"class":543},[533,13938,12942],{"class":567},[533,13940,554],{"class":553},[533,13942,13035],{"class":539},[533,13944,13065],{"class":2387},[533,13946,13947],{"class":543},"|",[533,13949,13068],{"class":553},[533,13951,13952],{"class":2387},"mega_{ZX}\u002F",[533,13954,13068],{"class":553},[533,13956,13957],{"class":2387},"mega_{ZZ}",[533,13959,13947],{"class":543},[533,13961,13962],{"class":2387},"$'",[533,13964,637],{"class":543},[533,13966,13968,13970,13972,13974,13976,13978,13980,13982,13984,13986,13988,13990],{"class":535,"line":13967},158,[533,13969,12893],{"class":543},[533,13971,13030],{"class":560},[533,13973,615],{"class":543},[533,13975,13035],{"class":539},[533,13977,13065],{"class":2387},[533,13979,13596],{"class":553},[533,13981,13599],{"class":2387},[533,13983,615],{"class":625},[533,13985,13043],{"class":2387},[533,13987,2632],{"class":625},[533,13989,13048],{"class":2387},[533,13991,637],{"class":543},[533,13993,13995,13997,13999,14001,14003,14005,14007,14009,14011,14013],{"class":535,"line":13994},159,[533,13996,12893],{"class":543},[533,13998,13058],{"class":560},[533,14000,615],{"class":543},[533,14002,13035],{"class":539},[533,14004,13038],{"class":2387},[533,14006,615],{"class":625},[533,14008,13043],{"class":2387},[533,14010,2632],{"class":625},[533,14012,13048],{"class":2387},[533,14014,637],{"class":543},[533,14016,14018,14020,14022,14024,14026,14029,14031,14033,14035,14037,14039,14041,14044,14046,14049,14051,14053],{"class":535,"line":14017},160,[533,14019,12893],{"class":543},[533,14021,8639],{"class":560},[533,14023,615],{"class":543},[533,14025,13035],{"class":539},[533,14027,14028],{"class":2387},"'Heuristic $",[533,14030,13947],{"class":543},[533,14032,13068],{"class":553},[533,14034,13952],{"class":2387},[533,14036,13068],{"class":553},[533,14038,13957],{"class":2387},[533,14040,13947],{"class":543},[533,14042,14043],{"class":2387},"$ map ",[533,14045,615],{"class":625},[533,14047,14048],{"class":2387},"clipped at 99.5th pct",[533,14050,2632],{"class":625},[533,14052,13048],{"class":2387},[533,14054,637],{"class":543},[533,14056,14058,14060,14062],{"class":535,"line":14057},161,[533,14059,12893],{"class":543},[533,14061,13120],{"class":560},[533,14063,1217],{"class":543},[2175,14065],{"alt":14066,"src":14067},"Output 1 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-01.webp",[2175,14069],{"alt":14070,"src":14071},"Output 2 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-02.webp",[2175,14073],{"alt":14074,"src":14075},"Output 3 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-03.webp",[2175,14077],{"alt":14078,"src":14079},"Output 4 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-04.webp",[524,14081,14083],{"className":526,"code":14082,"language":528,"meta":529,"style":529},"#@title Echoed-CR demonstration (two-segment echo, Eqs. 28a–d in PRA 2020)\n\nimport math\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef omega_echo_coeffs(zx_mhz: float, ix_mhz: float, iz_mhz: float, zz_mhz: float, tau_ns: float):\n    \"\"\"Return (u_ii, u_iy, u_iz, u_zx) after a +Ω \u002F Xπ \u002F −Ω echo; MHz→rad\u002Fns inside.\"\"\"\n    conv = 2.0 * math.pi \u002F 1000.0\n    zx, ix, iz, zz = zx_mhz*conv, ix_mhz*conv, iz_mhz*conv, zz_mhz*conv\n    w_plus  = math.sqrt((zx + ix)**2 + (iz + zz)**2)\n    w_minus = math.sqrt((zx - ix)**2 + (iz - zz)**2)\n    c_plus, s_plus = math.cos(0.5*w_plus*tau_ns), math.sin(0.5*w_plus*tau_ns)\n    c_minus, s_minus = math.cos(0.5*w_minus*tau_ns), math.sin(0.5*w_minus*tau_ns)\n    denom = (w_plus*w_minus + 1e-30)\n    u_ii = c_plus*c_minus + ((ix**2 - iz**2 - zx**2 + zz**2)\u002Fdenom)*s_plus*s_minus\n    u_iy = 2j*(zx*zz - ix*iz)\u002Fdenom * s_plus*s_minus\n    u_iz = 1j*((zz - iz)\u002F(w_minus + 1e-30))*c_plus*s_minus - 1j*((zz + iz)\u002F(w_plus + 1e-30))*s_plus*c_minus\n    u_zx = 1j*((ix - zx)\u002F(w_minus + 1e-30))*c_plus*s_minus - 1j*((ix + zx)\u002F(w_plus + 1e-30))*s_plus*c_minus\n    return u_ii, u_iy, u_iz, u_zx\n\n# Representative point near Region III speed-up:\nf_c, f_t = 5114.0, 4914.0\nalpha_c = -330.0\nJ, Omega = 3.8, 30.0\ndelta0 = f_c - f_t\n\ndef omega_zx_mhz(delta_ct, J, Omega, alpha_c):\n    return J*Omega*(1.0\u002F(delta_ct + alpha_c) - 1.0\u002Fmax(delta_ct, 1e-12))\n\nw_zx = omega_zx_mhz(delta0, J, Omega, alpha_c)\nw_ix, w_iz, w_zz = 1.0, 10.0, 0.1   # illustrative single-qubit terms \u002F static ZZ\ntau_ns = 100.0\n\nu_ii, u_iy, u_iz, u_zx = omega_echo_coeffs(w_zx, w_ix, w_iz, w_zz, tau_ns)\n\nplt.figure(figsize=(7.5, 4.8), dpi=150)\nlabels = [r'$|u_{ZX}|$', r'$|u_{IY}|$', r'$|u_{IZ}|$']\nvals = [abs(u_zx), abs(u_iy), abs(u_iz)]\nx = np.arange(len(labels))\nplt.bar(x, vals)\nplt.xticks(x, labels)\nplt.ylabel('Coefficient magnitude (unitless)')\nplt.title('Echoed-CR: effective coefficients after two-segment echo')\nplt.show()\n",[57,14084,14085,14090,14094,14100,14110,14120,14124,14178,14183,14202,14232,14272,14307,14350,14388,14410,14478,14523,14600,14671,14678,14682,14687,14701,14713,14727,14742,14746,14770,14811,14815,14827,14849,14859,14863,14875,14879,14911,14966,14990,15010,15020,15030,15043,15056],{"__ignoreMap":529},[533,14086,14087],{"class":535,"line":536},[533,14088,14089],{"class":593},"#@title Echoed-CR demonstration (two-segment echo, Eqs. 28a–d in PRA 2020)\n",[533,14091,14092],{"class":535,"line":547},[533,14093,891],{"emptyLinePlaceholder":790},[533,14095,14096,14098],{"class":535,"line":575},[533,14097,883],{"class":539},[533,14099,11121],{"class":543},[533,14101,14102,14104,14106,14108],{"class":535,"line":590},[533,14103,883],{"class":539},[533,14105,11128],{"class":543},[533,14107,584],{"class":539},[533,14109,11133],{"class":543},[533,14111,14112,14114,14116,14118],{"class":535,"line":597},[533,14113,883],{"class":539},[533,14115,11140],{"class":543},[533,14117,584],{"class":539},[533,14119,11145],{"class":543},[533,14121,14122],{"class":535,"line":603},[533,14123,891],{"emptyLinePlaceholder":790},[533,14125,14126,14128,14131,14133,14136,14138,14140,14142,14145,14147,14149,14151,14154,14156,14158,14160,14163,14165,14167,14169,14172,14174,14176],{"class":535,"line":609},[533,14127,1754],{"class":539},[533,14129,14130],{"class":560}," omega_echo_coeffs",[533,14132,615],{"class":543},[533,14134,14135],{"class":1762},"zx_mhz",[533,14137,1389],{"class":543},[533,14139,11186],{"class":553},[533,14141,1133],{"class":543},[533,14143,14144],{"class":1762},"ix_mhz",[533,14146,1389],{"class":543},[533,14148,11186],{"class":553},[533,14150,1133],{"class":543},[533,14152,14153],{"class":1762},"iz_mhz",[533,14155,1389],{"class":543},[533,14157,11186],{"class":553},[533,14159,1133],{"class":543},[533,14161,14162],{"class":1762},"zz_mhz",[533,14164,1389],{"class":543},[533,14166,11186],{"class":553},[533,14168,1133],{"class":543},[533,14170,14171],{"class":1762},"tau_ns",[533,14173,1389],{"class":543},[533,14175,11186],{"class":553},[533,14177,1771],{"class":543},[533,14179,14180],{"class":535,"line":640},[533,14181,14182],{"class":621},"    \"\"\"Return (u_ii, u_iy, u_iz, u_zx) after a +Ω \u002F Xπ \u002F −Ω echo; MHz→rad\u002Fns inside.\"\"\"\n",[533,14184,14185,14188,14190,14192,14194,14197,14199],{"class":535,"line":646},[533,14186,14187],{"class":543},"    conv ",[533,14189,554],{"class":553},[533,14191,2251],{"class":625},[533,14193,2254],{"class":553},[533,14195,14196],{"class":543}," math.pi ",[533,14198,2941],{"class":553},[533,14200,14201],{"class":625}," 1000.0\n",[533,14203,14204,14207,14209,14212,14214,14217,14219,14222,14224,14227,14229],{"class":535,"line":658},[533,14205,14206],{"class":543},"    zx, ix, iz, zz ",[533,14208,554],{"class":553},[533,14210,14211],{"class":543}," zx_mhz",[533,14213,2469],{"class":553},[533,14215,14216],{"class":543},"conv, ix_mhz",[533,14218,2469],{"class":553},[533,14220,14221],{"class":543},"conv, iz_mhz",[533,14223,2469],{"class":553},[533,14225,14226],{"class":543},"conv, zz_mhz",[533,14228,2469],{"class":553},[533,14230,14231],{"class":543},"conv\n",[533,14233,14234,14237,14239,14241,14243,14246,14248,14251,14253,14255,14258,14261,14263,14266,14268,14270],{"class":535,"line":680},[533,14235,14236],{"class":543},"    w_plus  ",[533,14238,554],{"class":553},[533,14240,11714],{"class":543},[533,14242,2262],{"class":560},[533,14244,14245],{"class":543},"((zx ",[533,14247,6350],{"class":553},[533,14249,14250],{"class":543}," ix)",[533,14252,11935],{"class":553},[533,14254,1140],{"class":625},[533,14256,14257],{"class":553}," +",[533,14259,14260],{"class":543}," (iz ",[533,14262,6350],{"class":553},[533,14264,14265],{"class":543}," zz)",[533,14267,11935],{"class":553},[533,14269,1140],{"class":625},[533,14271,637],{"class":543},[533,14273,14274,14277,14279,14281,14283,14285,14287,14289,14291,14293,14295,14297,14299,14301,14303,14305],{"class":535,"line":1536},[533,14275,14276],{"class":543},"    w_minus ",[533,14278,554],{"class":553},[533,14280,11714],{"class":543},[533,14282,2262],{"class":560},[533,14284,14245],{"class":543},[533,14286,2514],{"class":553},[533,14288,14250],{"class":543},[533,14290,11935],{"class":553},[533,14292,1140],{"class":625},[533,14294,14257],{"class":553},[533,14296,14260],{"class":543},[533,14298,2514],{"class":553},[533,14300,14265],{"class":543},[533,14302,11935],{"class":553},[533,14304,1140],{"class":625},[533,14306,637],{"class":543},[533,14308,14309,14312,14314,14316,14319,14321,14324,14326,14329,14331,14334,14337,14339,14341,14343,14345,14347],{"class":535,"line":1552},[533,14310,14311],{"class":543},"    c_plus, s_plus ",[533,14313,554],{"class":553},[533,14315,11714],{"class":543},[533,14317,14318],{"class":560},"cos",[533,14320,615],{"class":543},[533,14322,14323],{"class":625},"0.5",[533,14325,2469],{"class":553},[533,14327,14328],{"class":543},"w_plus",[533,14330,2469],{"class":553},[533,14332,14333],{"class":543},"tau_ns), math.",[533,14335,14336],{"class":560},"sin",[533,14338,615],{"class":543},[533,14340,14323],{"class":625},[533,14342,2469],{"class":553},[533,14344,14328],{"class":543},[533,14346,2469],{"class":553},[533,14348,14349],{"class":543},"tau_ns)\n",[533,14351,14352,14355,14357,14359,14361,14363,14365,14367,14370,14372,14374,14376,14378,14380,14382,14384,14386],{"class":535,"line":1911},[533,14353,14354],{"class":543},"    c_minus, s_minus ",[533,14356,554],{"class":553},[533,14358,11714],{"class":543},[533,14360,14318],{"class":560},[533,14362,615],{"class":543},[533,14364,14323],{"class":625},[533,14366,2469],{"class":553},[533,14368,14369],{"class":543},"w_minus",[533,14371,2469],{"class":553},[533,14373,14333],{"class":543},[533,14375,14336],{"class":560},[533,14377,615],{"class":543},[533,14379,14323],{"class":625},[533,14381,2469],{"class":553},[533,14383,14369],{"class":543},[533,14385,2469],{"class":553},[533,14387,14349],{"class":543},[533,14389,14390,14393,14395,14398,14400,14403,14405,14408],{"class":535,"line":1940},[533,14391,14392],{"class":543},"    denom ",[533,14394,554],{"class":553},[533,14396,14397],{"class":543}," (w_plus",[533,14399,2469],{"class":553},[533,14401,14402],{"class":543},"w_minus ",[533,14404,6350],{"class":553},[533,14406,14407],{"class":625}," 1e-30",[533,14409,637],{"class":543},[533,14411,14412,14415,14417,14420,14422,14425,14427,14430,14432,14434,14436,14439,14441,14443,14445,14448,14450,14452,14454,14457,14459,14461,14463,14465,14468,14470,14473,14475],{"class":535,"line":1968},[533,14413,14414],{"class":543},"    u_ii ",[533,14416,554],{"class":553},[533,14418,14419],{"class":543}," c_plus",[533,14421,2469],{"class":553},[533,14423,14424],{"class":543},"c_minus ",[533,14426,6350],{"class":553},[533,14428,14429],{"class":543}," ((ix",[533,14431,11935],{"class":553},[533,14433,1140],{"class":625},[533,14435,11221],{"class":553},[533,14437,14438],{"class":543}," iz",[533,14440,11935],{"class":553},[533,14442,1140],{"class":625},[533,14444,11221],{"class":553},[533,14446,14447],{"class":543}," zx",[533,14449,11935],{"class":553},[533,14451,1140],{"class":625},[533,14453,14257],{"class":553},[533,14455,14456],{"class":543}," zz",[533,14458,11935],{"class":553},[533,14460,1140],{"class":625},[533,14462,2632],{"class":543},[533,14464,2941],{"class":553},[533,14466,14467],{"class":543},"denom)",[533,14469,2469],{"class":553},[533,14471,14472],{"class":543},"s_plus",[533,14474,2469],{"class":553},[533,14476,14477],{"class":543},"s_minus\n",[533,14479,14480,14483,14485,14487,14489,14491,14494,14496,14499,14501,14504,14506,14509,14511,14514,14516,14519,14521],{"class":535,"line":1995},[533,14481,14482],{"class":543},"    u_iy ",[533,14484,554],{"class":553},[533,14486,11938],{"class":625},[533,14488,2561],{"class":539},[533,14490,2469],{"class":553},[533,14492,14493],{"class":543},"(zx",[533,14495,2469],{"class":553},[533,14497,14498],{"class":543},"zz ",[533,14500,2514],{"class":553},[533,14502,14503],{"class":543}," ix",[533,14505,2469],{"class":553},[533,14507,14508],{"class":543},"iz)",[533,14510,2941],{"class":553},[533,14512,14513],{"class":543},"denom ",[533,14515,2469],{"class":553},[533,14517,14518],{"class":543}," s_plus",[533,14520,2469],{"class":553},[533,14522,14477],{"class":543},[533,14524,14525,14528,14530,14532,14534,14536,14539,14541,14544,14546,14549,14551,14553,14556,14558,14561,14563,14566,14568,14570,14572,14574,14576,14578,14580,14582,14585,14587,14589,14591,14593,14595,14597],{"class":535,"line":4164},[533,14526,14527],{"class":543},"    u_iz ",[533,14529,554],{"class":553},[533,14531,6353],{"class":625},[533,14533,2561],{"class":539},[533,14535,2469],{"class":553},[533,14537,14538],{"class":543},"((zz ",[533,14540,2514],{"class":553},[533,14542,14543],{"class":543}," iz)",[533,14545,2941],{"class":553},[533,14547,14548],{"class":543},"(w_minus ",[533,14550,6350],{"class":553},[533,14552,14407],{"class":625},[533,14554,14555],{"class":543},"))",[533,14557,2469],{"class":553},[533,14559,14560],{"class":543},"c_plus",[533,14562,2469],{"class":553},[533,14564,14565],{"class":543},"s_minus ",[533,14567,2514],{"class":553},[533,14569,6353],{"class":625},[533,14571,2561],{"class":539},[533,14573,2469],{"class":553},[533,14575,14538],{"class":543},[533,14577,6350],{"class":553},[533,14579,14543],{"class":543},[533,14581,2941],{"class":553},[533,14583,14584],{"class":543},"(w_plus ",[533,14586,6350],{"class":553},[533,14588,14407],{"class":625},[533,14590,14555],{"class":543},[533,14592,2469],{"class":553},[533,14594,14472],{"class":543},[533,14596,2469],{"class":553},[533,14598,14599],{"class":543},"c_minus\n",[533,14601,14602,14605,14607,14609,14611,14613,14616,14618,14621,14623,14625,14627,14629,14631,14633,14635,14637,14639,14641,14643,14645,14647,14649,14651,14653,14655,14657,14659,14661,14663,14665,14667,14669],{"class":535,"line":4199},[533,14603,14604],{"class":543},"    u_zx ",[533,14606,554],{"class":553},[533,14608,6353],{"class":625},[533,14610,2561],{"class":539},[533,14612,2469],{"class":553},[533,14614,14615],{"class":543},"((ix ",[533,14617,2514],{"class":553},[533,14619,14620],{"class":543}," zx)",[533,14622,2941],{"class":553},[533,14624,14548],{"class":543},[533,14626,6350],{"class":553},[533,14628,14407],{"class":625},[533,14630,14555],{"class":543},[533,14632,2469],{"class":553},[533,14634,14560],{"class":543},[533,14636,2469],{"class":553},[533,14638,14565],{"class":543},[533,14640,2514],{"class":553},[533,14642,6353],{"class":625},[533,14644,2561],{"class":539},[533,14646,2469],{"class":553},[533,14648,14615],{"class":543},[533,14650,6350],{"class":553},[533,14652,14620],{"class":543},[533,14654,2941],{"class":553},[533,14656,14584],{"class":543},[533,14658,6350],{"class":553},[533,14660,14407],{"class":625},[533,14662,14555],{"class":543},[533,14664,2469],{"class":553},[533,14666,14472],{"class":543},[533,14668,2469],{"class":553},[533,14670,14599],{"class":543},[533,14672,14673,14675],{"class":535,"line":4206},[533,14674,1880],{"class":539},[533,14676,14677],{"class":543}," u_ii, u_iy, u_iz, u_zx\n",[533,14679,14680],{"class":535,"line":4214},[533,14681,891],{"emptyLinePlaceholder":790},[533,14683,14684],{"class":535,"line":11296},[533,14685,14686],{"class":593},"# Representative point near Region III speed-up:\n",[533,14688,14689,14692,14694,14696,14698],{"class":535,"line":11302},[533,14690,14691],{"class":543},"f_c, f_t ",[533,14693,554],{"class":553},[533,14695,11191],{"class":625},[533,14697,1133],{"class":543},[533,14699,14700],{"class":625},"4914.0\n",[533,14702,14703,14706,14708,14710],{"class":535,"line":11332},[533,14704,14705],{"class":543},"alpha_c ",[533,14707,554],{"class":553},[533,14709,11221],{"class":553},[533,14711,14712],{"class":625},"330.0\n",[533,14714,14715,14718,14720,14722,14724],{"class":535,"line":11345},[533,14716,14717],{"class":543},"J, Omega ",[533,14719,554],{"class":553},[533,14721,11255],{"class":625},[533,14723,1133],{"class":543},[533,14725,14726],{"class":625},"30.0\n",[533,14728,14729,14732,14734,14737,14739],{"class":535,"line":11372},[533,14730,14731],{"class":543},"delta0 ",[533,14733,554],{"class":553},[533,14735,14736],{"class":543}," f_c ",[533,14738,2514],{"class":553},[533,14740,14741],{"class":543}," f_t\n",[533,14743,14744],{"class":535,"line":11385},[533,14745,891],{"emptyLinePlaceholder":790},[533,14747,14748,14750,14752,14754,14756,14758,14760,14762,14764,14766,14768],{"class":535,"line":11390},[533,14749,1754],{"class":539},[533,14751,12156],{"class":560},[533,14753,615],{"class":543},[533,14755,12161],{"class":1762},[533,14757,1133],{"class":543},[533,14759,12170],{"class":1762},[533,14761,1133],{"class":543},[533,14763,12179],{"class":1762},[533,14765,1133],{"class":543},[533,14767,12188],{"class":1762},[533,14769,1771],{"class":543},[533,14771,14772,14774,14777,14779,14781,14783,14785,14787,14789,14792,14794,14796,14798,14800,14803,14806,14809],{"class":535,"line":11402},[533,14773,1880],{"class":539},[533,14775,14776],{"class":543}," J",[533,14778,2469],{"class":553},[533,14780,12179],{"class":543},[533,14782,2469],{"class":553},[533,14784,615],{"class":543},[533,14786,2239],{"class":625},[533,14788,2941],{"class":553},[533,14790,14791],{"class":543},"(delta_ct ",[533,14793,6350],{"class":553},[533,14795,12242],{"class":543},[533,14797,2514],{"class":553},[533,14799,11894],{"class":625},[533,14801,14802],{"class":553},"\u002Fmax",[533,14804,14805],{"class":543},"(delta_ct, ",[533,14807,14808],{"class":625},"1e-12",[533,14810,1937],{"class":543},[533,14812,14813],{"class":535,"line":11407},[533,14814,891],{"emptyLinePlaceholder":790},[533,14816,14817,14820,14822,14824],{"class":535,"line":11412},[533,14818,14819],{"class":543},"w_zx ",[533,14821,554],{"class":553},[533,14823,12156],{"class":560},[533,14825,14826],{"class":543},"(delta0, J, Omega, alpha_c)\n",[533,14828,14829,14832,14834,14836,14838,14841,14843,14846],{"class":535,"line":11418},[533,14830,14831],{"class":543},"w_ix, w_iz, w_zz ",[533,14833,554],{"class":553},[533,14835,11894],{"class":625},[533,14837,1133],{"class":543},[533,14839,14840],{"class":625},"10.0",[533,14842,1133],{"class":543},[533,14844,14845],{"class":625},"0.1",[533,14847,14848],{"class":593},"   # illustrative single-qubit terms \u002F static ZZ\n",[533,14850,14851,14854,14856],{"class":535,"line":11423},[533,14852,14853],{"class":543},"tau_ns ",[533,14855,554],{"class":553},[533,14857,14858],{"class":625}," 100.0\n",[533,14860,14861],{"class":535,"line":11467},[533,14862,891],{"emptyLinePlaceholder":790},[533,14864,14865,14868,14870,14872],{"class":535,"line":11473},[533,14866,14867],{"class":543},"u_ii, u_iy, u_iz, u_zx ",[533,14869,554],{"class":553},[533,14871,14130],{"class":560},[533,14873,14874],{"class":543},"(w_zx, w_ix, w_iz, w_zz, tau_ns)\n",[533,14876,14877],{"class":535,"line":11488},[533,14878,891],{"emptyLinePlaceholder":790},[533,14880,14881,14883,14885,14887,14889,14891,14893,14896,14898,14901,14903,14905,14907,14909],{"class":535,"line":11505},[533,14882,12893],{"class":543},[533,14884,12896],{"class":560},[533,14886,615],{"class":543},[533,14888,12901],{"class":567},[533,14890,554],{"class":553},[533,14892,615],{"class":543},[533,14894,14895],{"class":625},"7.5",[533,14897,1133],{"class":543},[533,14899,14900],{"class":625},"4.8",[533,14902,3945],{"class":543},[533,14904,12917],{"class":567},[533,14906,554],{"class":553},[533,14908,12922],{"class":625},[533,14910,637],{"class":543},[533,14912,14913,14916,14918,14920,14922,14924,14926,14929,14931,14933,14935,14937,14939,14941,14944,14946,14948,14950,14952,14954,14956,14959,14961,14963],{"class":535,"line":11518},[533,14914,14915],{"class":543},"labels ",[533,14917,554],{"class":553},[533,14919,13464],{"class":543},[533,14921,13035],{"class":539},[533,14923,13065],{"class":2387},[533,14925,13947],{"class":543},[533,14927,14928],{"class":2387},"u_{ZX}",[533,14930,13947],{"class":543},[533,14932,13962],{"class":2387},[533,14934,1133],{"class":543},[533,14936,13035],{"class":539},[533,14938,13065],{"class":2387},[533,14940,13947],{"class":543},[533,14942,14943],{"class":2387},"u_{IY}",[533,14945,13947],{"class":543},[533,14947,13962],{"class":2387},[533,14949,1133],{"class":543},[533,14951,13035],{"class":539},[533,14953,13065],{"class":2387},[533,14955,13947],{"class":543},[533,14957,14958],{"class":2387},"u_{IZ}",[533,14960,13947],{"class":543},[533,14962,13962],{"class":2387},[533,14964,14965],{"class":543},"]\n",[533,14967,14968,14971,14973,14975,14977,14980,14982,14985,14987],{"class":535,"line":11523},[533,14969,14970],{"class":543},"vals ",[533,14972,554],{"class":553},[533,14974,13464],{"class":543},[533,14976,12852],{"class":553},[533,14978,14979],{"class":543},"(u_zx), ",[533,14981,12852],{"class":553},[533,14983,14984],{"class":543},"(u_iy), ",[533,14986,12852],{"class":553},[533,14988,14989],{"class":543},"(u_iz)]\n",[533,14991,14992,14995,14997,14999,15002,15004,15007],{"class":535,"line":11555},[533,14993,14994],{"class":543},"x ",[533,14996,554],{"class":553},[533,14998,2911],{"class":543},[533,15000,15001],{"class":560},"arange",[533,15003,615],{"class":543},[533,15005,15006],{"class":553},"len",[533,15008,15009],{"class":543},"(labels))\n",[533,15011,15012,15014,15017],{"class":535,"line":11561},[533,15013,12893],{"class":543},[533,15015,15016],{"class":560},"bar",[533,15018,15019],{"class":543},"(x, vals)\n",[533,15021,15022,15024,15027],{"class":535,"line":11577},[533,15023,12893],{"class":543},[533,15025,15026],{"class":560},"xticks",[533,15028,15029],{"class":543},"(x, labels)\n",[533,15031,15032,15034,15036,15038,15041],{"class":535,"line":11600},[533,15033,12893],{"class":543},[533,15035,13058],{"class":560},[533,15037,615],{"class":543},[533,15039,15040],{"class":621},"'Coefficient magnitude (unitless)'",[533,15042,637],{"class":543},[533,15044,15045,15047,15049,15051,15054],{"class":535,"line":11621},[533,15046,12893],{"class":543},[533,15048,8639],{"class":560},[533,15050,615],{"class":543},[533,15052,15053],{"class":621},"'Echoed-CR: effective coefficients after two-segment echo'",[533,15055,637],{"class":543},[533,15057,15058,15060,15062],{"class":535,"line":11637},[533,15059,12893],{"class":543},[533,15061,13120],{"class":560},[533,15063,1217],{"class":543},[2175,15065],{"alt":15066,"src":15067},"Output 5 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-05.webp",[524,15069,15071],{"className":526,"code":15070,"language":528,"meta":529,"style":529},"#@title Conditional target Rabi under CR effective Hamiltonian\n# we diagonalize once and propagate.\n\nfrom dataclasses import dataclass\nimport math\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# -----------------------------\n# Control knobs (MHz unless noted)\n# -----------------------------\n@dataclass\nclass RabiKnobs:\n    f_c: float = 5114.0          # control frequency\n    f_t: float = 4914.0          # target frequency\n    alpha_c: float = -330.0      # control anharmonicity\n    alpha_t: float = -330.0      # target anharmonicity\n    J: float = 3.8               # exchange coupling\n    Omega: float = 30.0          # CR drive amplitude on control\n\n    # Residuals (typical orders, tweak for your device)\n    wIX_mhz: float = 1.0         # IX (drive crosstalk on target)\n    wIZ_khz: float = 20.0        # IZ (AC Stark on target)\n    wZI_mhz: float = 10.0        # ZI (AC Stark on control)\n    wZZ_khz: float = 100.0       # ZZ (static coupling residual)\n\n    # Time axis\n    t_end_ns: float = 400.0\n    n_steps: int = 2001\n\nK = RabiKnobs()\n\n# -----------------------------\n# Helpers and literature-rate formulas\n# -----------------------------\ndef _safe_div(a: float, b: float, eps: float = 1e-12) -> float:\n    return a \u002F (b if abs(b) >= eps else np.sign(b) * eps)\n\ndef hz_to_rad_per_ns(hz: float) -> float:\n    return 2.0 * math.pi * hz * 1e-9\n\ndef mhz_to_rad_per_ns(mhz: float) -> float:\n    return hz_to_rad_per_ns(mhz * 1e6)\n\ndef khz_to_rad_per_ns(khz: float) -> float:\n    return hz_to_rad_per_ns(khz * 1e3)\n\n# Leading-order CR analytics (weak drive, effective model)\n# ω_ZX ≈ J Ω [1\u002F(Δ+α_c) − 1\u002FΔ],   ω_ZZ ≈ J^2 [1\u002F(Δ−α_t) − 1\u002F(Δ+α_c)]\ndef omega_zx_mhz(delta_ct: float, J: float, Omega: float, alpha_c: float) -> float:\n    return J * Omega * (_safe_div(1.0, delta_ct + alpha_c) - _safe_div(1.0, delta_ct))\n\ndef omega_zz_mhz(delta_ct: float, J: float, alpha_c: float, alpha_t: float) -> float:\n    return (J ** 2) * (_safe_div(1.0, delta_ct - alpha_t) - _safe_div(1.0, delta_ct + alpha_c))\n\n# -----------------------------\n# Build H_eff (4×4) in rad\u002Fns\n# -----------------------------\nI2 = np.eye(2)\nX = np.array([[0.0, 1.0],\n              [1.0, 0.0]])\nZ = np.array([[1.0, 0.0],\n              [0.0, -1.0]])\n\ndef kron2(a, b): return np.kron(a, b)\n\ndef build_heff_radns(K: RabiKnobs) -> np.ndarray:\n    Δ = K.f_c - K.f_t\n    w_zx = mhz_to_rad_per_ns(omega_zx_mhz(Δ, K.J, K.Omega, K.alpha_c))\n    w_zz = mhz_to_rad_per_ns(omega_zz_mhz(Δ, K.J, K.alpha_c, K.alpha_t)) + khz_to_rad_per_ns(K.wZZ_khz)\n    w_ix = mhz_to_rad_per_ns(K.wIX_mhz)\n    w_iz = khz_to_rad_per_ns(K.wIZ_khz)\n    w_zi = mhz_to_rad_per_ns(K.wZI_mhz)\n    return ((w_ix\u002F2.0) * kron2(I2, X) +\n            (w_iz\u002F2.0) * kron2(I2, Z) +\n            (w_zi\u002F2.0) * kron2(Z,  I2) +\n            (w_zx\u002F2.0) * kron2(Z,  X) +\n            (w_zz\u002F2.0) * kron2(Z,  Z))\n\n# -----------------------------\n# Time evolution via diagonalization\n# -----------------------------\ndef evolve_state_constH(H: np.ndarray, psi0: np.ndarray, t_ns: np.ndarray) -> np.ndarray:\n    E, V = np.linalg.eigh(H)\n    Vinv = V.conj().T\n    amps0 = Vinv @ psi0\n    out = np.empty((psi0.size, t_ns.size), dtype=complex)\n    for k, t in enumerate(t_ns):\n        out[:, k] = V @ (np.exp(-1j * E * t) * amps0)\n    return out\n\n# Basis |00>, |01>, |10>, |11>\ne00 = np.array([1,0,0,0], dtype=complex)\ne01 = np.array([0,1,0,0], dtype=complex)\ne10 = np.array([0,0,1,0], dtype=complex)\ne11 = np.array([0,0,0,1], dtype=complex)\n\n# -----------------------------\n# Conditional Rabi simulation\n# -----------------------------\nH = build_heff_radns(K)\nt_ns = np.linspace(0.0, K.t_end_ns, K.n_steps)\n\n# Prepare control in |0> (|00>) vs |1> (|10>), target initially |0>\nψ_c0 = evolve_state_constH(H, e00, t_ns)\nψ_c1 = evolve_state_constH(H, e10, t_ns)\n\n# Target |1> probability = P(|01>) + P(|11>)\np_t1_c0 = np.abs(e01.conj() @ ψ_c0)**2 + np.abs(e11.conj() @ ψ_c0)**2\np_t1_c1 = np.abs(e01.conj() @ ψ_c1)**2 + np.abs(e11.conj() @ ψ_c1)**2\n\n# -----------------------------\n# Plot\n# -----------------------------\nplt.figure(figsize=(8.2, 4.8), dpi=150)\nplt.plot(t_ns, p_t1_c0, label='Control |0⟩, init |00⟩', color='blue')\nplt.plot(t_ns, p_t1_c1, label='Control |1⟩, init |10⟩', color='orange')\nplt.xlabel('Time (ns)')\nplt.ylabel('Target |1⟩ probability')\nplt.title('Conditional target Rabi under CR effective Hamiltonian')\nplt.legend()\nplt.show()\n",[57,15072,15073,15078,15083,15087,15097,15103,15113,15123,15127,15131,15136,15140,15144,15153,15166,15179,15194,15209,15222,15236,15240,15245,15259,15274,15289,15304,15308,15313,15325,15337,15341,15351,15355,15359,15364,15368,15408,15443,15447,15469,15489,15493,15515,15531,15535,15557,15573,15577,15582,15587,15631,15667,15671,15715,15757,15761,15765,15770,15774,15791,15813,15827,15848,15862,15866,15894,15898,15913,15928,15944,15967,15979,15991,16003,16026,16046,16066,16086,16104,16108,16112,16117,16121,16147,16163,16179,16194,16216,16230,16271,16278,16282,16287,16323,16358,16393,16428,16432,16436,16441,16445,16457,16475,16479,16484,16496,16508,16512,16517,16567,16613,16617,16621,16626,16630,16661,16687,16714,16727,16740,16753,16761],{"__ignoreMap":529},[533,15074,15075],{"class":535,"line":536},[533,15076,15077],{"class":593},"#@title Conditional target Rabi under CR effective Hamiltonian\n",[533,15079,15080],{"class":535,"line":547},[533,15081,15082],{"class":593},"# we diagonalize once and propagate.\n",[533,15084,15085],{"class":535,"line":575},[533,15086,891],{"emptyLinePlaceholder":790},[533,15088,15089,15091,15093,15095],{"class":535,"line":590},[533,15090,877],{"class":539},[533,15092,11097],{"class":543},[533,15094,883],{"class":539},[533,15096,11102],{"class":543},[533,15098,15099,15101],{"class":535,"line":597},[533,15100,883],{"class":539},[533,15102,11121],{"class":543},[533,15104,15105,15107,15109,15111],{"class":535,"line":603},[533,15106,883],{"class":539},[533,15108,11128],{"class":543},[533,15110,584],{"class":539},[533,15112,11133],{"class":543},[533,15114,15115,15117,15119,15121],{"class":535,"line":609},[533,15116,883],{"class":539},[533,15118,11140],{"class":543},[533,15120,584],{"class":539},[533,15122,11145],{"class":543},[533,15124,15125],{"class":535,"line":640},[533,15126,891],{"emptyLinePlaceholder":790},[533,15128,15129],{"class":535,"line":646},[533,15130,11154],{"class":593},[533,15132,15133],{"class":535,"line":658},[533,15134,15135],{"class":593},"# Control knobs (MHz unless noted)\n",[533,15137,15138],{"class":535,"line":680},[533,15139,11154],{"class":593},[533,15141,15142],{"class":535,"line":1536},[533,15143,11168],{"class":560},[533,15145,15146,15148,15151],{"class":535,"line":1552},[533,15147,11173],{"class":539},[533,15149,15150],{"class":2393}," RabiKnobs",[533,15152,544],{"class":543},[533,15154,15155,15157,15159,15161,15163],{"class":535,"line":1911},[533,15156,11183],{"class":543},[533,15158,11186],{"class":553},[533,15160,4899],{"class":553},[533,15162,11191],{"class":625},[533,15164,15165],{"class":593},"          # control frequency\n",[533,15167,15168,15170,15172,15174,15176],{"class":535,"line":1940},[533,15169,11199],{"class":543},[533,15171,11186],{"class":553},[533,15173,4899],{"class":553},[533,15175,11206],{"class":625},[533,15177,15178],{"class":593},"          # target frequency\n",[533,15180,15181,15183,15185,15187,15189,15191],{"class":535,"line":1968},[533,15182,11214],{"class":543},[533,15184,11186],{"class":553},[533,15186,4899],{"class":553},[533,15188,11221],{"class":553},[533,15190,11224],{"class":625},[533,15192,15193],{"class":593},"      # control anharmonicity\n",[533,15195,15196,15198,15200,15202,15204,15206],{"class":535,"line":1995},[533,15197,11232],{"class":543},[533,15199,11186],{"class":553},[533,15201,4899],{"class":553},[533,15203,11221],{"class":553},[533,15205,11224],{"class":625},[533,15207,15208],{"class":593},"      # target anharmonicity\n",[533,15210,15211,15213,15215,15217,15219],{"class":535,"line":4164},[533,15212,11248],{"class":543},[533,15214,11186],{"class":553},[533,15216,4899],{"class":553},[533,15218,11255],{"class":625},[533,15220,15221],{"class":593},"               # exchange coupling\n",[533,15223,15224,15227,15229,15231,15233],{"class":535,"line":4199},[533,15225,15226],{"class":543},"    Omega: ",[533,15228,11186],{"class":553},[533,15230,4899],{"class":553},[533,15232,11270],{"class":625},[533,15234,15235],{"class":593},"          # CR drive amplitude on control\n",[533,15237,15238],{"class":535,"line":4206},[533,15239,891],{"emptyLinePlaceholder":790},[533,15241,15242],{"class":535,"line":4214},[533,15243,15244],{"class":593},"    # Residuals (typical orders, tweak for your device)\n",[533,15246,15247,15250,15252,15254,15256],{"class":535,"line":11296},[533,15248,15249],{"class":543},"    wIX_mhz: ",[533,15251,11186],{"class":553},[533,15253,4899],{"class":553},[533,15255,11894],{"class":625},[533,15257,15258],{"class":593},"         # IX (drive crosstalk on target)\n",[533,15260,15261,15264,15266,15268,15271],{"class":535,"line":11302},[533,15262,15263],{"class":543},"    wIZ_khz: ",[533,15265,11186],{"class":553},[533,15267,4899],{"class":553},[533,15269,15270],{"class":625}," 20.0",[533,15272,15273],{"class":593},"        # IZ (AC Stark on target)\n",[533,15275,15276,15279,15281,15283,15286],{"class":535,"line":11332},[533,15277,15278],{"class":543},"    wZI_mhz: ",[533,15280,11186],{"class":553},[533,15282,4899],{"class":553},[533,15284,15285],{"class":625}," 10.0",[533,15287,15288],{"class":593},"        # ZI (AC Stark on control)\n",[533,15290,15291,15294,15296,15298,15301],{"class":535,"line":11345},[533,15292,15293],{"class":543},"    wZZ_khz: ",[533,15295,11186],{"class":553},[533,15297,4899],{"class":553},[533,15299,15300],{"class":625}," 100.0",[533,15302,15303],{"class":593},"       # ZZ (static coupling residual)\n",[533,15305,15306],{"class":535,"line":11372},[533,15307,891],{"emptyLinePlaceholder":790},[533,15309,15310],{"class":535,"line":11385},[533,15311,15312],{"class":593},"    # Time axis\n",[533,15314,15315,15318,15320,15322],{"class":535,"line":11390},[533,15316,15317],{"class":543},"    t_end_ns: ",[533,15319,11186],{"class":553},[533,15321,4899],{"class":553},[533,15323,15324],{"class":625}," 400.0\n",[533,15326,15327,15330,15332,15334],{"class":535,"line":11402},[533,15328,15329],{"class":543},"    n_steps: ",[533,15331,4175],{"class":553},[533,15333,4899],{"class":553},[533,15335,15336],{"class":625}," 2001\n",[533,15338,15339],{"class":535,"line":11407},[533,15340,891],{"emptyLinePlaceholder":790},[533,15342,15343,15345,15347,15349],{"class":535,"line":11412},[533,15344,11393],{"class":543},[533,15346,554],{"class":553},[533,15348,15150],{"class":560},[533,15350,1217],{"class":543},[533,15352,15353],{"class":535,"line":11418},[533,15354,891],{"emptyLinePlaceholder":790},[533,15356,15357],{"class":535,"line":11423},[533,15358,11154],{"class":593},[533,15360,15361],{"class":535,"line":11467},[533,15362,15363],{"class":593},"# Helpers and literature-rate formulas\n",[533,15365,15366],{"class":535,"line":11473},[533,15367,11154],{"class":593},[533,15369,15370,15372,15374,15376,15378,15380,15382,15384,15386,15388,15390,15392,15394,15396,15398,15400,15402,15404,15406],{"class":535,"line":11488},[533,15371,1754],{"class":539},[533,15373,11428],{"class":560},[533,15375,615],{"class":543},[533,15377,19],{"class":1762},[533,15379,1389],{"class":543},[533,15381,11186],{"class":553},[533,15383,1133],{"class":543},[533,15385,6086],{"class":1762},[533,15387,1389],{"class":543},[533,15389,11186],{"class":553},[533,15391,1133],{"class":543},[533,15393,11449],{"class":1762},[533,15395,1389],{"class":543},[533,15397,11186],{"class":553},[533,15399,4899],{"class":553},[533,15401,3456],{"class":625},[533,15403,11460],{"class":543},[533,15405,11186],{"class":553},[533,15407,544],{"class":543},[533,15409,15410,15412,15414,15416,15419,15421,15423,15425,15428,15430,15432,15434,15436,15438,15440],{"class":535,"line":11505},[533,15411,1880],{"class":539},[533,15413,11510],{"class":543},[533,15415,2941],{"class":553},[533,15417,15418],{"class":543}," (b ",[533,15420,5724],{"class":539},[533,15422,3448],{"class":553},[533,15424,11480],{"class":543},[533,15426,15427],{"class":553},">=",[533,15429,11913],{"class":543},[533,15431,7221],{"class":539},[533,15433,2911],{"class":543},[533,15435,11495],{"class":560},[533,15437,11480],{"class":543},[533,15439,2469],{"class":553},[533,15441,15442],{"class":543}," eps)\n",[533,15444,15445],{"class":535,"line":11518},[533,15446,891],{"emptyLinePlaceholder":790},[533,15448,15449,15451,15454,15456,15459,15461,15463,15465,15467],{"class":535,"line":11523},[533,15450,1754],{"class":539},[533,15452,15453],{"class":560}," hz_to_rad_per_ns",[533,15455,615],{"class":543},[533,15457,15458],{"class":1762},"hz",[533,15460,1389],{"class":543},[533,15462,11186],{"class":553},[533,15464,11460],{"class":543},[533,15466,11186],{"class":553},[533,15468,544],{"class":543},[533,15470,15471,15473,15475,15477,15479,15481,15484,15486],{"class":535,"line":11555},[533,15472,1880],{"class":539},[533,15474,2251],{"class":625},[533,15476,2254],{"class":553},[533,15478,14196],{"class":543},[533,15480,2469],{"class":553},[533,15482,15483],{"class":543}," hz ",[533,15485,2469],{"class":553},[533,15487,15488],{"class":625}," 1e-9\n",[533,15490,15491],{"class":535,"line":11561},[533,15492,891],{"emptyLinePlaceholder":790},[533,15494,15495,15497,15500,15502,15505,15507,15509,15511,15513],{"class":535,"line":11577},[533,15496,1754],{"class":539},[533,15498,15499],{"class":560}," mhz_to_rad_per_ns",[533,15501,615],{"class":543},[533,15503,15504],{"class":1762},"mhz",[533,15506,1389],{"class":543},[533,15508,11186],{"class":553},[533,15510,11460],{"class":543},[533,15512,11186],{"class":553},[533,15514,544],{"class":543},[533,15516,15517,15519,15521,15524,15526,15529],{"class":535,"line":11600},[533,15518,1880],{"class":539},[533,15520,15453],{"class":560},[533,15522,15523],{"class":543},"(mhz ",[533,15525,2469],{"class":553},[533,15527,15528],{"class":625}," 1e6",[533,15530,637],{"class":543},[533,15532,15533],{"class":535,"line":11621},[533,15534,891],{"emptyLinePlaceholder":790},[533,15536,15537,15539,15542,15544,15547,15549,15551,15553,15555],{"class":535,"line":11637},[533,15538,1754],{"class":539},[533,15540,15541],{"class":560}," khz_to_rad_per_ns",[533,15543,615],{"class":543},[533,15545,15546],{"class":1762},"khz",[533,15548,1389],{"class":543},[533,15550,11186],{"class":553},[533,15552,11460],{"class":543},[533,15554,11186],{"class":553},[533,15556,544],{"class":543},[533,15558,15559,15561,15563,15566,15568,15571],{"class":535,"line":11672},[533,15560,1880],{"class":539},[533,15562,15453],{"class":560},[533,15564,15565],{"class":543},"(khz ",[533,15567,2469],{"class":553},[533,15569,15570],{"class":625}," 1e3",[533,15572,637],{"class":543},[533,15574,15575],{"class":535,"line":11689},[533,15576,891],{"emptyLinePlaceholder":790},[533,15578,15579],{"class":535,"line":11697},[533,15580,15581],{"class":593},"# Leading-order CR analytics (weak drive, effective model)\n",[533,15583,15584],{"class":535,"line":11734},[533,15585,15586],{"class":593},"# ω_ZX ≈ J Ω [1\u002F(Δ+α_c) − 1\u002FΔ],   ω_ZZ ≈ J^2 [1\u002F(Δ−α_t) − 1\u002F(Δ+α_c)]\n",[533,15588,15589,15591,15593,15595,15597,15599,15601,15603,15605,15607,15609,15611,15613,15615,15617,15619,15621,15623,15625,15627,15629],{"class":535,"line":11766},[533,15590,1754],{"class":539},[533,15592,12156],{"class":560},[533,15594,615],{"class":543},[533,15596,12161],{"class":1762},[533,15598,1389],{"class":543},[533,15600,11186],{"class":553},[533,15602,1133],{"class":543},[533,15604,12170],{"class":1762},[533,15606,1389],{"class":543},[533,15608,11186],{"class":553},[533,15610,1133],{"class":543},[533,15612,12179],{"class":1762},[533,15614,1389],{"class":543},[533,15616,11186],{"class":553},[533,15618,1133],{"class":543},[533,15620,12188],{"class":1762},[533,15622,1389],{"class":543},[533,15624,11186],{"class":553},[533,15626,11460],{"class":543},[533,15628,11186],{"class":553},[533,15630,544],{"class":543},[533,15632,15633,15635,15637,15639,15641,15643,15645,15647,15649,15651,15653,15655,15657,15659,15661,15663,15665],{"class":535,"line":11806},[533,15634,1880],{"class":539},[533,15636,12218],{"class":543},[533,15638,2469],{"class":553},[533,15640,12223],{"class":543},[533,15642,2469],{"class":553},[533,15644,5037],{"class":543},[533,15646,12230],{"class":560},[533,15648,615],{"class":543},[533,15650,2239],{"class":625},[533,15652,12237],{"class":543},[533,15654,6350],{"class":553},[533,15656,12242],{"class":543},[533,15658,2514],{"class":553},[533,15660,11428],{"class":560},[533,15662,615],{"class":543},[533,15664,2239],{"class":625},[533,15666,12253],{"class":543},[533,15668,15669],{"class":535,"line":11826},[533,15670,891],{"emptyLinePlaceholder":790},[533,15672,15673,15675,15677,15679,15681,15683,15685,15687,15689,15691,15693,15695,15697,15699,15701,15703,15705,15707,15709,15711,15713],{"class":535,"line":11831},[533,15674,1754],{"class":539},[533,15676,12370],{"class":560},[533,15678,615],{"class":543},[533,15680,12161],{"class":1762},[533,15682,1389],{"class":543},[533,15684,11186],{"class":553},[533,15686,1133],{"class":543},[533,15688,12170],{"class":1762},[533,15690,1389],{"class":543},[533,15692,11186],{"class":553},[533,15694,1133],{"class":543},[533,15696,12188],{"class":1762},[533,15698,1389],{"class":543},[533,15700,11186],{"class":553},[533,15702,1133],{"class":543},[533,15704,12399],{"class":1762},[533,15706,1389],{"class":543},[533,15708,11186],{"class":553},[533,15710,11460],{"class":543},[533,15712,11186],{"class":553},[533,15714,544],{"class":543},[533,15716,15717,15719,15721,15723,15725,15727,15729,15731,15733,15735,15737,15739,15741,15743,15745,15747,15749,15751,15753,15755],{"class":535,"line":11867},[533,15718,1880],{"class":539},[533,15720,12427],{"class":543},[533,15722,11935],{"class":553},[533,15724,11938],{"class":625},[533,15726,7047],{"class":543},[533,15728,2469],{"class":553},[533,15730,5037],{"class":543},[533,15732,12230],{"class":560},[533,15734,615],{"class":543},[533,15736,2239],{"class":625},[533,15738,12237],{"class":543},[533,15740,2514],{"class":553},[533,15742,12450],{"class":543},[533,15744,2514],{"class":553},[533,15746,11428],{"class":560},[533,15748,615],{"class":543},[533,15750,2239],{"class":625},[533,15752,12237],{"class":543},[533,15754,6350],{"class":553},[533,15756,12465],{"class":543},[533,15758,15759],{"class":535,"line":11873},[533,15760,891],{"emptyLinePlaceholder":790},[533,15762,15763],{"class":535,"line":11886},[533,15764,11154],{"class":593},[533,15766,15767],{"class":535,"line":11943},[533,15768,15769],{"class":593},"# Build H_eff (4×4) in rad\u002Fns\n",[533,15771,15772],{"class":535,"line":12001},[533,15773,11154],{"class":593},[533,15775,15776,15779,15781,15783,15785,15787,15789],{"class":535,"line":12009},[533,15777,15778],{"class":543},"I2 ",[533,15780,554],{"class":553},[533,15782,2911],{"class":543},[533,15784,5922],{"class":560},[533,15786,615],{"class":543},[533,15788,1140],{"class":625},[533,15790,637],{"class":543},[533,15792,15793,15796,15798,15800,15802,15805,15807,15809,15811],{"class":535,"line":12014},[533,15794,15795],{"class":543},"X ",[533,15797,554],{"class":553},[533,15799,2911],{"class":543},[533,15801,2914],{"class":560},[533,15803,15804],{"class":543},"([[",[533,15806,2229],{"class":625},[533,15808,1133],{"class":543},[533,15810,2239],{"class":625},[533,15812,1533],{"class":543},[533,15814,15815,15818,15820,15822,15824],{"class":535,"line":12033},[533,15816,15817],{"class":543},"              [",[533,15819,2239],{"class":625},[533,15821,1133],{"class":543},[533,15823,2229],{"class":625},[533,15825,15826],{"class":543},"]])\n",[533,15828,15829,15832,15834,15836,15838,15840,15842,15844,15846],{"class":535,"line":12039},[533,15830,15831],{"class":543},"Z ",[533,15833,554],{"class":553},[533,15835,2911],{"class":543},[533,15837,2914],{"class":560},[533,15839,15804],{"class":543},[533,15841,2239],{"class":625},[533,15843,1133],{"class":543},[533,15845,2229],{"class":625},[533,15847,1533],{"class":543},[533,15849,15850,15852,15854,15856,15858,15860],{"class":535,"line":12062},[533,15851,15817],{"class":543},[533,15853,2229],{"class":625},[533,15855,1133],{"class":543},[533,15857,2514],{"class":553},[533,15859,2239],{"class":625},[533,15861,15826],{"class":543},[533,15863,15864],{"class":535,"line":12067},[533,15865,891],{"emptyLinePlaceholder":790},[533,15867,15868,15870,15873,15875,15877,15879,15881,15884,15887,15889,15891],{"class":535,"line":12075},[533,15869,1754],{"class":539},[533,15871,15872],{"class":560}," kron2",[533,15874,615],{"class":543},[533,15876,19],{"class":1762},[533,15878,1133],{"class":543},[533,15880,6086],{"class":1762},[533,15882,15883],{"class":543},"): ",[533,15885,15886],{"class":539},"return",[533,15888,2911],{"class":543},[533,15890,5916],{"class":560},[533,15892,15893],{"class":543},"(a, b)\n",[533,15895,15896],{"class":535,"line":12088},[533,15897,891],{"emptyLinePlaceholder":790},[533,15899,15900,15902,15905,15907,15910],{"class":535,"line":12101},[533,15901,1754],{"class":539},[533,15903,15904],{"class":560}," build_heff_radns",[533,15906,615],{"class":543},[533,15908,15909],{"class":1762},"K",[533,15911,15912],{"class":543},": RabiKnobs) -> np.ndarray:\n",[533,15914,15915,15918,15920,15923,15925],{"class":535,"line":12108},[533,15916,15917],{"class":543},"    Δ ",[533,15919,554],{"class":553},[533,15921,15922],{"class":543}," K.f_c ",[533,15924,2514],{"class":553},[533,15926,15927],{"class":543}," K.f_t\n",[533,15929,15930,15933,15935,15937,15939,15941],{"class":535,"line":12119},[533,15931,15932],{"class":543},"    w_zx ",[533,15934,554],{"class":553},[533,15936,15499],{"class":560},[533,15938,615],{"class":543},[533,15940,12794],{"class":560},[533,15942,15943],{"class":543},"(Δ, K.J, K.Omega, K.alpha_c))\n",[533,15945,15946,15949,15951,15953,15955,15957,15960,15962,15964],{"class":535,"line":12130},[533,15947,15948],{"class":543},"    w_zz ",[533,15950,554],{"class":553},[533,15952,15499],{"class":560},[533,15954,615],{"class":543},[533,15956,12826],{"class":560},[533,15958,15959],{"class":543},"(Δ, K.J, K.alpha_c, K.alpha_t)) ",[533,15961,6350],{"class":553},[533,15963,15541],{"class":560},[533,15965,15966],{"class":543},"(K.wZZ_khz)\n",[533,15968,15969,15972,15974,15976],{"class":535,"line":12135},[533,15970,15971],{"class":543},"    w_ix ",[533,15973,554],{"class":553},[533,15975,15499],{"class":560},[533,15977,15978],{"class":543},"(K.wIX_mhz)\n",[533,15980,15981,15984,15986,15988],{"class":535,"line":12140},[533,15982,15983],{"class":543},"    w_iz ",[533,15985,554],{"class":553},[533,15987,15541],{"class":560},[533,15989,15990],{"class":543},"(K.wIZ_khz)\n",[533,15992,15993,15996,15998,16000],{"class":535,"line":12146},[533,15994,15995],{"class":543},"    w_zi ",[533,15997,554],{"class":553},[533,15999,15499],{"class":560},[533,16001,16002],{"class":543},"(K.wZI_mhz)\n",[533,16004,16005,16007,16010,16012,16014,16016,16018,16020,16023],{"class":535,"line":12151},[533,16006,1880],{"class":539},[533,16008,16009],{"class":543}," ((w_ix",[533,16011,2941],{"class":553},[533,16013,11726],{"class":625},[533,16015,7047],{"class":543},[533,16017,2469],{"class":553},[533,16019,15872],{"class":560},[533,16021,16022],{"class":543},"(I2, X) ",[533,16024,16025],{"class":553},"+\n",[533,16027,16028,16031,16033,16035,16037,16039,16041,16044],{"class":535,"line":12201},[533,16029,16030],{"class":543},"            (w_iz",[533,16032,2941],{"class":553},[533,16034,11726],{"class":625},[533,16036,7047],{"class":543},[533,16038,2469],{"class":553},[533,16040,15872],{"class":560},[533,16042,16043],{"class":543},"(I2, Z) ",[533,16045,16025],{"class":553},[533,16047,16048,16051,16053,16055,16057,16059,16061,16064],{"class":535,"line":12210},[533,16049,16050],{"class":543},"            (w_zi",[533,16052,2941],{"class":553},[533,16054,11726],{"class":625},[533,16056,7047],{"class":543},[533,16058,2469],{"class":553},[533,16060,15872],{"class":560},[533,16062,16063],{"class":543},"(Z,  I2) ",[533,16065,16025],{"class":553},[533,16067,16068,16071,16073,16075,16077,16079,16081,16084],{"class":535,"line":12256},[533,16069,16070],{"class":543},"            (w_zx",[533,16072,2941],{"class":553},[533,16074,11726],{"class":625},[533,16076,7047],{"class":543},[533,16078,2469],{"class":553},[533,16080,15872],{"class":560},[533,16082,16083],{"class":543},"(Z,  X) ",[533,16085,16025],{"class":553},[533,16087,16088,16091,16093,16095,16097,16099,16101],{"class":535,"line":12285},[533,16089,16090],{"class":543},"            (w_zz",[533,16092,2941],{"class":553},[533,16094,11726],{"class":625},[533,16096,7047],{"class":543},[533,16098,2469],{"class":553},[533,16100,15872],{"class":560},[533,16102,16103],{"class":543},"(Z,  Z))\n",[533,16105,16106],{"class":535,"line":12337},[533,16107,891],{"emptyLinePlaceholder":790},[533,16109,16110],{"class":535,"line":12343},[533,16111,11154],{"class":593},[533,16113,16114],{"class":535,"line":12360},[533,16115,16116],{"class":593},"# Time evolution via diagonalization\n",[533,16118,16119],{"class":535,"line":12365},[533,16120,11154],{"class":593},[533,16122,16123,16125,16128,16130,16133,16136,16139,16141,16144],{"class":535,"line":12412},[533,16124,1754],{"class":539},[533,16126,16127],{"class":560}," evolve_state_constH",[533,16129,615],{"class":543},[533,16131,16132],{"class":1762},"H",[533,16134,16135],{"class":543},": np.ndarray, ",[533,16137,16138],{"class":1762},"psi0",[533,16140,16135],{"class":543},[533,16142,16143],{"class":1762},"t_ns",[533,16145,16146],{"class":543},": np.ndarray) -> np.ndarray:\n",[533,16148,16149,16152,16154,16157,16160],{"class":535,"line":12420},[533,16150,16151],{"class":543},"    E, V ",[533,16153,554],{"class":553},[533,16155,16156],{"class":543}," np.linalg.",[533,16158,16159],{"class":560},"eigh",[533,16161,16162],{"class":543},"(H)\n",[533,16164,16165,16168,16170,16173,16176],{"class":535,"line":12468},[533,16166,16167],{"class":543},"    Vinv ",[533,16169,554],{"class":553},[533,16171,16172],{"class":543}," V.",[533,16174,16175],{"class":560},"conj",[533,16177,16178],{"class":543},"().T\n",[533,16180,16181,16184,16186,16189,16191],{"class":535,"line":12491},[533,16182,16183],{"class":543},"    amps0 ",[533,16185,554],{"class":553},[533,16187,16188],{"class":543}," Vinv ",[533,16190,5911],{"class":553},[533,16192,16193],{"class":543}," psi0\n",[533,16195,16196,16199,16201,16203,16205,16208,16211,16214],{"class":535,"line":12531},[533,16197,16198],{"class":543},"    out ",[533,16200,554],{"class":553},[533,16202,2911],{"class":543},[533,16204,13355],{"class":560},[533,16206,16207],{"class":543},"((psi0.size, t_ns.size), ",[533,16209,16210],{"class":567},"dtype",[533,16212,16213],{"class":553},"=complex",[533,16215,637],{"class":543},[533,16217,16218,16220,16223,16225,16227],{"class":535,"line":12569},[533,16219,12659],{"class":539},[533,16221,16222],{"class":543}," k, t ",[533,16224,2786],{"class":539},[533,16226,13380],{"class":553},[533,16228,16229],{"class":543},"(t_ns):\n",[533,16231,16232,16235,16237,16240,16242,16245,16248,16250,16252,16254,16256,16258,16261,16263,16266,16268],{"class":535,"line":12574},[533,16233,16234],{"class":543},"        out[:, k] ",[533,16236,554],{"class":553},[533,16238,16239],{"class":543}," V ",[533,16241,5911],{"class":553},[533,16243,16244],{"class":543}," (np.",[533,16246,16247],{"class":560},"exp",[533,16249,615],{"class":543},[533,16251,2514],{"class":553},[533,16253,1052],{"class":625},[533,16255,2561],{"class":539},[533,16257,2254],{"class":553},[533,16259,16260],{"class":543}," E ",[533,16262,2469],{"class":553},[533,16264,16265],{"class":543}," t) ",[533,16267,2469],{"class":553},[533,16269,16270],{"class":543}," amps0)\n",[533,16272,16273,16275],{"class":535,"line":12589},[533,16274,1880],{"class":539},[533,16276,16277],{"class":543}," out\n",[533,16279,16280],{"class":535,"line":12594},[533,16281,891],{"emptyLinePlaceholder":790},[533,16283,16284],{"class":535,"line":12600},[533,16285,16286],{"class":593},"# Basis |00>, |01>, |10>, |11>\n",[533,16288,16289,16292,16294,16296,16298,16300,16302,16304,16306,16308,16310,16312,16314,16317,16319,16321],{"class":535,"line":12641},[533,16290,16291],{"class":543},"e00 ",[533,16293,554],{"class":553},[533,16295,2911],{"class":543},[533,16297,2914],{"class":560},[533,16299,3230],{"class":543},[533,16301,1052],{"class":625},[533,16303,2464],{"class":543},[533,16305,1049],{"class":625},[533,16307,2464],{"class":543},[533,16309,1049],{"class":625},[533,16311,2464],{"class":543},[533,16313,1049],{"class":625},[533,16315,16316],{"class":543},"], ",[533,16318,16210],{"class":567},[533,16320,16213],{"class":553},[533,16322,637],{"class":543},[533,16324,16325,16328,16330,16332,16334,16336,16338,16340,16342,16344,16346,16348,16350,16352,16354,16356],{"class":535,"line":12656},[533,16326,16327],{"class":543},"e01 ",[533,16329,554],{"class":553},[533,16331,2911],{"class":543},[533,16333,2914],{"class":560},[533,16335,3230],{"class":543},[533,16337,1049],{"class":625},[533,16339,2464],{"class":543},[533,16341,1052],{"class":625},[533,16343,2464],{"class":543},[533,16345,1049],{"class":625},[533,16347,2464],{"class":543},[533,16349,1049],{"class":625},[533,16351,16316],{"class":543},[533,16353,16210],{"class":567},[533,16355,16213],{"class":553},[533,16357,637],{"class":543},[533,16359,16360,16363,16365,16367,16369,16371,16373,16375,16377,16379,16381,16383,16385,16387,16389,16391],{"class":535,"line":12672},[533,16361,16362],{"class":543},"e10 ",[533,16364,554],{"class":553},[533,16366,2911],{"class":543},[533,16368,2914],{"class":560},[533,16370,3230],{"class":543},[533,16372,1049],{"class":625},[533,16374,2464],{"class":543},[533,16376,1049],{"class":625},[533,16378,2464],{"class":543},[533,16380,1052],{"class":625},[533,16382,2464],{"class":543},[533,16384,1049],{"class":625},[533,16386,16316],{"class":543},[533,16388,16210],{"class":567},[533,16390,16213],{"class":553},[533,16392,637],{"class":543},[533,16394,16395,16398,16400,16402,16404,16406,16408,16410,16412,16414,16416,16418,16420,16422,16424,16426],{"class":535,"line":12703},[533,16396,16397],{"class":543},"e11 ",[533,16399,554],{"class":553},[533,16401,2911],{"class":543},[533,16403,2914],{"class":560},[533,16405,3230],{"class":543},[533,16407,1049],{"class":625},[533,16409,2464],{"class":543},[533,16411,1049],{"class":625},[533,16413,2464],{"class":543},[533,16415,1049],{"class":625},[533,16417,2464],{"class":543},[533,16419,1052],{"class":625},[533,16421,16316],{"class":543},[533,16423,16210],{"class":567},[533,16425,16213],{"class":553},[533,16427,637],{"class":543},[533,16429,16430],{"class":535,"line":12708},[533,16431,891],{"emptyLinePlaceholder":790},[533,16433,16434],{"class":535,"line":12713},[533,16435,11154],{"class":593},[533,16437,16438],{"class":535,"line":12719},[533,16439,16440],{"class":593},"# Conditional Rabi simulation\n",[533,16442,16443],{"class":535,"line":12724},[533,16444,11154],{"class":593},[533,16446,16447,16450,16452,16454],{"class":535,"line":12750},[533,16448,16449],{"class":543},"H ",[533,16451,554],{"class":553},[533,16453,15904],{"class":560},[533,16455,16456],{"class":543},"(K)\n",[533,16458,16459,16462,16464,16466,16468,16470,16472],{"class":535,"line":12775},[533,16460,16461],{"class":543},"t_ns ",[533,16463,554],{"class":553},[533,16465,2911],{"class":543},[533,16467,12734],{"class":560},[533,16469,615],{"class":543},[533,16471,2229],{"class":625},[533,16473,16474],{"class":543},", K.t_end_ns, K.n_steps)\n",[533,16476,16477],{"class":535,"line":12780},[533,16478,891],{"emptyLinePlaceholder":790},[533,16480,16481],{"class":535,"line":12812},[533,16482,16483],{"class":593},"# Prepare control in |0> (|00>) vs |1> (|10>), target initially |0>\n",[533,16485,16486,16489,16491,16493],{"class":535,"line":12842},[533,16487,16488],{"class":543},"ψ_c0 ",[533,16490,554],{"class":553},[533,16492,16127],{"class":560},[533,16494,16495],{"class":543},"(H, e00, t_ns)\n",[533,16497,16498,16501,16503,16505],{"class":535,"line":12879},[533,16499,16500],{"class":543},"ψ_c1 ",[533,16502,554],{"class":553},[533,16504,16127],{"class":560},[533,16506,16507],{"class":543},"(H, e10, t_ns)\n",[533,16509,16510],{"class":535,"line":12884},[533,16511,891],{"emptyLinePlaceholder":790},[533,16513,16514],{"class":535,"line":12890},[533,16515,16516],{"class":593},"# Target |1> probability = P(|01>) + P(|11>)\n",[533,16518,16519,16522,16524,16526,16528,16531,16533,16536,16538,16541,16543,16545,16547,16549,16551,16554,16556,16558,16560,16562,16564],{"class":535,"line":12927},[533,16520,16521],{"class":543},"p_t1_c0 ",[533,16523,554],{"class":553},[533,16525,2911],{"class":543},[533,16527,12852],{"class":560},[533,16529,16530],{"class":543},"(e01.",[533,16532,16175],{"class":560},[533,16534,16535],{"class":543},"() ",[533,16537,5911],{"class":553},[533,16539,16540],{"class":543}," ψ_c0)",[533,16542,11935],{"class":553},[533,16544,1140],{"class":625},[533,16546,14257],{"class":553},[533,16548,2911],{"class":543},[533,16550,12852],{"class":560},[533,16552,16553],{"class":543},"(e11.",[533,16555,16175],{"class":560},[533,16557,16535],{"class":543},[533,16559,5911],{"class":553},[533,16561,16540],{"class":543},[533,16563,11935],{"class":553},[533,16565,16566],{"class":625},"2\n",[533,16568,16569,16572,16574,16576,16578,16580,16582,16584,16586,16589,16591,16593,16595,16597,16599,16601,16603,16605,16607,16609,16611],{"class":535,"line":12988},[533,16570,16571],{"class":543},"p_t1_c1 ",[533,16573,554],{"class":553},[533,16575,2911],{"class":543},[533,16577,12852],{"class":560},[533,16579,16530],{"class":543},[533,16581,16175],{"class":560},[533,16583,16535],{"class":543},[533,16585,5911],{"class":553},[533,16587,16588],{"class":543}," ψ_c1)",[533,16590,11935],{"class":553},[533,16592,1140],{"class":625},[533,16594,14257],{"class":553},[533,16596,2911],{"class":543},[533,16598,12852],{"class":560},[533,16600,16553],{"class":543},[533,16602,16175],{"class":560},[533,16604,16535],{"class":543},[533,16606,5911],{"class":553},[533,16608,16588],{"class":543},[533,16610,11935],{"class":553},[533,16612,16566],{"class":625},[533,16614,16615],{"class":535,"line":13011},[533,16616,891],{"emptyLinePlaceholder":790},[533,16618,16619],{"class":535,"line":13025},[533,16620,11154],{"class":593},[533,16622,16623],{"class":535,"line":13053},[533,16624,16625],{"class":593},"# Plot\n",[533,16627,16628],{"class":535,"line":13084},[533,16629,11154],{"class":593},[533,16631,16632,16634,16636,16638,16640,16642,16644,16647,16649,16651,16653,16655,16657,16659],{"class":535,"line":13105},[533,16633,12893],{"class":543},[533,16635,12896],{"class":560},[533,16637,615],{"class":543},[533,16639,12901],{"class":567},[533,16641,554],{"class":553},[533,16643,615],{"class":543},[533,16645,16646],{"class":625},"8.2",[533,16648,1133],{"class":543},[533,16650,14900],{"class":625},[533,16652,3945],{"class":543},[533,16654,12917],{"class":567},[533,16656,554],{"class":553},[533,16658,12922],{"class":625},[533,16660,637],{"class":543},[533,16662,16663,16665,16667,16670,16672,16674,16677,16679,16681,16683,16685],{"class":535,"line":13115},[533,16664,12893],{"class":543},[533,16666,12932],{"class":560},[533,16668,16669],{"class":543},"(t_ns, p_t1_c0, ",[533,16671,12942],{"class":567},[533,16673,554],{"class":553},[533,16675,16676],{"class":621},"'Control |0⟩, init |00⟩'",[533,16678,1133],{"class":543},[533,16680,12978],{"class":567},[533,16682,554],{"class":553},[533,16684,12983],{"class":621},[533,16686,637],{"class":543},[533,16688,16689,16691,16693,16696,16698,16700,16703,16705,16707,16709,16712],{"class":535,"line":13125},[533,16690,12893],{"class":543},[533,16692,12932],{"class":560},[533,16694,16695],{"class":543},"(t_ns, p_t1_c1, ",[533,16697,12942],{"class":567},[533,16699,554],{"class":553},[533,16701,16702],{"class":621},"'Control |1⟩, init |10⟩'",[533,16704,1133],{"class":543},[533,16706,12978],{"class":567},[533,16708,554],{"class":553},[533,16710,16711],{"class":621},"'orange'",[533,16713,637],{"class":543},[533,16715,16716,16718,16720,16722,16725],{"class":535,"line":13130},[533,16717,12893],{"class":543},[533,16719,13030],{"class":560},[533,16721,615],{"class":543},[533,16723,16724],{"class":621},"'Time (ns)'",[533,16726,637],{"class":543},[533,16728,16729,16731,16733,16735,16738],{"class":535,"line":13136},[533,16730,12893],{"class":543},[533,16732,13058],{"class":560},[533,16734,615],{"class":543},[533,16736,16737],{"class":621},"'Target |1⟩ probability'",[533,16739,637],{"class":543},[533,16741,16742,16744,16746,16748,16751],{"class":535,"line":13167},[533,16743,12893],{"class":543},[533,16745,8639],{"class":560},[533,16747,615],{"class":543},[533,16749,16750],{"class":621},"'Conditional target Rabi under CR effective Hamiltonian'",[533,16752,637],{"class":543},[533,16754,16755,16757,16759],{"class":535,"line":13213},[533,16756,12893],{"class":543},[533,16758,13110],{"class":560},[533,16760,1217],{"class":543},[533,16762,16763,16765,16767],{"class":535,"line":13234},[533,16764,12893],{"class":543},[533,16766,13120],{"class":560},[533,16768,1217],{"class":543},[2175,16770],{"alt":16771,"src":16772},"Output 6 of the notebook","\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-06.webp",[773,16774,16775],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":16777},[16778],{"id":9414,"depth":547,"text":9415,"children":16779},[16780],{"id":10997,"depth":575,"text":10998},[4349,4637,16782,16783],"Expert notes","Cross-resonance gate",[16785],{"username":6135,"name":6133,"role":16786,"bio":16787,"links":16788},"Quantum Hardware Engineer · Doctoral Researcher, University of Minnesota","Onri fabricates the hardware he writes about. Eight years in the J.P. Wang group at Minnesota have gone into nanoelectronics fabrication and materials integration: cryogenic MRAM, spin-orbit torque devices, spintronic quantum processor chips. He has trained twenty engineers and physicists on high-yield fabrication in an ISO 4 cleanroom, and has worked as a quantum hardware engineer at IBM's T.J. Watson lab. By his own account what he does best is turn technical jargon into practical layman's terms, which is what these notebooks are for.",[16789,16791],{"label":4363,"href":16790},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum",{"label":16792,"href":9409},"Original notebook ↗",{"username":6135,"name":6133,"role":16794},"Quantum Hardware Engineer, University of Minnesota","How the ZX entangling rate and static ZZ vary with detuning and drive amplitude, plotted from the PRA 2020 cross-resonance formulas.","Deep dive · Hardware",{},"\u002F_content\u002Fimages\u002Fcross-resonance-gate-visualization\u002Foutput-01.png","\u002Fblog\u002Fexpert-notes\u002Fcross-resonance-gate-visualization","2026-08-06","9 min read",[],{"title":9397,"description":16795},"blog\u002Fexpert-notes\u002Fcross-resonance-gate-visualization",[16806,16807],"hardware","visualization","_VdzDZDLXvkDulRCowtVwguKQjhYb-hvUZFtQDZnmAc",{"id":16810,"title":16811,"authors":16812,"body":16813,"breadcrumb":28945,"builders":28947,"byline":28952,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":28953,"draft":786,"extension":787,"eyebrow":16796,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":28954,"navigation":790,"newsItems":7,"next":7,"ogImage":28955,"order":7,"outcomes":7,"path":28956,"publishDate":16800,"readingTime":7335,"related":28957,"relatedProjects":7,"seo":28958,"stem":28959,"tags":28960,"track":7,"trackName":7,"__hash__":28961},"blog\u002Fblog\u002Fexpert-notes\u002Fpulse-shapes-and-envelopes.md","Pulse Shapes and Envelopes, Visualized",[6135],{"type":9,"value":16814,"toc":28939},[16815,16823,16826,16837,16860,17113,17116,17383,17386,17714,17717,18067,18070,18308,18311,18618,18621,18973,18977,19359,19363,19366,19964,19968,20520,20524,21146,21150,21780,21784,21787,21794,21800,22190,22400,22406,22959,23159,23165,23756,23988,23994,24218,24220,24225,26796,27385,27389,27393,27848,27852,28225,28229,28932,28936],[12,16816,16817],{},[9404,16818,9406,16819,16822],{},[19,16820,9410],{"href":16821},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum\u002FQC-Hardware-How-To\u002Fblob\u002Fmain\u002FJupyter%20Notebook%20Scripts\u002FPulse_Shapes_and_Envelopes_Visualization.ipynb",". The text, code, and figures below are Onri's, as published.",[12,16824,16825],{},"This notebook authored by Onri Jay Benally shows some plots to help visualize the process of how pulses are shaped to control a quantum chip.",[753,16827,16828,16831,16834],{},[756,16829,16830],{},"While Gaussian is prevalent due to its favorable spectral properties, sinusoidal or other shaped envelopes also exist and are actively used in various quantum computing architectures.",[756,16832,16833],{},"The choice of modulation function, which resembles an envelope, is dictated by the need to balance gate fidelity, spectral leakage, robustness against noise, and suppression of higher energy transitions.",[756,16835,16836],{},"Optimal control techniques, such as GRAPE or CRAB, can generate tailored pulse shapes that might include sinusoidal modulations.",[16838,16839,16840],"blockquote",{},[753,16841,16842,16848,16854],{},[756,16843,16844,16847],{},[974,16845,16846],{},"Gradient Ascent Pulse Engineering (GRAPE)",": A numerical algorithm used in quantum optimal control. It uses time discretization in order to identify the optimal control pulses for quantum systems.",[756,16849,16850,16853],{},[974,16851,16852],{},"Chopped Random Basis (CRAB)",": A method for quantum optimal control that uses a randomly truncated basis to optimize control pulses.",[756,16855,16856,16859],{},[974,16857,16858],{},"Derivative Removal by Adiabatic Gate (DRAG)",": Widely used in implementations of high-fidelity single-qubit gates in superconducting qubit architectures, such as those found in IBM Quantum and Google Quantum processors.",[524,16861,16863],{"className":526,"code":16862,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Onri prefers using rcParams to increase the quality of all plots to be higher than the default settings.\n# This only needs to be done once at beginning of every Jupyter Notebook.\nplt.rcParams['figure.dpi'] = 200\n\n# Define the parameters for the Gaussian modulation function\nmean = 0\nstd_dev = 1\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian modulation function\ngaussian_modulation = np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Plot the Gaussian modulation function with blue color\nplt.plot(time, gaussian_modulation, color='blue')\nplt.title('Gaussian Modulation Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\nplt.grid(False)\nplt.show()\n",[57,16864,16865,16875,16885,16889,16894,16899,16914,16918,16923,16933,16943,16974,16978,16983,17027,17031,17036,17053,17066,17079,17092,17105],{"__ignoreMap":529},[533,16866,16867,16869,16871,16873],{"class":535,"line":536},[533,16868,883],{"class":539},[533,16870,11128],{"class":543},[533,16872,584],{"class":539},[533,16874,11133],{"class":543},[533,16876,16877,16879,16881,16883],{"class":535,"line":547},[533,16878,883],{"class":539},[533,16880,11140],{"class":543},[533,16882,584],{"class":539},[533,16884,11145],{"class":543},[533,16886,16887],{"class":535,"line":575},[533,16888,891],{"emptyLinePlaceholder":790},[533,16890,16891],{"class":535,"line":590},[533,16892,16893],{"class":593},"# Onri prefers using rcParams to increase the quality of all plots to be higher than the default settings.\n",[533,16895,16896],{"class":535,"line":597},[533,16897,16898],{"class":593},"# This only needs to be done once at beginning of every Jupyter Notebook.\n",[533,16900,16901,16904,16907,16909,16911],{"class":535,"line":603},[533,16902,16903],{"class":543},"plt.rcParams[",[533,16905,16906],{"class":621},"'figure.dpi'",[533,16908,11314],{"class":543},[533,16910,554],{"class":553},[533,16912,16913],{"class":625}," 200\n",[533,16915,16916],{"class":535,"line":609},[533,16917,891],{"emptyLinePlaceholder":790},[533,16919,16920],{"class":535,"line":640},[533,16921,16922],{"class":593},"# Define the parameters for the Gaussian modulation function\n",[533,16924,16925,16928,16930],{"class":535,"line":646},[533,16926,16927],{"class":543},"mean ",[533,16929,554],{"class":553},[533,16931,16932],{"class":625}," 0\n",[533,16934,16935,16938,16940],{"class":535,"line":658},[533,16936,16937],{"class":543},"std_dev ",[533,16939,554],{"class":553},[533,16941,16942],{"class":625}," 1\n",[533,16944,16945,16948,16950,16952,16954,16956,16958,16960,16962,16964,16966,16968,16971],{"class":535,"line":680},[533,16946,16947],{"class":543},"time ",[533,16949,554],{"class":553},[533,16951,2911],{"class":543},[533,16953,12734],{"class":560},[533,16955,615],{"class":543},[533,16957,2514],{"class":553},[533,16959,1220],{"class":625},[533,16961,1133],{"class":543},[533,16963,1220],{"class":625},[533,16965,1133],{"class":543},[533,16967,1240],{"class":625},[533,16969,16970],{"class":543},")  ",[533,16972,16973],{"class":593},"# Generate time values from -5 to 5\n",[533,16975,16976],{"class":535,"line":1536},[533,16977,891],{"emptyLinePlaceholder":790},[533,16979,16980],{"class":535,"line":1552},[533,16981,16982],{"class":593},"# Calculate the Gaussian modulation function\n",[533,16984,16985,16988,16990,16992,16994,16996,16998,17001,17003,17006,17008,17010,17012,17014,17016,17018,17021,17023,17025],{"class":535,"line":1911},[533,16986,16987],{"class":543},"gaussian_modulation ",[533,16989,554],{"class":553},[533,16991,2911],{"class":543},[533,16993,16247],{"class":560},[533,16995,615],{"class":543},[533,16997,2514],{"class":553},[533,16999,17000],{"class":543},"(time ",[533,17002,2514],{"class":553},[533,17004,17005],{"class":543}," mean) ",[533,17007,11935],{"class":553},[533,17009,11938],{"class":625},[533,17011,11903],{"class":553},[533,17013,5037],{"class":543},[533,17015,1140],{"class":625},[533,17017,2254],{"class":553},[533,17019,17020],{"class":543}," std_dev ",[533,17022,11935],{"class":553},[533,17024,11938],{"class":625},[533,17026,1937],{"class":543},[533,17028,17029],{"class":535,"line":1940},[533,17030,891],{"emptyLinePlaceholder":790},[533,17032,17033],{"class":535,"line":1968},[533,17034,17035],{"class":593},"# Plot the Gaussian modulation function with blue color\n",[533,17037,17038,17040,17042,17045,17047,17049,17051],{"class":535,"line":1995},[533,17039,12893],{"class":543},[533,17041,12932],{"class":560},[533,17043,17044],{"class":543},"(time, gaussian_modulation, ",[533,17046,12978],{"class":567},[533,17048,554],{"class":553},[533,17050,12983],{"class":621},[533,17052,637],{"class":543},[533,17054,17055,17057,17059,17061,17064],{"class":535,"line":4164},[533,17056,12893],{"class":543},[533,17058,8639],{"class":560},[533,17060,615],{"class":543},[533,17062,17063],{"class":621},"'Gaussian Modulation Function'",[533,17065,637],{"class":543},[533,17067,17068,17070,17072,17074,17077],{"class":535,"line":4199},[533,17069,12893],{"class":543},[533,17071,13030],{"class":560},[533,17073,615],{"class":543},[533,17075,17076],{"class":621},"'Time'",[533,17078,637],{"class":543},[533,17080,17081,17083,17085,17087,17090],{"class":535,"line":4206},[533,17082,12893],{"class":543},[533,17084,13058],{"class":560},[533,17086,615],{"class":543},[533,17088,17089],{"class":621},"'Amplitude'",[533,17091,637],{"class":543},[533,17093,17094,17096,17099,17101,17103],{"class":535,"line":4214},[533,17095,12893],{"class":543},[533,17097,17098],{"class":560},"grid",[533,17100,615],{"class":543},[533,17102,1930],{"class":625},[533,17104,637],{"class":543},[533,17106,17107,17109,17111],{"class":535,"line":11296},[533,17108,12893],{"class":543},[533,17110,13120],{"class":560},[533,17112,1217],{"class":543},[2175,17114],{"alt":14066,"src":17115},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-01.webp",[524,17117,17119],{"className":526,"code":17118,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian modulation function\namplitude = 1\nmean = 0\nstd_dev = 1\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian modulation function\ngaussian_modulation = amplitude * np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Plot the Gaussian modulation function\nplt.plot(time, gaussian_modulation, color='red', linestyle='dashed', label='Gaussian Modulation')\nplt.title('Gaussian Modulation Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\nplt.ylim(-1.0, 1.1)  # Force the y-axis to display the range from -1.0 to 1.0\n# plt.legend()\nplt.grid(False)\nplt.show()\n",[57,17120,17121,17131,17141,17145,17149,17158,17166,17174,17202,17206,17210,17255,17259,17264,17299,17311,17323,17335,17358,17363,17375],{"__ignoreMap":529},[533,17122,17123,17125,17127,17129],{"class":535,"line":536},[533,17124,883],{"class":539},[533,17126,11128],{"class":543},[533,17128,584],{"class":539},[533,17130,11133],{"class":543},[533,17132,17133,17135,17137,17139],{"class":535,"line":547},[533,17134,883],{"class":539},[533,17136,11140],{"class":543},[533,17138,584],{"class":539},[533,17140,11145],{"class":543},[533,17142,17143],{"class":535,"line":575},[533,17144,891],{"emptyLinePlaceholder":790},[533,17146,17147],{"class":535,"line":590},[533,17148,16922],{"class":593},[533,17150,17151,17154,17156],{"class":535,"line":597},[533,17152,17153],{"class":543},"amplitude ",[533,17155,554],{"class":553},[533,17157,16942],{"class":625},[533,17159,17160,17162,17164],{"class":535,"line":603},[533,17161,16927],{"class":543},[533,17163,554],{"class":553},[533,17165,16932],{"class":625},[533,17167,17168,17170,17172],{"class":535,"line":609},[533,17169,16937],{"class":543},[533,17171,554],{"class":553},[533,17173,16942],{"class":625},[533,17175,17176,17178,17180,17182,17184,17186,17188,17190,17192,17194,17196,17198,17200],{"class":535,"line":640},[533,17177,16947],{"class":543},[533,17179,554],{"class":553},[533,17181,2911],{"class":543},[533,17183,12734],{"class":560},[533,17185,615],{"class":543},[533,17187,2514],{"class":553},[533,17189,1220],{"class":625},[533,17191,1133],{"class":543},[533,17193,1220],{"class":625},[533,17195,1133],{"class":543},[533,17197,1240],{"class":625},[533,17199,16970],{"class":543},[533,17201,16973],{"class":593},[533,17203,17204],{"class":535,"line":646},[533,17205,891],{"emptyLinePlaceholder":790},[533,17207,17208],{"class":535,"line":658},[533,17209,16982],{"class":593},[533,17211,17212,17214,17216,17219,17221,17223,17225,17227,17229,17231,17233,17235,17237,17239,17241,17243,17245,17247,17249,17251,17253],{"class":535,"line":680},[533,17213,16987],{"class":543},[533,17215,554],{"class":553},[533,17217,17218],{"class":543}," amplitude ",[533,17220,2469],{"class":553},[533,17222,2911],{"class":543},[533,17224,16247],{"class":560},[533,17226,615],{"class":543},[533,17228,2514],{"class":553},[533,17230,17000],{"class":543},[533,17232,2514],{"class":553},[533,17234,17005],{"class":543},[533,17236,11935],{"class":553},[533,17238,11938],{"class":625},[533,17240,11903],{"class":553},[533,17242,5037],{"class":543},[533,17244,1140],{"class":625},[533,17246,2254],{"class":553},[533,17248,17020],{"class":543},[533,17250,11935],{"class":553},[533,17252,11938],{"class":625},[533,17254,1937],{"class":543},[533,17256,17257],{"class":535,"line":1536},[533,17258,891],{"emptyLinePlaceholder":790},[533,17260,17261],{"class":535,"line":1552},[533,17262,17263],{"class":593},"# Plot the Gaussian modulation function\n",[533,17265,17266,17268,17270,17272,17274,17276,17279,17281,17283,17285,17288,17290,17292,17294,17297],{"class":535,"line":1911},[533,17267,12893],{"class":543},[533,17269,12932],{"class":560},[533,17271,17044],{"class":543},[533,17273,12978],{"class":567},[533,17275,554],{"class":553},[533,17277,17278],{"class":621},"'red'",[533,17280,1133],{"class":543},[533,17282,12684],{"class":567},[533,17284,554],{"class":553},[533,17286,17287],{"class":621},"'dashed'",[533,17289,1133],{"class":543},[533,17291,12942],{"class":567},[533,17293,554],{"class":553},[533,17295,17296],{"class":621},"'Gaussian Modulation'",[533,17298,637],{"class":543},[533,17300,17301,17303,17305,17307,17309],{"class":535,"line":1940},[533,17302,12893],{"class":543},[533,17304,8639],{"class":560},[533,17306,615],{"class":543},[533,17308,17063],{"class":621},[533,17310,637],{"class":543},[533,17312,17313,17315,17317,17319,17321],{"class":535,"line":1968},[533,17314,12893],{"class":543},[533,17316,13030],{"class":560},[533,17318,615],{"class":543},[533,17320,17076],{"class":621},[533,17322,637],{"class":543},[533,17324,17325,17327,17329,17331,17333],{"class":535,"line":1995},[533,17326,12893],{"class":543},[533,17328,13058],{"class":560},[533,17330,615],{"class":543},[533,17332,17089],{"class":621},[533,17334,637],{"class":543},[533,17336,17337,17339,17342,17344,17346,17348,17350,17353,17355],{"class":535,"line":4164},[533,17338,12893],{"class":543},[533,17340,17341],{"class":560},"ylim",[533,17343,615],{"class":543},[533,17345,2514],{"class":553},[533,17347,2239],{"class":625},[533,17349,1133],{"class":543},[533,17351,17352],{"class":625},"1.1",[533,17354,16970],{"class":543},[533,17356,17357],{"class":593},"# Force the y-axis to display the range from -1.0 to 1.0\n",[533,17359,17360],{"class":535,"line":4199},[533,17361,17362],{"class":593},"# plt.legend()\n",[533,17364,17365,17367,17369,17371,17373],{"class":535,"line":4206},[533,17366,12893],{"class":543},[533,17368,17098],{"class":560},[533,17370,615],{"class":543},[533,17372,1930],{"class":625},[533,17374,637],{"class":543},[533,17376,17377,17379,17381],{"class":535,"line":4214},[533,17378,12893],{"class":543},[533,17380,13120],{"class":560},[533,17382,1217],{"class":543},[2175,17384],{"alt":14070,"src":17385},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-02.webp",[524,17387,17389],{"className":526,"code":17388,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian function\namplitude = 1\nmean = 0\nstd_dev = 1\ntime = np.linspace(-5, 5, 20)  # Reduce points for lollipop plot clarity\n\n# Increase the number of points for the lollipop plot\ntime = np.linspace(-5, 5, 40)  # Doubling the number of points\n\n# Calculate the Gaussian function\ngaussian_modulation = amplitude * np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Create the updated lollipop plot with blue color\nplt.figure(figsize=(8, 6))\nplt.stem(time, gaussian_modulation, linefmt='b-', markerfmt='bo', basefmt='k-')\nplt.title('Lollipop Plot of Gaussian Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\nplt.ylim(-1.0, 1.1)  # Force the y-axis to display the range from -1.0 to 1.1\nplt.grid(False)\nplt.show()\n",[57,17390,17391,17401,17411,17415,17420,17428,17436,17444,17474,17478,17483,17513,17517,17522,17566,17570,17575,17597,17636,17649,17661,17673,17694,17706],{"__ignoreMap":529},[533,17392,17393,17395,17397,17399],{"class":535,"line":536},[533,17394,883],{"class":539},[533,17396,11128],{"class":543},[533,17398,584],{"class":539},[533,17400,11133],{"class":543},[533,17402,17403,17405,17407,17409],{"class":535,"line":547},[533,17404,883],{"class":539},[533,17406,11140],{"class":543},[533,17408,584],{"class":539},[533,17410,11145],{"class":543},[533,17412,17413],{"class":535,"line":575},[533,17414,891],{"emptyLinePlaceholder":790},[533,17416,17417],{"class":535,"line":590},[533,17418,17419],{"class":593},"# Define the parameters for the Gaussian function\n",[533,17421,17422,17424,17426],{"class":535,"line":597},[533,17423,17153],{"class":543},[533,17425,554],{"class":553},[533,17427,16942],{"class":625},[533,17429,17430,17432,17434],{"class":535,"line":603},[533,17431,16927],{"class":543},[533,17433,554],{"class":553},[533,17435,16932],{"class":625},[533,17437,17438,17440,17442],{"class":535,"line":609},[533,17439,16937],{"class":543},[533,17441,554],{"class":553},[533,17443,16942],{"class":625},[533,17445,17446,17448,17450,17452,17454,17456,17458,17460,17462,17464,17466,17469,17471],{"class":535,"line":640},[533,17447,16947],{"class":543},[533,17449,554],{"class":553},[533,17451,2911],{"class":543},[533,17453,12734],{"class":560},[533,17455,615],{"class":543},[533,17457,2514],{"class":553},[533,17459,1220],{"class":625},[533,17461,1133],{"class":543},[533,17463,1220],{"class":625},[533,17465,1133],{"class":543},[533,17467,17468],{"class":625},"20",[533,17470,16970],{"class":543},[533,17472,17473],{"class":593},"# Reduce points for lollipop plot clarity\n",[533,17475,17476],{"class":535,"line":646},[533,17477,891],{"emptyLinePlaceholder":790},[533,17479,17480],{"class":535,"line":658},[533,17481,17482],{"class":593},"# Increase the number of points for the lollipop plot\n",[533,17484,17485,17487,17489,17491,17493,17495,17497,17499,17501,17503,17505,17508,17510],{"class":535,"line":680},[533,17486,16947],{"class":543},[533,17488,554],{"class":553},[533,17490,2911],{"class":543},[533,17492,12734],{"class":560},[533,17494,615],{"class":543},[533,17496,2514],{"class":553},[533,17498,1220],{"class":625},[533,17500,1133],{"class":543},[533,17502,1220],{"class":625},[533,17504,1133],{"class":543},[533,17506,17507],{"class":625},"40",[533,17509,16970],{"class":543},[533,17511,17512],{"class":593},"# Doubling the number of points\n",[533,17514,17515],{"class":535,"line":1536},[533,17516,891],{"emptyLinePlaceholder":790},[533,17518,17519],{"class":535,"line":1552},[533,17520,17521],{"class":593},"# Calculate the Gaussian function\n",[533,17523,17524,17526,17528,17530,17532,17534,17536,17538,17540,17542,17544,17546,17548,17550,17552,17554,17556,17558,17560,17562,17564],{"class":535,"line":1911},[533,17525,16987],{"class":543},[533,17527,554],{"class":553},[533,17529,17218],{"class":543},[533,17531,2469],{"class":553},[533,17533,2911],{"class":543},[533,17535,16247],{"class":560},[533,17537,615],{"class":543},[533,17539,2514],{"class":553},[533,17541,17000],{"class":543},[533,17543,2514],{"class":553},[533,17545,17005],{"class":543},[533,17547,11935],{"class":553},[533,17549,11938],{"class":625},[533,17551,11903],{"class":553},[533,17553,5037],{"class":543},[533,17555,1140],{"class":625},[533,17557,2254],{"class":553},[533,17559,17020],{"class":543},[533,17561,11935],{"class":553},[533,17563,11938],{"class":625},[533,17565,1937],{"class":543},[533,17567,17568],{"class":535,"line":1940},[533,17569,891],{"emptyLinePlaceholder":790},[533,17571,17572],{"class":535,"line":1968},[533,17573,17574],{"class":593},"# Create the updated lollipop plot with blue color\n",[533,17576,17577,17579,17581,17583,17585,17587,17589,17591,17593,17595],{"class":535,"line":1995},[533,17578,12893],{"class":543},[533,17580,12896],{"class":560},[533,17582,615],{"class":543},[533,17584,12901],{"class":567},[533,17586,554],{"class":553},[533,17588,615],{"class":543},[533,17590,12908],{"class":625},[533,17592,1133],{"class":543},[533,17594,1967],{"class":625},[533,17596,1937],{"class":543},[533,17598,17599,17601,17604,17606,17609,17611,17614,17616,17619,17621,17624,17626,17629,17631,17634],{"class":535,"line":4164},[533,17600,12893],{"class":543},[533,17602,17603],{"class":560},"stem",[533,17605,17044],{"class":543},[533,17607,17608],{"class":567},"linefmt",[533,17610,554],{"class":553},[533,17612,17613],{"class":621},"'b-'",[533,17615,1133],{"class":543},[533,17617,17618],{"class":567},"markerfmt",[533,17620,554],{"class":553},[533,17622,17623],{"class":621},"'bo'",[533,17625,1133],{"class":543},[533,17627,17628],{"class":567},"basefmt",[533,17630,554],{"class":553},[533,17632,17633],{"class":621},"'k-'",[533,17635,637],{"class":543},[533,17637,17638,17640,17642,17644,17647],{"class":535,"line":4199},[533,17639,12893],{"class":543},[533,17641,8639],{"class":560},[533,17643,615],{"class":543},[533,17645,17646],{"class":621},"'Lollipop Plot of Gaussian Function'",[533,17648,637],{"class":543},[533,17650,17651,17653,17655,17657,17659],{"class":535,"line":4206},[533,17652,12893],{"class":543},[533,17654,13030],{"class":560},[533,17656,615],{"class":543},[533,17658,17076],{"class":621},[533,17660,637],{"class":543},[533,17662,17663,17665,17667,17669,17671],{"class":535,"line":4214},[533,17664,12893],{"class":543},[533,17666,13058],{"class":560},[533,17668,615],{"class":543},[533,17670,17089],{"class":621},[533,17672,637],{"class":543},[533,17674,17675,17677,17679,17681,17683,17685,17687,17689,17691],{"class":535,"line":11296},[533,17676,12893],{"class":543},[533,17678,17341],{"class":560},[533,17680,615],{"class":543},[533,17682,2514],{"class":553},[533,17684,2239],{"class":625},[533,17686,1133],{"class":543},[533,17688,17352],{"class":625},[533,17690,16970],{"class":543},[533,17692,17693],{"class":593},"# Force the y-axis to display the range from -1.0 to 1.1\n",[533,17695,17696,17698,17700,17702,17704],{"class":535,"line":11302},[533,17697,12893],{"class":543},[533,17699,17098],{"class":560},[533,17701,615],{"class":543},[533,17703,1930],{"class":625},[533,17705,637],{"class":543},[533,17707,17708,17710,17712],{"class":535,"line":11332},[533,17709,12893],{"class":543},[533,17711,13120],{"class":560},[533,17713,1217],{"class":543},[2175,17715],{"alt":14074,"src":17716},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-03.webp",[524,17718,17720],{"className":526,"code":17719,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian-modulated sine wave\namplitude = 1\nmean = 0\nstd_dev = 1\nfrequency = 5  # Frequency of the sine wave\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian function\ngaussian_modulation = np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Calculate the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# Modulate the sine wave with the Gaussian function\ngaussian_modulated_sine_wave = gaussian_modulation * sine_wave\n\n# Plot only the function of the Gaussian-modulated sine wave\nplt.plot(time, gaussian_modulation, color='red', linestyle='dashed', label='Modulation')\nplt.plot(time, -gaussian_modulation, color='red', linestyle='dashed')  # Add the negative function for completeness\nplt.title('Upper & Lower Gaussian Modulation Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\n# plt.legend()\nplt.grid(False)\nplt.show()\n",[57,17721,17722,17732,17742,17746,17751,17759,17767,17775,17788,17816,17820,17824,17864,17868,17873,17907,17911,17916,17931,17935,17940,17973,18006,18019,18031,18043,18047,18059],{"__ignoreMap":529},[533,17723,17724,17726,17728,17730],{"class":535,"line":536},[533,17725,883],{"class":539},[533,17727,11128],{"class":543},[533,17729,584],{"class":539},[533,17731,11133],{"class":543},[533,17733,17734,17736,17738,17740],{"class":535,"line":547},[533,17735,883],{"class":539},[533,17737,11140],{"class":543},[533,17739,584],{"class":539},[533,17741,11145],{"class":543},[533,17743,17744],{"class":535,"line":575},[533,17745,891],{"emptyLinePlaceholder":790},[533,17747,17748],{"class":535,"line":590},[533,17749,17750],{"class":593},"# Define the parameters for the Gaussian-modulated sine wave\n",[533,17752,17753,17755,17757],{"class":535,"line":597},[533,17754,17153],{"class":543},[533,17756,554],{"class":553},[533,17758,16942],{"class":625},[533,17760,17761,17763,17765],{"class":535,"line":603},[533,17762,16927],{"class":543},[533,17764,554],{"class":553},[533,17766,16932],{"class":625},[533,17768,17769,17771,17773],{"class":535,"line":609},[533,17770,16937],{"class":543},[533,17772,554],{"class":553},[533,17774,16942],{"class":625},[533,17776,17777,17780,17782,17785],{"class":535,"line":640},[533,17778,17779],{"class":543},"frequency ",[533,17781,554],{"class":553},[533,17783,17784],{"class":625}," 5",[533,17786,17787],{"class":593},"  # Frequency of the sine wave\n",[533,17789,17790,17792,17794,17796,17798,17800,17802,17804,17806,17808,17810,17812,17814],{"class":535,"line":646},[533,17791,16947],{"class":543},[533,17793,554],{"class":553},[533,17795,2911],{"class":543},[533,17797,12734],{"class":560},[533,17799,615],{"class":543},[533,17801,2514],{"class":553},[533,17803,1220],{"class":625},[533,17805,1133],{"class":543},[533,17807,1220],{"class":625},[533,17809,1133],{"class":543},[533,17811,1240],{"class":625},[533,17813,16970],{"class":543},[533,17815,16973],{"class":593},[533,17817,17818],{"class":535,"line":658},[533,17819,891],{"emptyLinePlaceholder":790},[533,17821,17822],{"class":535,"line":680},[533,17823,17521],{"class":593},[533,17825,17826,17828,17830,17832,17834,17836,17838,17840,17842,17844,17846,17848,17850,17852,17854,17856,17858,17860,17862],{"class":535,"line":1536},[533,17827,16987],{"class":543},[533,17829,554],{"class":553},[533,17831,2911],{"class":543},[533,17833,16247],{"class":560},[533,17835,615],{"class":543},[533,17837,2514],{"class":553},[533,17839,17000],{"class":543},[533,17841,2514],{"class":553},[533,17843,17005],{"class":543},[533,17845,11935],{"class":553},[533,17847,11938],{"class":625},[533,17849,11903],{"class":553},[533,17851,5037],{"class":543},[533,17853,1140],{"class":625},[533,17855,2254],{"class":553},[533,17857,17020],{"class":543},[533,17859,11935],{"class":553},[533,17861,11938],{"class":625},[533,17863,1937],{"class":543},[533,17865,17866],{"class":535,"line":1552},[533,17867,891],{"emptyLinePlaceholder":790},[533,17869,17870],{"class":535,"line":1911},[533,17871,17872],{"class":593},"# Calculate the sine wave\n",[533,17874,17875,17878,17880,17882,17884,17886,17888,17890,17892,17894,17897,17899,17902,17904],{"class":535,"line":1940},[533,17876,17877],{"class":543},"sine_wave ",[533,17879,554],{"class":553},[533,17881,17218],{"class":543},[533,17883,2469],{"class":553},[533,17885,2911],{"class":543},[533,17887,14336],{"class":560},[533,17889,615],{"class":543},[533,17891,1140],{"class":625},[533,17893,2254],{"class":553},[533,17895,17896],{"class":543}," np.pi ",[533,17898,2469],{"class":553},[533,17900,17901],{"class":543}," frequency ",[533,17903,2469],{"class":553},[533,17905,17906],{"class":543}," time)\n",[533,17908,17909],{"class":535,"line":1968},[533,17910,891],{"emptyLinePlaceholder":790},[533,17912,17913],{"class":535,"line":1995},[533,17914,17915],{"class":593},"# Modulate the sine wave with the Gaussian function\n",[533,17917,17918,17921,17923,17926,17928],{"class":535,"line":4164},[533,17919,17920],{"class":543},"gaussian_modulated_sine_wave ",[533,17922,554],{"class":553},[533,17924,17925],{"class":543}," gaussian_modulation ",[533,17927,2469],{"class":553},[533,17929,17930],{"class":543}," sine_wave\n",[533,17932,17933],{"class":535,"line":4199},[533,17934,891],{"emptyLinePlaceholder":790},[533,17936,17937],{"class":535,"line":4206},[533,17938,17939],{"class":593},"# Plot only the function of the Gaussian-modulated sine wave\n",[533,17941,17942,17944,17946,17948,17950,17952,17954,17956,17958,17960,17962,17964,17966,17968,17971],{"class":535,"line":4214},[533,17943,12893],{"class":543},[533,17945,12932],{"class":560},[533,17947,17044],{"class":543},[533,17949,12978],{"class":567},[533,17951,554],{"class":553},[533,17953,17278],{"class":621},[533,17955,1133],{"class":543},[533,17957,12684],{"class":567},[533,17959,554],{"class":553},[533,17961,17287],{"class":621},[533,17963,1133],{"class":543},[533,17965,12942],{"class":567},[533,17967,554],{"class":553},[533,17969,17970],{"class":621},"'Modulation'",[533,17972,637],{"class":543},[533,17974,17975,17977,17979,17982,17984,17987,17989,17991,17993,17995,17997,17999,18001,18003],{"class":535,"line":11296},[533,17976,12893],{"class":543},[533,17978,12932],{"class":560},[533,17980,17981],{"class":543},"(time, ",[533,17983,2514],{"class":553},[533,17985,17986],{"class":543},"gaussian_modulation, ",[533,17988,12978],{"class":567},[533,17990,554],{"class":553},[533,17992,17278],{"class":621},[533,17994,1133],{"class":543},[533,17996,12684],{"class":567},[533,17998,554],{"class":553},[533,18000,17287],{"class":621},[533,18002,16970],{"class":543},[533,18004,18005],{"class":593},"# Add the negative function for completeness\n",[533,18007,18008,18010,18012,18014,18017],{"class":535,"line":11302},[533,18009,12893],{"class":543},[533,18011,8639],{"class":560},[533,18013,615],{"class":543},[533,18015,18016],{"class":621},"'Upper & Lower Gaussian Modulation Function'",[533,18018,637],{"class":543},[533,18020,18021,18023,18025,18027,18029],{"class":535,"line":11332},[533,18022,12893],{"class":543},[533,18024,13030],{"class":560},[533,18026,615],{"class":543},[533,18028,17076],{"class":621},[533,18030,637],{"class":543},[533,18032,18033,18035,18037,18039,18041],{"class":535,"line":11345},[533,18034,12893],{"class":543},[533,18036,13058],{"class":560},[533,18038,615],{"class":543},[533,18040,17089],{"class":621},[533,18042,637],{"class":543},[533,18044,18045],{"class":535,"line":11372},[533,18046,17362],{"class":593},[533,18048,18049,18051,18053,18055,18057],{"class":535,"line":11385},[533,18050,12893],{"class":543},[533,18052,17098],{"class":560},[533,18054,615],{"class":543},[533,18056,1930],{"class":625},[533,18058,637],{"class":543},[533,18060,18061,18063,18065],{"class":535,"line":11390},[533,18062,12893],{"class":543},[533,18064,13120],{"class":560},[533,18066,1217],{"class":543},[2175,18068],{"alt":14078,"src":18069},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-04.webp",[524,18071,18073],{"className":526,"code":18072,"language":528,"meta":529,"style":529},"'''\nThis plot represents a sine wave at a chosen frequency, commonly used to match the resonance frequency\nof a quantum device on a chip. In quantum computing, such signals serve as carrier waves for qubit\ncontrol pulses before modulation is applied.\n'''\n\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Define sine wave parameters\namplitude = 1  # Peak amplitude of the wave\nfrequency = 5  # Frequency of the sine wave (in arbitrary units, could be GHz for quantum systems)\ntime = np.linspace(-5, 5, 1000)  # Generate 1000 evenly spaced time values from -5 to 5\n\n# Compute the sine wave, representing an unmodulated carrier signal\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# Plot the sine wave with blue color\nplt.plot(time, sine_wave, color='blue')\nplt.title('Unmodulated Sine Wave (Carrier Signal)')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\nplt.grid(False)  # No grid for a cleaner look\nplt.show()\n",[57,18074,18075,18080,18085,18090,18095,18099,18103,18113,18123,18127,18132,18143,18154,18183,18187,18192,18222,18226,18231,18248,18261,18273,18285,18300],{"__ignoreMap":529},[533,18076,18077],{"class":535,"line":536},[533,18078,18079],{"class":621},"'''\n",[533,18081,18082],{"class":535,"line":547},[533,18083,18084],{"class":621},"This plot represents a sine wave at a chosen frequency, commonly used to match the resonance frequency\n",[533,18086,18087],{"class":535,"line":575},[533,18088,18089],{"class":621},"of a quantum device on a chip. In quantum computing, such signals serve as carrier waves for qubit\n",[533,18091,18092],{"class":535,"line":590},[533,18093,18094],{"class":621},"control pulses before modulation is applied.\n",[533,18096,18097],{"class":535,"line":597},[533,18098,18079],{"class":621},[533,18100,18101],{"class":535,"line":603},[533,18102,891],{"emptyLinePlaceholder":790},[533,18104,18105,18107,18109,18111],{"class":535,"line":609},[533,18106,883],{"class":539},[533,18108,11128],{"class":543},[533,18110,584],{"class":539},[533,18112,11133],{"class":543},[533,18114,18115,18117,18119,18121],{"class":535,"line":640},[533,18116,883],{"class":539},[533,18118,11140],{"class":543},[533,18120,584],{"class":539},[533,18122,11145],{"class":543},[533,18124,18125],{"class":535,"line":646},[533,18126,891],{"emptyLinePlaceholder":790},[533,18128,18129],{"class":535,"line":658},[533,18130,18131],{"class":593},"# Define sine wave parameters\n",[533,18133,18134,18136,18138,18140],{"class":535,"line":680},[533,18135,17153],{"class":543},[533,18137,554],{"class":553},[533,18139,6353],{"class":625},[533,18141,18142],{"class":593},"  # Peak amplitude of the wave\n",[533,18144,18145,18147,18149,18151],{"class":535,"line":1536},[533,18146,17779],{"class":543},[533,18148,554],{"class":553},[533,18150,17784],{"class":625},[533,18152,18153],{"class":593},"  # Frequency of the sine wave (in arbitrary units, could be GHz for quantum systems)\n",[533,18155,18156,18158,18160,18162,18164,18166,18168,18170,18172,18174,18176,18178,18180],{"class":535,"line":1552},[533,18157,16947],{"class":543},[533,18159,554],{"class":553},[533,18161,2911],{"class":543},[533,18163,12734],{"class":560},[533,18165,615],{"class":543},[533,18167,2514],{"class":553},[533,18169,1220],{"class":625},[533,18171,1133],{"class":543},[533,18173,1220],{"class":625},[533,18175,1133],{"class":543},[533,18177,1240],{"class":625},[533,18179,16970],{"class":543},[533,18181,18182],{"class":593},"# Generate 1000 evenly spaced time values from -5 to 5\n",[533,18184,18185],{"class":535,"line":1911},[533,18186,891],{"emptyLinePlaceholder":790},[533,18188,18189],{"class":535,"line":1940},[533,18190,18191],{"class":593},"# Compute the sine wave, representing an unmodulated carrier signal\n",[533,18193,18194,18196,18198,18200,18202,18204,18206,18208,18210,18212,18214,18216,18218,18220],{"class":535,"line":1968},[533,18195,17877],{"class":543},[533,18197,554],{"class":553},[533,18199,17218],{"class":543},[533,18201,2469],{"class":553},[533,18203,2911],{"class":543},[533,18205,14336],{"class":560},[533,18207,615],{"class":543},[533,18209,1140],{"class":625},[533,18211,2254],{"class":553},[533,18213,17896],{"class":543},[533,18215,2469],{"class":553},[533,18217,17901],{"class":543},[533,18219,2469],{"class":553},[533,18221,17906],{"class":543},[533,18223,18224],{"class":535,"line":1995},[533,18225,891],{"emptyLinePlaceholder":790},[533,18227,18228],{"class":535,"line":4164},[533,18229,18230],{"class":593},"# Plot the sine wave with blue color\n",[533,18232,18233,18235,18237,18240,18242,18244,18246],{"class":535,"line":4199},[533,18234,12893],{"class":543},[533,18236,12932],{"class":560},[533,18238,18239],{"class":543},"(time, sine_wave, ",[533,18241,12978],{"class":567},[533,18243,554],{"class":553},[533,18245,12983],{"class":621},[533,18247,637],{"class":543},[533,18249,18250,18252,18254,18256,18259],{"class":535,"line":4206},[533,18251,12893],{"class":543},[533,18253,8639],{"class":560},[533,18255,615],{"class":543},[533,18257,18258],{"class":621},"'Unmodulated Sine Wave (Carrier Signal)'",[533,18260,637],{"class":543},[533,18262,18263,18265,18267,18269,18271],{"class":535,"line":4214},[533,18264,12893],{"class":543},[533,18266,13030],{"class":560},[533,18268,615],{"class":543},[533,18270,17076],{"class":621},[533,18272,637],{"class":543},[533,18274,18275,18277,18279,18281,18283],{"class":535,"line":11296},[533,18276,12893],{"class":543},[533,18278,13058],{"class":560},[533,18280,615],{"class":543},[533,18282,17089],{"class":621},[533,18284,637],{"class":543},[533,18286,18287,18289,18291,18293,18295,18297],{"class":535,"line":11302},[533,18288,12893],{"class":543},[533,18290,17098],{"class":560},[533,18292,615],{"class":543},[533,18294,1930],{"class":625},[533,18296,16970],{"class":543},[533,18298,18299],{"class":593},"# No grid for a cleaner look\n",[533,18301,18302,18304,18306],{"class":535,"line":11332},[533,18303,12893],{"class":543},[533,18305,13120],{"class":560},[533,18307,1217],{"class":543},[2175,18309],{"alt":15066,"src":18310},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-05.webp",[524,18312,18314],{"className":526,"code":18313,"language":528,"meta":529,"style":529},"'''\nWhen a modulating pulse shape is applied to an unmodulated sine wave tone, then the result will be a\nmodulated sine wave output as shown in the plot below. The example shown is modulation by a\nGaussian wave.\n'''\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian-modulated sine wave\namplitude = 1\nmean = 0\nstd_dev = 1\nfrequency = 5  # Frequency of the sine wave\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian function\ngaussian_modulation = np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Calculate the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# Modulate the sine wave with the Gaussian function\ngaussian_modulated_sine_wave = gaussian_modulation * sine_wave\n\n# Plot the Gaussian-modulated sine wave with blue color\nplt.plot(time, gaussian_modulated_sine_wave, color='blue')\nplt.title('Gaussian-Modulated Sine Wave Pulse')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\nplt.grid(False)\nplt.show()\n",[57,18315,18316,18320,18325,18330,18335,18339,18349,18359,18363,18367,18375,18383,18391,18401,18429,18433,18437,18477,18481,18485,18515,18519,18523,18535,18539,18544,18561,18574,18586,18598,18610],{"__ignoreMap":529},[533,18317,18318],{"class":535,"line":536},[533,18319,18079],{"class":621},[533,18321,18322],{"class":535,"line":547},[533,18323,18324],{"class":621},"When a modulating pulse shape is applied to an unmodulated sine wave tone, then the result will be a\n",[533,18326,18327],{"class":535,"line":575},[533,18328,18329],{"class":621},"modulated sine wave output as shown in the plot below. The example shown is modulation by a\n",[533,18331,18332],{"class":535,"line":590},[533,18333,18334],{"class":621},"Gaussian wave.\n",[533,18336,18337],{"class":535,"line":597},[533,18338,18079],{"class":621},[533,18340,18341,18343,18345,18347],{"class":535,"line":603},[533,18342,883],{"class":539},[533,18344,11128],{"class":543},[533,18346,584],{"class":539},[533,18348,11133],{"class":543},[533,18350,18351,18353,18355,18357],{"class":535,"line":609},[533,18352,883],{"class":539},[533,18354,11140],{"class":543},[533,18356,584],{"class":539},[533,18358,11145],{"class":543},[533,18360,18361],{"class":535,"line":640},[533,18362,891],{"emptyLinePlaceholder":790},[533,18364,18365],{"class":535,"line":646},[533,18366,17750],{"class":593},[533,18368,18369,18371,18373],{"class":535,"line":658},[533,18370,17153],{"class":543},[533,18372,554],{"class":553},[533,18374,16942],{"class":625},[533,18376,18377,18379,18381],{"class":535,"line":680},[533,18378,16927],{"class":543},[533,18380,554],{"class":553},[533,18382,16932],{"class":625},[533,18384,18385,18387,18389],{"class":535,"line":1536},[533,18386,16937],{"class":543},[533,18388,554],{"class":553},[533,18390,16942],{"class":625},[533,18392,18393,18395,18397,18399],{"class":535,"line":1552},[533,18394,17779],{"class":543},[533,18396,554],{"class":553},[533,18398,17784],{"class":625},[533,18400,17787],{"class":593},[533,18402,18403,18405,18407,18409,18411,18413,18415,18417,18419,18421,18423,18425,18427],{"class":535,"line":1911},[533,18404,16947],{"class":543},[533,18406,554],{"class":553},[533,18408,2911],{"class":543},[533,18410,12734],{"class":560},[533,18412,615],{"class":543},[533,18414,2514],{"class":553},[533,18416,1220],{"class":625},[533,18418,1133],{"class":543},[533,18420,1220],{"class":625},[533,18422,1133],{"class":543},[533,18424,1240],{"class":625},[533,18426,16970],{"class":543},[533,18428,16973],{"class":593},[533,18430,18431],{"class":535,"line":1940},[533,18432,891],{"emptyLinePlaceholder":790},[533,18434,18435],{"class":535,"line":1968},[533,18436,17521],{"class":593},[533,18438,18439,18441,18443,18445,18447,18449,18451,18453,18455,18457,18459,18461,18463,18465,18467,18469,18471,18473,18475],{"class":535,"line":1995},[533,18440,16987],{"class":543},[533,18442,554],{"class":553},[533,18444,2911],{"class":543},[533,18446,16247],{"class":560},[533,18448,615],{"class":543},[533,18450,2514],{"class":553},[533,18452,17000],{"class":543},[533,18454,2514],{"class":553},[533,18456,17005],{"class":543},[533,18458,11935],{"class":553},[533,18460,11938],{"class":625},[533,18462,11903],{"class":553},[533,18464,5037],{"class":543},[533,18466,1140],{"class":625},[533,18468,2254],{"class":553},[533,18470,17020],{"class":543},[533,18472,11935],{"class":553},[533,18474,11938],{"class":625},[533,18476,1937],{"class":543},[533,18478,18479],{"class":535,"line":4164},[533,18480,891],{"emptyLinePlaceholder":790},[533,18482,18483],{"class":535,"line":4199},[533,18484,17872],{"class":593},[533,18486,18487,18489,18491,18493,18495,18497,18499,18501,18503,18505,18507,18509,18511,18513],{"class":535,"line":4206},[533,18488,17877],{"class":543},[533,18490,554],{"class":553},[533,18492,17218],{"class":543},[533,18494,2469],{"class":553},[533,18496,2911],{"class":543},[533,18498,14336],{"class":560},[533,18500,615],{"class":543},[533,18502,1140],{"class":625},[533,18504,2254],{"class":553},[533,18506,17896],{"class":543},[533,18508,2469],{"class":553},[533,18510,17901],{"class":543},[533,18512,2469],{"class":553},[533,18514,17906],{"class":543},[533,18516,18517],{"class":535,"line":4214},[533,18518,891],{"emptyLinePlaceholder":790},[533,18520,18521],{"class":535,"line":11296},[533,18522,17915],{"class":593},[533,18524,18525,18527,18529,18531,18533],{"class":535,"line":11302},[533,18526,17920],{"class":543},[533,18528,554],{"class":553},[533,18530,17925],{"class":543},[533,18532,2469],{"class":553},[533,18534,17930],{"class":543},[533,18536,18537],{"class":535,"line":11332},[533,18538,891],{"emptyLinePlaceholder":790},[533,18540,18541],{"class":535,"line":11345},[533,18542,18543],{"class":593},"# Plot the Gaussian-modulated sine wave with blue color\n",[533,18545,18546,18548,18550,18553,18555,18557,18559],{"class":535,"line":11372},[533,18547,12893],{"class":543},[533,18549,12932],{"class":560},[533,18551,18552],{"class":543},"(time, gaussian_modulated_sine_wave, ",[533,18554,12978],{"class":567},[533,18556,554],{"class":553},[533,18558,12983],{"class":621},[533,18560,637],{"class":543},[533,18562,18563,18565,18567,18569,18572],{"class":535,"line":11385},[533,18564,12893],{"class":543},[533,18566,8639],{"class":560},[533,18568,615],{"class":543},[533,18570,18571],{"class":621},"'Gaussian-Modulated Sine Wave Pulse'",[533,18573,637],{"class":543},[533,18575,18576,18578,18580,18582,18584],{"class":535,"line":11390},[533,18577,12893],{"class":543},[533,18579,13030],{"class":560},[533,18581,615],{"class":543},[533,18583,17076],{"class":621},[533,18585,637],{"class":543},[533,18587,18588,18590,18592,18594,18596],{"class":535,"line":11402},[533,18589,12893],{"class":543},[533,18591,13058],{"class":560},[533,18593,615],{"class":543},[533,18595,17089],{"class":621},[533,18597,637],{"class":543},[533,18599,18600,18602,18604,18606,18608],{"class":535,"line":11407},[533,18601,12893],{"class":543},[533,18603,17098],{"class":560},[533,18605,615],{"class":543},[533,18607,1930],{"class":625},[533,18609,637],{"class":543},[533,18611,18612,18614,18616],{"class":535,"line":11412},[533,18613,12893],{"class":543},[533,18615,13120],{"class":560},[533,18617,1217],{"class":543},[2175,18619],{"alt":16771,"src":18620},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-06.webp",[524,18622,18624],{"className":526,"code":18623,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian-modulated sine wave\namplitude = 1\nmean = 0\nstd_dev = 1\nfrequency = 5  # Frequency of the sine wave\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian function\ngaussian_modulation = np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Calculate the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# Modulate the sine wave with the Gaussian function\ngaussian_modulated_sine_wave = gaussian_modulation * sine_wave\n\n# Calculate the upper envelope of the modulated sine wave\nupper_modulation = np.abs(gaussian_modulation)\n\n# Plot the Gaussian-modulated sine wave and its upper envelope\nplt.plot(time, gaussian_modulated_sine_wave, color='blue', label='Gaussian-Modulated Sine Wave Pulse')\nplt.plot(time, upper_modulation, color='red', linestyle='dashed', label='Upper Modulation Function')\nplt.title('Gaussian-Modulated Sine Wave with Upper Modulation Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\n# plt.legend()\nplt.grid(False)\nplt.show()\n",[57,18625,18626,18636,18646,18650,18654,18662,18670,18678,18688,18716,18720,18724,18764,18768,18772,18802,18806,18810,18822,18826,18831,18845,18849,18854,18878,18912,18925,18937,18949,18953,18965],{"__ignoreMap":529},[533,18627,18628,18630,18632,18634],{"class":535,"line":536},[533,18629,883],{"class":539},[533,18631,11128],{"class":543},[533,18633,584],{"class":539},[533,18635,11133],{"class":543},[533,18637,18638,18640,18642,18644],{"class":535,"line":547},[533,18639,883],{"class":539},[533,18641,11140],{"class":543},[533,18643,584],{"class":539},[533,18645,11145],{"class":543},[533,18647,18648],{"class":535,"line":575},[533,18649,891],{"emptyLinePlaceholder":790},[533,18651,18652],{"class":535,"line":590},[533,18653,17750],{"class":593},[533,18655,18656,18658,18660],{"class":535,"line":597},[533,18657,17153],{"class":543},[533,18659,554],{"class":553},[533,18661,16942],{"class":625},[533,18663,18664,18666,18668],{"class":535,"line":603},[533,18665,16927],{"class":543},[533,18667,554],{"class":553},[533,18669,16932],{"class":625},[533,18671,18672,18674,18676],{"class":535,"line":609},[533,18673,16937],{"class":543},[533,18675,554],{"class":553},[533,18677,16942],{"class":625},[533,18679,18680,18682,18684,18686],{"class":535,"line":640},[533,18681,17779],{"class":543},[533,18683,554],{"class":553},[533,18685,17784],{"class":625},[533,18687,17787],{"class":593},[533,18689,18690,18692,18694,18696,18698,18700,18702,18704,18706,18708,18710,18712,18714],{"class":535,"line":646},[533,18691,16947],{"class":543},[533,18693,554],{"class":553},[533,18695,2911],{"class":543},[533,18697,12734],{"class":560},[533,18699,615],{"class":543},[533,18701,2514],{"class":553},[533,18703,1220],{"class":625},[533,18705,1133],{"class":543},[533,18707,1220],{"class":625},[533,18709,1133],{"class":543},[533,18711,1240],{"class":625},[533,18713,16970],{"class":543},[533,18715,16973],{"class":593},[533,18717,18718],{"class":535,"line":658},[533,18719,891],{"emptyLinePlaceholder":790},[533,18721,18722],{"class":535,"line":680},[533,18723,17521],{"class":593},[533,18725,18726,18728,18730,18732,18734,18736,18738,18740,18742,18744,18746,18748,18750,18752,18754,18756,18758,18760,18762],{"class":535,"line":1536},[533,18727,16987],{"class":543},[533,18729,554],{"class":553},[533,18731,2911],{"class":543},[533,18733,16247],{"class":560},[533,18735,615],{"class":543},[533,18737,2514],{"class":553},[533,18739,17000],{"class":543},[533,18741,2514],{"class":553},[533,18743,17005],{"class":543},[533,18745,11935],{"class":553},[533,18747,11938],{"class":625},[533,18749,11903],{"class":553},[533,18751,5037],{"class":543},[533,18753,1140],{"class":625},[533,18755,2254],{"class":553},[533,18757,17020],{"class":543},[533,18759,11935],{"class":553},[533,18761,11938],{"class":625},[533,18763,1937],{"class":543},[533,18765,18766],{"class":535,"line":1552},[533,18767,891],{"emptyLinePlaceholder":790},[533,18769,18770],{"class":535,"line":1911},[533,18771,17872],{"class":593},[533,18773,18774,18776,18778,18780,18782,18784,18786,18788,18790,18792,18794,18796,18798,18800],{"class":535,"line":1940},[533,18775,17877],{"class":543},[533,18777,554],{"class":553},[533,18779,17218],{"class":543},[533,18781,2469],{"class":553},[533,18783,2911],{"class":543},[533,18785,14336],{"class":560},[533,18787,615],{"class":543},[533,18789,1140],{"class":625},[533,18791,2254],{"class":553},[533,18793,17896],{"class":543},[533,18795,2469],{"class":553},[533,18797,17901],{"class":543},[533,18799,2469],{"class":553},[533,18801,17906],{"class":543},[533,18803,18804],{"class":535,"line":1968},[533,18805,891],{"emptyLinePlaceholder":790},[533,18807,18808],{"class":535,"line":1995},[533,18809,17915],{"class":593},[533,18811,18812,18814,18816,18818,18820],{"class":535,"line":4164},[533,18813,17920],{"class":543},[533,18815,554],{"class":553},[533,18817,17925],{"class":543},[533,18819,2469],{"class":553},[533,18821,17930],{"class":543},[533,18823,18824],{"class":535,"line":4199},[533,18825,891],{"emptyLinePlaceholder":790},[533,18827,18828],{"class":535,"line":4206},[533,18829,18830],{"class":593},"# Calculate the upper envelope of the modulated sine wave\n",[533,18832,18833,18836,18838,18840,18842],{"class":535,"line":4214},[533,18834,18835],{"class":543},"upper_modulation ",[533,18837,554],{"class":553},[533,18839,2911],{"class":543},[533,18841,12852],{"class":560},[533,18843,18844],{"class":543},"(gaussian_modulation)\n",[533,18846,18847],{"class":535,"line":11296},[533,18848,891],{"emptyLinePlaceholder":790},[533,18850,18851],{"class":535,"line":11302},[533,18852,18853],{"class":593},"# Plot the Gaussian-modulated sine wave and its upper envelope\n",[533,18855,18856,18858,18860,18862,18864,18866,18868,18870,18872,18874,18876],{"class":535,"line":11332},[533,18857,12893],{"class":543},[533,18859,12932],{"class":560},[533,18861,18552],{"class":543},[533,18863,12978],{"class":567},[533,18865,554],{"class":553},[533,18867,12983],{"class":621},[533,18869,1133],{"class":543},[533,18871,12942],{"class":567},[533,18873,554],{"class":553},[533,18875,18571],{"class":621},[533,18877,637],{"class":543},[533,18879,18880,18882,18884,18887,18889,18891,18893,18895,18897,18899,18901,18903,18905,18907,18910],{"class":535,"line":11345},[533,18881,12893],{"class":543},[533,18883,12932],{"class":560},[533,18885,18886],{"class":543},"(time, upper_modulation, ",[533,18888,12978],{"class":567},[533,18890,554],{"class":553},[533,18892,17278],{"class":621},[533,18894,1133],{"class":543},[533,18896,12684],{"class":567},[533,18898,554],{"class":553},[533,18900,17287],{"class":621},[533,18902,1133],{"class":543},[533,18904,12942],{"class":567},[533,18906,554],{"class":553},[533,18908,18909],{"class":621},"'Upper Modulation Function'",[533,18911,637],{"class":543},[533,18913,18914,18916,18918,18920,18923],{"class":535,"line":11372},[533,18915,12893],{"class":543},[533,18917,8639],{"class":560},[533,18919,615],{"class":543},[533,18921,18922],{"class":621},"'Gaussian-Modulated Sine Wave with Upper Modulation Function'",[533,18924,637],{"class":543},[533,18926,18927,18929,18931,18933,18935],{"class":535,"line":11385},[533,18928,12893],{"class":543},[533,18930,13030],{"class":560},[533,18932,615],{"class":543},[533,18934,17076],{"class":621},[533,18936,637],{"class":543},[533,18938,18939,18941,18943,18945,18947],{"class":535,"line":11390},[533,18940,12893],{"class":543},[533,18942,13058],{"class":560},[533,18944,615],{"class":543},[533,18946,17089],{"class":621},[533,18948,637],{"class":543},[533,18950,18951],{"class":535,"line":11402},[533,18952,17362],{"class":593},[533,18954,18955,18957,18959,18961,18963],{"class":535,"line":11407},[533,18956,12893],{"class":543},[533,18958,17098],{"class":560},[533,18960,615],{"class":543},[533,18962,1930],{"class":625},[533,18964,637],{"class":543},[533,18966,18967,18969,18971],{"class":535,"line":11412},[533,18968,12893],{"class":543},[533,18970,13120],{"class":560},[533,18972,1217],{"class":543},[2175,18974],{"alt":18975,"src":18976},"Output 7 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-07.webp",[524,18978,18980],{"className":526,"code":18979,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define the parameters for the Gaussian-modulated sine wave\namplitude = 1\nmean = 0\nstd_dev = 1\nfrequency = 5  # Frequency of the sine wave\ntime = np.linspace(-5, 5, 1000)  # Generate time values from -5 to 5\n\n# Calculate the Gaussian function\ngaussian_modulation = np.exp(-(time - mean) ** 2 \u002F (2 * std_dev ** 2))\n\n# Calculate the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# Modulate the sine wave with the Gaussian function\ngaussian_modulated_sine_wave = gaussian_modulation * sine_wave\n\n# Calculate the function of the modulated sine wave\nmodulation = np.abs(gaussian_modulation)\n\n# Plot the Gaussian-modulated sine wave and its modulation function\nplt.plot(time, gaussian_modulated_sine_wave, color='blue', label='Gaussian-Modulated Sine Wave Pulse')\nplt.plot(time, modulation, color='red', linestyle='dashed', label='Modulation')\nplt.plot(time, -modulation, color='red', linestyle='dashed')  # Add the negative modulation function for completeness\nplt.title('Gaussian-Modulated Sine Wave with Modulation Function')\nplt.xlabel('Time')\nplt.ylabel('Amplitude')\n# plt.legend()\nplt.grid(False)\nplt.show()\n",[57,18981,18982,18992,19002,19006,19010,19018,19026,19034,19044,19072,19076,19080,19120,19124,19128,19158,19162,19166,19178,19182,19187,19200,19204,19209,19233,19266,19298,19311,19323,19335,19339,19351],{"__ignoreMap":529},[533,18983,18984,18986,18988,18990],{"class":535,"line":536},[533,18985,883],{"class":539},[533,18987,11128],{"class":543},[533,18989,584],{"class":539},[533,18991,11133],{"class":543},[533,18993,18994,18996,18998,19000],{"class":535,"line":547},[533,18995,883],{"class":539},[533,18997,11140],{"class":543},[533,18999,584],{"class":539},[533,19001,11145],{"class":543},[533,19003,19004],{"class":535,"line":575},[533,19005,891],{"emptyLinePlaceholder":790},[533,19007,19008],{"class":535,"line":590},[533,19009,17750],{"class":593},[533,19011,19012,19014,19016],{"class":535,"line":597},[533,19013,17153],{"class":543},[533,19015,554],{"class":553},[533,19017,16942],{"class":625},[533,19019,19020,19022,19024],{"class":535,"line":603},[533,19021,16927],{"class":543},[533,19023,554],{"class":553},[533,19025,16932],{"class":625},[533,19027,19028,19030,19032],{"class":535,"line":609},[533,19029,16937],{"class":543},[533,19031,554],{"class":553},[533,19033,16942],{"class":625},[533,19035,19036,19038,19040,19042],{"class":535,"line":640},[533,19037,17779],{"class":543},[533,19039,554],{"class":553},[533,19041,17784],{"class":625},[533,19043,17787],{"class":593},[533,19045,19046,19048,19050,19052,19054,19056,19058,19060,19062,19064,19066,19068,19070],{"class":535,"line":646},[533,19047,16947],{"class":543},[533,19049,554],{"class":553},[533,19051,2911],{"class":543},[533,19053,12734],{"class":560},[533,19055,615],{"class":543},[533,19057,2514],{"class":553},[533,19059,1220],{"class":625},[533,19061,1133],{"class":543},[533,19063,1220],{"class":625},[533,19065,1133],{"class":543},[533,19067,1240],{"class":625},[533,19069,16970],{"class":543},[533,19071,16973],{"class":593},[533,19073,19074],{"class":535,"line":658},[533,19075,891],{"emptyLinePlaceholder":790},[533,19077,19078],{"class":535,"line":680},[533,19079,17521],{"class":593},[533,19081,19082,19084,19086,19088,19090,19092,19094,19096,19098,19100,19102,19104,19106,19108,19110,19112,19114,19116,19118],{"class":535,"line":1536},[533,19083,16987],{"class":543},[533,19085,554],{"class":553},[533,19087,2911],{"class":543},[533,19089,16247],{"class":560},[533,19091,615],{"class":543},[533,19093,2514],{"class":553},[533,19095,17000],{"class":543},[533,19097,2514],{"class":553},[533,19099,17005],{"class":543},[533,19101,11935],{"class":553},[533,19103,11938],{"class":625},[533,19105,11903],{"class":553},[533,19107,5037],{"class":543},[533,19109,1140],{"class":625},[533,19111,2254],{"class":553},[533,19113,17020],{"class":543},[533,19115,11935],{"class":553},[533,19117,11938],{"class":625},[533,19119,1937],{"class":543},[533,19121,19122],{"class":535,"line":1552},[533,19123,891],{"emptyLinePlaceholder":790},[533,19125,19126],{"class":535,"line":1911},[533,19127,17872],{"class":593},[533,19129,19130,19132,19134,19136,19138,19140,19142,19144,19146,19148,19150,19152,19154,19156],{"class":535,"line":1940},[533,19131,17877],{"class":543},[533,19133,554],{"class":553},[533,19135,17218],{"class":543},[533,19137,2469],{"class":553},[533,19139,2911],{"class":543},[533,19141,14336],{"class":560},[533,19143,615],{"class":543},[533,19145,1140],{"class":625},[533,19147,2254],{"class":553},[533,19149,17896],{"class":543},[533,19151,2469],{"class":553},[533,19153,17901],{"class":543},[533,19155,2469],{"class":553},[533,19157,17906],{"class":543},[533,19159,19160],{"class":535,"line":1968},[533,19161,891],{"emptyLinePlaceholder":790},[533,19163,19164],{"class":535,"line":1995},[533,19165,17915],{"class":593},[533,19167,19168,19170,19172,19174,19176],{"class":535,"line":4164},[533,19169,17920],{"class":543},[533,19171,554],{"class":553},[533,19173,17925],{"class":543},[533,19175,2469],{"class":553},[533,19177,17930],{"class":543},[533,19179,19180],{"class":535,"line":4199},[533,19181,891],{"emptyLinePlaceholder":790},[533,19183,19184],{"class":535,"line":4206},[533,19185,19186],{"class":593},"# Calculate the function of the modulated sine wave\n",[533,19188,19189,19192,19194,19196,19198],{"class":535,"line":4214},[533,19190,19191],{"class":543},"modulation ",[533,19193,554],{"class":553},[533,19195,2911],{"class":543},[533,19197,12852],{"class":560},[533,19199,18844],{"class":543},[533,19201,19202],{"class":535,"line":11296},[533,19203,891],{"emptyLinePlaceholder":790},[533,19205,19206],{"class":535,"line":11302},[533,19207,19208],{"class":593},"# Plot the Gaussian-modulated sine wave and its modulation function\n",[533,19210,19211,19213,19215,19217,19219,19221,19223,19225,19227,19229,19231],{"class":535,"line":11332},[533,19212,12893],{"class":543},[533,19214,12932],{"class":560},[533,19216,18552],{"class":543},[533,19218,12978],{"class":567},[533,19220,554],{"class":553},[533,19222,12983],{"class":621},[533,19224,1133],{"class":543},[533,19226,12942],{"class":567},[533,19228,554],{"class":553},[533,19230,18571],{"class":621},[533,19232,637],{"class":543},[533,19234,19235,19237,19239,19242,19244,19246,19248,19250,19252,19254,19256,19258,19260,19262,19264],{"class":535,"line":11345},[533,19236,12893],{"class":543},[533,19238,12932],{"class":560},[533,19240,19241],{"class":543},"(time, modulation, ",[533,19243,12978],{"class":567},[533,19245,554],{"class":553},[533,19247,17278],{"class":621},[533,19249,1133],{"class":543},[533,19251,12684],{"class":567},[533,19253,554],{"class":553},[533,19255,17287],{"class":621},[533,19257,1133],{"class":543},[533,19259,12942],{"class":567},[533,19261,554],{"class":553},[533,19263,17970],{"class":621},[533,19265,637],{"class":543},[533,19267,19268,19270,19272,19274,19276,19279,19281,19283,19285,19287,19289,19291,19293,19295],{"class":535,"line":11372},[533,19269,12893],{"class":543},[533,19271,12932],{"class":560},[533,19273,17981],{"class":543},[533,19275,2514],{"class":553},[533,19277,19278],{"class":543},"modulation, ",[533,19280,12978],{"class":567},[533,19282,554],{"class":553},[533,19284,17278],{"class":621},[533,19286,1133],{"class":543},[533,19288,12684],{"class":567},[533,19290,554],{"class":553},[533,19292,17287],{"class":621},[533,19294,16970],{"class":543},[533,19296,19297],{"class":593},"# Add the negative modulation function for completeness\n",[533,19299,19300,19302,19304,19306,19309],{"class":535,"line":11385},[533,19301,12893],{"class":543},[533,19303,8639],{"class":560},[533,19305,615],{"class":543},[533,19307,19308],{"class":621},"'Gaussian-Modulated Sine Wave with Modulation Function'",[533,19310,637],{"class":543},[533,19312,19313,19315,19317,19319,19321],{"class":535,"line":11390},[533,19314,12893],{"class":543},[533,19316,13030],{"class":560},[533,19318,615],{"class":543},[533,19320,17076],{"class":621},[533,19322,637],{"class":543},[533,19324,19325,19327,19329,19331,19333],{"class":535,"line":11402},[533,19326,12893],{"class":543},[533,19328,13058],{"class":560},[533,19330,615],{"class":543},[533,19332,17089],{"class":621},[533,19334,637],{"class":543},[533,19336,19337],{"class":535,"line":11407},[533,19338,17362],{"class":593},[533,19340,19341,19343,19345,19347,19349],{"class":535,"line":11412},[533,19342,12893],{"class":543},[533,19344,17098],{"class":560},[533,19346,615],{"class":543},[533,19348,1930],{"class":625},[533,19350,637],{"class":543},[533,19352,19353,19355,19357],{"class":535,"line":11418},[533,19354,12893],{"class":543},[533,19356,13120],{"class":560},[533,19358,1217],{"class":543},[2175,19360],{"alt":19361,"src":19362},"Output 8 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-08.webp",[12,19364,19365],{},"Below are some common pulse envelope shapes used to modulate a sine wave tone.",[524,19367,19369],{"className":526,"code":19368,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.signal.windows import blackmanharris, tukey\n\n# Define time vector\nt = np.linspace(-2, 2, 1000)\n\n# Define different pulse envelopes\ngaussian = np.exp(-t**2)\nsin2 = np.sin(np.pi * (t - t.min()) \u002F (t.max() - t.min()))**2\ncos2 = np.cos(np.pi * (t - t.min()) \u002F (t.max() - t.min()))**2\nrectangular = np.ones_like(t)\nrectangular[np.abs(t) > 1] = 0\nblackman_harris = blackmanharris(len(t))\ntukey_envelope = tukey(len(t), alpha=0.5)\nsech = 1 \u002F np.cosh(t)\n\n# List of envelopes and titles\nenvelopes = [(gaussian, \"Gaussian Modulation Function\"),\n             (sin2, \"$Sin^{2}$ Modulation Function\"),\n             (cos2, \"$Cos^{2}$ Modulation Function\"),\n             (rectangular, \"Rectangular Modulation Function\"),\n             (blackman_harris, \"Blackman-Harris Modulation Function\"),\n             (tukey_envelope, \"Tukey Modulation Function\"),\n             (sech, \"Sech Modulation Function\")]\n\n# Create subplots\nfig, axes = plt.subplots(3, 3, figsize=(12, 9))\naxes = axes.flatten()\n\nfor i, (envelope, title) in enumerate(envelopes):\n    axes[i].plot(t, envelope, 'b')\n    axes[i].set_title(title)\n    axes[i].set_xlabel(\"Time\")\n    axes[i].set_ylabel(\"Amplitude\")\n    # axes[i].legend([title])\n\n# Hide unused subplots\nfor j in range(i + 1, len(axes)):\n    fig.delaxes(axes[j])\n\nplt.tight_layout()\nplt.show()\n",[57,19370,19371,19381,19391,19403,19407,19412,19439,19443,19448,19471,19522,19567,19582,19602,19619,19645,19663,19667,19672,19688,19704,19718,19728,19738,19748,19759,19763,19768,19807,19822,19826,19840,19855,19865,19879,19893,19898,19902,19907,19932,19943,19947,19956],{"__ignoreMap":529},[533,19372,19373,19375,19377,19379],{"class":535,"line":536},[533,19374,883],{"class":539},[533,19376,11128],{"class":543},[533,19378,584],{"class":539},[533,19380,11133],{"class":543},[533,19382,19383,19385,19387,19389],{"class":535,"line":547},[533,19384,883],{"class":539},[533,19386,11140],{"class":543},[533,19388,584],{"class":539},[533,19390,11145],{"class":543},[533,19392,19393,19395,19398,19400],{"class":535,"line":575},[533,19394,877],{"class":539},[533,19396,19397],{"class":543}," scipy.signal.windows ",[533,19399,883],{"class":539},[533,19401,19402],{"class":543}," blackmanharris, tukey\n",[533,19404,19405],{"class":535,"line":590},[533,19406,891],{"emptyLinePlaceholder":790},[533,19408,19409],{"class":535,"line":597},[533,19410,19411],{"class":593},"# Define time vector\n",[533,19413,19414,19417,19419,19421,19423,19425,19427,19429,19431,19433,19435,19437],{"class":535,"line":603},[533,19415,19416],{"class":543},"t ",[533,19418,554],{"class":553},[533,19420,2911],{"class":543},[533,19422,12734],{"class":560},[533,19424,615],{"class":543},[533,19426,2514],{"class":553},[533,19428,1140],{"class":625},[533,19430,1133],{"class":543},[533,19432,1140],{"class":625},[533,19434,1133],{"class":543},[533,19436,1240],{"class":625},[533,19438,637],{"class":543},[533,19440,19441],{"class":535,"line":609},[533,19442,891],{"emptyLinePlaceholder":790},[533,19444,19445],{"class":535,"line":640},[533,19446,19447],{"class":593},"# Define different pulse envelopes\n",[533,19449,19450,19453,19455,19457,19459,19461,19463,19465,19467,19469],{"class":535,"line":646},[533,19451,19452],{"class":543},"gaussian ",[533,19454,554],{"class":553},[533,19456,2911],{"class":543},[533,19458,16247],{"class":560},[533,19460,615],{"class":543},[533,19462,2514],{"class":553},[533,19464,9582],{"class":543},[533,19466,11935],{"class":553},[533,19468,1140],{"class":625},[533,19470,637],{"class":543},[533,19472,19473,19476,19478,19480,19482,19485,19487,19490,19492,19495,19497,19500,19502,19505,19507,19509,19511,19513,19515,19518,19520],{"class":535,"line":658},[533,19474,19475],{"class":543},"sin2 ",[533,19477,554],{"class":553},[533,19479,2911],{"class":543},[533,19481,14336],{"class":560},[533,19483,19484],{"class":543},"(np.pi ",[533,19486,2469],{"class":553},[533,19488,19489],{"class":543}," (t ",[533,19491,2514],{"class":553},[533,19493,19494],{"class":543}," t.",[533,19496,2234],{"class":560},[533,19498,19499],{"class":543},"()) ",[533,19501,2941],{"class":553},[533,19503,19504],{"class":543}," (t.",[533,19506,13480],{"class":560},[533,19508,16535],{"class":543},[533,19510,2514],{"class":553},[533,19512,19494],{"class":543},[533,19514,2234],{"class":560},[533,19516,19517],{"class":543},"()))",[533,19519,11935],{"class":553},[533,19521,16566],{"class":625},[533,19523,19524,19527,19529,19531,19533,19535,19537,19539,19541,19543,19545,19547,19549,19551,19553,19555,19557,19559,19561,19563,19565],{"class":535,"line":680},[533,19525,19526],{"class":543},"cos2 ",[533,19528,554],{"class":553},[533,19530,2911],{"class":543},[533,19532,14318],{"class":560},[533,19534,19484],{"class":543},[533,19536,2469],{"class":553},[533,19538,19489],{"class":543},[533,19540,2514],{"class":553},[533,19542,19494],{"class":543},[533,19544,2234],{"class":560},[533,19546,19499],{"class":543},[533,19548,2941],{"class":553},[533,19550,19504],{"class":543},[533,19552,13480],{"class":560},[533,19554,16535],{"class":543},[533,19556,2514],{"class":553},[533,19558,19494],{"class":543},[533,19560,2234],{"class":560},[533,19562,19517],{"class":543},[533,19564,11935],{"class":553},[533,19566,16566],{"class":625},[533,19568,19569,19572,19574,19576,19579],{"class":535,"line":1536},[533,19570,19571],{"class":543},"rectangular ",[533,19573,554],{"class":553},[533,19575,2911],{"class":543},[533,19577,19578],{"class":560},"ones_like",[533,19580,19581],{"class":543},"(t)\n",[533,19583,19584,19587,19589,19592,19594,19596,19598,19600],{"class":535,"line":1552},[533,19585,19586],{"class":543},"rectangular[np.",[533,19588,12852],{"class":560},[533,19590,19591],{"class":543},"(t) ",[533,19593,2808],{"class":553},[533,19595,6353],{"class":625},[533,19597,11314],{"class":543},[533,19599,554],{"class":553},[533,19601,16932],{"class":625},[533,19603,19604,19607,19609,19612,19614,19616],{"class":535,"line":1911},[533,19605,19606],{"class":543},"blackman_harris ",[533,19608,554],{"class":553},[533,19610,19611],{"class":560}," blackmanharris",[533,19613,615],{"class":543},[533,19615,15006],{"class":553},[533,19617,19618],{"class":543},"(t))\n",[533,19620,19621,19624,19626,19629,19631,19633,19636,19639,19641,19643],{"class":535,"line":1940},[533,19622,19623],{"class":543},"tukey_envelope ",[533,19625,554],{"class":553},[533,19627,19628],{"class":560}," tukey",[533,19630,615],{"class":543},[533,19632,15006],{"class":553},[533,19634,19635],{"class":543},"(t), ",[533,19637,19638],{"class":567},"alpha",[533,19640,554],{"class":553},[533,19642,14323],{"class":625},[533,19644,637],{"class":543},[533,19646,19647,19650,19652,19654,19656,19658,19661],{"class":535,"line":1968},[533,19648,19649],{"class":543},"sech ",[533,19651,554],{"class":553},[533,19653,6353],{"class":625},[533,19655,11903],{"class":553},[533,19657,2911],{"class":543},[533,19659,19660],{"class":560},"cosh",[533,19662,19581],{"class":543},[533,19664,19665],{"class":535,"line":1995},[533,19666,891],{"emptyLinePlaceholder":790},[533,19668,19669],{"class":535,"line":4164},[533,19670,19671],{"class":593},"# List of envelopes and titles\n",[533,19673,19674,19677,19679,19682,19685],{"class":535,"line":4199},[533,19675,19676],{"class":543},"envelopes ",[533,19678,554],{"class":553},[533,19680,19681],{"class":543}," [(gaussian, ",[533,19683,19684],{"class":621},"\"Gaussian Modulation Function\"",[533,19686,19687],{"class":543},"),\n",[533,19689,19690,19693,19696,19699,19702],{"class":535,"line":4206},[533,19691,19692],{"class":543},"             (sin2, ",[533,19694,19695],{"class":621},"\"$Sin^",[533,19697,19698],{"class":625},"{2}",[533,19700,19701],{"class":621},"$ Modulation Function\"",[533,19703,19687],{"class":543},[533,19705,19706,19709,19712,19714,19716],{"class":535,"line":4214},[533,19707,19708],{"class":543},"             (cos2, ",[533,19710,19711],{"class":621},"\"$Cos^",[533,19713,19698],{"class":625},[533,19715,19701],{"class":621},[533,19717,19687],{"class":543},[533,19719,19720,19723,19726],{"class":535,"line":11296},[533,19721,19722],{"class":543},"             (rectangular, ",[533,19724,19725],{"class":621},"\"Rectangular Modulation Function\"",[533,19727,19687],{"class":543},[533,19729,19730,19733,19736],{"class":535,"line":11302},[533,19731,19732],{"class":543},"             (blackman_harris, ",[533,19734,19735],{"class":621},"\"Blackman-Harris Modulation Function\"",[533,19737,19687],{"class":543},[533,19739,19740,19743,19746],{"class":535,"line":11332},[533,19741,19742],{"class":543},"             (tukey_envelope, ",[533,19744,19745],{"class":621},"\"Tukey Modulation Function\"",[533,19747,19687],{"class":543},[533,19749,19750,19753,19756],{"class":535,"line":11345},[533,19751,19752],{"class":543},"             (sech, ",[533,19754,19755],{"class":621},"\"Sech Modulation Function\"",[533,19757,19758],{"class":543},")]\n",[533,19760,19761],{"class":535,"line":11372},[533,19762,891],{"emptyLinePlaceholder":790},[533,19764,19765],{"class":535,"line":11385},[533,19766,19767],{"class":593},"# Create subplots\n",[533,19769,19770,19773,19775,19778,19781,19783,19785,19787,19789,19791,19793,19795,19797,19800,19802,19805],{"class":535,"line":11390},[533,19771,19772],{"class":543},"fig, axes ",[533,19774,554],{"class":553},[533,19776,19777],{"class":543}," plt.",[533,19779,19780],{"class":560},"subplots",[533,19782,615],{"class":543},[533,19784,1157],{"class":625},[533,19786,1133],{"class":543},[533,19788,1157],{"class":625},[533,19790,1133],{"class":543},[533,19792,12901],{"class":567},[533,19794,554],{"class":553},[533,19796,615],{"class":543},[533,19798,19799],{"class":625},"12",[533,19801,1133],{"class":543},[533,19803,19804],{"class":625},"9",[533,19806,1937],{"class":543},[533,19808,19809,19812,19814,19817,19820],{"class":535,"line":11402},[533,19810,19811],{"class":543},"axes ",[533,19813,554],{"class":553},[533,19815,19816],{"class":543}," axes.",[533,19818,19819],{"class":560},"flatten",[533,19821,1217],{"class":543},[533,19823,19824],{"class":535,"line":11407},[533,19825,891],{"emptyLinePlaceholder":790},[533,19827,19828,19830,19833,19835,19837],{"class":535,"line":11412},[533,19829,3180],{"class":539},[533,19831,19832],{"class":543}," i, (envelope, title) ",[533,19834,2786],{"class":539},[533,19836,13380],{"class":553},[533,19838,19839],{"class":543},"(envelopes):\n",[533,19841,19842,19845,19847,19850,19853],{"class":535,"line":11418},[533,19843,19844],{"class":543},"    axes[i].",[533,19846,12932],{"class":560},[533,19848,19849],{"class":543},"(t, envelope, ",[533,19851,19852],{"class":621},"'b'",[533,19854,637],{"class":543},[533,19856,19857,19859,19862],{"class":535,"line":11423},[533,19858,19844],{"class":543},[533,19860,19861],{"class":560},"set_title",[533,19863,19864],{"class":543},"(title)\n",[533,19866,19867,19869,19872,19874,19877],{"class":535,"line":11467},[533,19868,19844],{"class":543},[533,19870,19871],{"class":560},"set_xlabel",[533,19873,615],{"class":543},[533,19875,19876],{"class":621},"\"Time\"",[533,19878,637],{"class":543},[533,19880,19881,19883,19886,19888,19891],{"class":535,"line":11473},[533,19882,19844],{"class":543},[533,19884,19885],{"class":560},"set_ylabel",[533,19887,615],{"class":543},[533,19889,19890],{"class":621},"\"Amplitude\"",[533,19892,637],{"class":543},[533,19894,19895],{"class":535,"line":11488},[533,19896,19897],{"class":593},"    # axes[i].legend([title])\n",[533,19899,19900],{"class":535,"line":11505},[533,19901,891],{"emptyLinePlaceholder":790},[533,19903,19904],{"class":535,"line":11518},[533,19905,19906],{"class":593},"# Hide unused subplots\n",[533,19908,19909,19911,19914,19916,19918,19921,19923,19925,19927,19929],{"class":535,"line":11523},[533,19910,3180],{"class":539},[533,19912,19913],{"class":543}," j ",[533,19915,2786],{"class":539},[533,19917,2976],{"class":553},[533,19919,19920],{"class":543},"(i ",[533,19922,6350],{"class":553},[533,19924,6353],{"class":625},[533,19926,1133],{"class":543},[533,19928,15006],{"class":553},[533,19930,19931],{"class":543},"(axes)):\n",[533,19933,19934,19937,19940],{"class":535,"line":11555},[533,19935,19936],{"class":543},"    fig.",[533,19938,19939],{"class":560},"delaxes",[533,19941,19942],{"class":543},"(axes[j])\n",[533,19944,19945],{"class":535,"line":11561},[533,19946,891],{"emptyLinePlaceholder":790},[533,19948,19949,19951,19954],{"class":535,"line":11577},[533,19950,12893],{"class":543},[533,19952,19953],{"class":560},"tight_layout",[533,19955,1217],{"class":543},[533,19957,19958,19960,19962],{"class":535,"line":11600},[533,19959,12893],{"class":543},[533,19961,13120],{"class":560},[533,19963,1217],{"class":543},[2175,19965],{"alt":19966,"src":19967},"Output 9 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-09.webp",[524,19969,19971],{"className":526,"code":19970,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.signal.windows import blackmanharris, tukey\n\n# Define time vector with reduced points for lollipop plot clarity\nt = np.linspace(-2, 2, 40)\n\n# Define different modulation functions\ngaussian_modulation = np.exp(-t**2)\nsin2_modulation = np.sin(np.pi * (t - t.min()) \u002F (t.max() - t.min()))**2\ncos2_modulation = np.cos(np.pi * (t - t.min()) \u002F (t.max() - t.min()))**2\nrectangular_modulation = np.ones_like(t)\nrectangular_modulation[np.abs(t) > 1] = 0\nblackman_harris_modulation = blackmanharris(len(t))\ntukey_modulation = tukey(len(t), alpha=0.5)\nsech_modulation = 1 \u002F np.cosh(t)\n\n# List of modulation functions and titles\nmodulations = [(gaussian_modulation, \"Gaussian Modulation Function\"),\n               (sin2_modulation, \"Sin² Modulation Function\"),\n               (cos2_modulation, \"Cos² Modulation Function\"),\n               (rectangular_modulation, \"Rectangular Modulation Function\"),\n               (blackman_harris_modulation, \"Blackman-Harris Modulation Function\"),\n               (tukey_modulation, \"Tukey Modulation Function\"),\n               (sech_modulation, \"Sech Modulation Function\")]\n\n# Create subplots\nfig, axes = plt.subplots(3, 3, figsize=(12, 9))\naxes = axes.flatten()\n\nfor i, (modulation, title) in enumerate(modulations):\n    axes[i].stem(t, modulation, linefmt='b-', markerfmt='bo', basefmt='k-')\n    axes[i].set_title(title)\n    axes[i].set_xlabel(\"Time\")\n    axes[i].set_ylabel(\"Amplitude\")\n\n# Hide unused subplots\nfor j in range(i + 1, len(axes)):\n    fig.delaxes(axes[j])\n\nplt.tight_layout()\nplt.show()\n",[57,19972,19973,19983,19993,20003,20007,20012,20038,20042,20047,20069,20114,20159,20172,20191,20206,20229,20246,20250,20255,20269,20279,20289,20298,20307,20316,20325,20329,20333,20367,20379,20383,20397,20430,20438,20450,20462,20466,20470,20492,20500,20504,20512],{"__ignoreMap":529},[533,19974,19975,19977,19979,19981],{"class":535,"line":536},[533,19976,883],{"class":539},[533,19978,11128],{"class":543},[533,19980,584],{"class":539},[533,19982,11133],{"class":543},[533,19984,19985,19987,19989,19991],{"class":535,"line":547},[533,19986,883],{"class":539},[533,19988,11140],{"class":543},[533,19990,584],{"class":539},[533,19992,11145],{"class":543},[533,19994,19995,19997,19999,20001],{"class":535,"line":575},[533,19996,877],{"class":539},[533,19998,19397],{"class":543},[533,20000,883],{"class":539},[533,20002,19402],{"class":543},[533,20004,20005],{"class":535,"line":590},[533,20006,891],{"emptyLinePlaceholder":790},[533,20008,20009],{"class":535,"line":597},[533,20010,20011],{"class":593},"# Define time vector with reduced points for lollipop plot clarity\n",[533,20013,20014,20016,20018,20020,20022,20024,20026,20028,20030,20032,20034,20036],{"class":535,"line":603},[533,20015,19416],{"class":543},[533,20017,554],{"class":553},[533,20019,2911],{"class":543},[533,20021,12734],{"class":560},[533,20023,615],{"class":543},[533,20025,2514],{"class":553},[533,20027,1140],{"class":625},[533,20029,1133],{"class":543},[533,20031,1140],{"class":625},[533,20033,1133],{"class":543},[533,20035,17507],{"class":625},[533,20037,637],{"class":543},[533,20039,20040],{"class":535,"line":609},[533,20041,891],{"emptyLinePlaceholder":790},[533,20043,20044],{"class":535,"line":640},[533,20045,20046],{"class":593},"# Define different modulation functions\n",[533,20048,20049,20051,20053,20055,20057,20059,20061,20063,20065,20067],{"class":535,"line":646},[533,20050,16987],{"class":543},[533,20052,554],{"class":553},[533,20054,2911],{"class":543},[533,20056,16247],{"class":560},[533,20058,615],{"class":543},[533,20060,2514],{"class":553},[533,20062,9582],{"class":543},[533,20064,11935],{"class":553},[533,20066,1140],{"class":625},[533,20068,637],{"class":543},[533,20070,20071,20074,20076,20078,20080,20082,20084,20086,20088,20090,20092,20094,20096,20098,20100,20102,20104,20106,20108,20110,20112],{"class":535,"line":658},[533,20072,20073],{"class":543},"sin2_modulation ",[533,20075,554],{"class":553},[533,20077,2911],{"class":543},[533,20079,14336],{"class":560},[533,20081,19484],{"class":543},[533,20083,2469],{"class":553},[533,20085,19489],{"class":543},[533,20087,2514],{"class":553},[533,20089,19494],{"class":543},[533,20091,2234],{"class":560},[533,20093,19499],{"class":543},[533,20095,2941],{"class":553},[533,20097,19504],{"class":543},[533,20099,13480],{"class":560},[533,20101,16535],{"class":543},[533,20103,2514],{"class":553},[533,20105,19494],{"class":543},[533,20107,2234],{"class":560},[533,20109,19517],{"class":543},[533,20111,11935],{"class":553},[533,20113,16566],{"class":625},[533,20115,20116,20119,20121,20123,20125,20127,20129,20131,20133,20135,20137,20139,20141,20143,20145,20147,20149,20151,20153,20155,20157],{"class":535,"line":680},[533,20117,20118],{"class":543},"cos2_modulation ",[533,20120,554],{"class":553},[533,20122,2911],{"class":543},[533,20124,14318],{"class":560},[533,20126,19484],{"class":543},[533,20128,2469],{"class":553},[533,20130,19489],{"class":543},[533,20132,2514],{"class":553},[533,20134,19494],{"class":543},[533,20136,2234],{"class":560},[533,20138,19499],{"class":543},[533,20140,2941],{"class":553},[533,20142,19504],{"class":543},[533,20144,13480],{"class":560},[533,20146,16535],{"class":543},[533,20148,2514],{"class":553},[533,20150,19494],{"class":543},[533,20152,2234],{"class":560},[533,20154,19517],{"class":543},[533,20156,11935],{"class":553},[533,20158,16566],{"class":625},[533,20160,20161,20164,20166,20168,20170],{"class":535,"line":1536},[533,20162,20163],{"class":543},"rectangular_modulation ",[533,20165,554],{"class":553},[533,20167,2911],{"class":543},[533,20169,19578],{"class":560},[533,20171,19581],{"class":543},[533,20173,20174,20177,20179,20181,20183,20185,20187,20189],{"class":535,"line":1552},[533,20175,20176],{"class":543},"rectangular_modulation[np.",[533,20178,12852],{"class":560},[533,20180,19591],{"class":543},[533,20182,2808],{"class":553},[533,20184,6353],{"class":625},[533,20186,11314],{"class":543},[533,20188,554],{"class":553},[533,20190,16932],{"class":625},[533,20192,20193,20196,20198,20200,20202,20204],{"class":535,"line":1911},[533,20194,20195],{"class":543},"blackman_harris_modulation ",[533,20197,554],{"class":553},[533,20199,19611],{"class":560},[533,20201,615],{"class":543},[533,20203,15006],{"class":553},[533,20205,19618],{"class":543},[533,20207,20208,20211,20213,20215,20217,20219,20221,20223,20225,20227],{"class":535,"line":1940},[533,20209,20210],{"class":543},"tukey_modulation ",[533,20212,554],{"class":553},[533,20214,19628],{"class":560},[533,20216,615],{"class":543},[533,20218,15006],{"class":553},[533,20220,19635],{"class":543},[533,20222,19638],{"class":567},[533,20224,554],{"class":553},[533,20226,14323],{"class":625},[533,20228,637],{"class":543},[533,20230,20231,20234,20236,20238,20240,20242,20244],{"class":535,"line":1968},[533,20232,20233],{"class":543},"sech_modulation ",[533,20235,554],{"class":553},[533,20237,6353],{"class":625},[533,20239,11903],{"class":553},[533,20241,2911],{"class":543},[533,20243,19660],{"class":560},[533,20245,19581],{"class":543},[533,20247,20248],{"class":535,"line":1995},[533,20249,891],{"emptyLinePlaceholder":790},[533,20251,20252],{"class":535,"line":4164},[533,20253,20254],{"class":593},"# List of modulation functions and titles\n",[533,20256,20257,20260,20262,20265,20267],{"class":535,"line":4199},[533,20258,20259],{"class":543},"modulations ",[533,20261,554],{"class":553},[533,20263,20264],{"class":543}," [(gaussian_modulation, ",[533,20266,19684],{"class":621},[533,20268,19687],{"class":543},[533,20270,20271,20274,20277],{"class":535,"line":4206},[533,20272,20273],{"class":543},"               (sin2_modulation, ",[533,20275,20276],{"class":621},"\"Sin² Modulation Function\"",[533,20278,19687],{"class":543},[533,20280,20281,20284,20287],{"class":535,"line":4214},[533,20282,20283],{"class":543},"               (cos2_modulation, ",[533,20285,20286],{"class":621},"\"Cos² Modulation Function\"",[533,20288,19687],{"class":543},[533,20290,20291,20294,20296],{"class":535,"line":11296},[533,20292,20293],{"class":543},"               (rectangular_modulation, ",[533,20295,19725],{"class":621},[533,20297,19687],{"class":543},[533,20299,20300,20303,20305],{"class":535,"line":11302},[533,20301,20302],{"class":543},"               (blackman_harris_modulation, ",[533,20304,19735],{"class":621},[533,20306,19687],{"class":543},[533,20308,20309,20312,20314],{"class":535,"line":11332},[533,20310,20311],{"class":543},"               (tukey_modulation, ",[533,20313,19745],{"class":621},[533,20315,19687],{"class":543},[533,20317,20318,20321,20323],{"class":535,"line":11345},[533,20319,20320],{"class":543},"               (sech_modulation, ",[533,20322,19755],{"class":621},[533,20324,19758],{"class":543},[533,20326,20327],{"class":535,"line":11372},[533,20328,891],{"emptyLinePlaceholder":790},[533,20330,20331],{"class":535,"line":11385},[533,20332,19767],{"class":593},[533,20334,20335,20337,20339,20341,20343,20345,20347,20349,20351,20353,20355,20357,20359,20361,20363,20365],{"class":535,"line":11390},[533,20336,19772],{"class":543},[533,20338,554],{"class":553},[533,20340,19777],{"class":543},[533,20342,19780],{"class":560},[533,20344,615],{"class":543},[533,20346,1157],{"class":625},[533,20348,1133],{"class":543},[533,20350,1157],{"class":625},[533,20352,1133],{"class":543},[533,20354,12901],{"class":567},[533,20356,554],{"class":553},[533,20358,615],{"class":543},[533,20360,19799],{"class":625},[533,20362,1133],{"class":543},[533,20364,19804],{"class":625},[533,20366,1937],{"class":543},[533,20368,20369,20371,20373,20375,20377],{"class":535,"line":11402},[533,20370,19811],{"class":543},[533,20372,554],{"class":553},[533,20374,19816],{"class":543},[533,20376,19819],{"class":560},[533,20378,1217],{"class":543},[533,20380,20381],{"class":535,"line":11407},[533,20382,891],{"emptyLinePlaceholder":790},[533,20384,20385,20387,20390,20392,20394],{"class":535,"line":11412},[533,20386,3180],{"class":539},[533,20388,20389],{"class":543}," i, (modulation, title) ",[533,20391,2786],{"class":539},[533,20393,13380],{"class":553},[533,20395,20396],{"class":543},"(modulations):\n",[533,20398,20399,20401,20403,20406,20408,20410,20412,20414,20416,20418,20420,20422,20424,20426,20428],{"class":535,"line":11418},[533,20400,19844],{"class":543},[533,20402,17603],{"class":560},[533,20404,20405],{"class":543},"(t, modulation, ",[533,20407,17608],{"class":567},[533,20409,554],{"class":553},[533,20411,17613],{"class":621},[533,20413,1133],{"class":543},[533,20415,17618],{"class":567},[533,20417,554],{"class":553},[533,20419,17623],{"class":621},[533,20421,1133],{"class":543},[533,20423,17628],{"class":567},[533,20425,554],{"class":553},[533,20427,17633],{"class":621},[533,20429,637],{"class":543},[533,20431,20432,20434,20436],{"class":535,"line":11423},[533,20433,19844],{"class":543},[533,20435,19861],{"class":560},[533,20437,19864],{"class":543},[533,20439,20440,20442,20444,20446,20448],{"class":535,"line":11467},[533,20441,19844],{"class":543},[533,20443,19871],{"class":560},[533,20445,615],{"class":543},[533,20447,19876],{"class":621},[533,20449,637],{"class":543},[533,20451,20452,20454,20456,20458,20460],{"class":535,"line":11473},[533,20453,19844],{"class":543},[533,20455,19885],{"class":560},[533,20457,615],{"class":543},[533,20459,19890],{"class":621},[533,20461,637],{"class":543},[533,20463,20464],{"class":535,"line":11488},[533,20465,891],{"emptyLinePlaceholder":790},[533,20467,20468],{"class":535,"line":11505},[533,20469,19906],{"class":593},[533,20471,20472,20474,20476,20478,20480,20482,20484,20486,20488,20490],{"class":535,"line":11518},[533,20473,3180],{"class":539},[533,20475,19913],{"class":543},[533,20477,2786],{"class":539},[533,20479,2976],{"class":553},[533,20481,19920],{"class":543},[533,20483,6350],{"class":553},[533,20485,6353],{"class":625},[533,20487,1133],{"class":543},[533,20489,15006],{"class":553},[533,20491,19931],{"class":543},[533,20493,20494,20496,20498],{"class":535,"line":11523},[533,20495,19936],{"class":543},[533,20497,19939],{"class":560},[533,20499,19942],{"class":543},[533,20501,20502],{"class":535,"line":11555},[533,20503,891],{"emptyLinePlaceholder":790},[533,20505,20506,20508,20510],{"class":535,"line":11561},[533,20507,12893],{"class":543},[533,20509,19953],{"class":560},[533,20511,1217],{"class":543},[533,20513,20514,20516,20518],{"class":535,"line":11577},[533,20515,12893],{"class":543},[533,20517,13120],{"class":560},[533,20519,1217],{"class":543},[2175,20521],{"alt":20522,"src":20523},"Output 10 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-10.webp",[524,20525,20527],{"className":526,"code":20526,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.signal.windows import blackmanharris, tukey\n\n# Define time vector\ntime = np.linspace(-5, 5, 1000)\n\n# Define different modulated sine waves\ngaussian_modulated_sine = np.exp(-time**2)\nsin2_modulated_sine = np.sin(np.pi * (time - time.min()) \u002F (time.max() - time.min()))**2\ncos2_modulated_sine = np.cos(np.pi * (time - time.min()) \u002F (time.max() - time.min()))**2\nrectangular_modulated_sine = np.ones_like(time)\nrectangular_modulated_sine[np.abs(time) > 2] = 0\nblackman_harris_modulated_sine = blackmanharris(len(time))\ntukey_modulated_sine = tukey(len(time), alpha=0.5)\nsech_modulated_sine = 1 \u002F np.cosh(time)\n\n# Define sine wave parameters\namplitude = 1\nfrequency = 5  # Frequency of the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# List of modulated sine waves and titles\nmodulated_sines = [(gaussian_modulated_sine, \"Gaussian Modulated Sine Wave\"),\n                    (sin2_modulated_sine, \"$Sin^{2}$ Modulated Sine Wave\"),\n                    (cos2_modulated_sine, \"$Cos^{2}$ Modulated Sine Wave\"),\n                    (rectangular_modulated_sine, \"Rectangular Modulated Sine Wave\"),\n                    (blackman_harris_modulated_sine, \"Blackman-Harris Modulated Sine Wave\"),\n                    (tukey_modulated_sine, \"Tukey Modulated Sine Wave\"),\n                    (sech_modulated_sine, \"Sech Modulated Sine Wave\")]\n\n# Create subplots\nfig, axes = plt.subplots(3, 3, figsize=(12, 9))\naxes = axes.flatten()\n\nfor i, (modulated_sine, title) in enumerate(modulated_sines):\n    modulated_wave = modulated_sine * sine_wave\n    axes[i].plot(time, modulated_wave, 'b')\n    axes[i].set_title(title)\n    axes[i].set_xlabel(\"Time\")\n    axes[i].set_ylabel(\"Amplitude\")\n\n# Hide unused subplots\nfor j in range(i + 1, len(axes)):\n    fig.delaxes(axes[j])\n\nplt.tight_layout()\nplt.show()\n",[57,20528,20529,20539,20549,20559,20563,20567,20593,20597,20602,20626,20674,20719,20733,20753,20769,20793,20810,20814,20818,20826,20836,20866,20870,20875,20890,20904,20917,20927,20937,20947,20957,20961,20965,20999,21011,21015,21029,21043,21056,21064,21076,21088,21092,21096,21118,21126,21130,21138],{"__ignoreMap":529},[533,20530,20531,20533,20535,20537],{"class":535,"line":536},[533,20532,883],{"class":539},[533,20534,11128],{"class":543},[533,20536,584],{"class":539},[533,20538,11133],{"class":543},[533,20540,20541,20543,20545,20547],{"class":535,"line":547},[533,20542,883],{"class":539},[533,20544,11140],{"class":543},[533,20546,584],{"class":539},[533,20548,11145],{"class":543},[533,20550,20551,20553,20555,20557],{"class":535,"line":575},[533,20552,877],{"class":539},[533,20554,19397],{"class":543},[533,20556,883],{"class":539},[533,20558,19402],{"class":543},[533,20560,20561],{"class":535,"line":590},[533,20562,891],{"emptyLinePlaceholder":790},[533,20564,20565],{"class":535,"line":597},[533,20566,19411],{"class":593},[533,20568,20569,20571,20573,20575,20577,20579,20581,20583,20585,20587,20589,20591],{"class":535,"line":603},[533,20570,16947],{"class":543},[533,20572,554],{"class":553},[533,20574,2911],{"class":543},[533,20576,12734],{"class":560},[533,20578,615],{"class":543},[533,20580,2514],{"class":553},[533,20582,1220],{"class":625},[533,20584,1133],{"class":543},[533,20586,1220],{"class":625},[533,20588,1133],{"class":543},[533,20590,1240],{"class":625},[533,20592,637],{"class":543},[533,20594,20595],{"class":535,"line":609},[533,20596,891],{"emptyLinePlaceholder":790},[533,20598,20599],{"class":535,"line":640},[533,20600,20601],{"class":593},"# Define different modulated sine waves\n",[533,20603,20604,20607,20609,20611,20613,20615,20617,20620,20622,20624],{"class":535,"line":646},[533,20605,20606],{"class":543},"gaussian_modulated_sine ",[533,20608,554],{"class":553},[533,20610,2911],{"class":543},[533,20612,16247],{"class":560},[533,20614,615],{"class":543},[533,20616,2514],{"class":553},[533,20618,20619],{"class":543},"time",[533,20621,11935],{"class":553},[533,20623,1140],{"class":625},[533,20625,637],{"class":543},[533,20627,20628,20631,20633,20635,20637,20639,20641,20644,20646,20649,20651,20653,20655,20658,20660,20662,20664,20666,20668,20670,20672],{"class":535,"line":658},[533,20629,20630],{"class":543},"sin2_modulated_sine ",[533,20632,554],{"class":553},[533,20634,2911],{"class":543},[533,20636,14336],{"class":560},[533,20638,19484],{"class":543},[533,20640,2469],{"class":553},[533,20642,20643],{"class":543}," (time ",[533,20645,2514],{"class":553},[533,20647,20648],{"class":543}," time.",[533,20650,2234],{"class":560},[533,20652,19499],{"class":543},[533,20654,2941],{"class":553},[533,20656,20657],{"class":543}," (time.",[533,20659,13480],{"class":560},[533,20661,16535],{"class":543},[533,20663,2514],{"class":553},[533,20665,20648],{"class":543},[533,20667,2234],{"class":560},[533,20669,19517],{"class":543},[533,20671,11935],{"class":553},[533,20673,16566],{"class":625},[533,20675,20676,20679,20681,20683,20685,20687,20689,20691,20693,20695,20697,20699,20701,20703,20705,20707,20709,20711,20713,20715,20717],{"class":535,"line":680},[533,20677,20678],{"class":543},"cos2_modulated_sine ",[533,20680,554],{"class":553},[533,20682,2911],{"class":543},[533,20684,14318],{"class":560},[533,20686,19484],{"class":543},[533,20688,2469],{"class":553},[533,20690,20643],{"class":543},[533,20692,2514],{"class":553},[533,20694,20648],{"class":543},[533,20696,2234],{"class":560},[533,20698,19499],{"class":543},[533,20700,2941],{"class":553},[533,20702,20657],{"class":543},[533,20704,13480],{"class":560},[533,20706,16535],{"class":543},[533,20708,2514],{"class":553},[533,20710,20648],{"class":543},[533,20712,2234],{"class":560},[533,20714,19517],{"class":543},[533,20716,11935],{"class":553},[533,20718,16566],{"class":625},[533,20720,20721,20724,20726,20728,20730],{"class":535,"line":1536},[533,20722,20723],{"class":543},"rectangular_modulated_sine ",[533,20725,554],{"class":553},[533,20727,2911],{"class":543},[533,20729,19578],{"class":560},[533,20731,20732],{"class":543},"(time)\n",[533,20734,20735,20738,20740,20743,20745,20747,20749,20751],{"class":535,"line":1552},[533,20736,20737],{"class":543},"rectangular_modulated_sine[np.",[533,20739,12852],{"class":560},[533,20741,20742],{"class":543},"(time) ",[533,20744,2808],{"class":553},[533,20746,11938],{"class":625},[533,20748,11314],{"class":543},[533,20750,554],{"class":553},[533,20752,16932],{"class":625},[533,20754,20755,20758,20760,20762,20764,20766],{"class":535,"line":1911},[533,20756,20757],{"class":543},"blackman_harris_modulated_sine ",[533,20759,554],{"class":553},[533,20761,19611],{"class":560},[533,20763,615],{"class":543},[533,20765,15006],{"class":553},[533,20767,20768],{"class":543},"(time))\n",[533,20770,20771,20774,20776,20778,20780,20782,20785,20787,20789,20791],{"class":535,"line":1940},[533,20772,20773],{"class":543},"tukey_modulated_sine ",[533,20775,554],{"class":553},[533,20777,19628],{"class":560},[533,20779,615],{"class":543},[533,20781,15006],{"class":553},[533,20783,20784],{"class":543},"(time), ",[533,20786,19638],{"class":567},[533,20788,554],{"class":553},[533,20790,14323],{"class":625},[533,20792,637],{"class":543},[533,20794,20795,20798,20800,20802,20804,20806,20808],{"class":535,"line":1968},[533,20796,20797],{"class":543},"sech_modulated_sine ",[533,20799,554],{"class":553},[533,20801,6353],{"class":625},[533,20803,11903],{"class":553},[533,20805,2911],{"class":543},[533,20807,19660],{"class":560},[533,20809,20732],{"class":543},[533,20811,20812],{"class":535,"line":1995},[533,20813,891],{"emptyLinePlaceholder":790},[533,20815,20816],{"class":535,"line":4164},[533,20817,18131],{"class":593},[533,20819,20820,20822,20824],{"class":535,"line":4199},[533,20821,17153],{"class":543},[533,20823,554],{"class":553},[533,20825,16942],{"class":625},[533,20827,20828,20830,20832,20834],{"class":535,"line":4206},[533,20829,17779],{"class":543},[533,20831,554],{"class":553},[533,20833,17784],{"class":625},[533,20835,17787],{"class":593},[533,20837,20838,20840,20842,20844,20846,20848,20850,20852,20854,20856,20858,20860,20862,20864],{"class":535,"line":4214},[533,20839,17877],{"class":543},[533,20841,554],{"class":553},[533,20843,17218],{"class":543},[533,20845,2469],{"class":553},[533,20847,2911],{"class":543},[533,20849,14336],{"class":560},[533,20851,615],{"class":543},[533,20853,1140],{"class":625},[533,20855,2254],{"class":553},[533,20857,17896],{"class":543},[533,20859,2469],{"class":553},[533,20861,17901],{"class":543},[533,20863,2469],{"class":553},[533,20865,17906],{"class":543},[533,20867,20868],{"class":535,"line":11296},[533,20869,891],{"emptyLinePlaceholder":790},[533,20871,20872],{"class":535,"line":11302},[533,20873,20874],{"class":593},"# List of modulated sine waves and titles\n",[533,20876,20877,20880,20882,20885,20888],{"class":535,"line":11332},[533,20878,20879],{"class":543},"modulated_sines ",[533,20881,554],{"class":553},[533,20883,20884],{"class":543}," [(gaussian_modulated_sine, ",[533,20886,20887],{"class":621},"\"Gaussian Modulated Sine Wave\"",[533,20889,19687],{"class":543},[533,20891,20892,20895,20897,20899,20902],{"class":535,"line":11345},[533,20893,20894],{"class":543},"                    (sin2_modulated_sine, ",[533,20896,19695],{"class":621},[533,20898,19698],{"class":625},[533,20900,20901],{"class":621},"$ Modulated Sine Wave\"",[533,20903,19687],{"class":543},[533,20905,20906,20909,20911,20913,20915],{"class":535,"line":11372},[533,20907,20908],{"class":543},"                    (cos2_modulated_sine, ",[533,20910,19711],{"class":621},[533,20912,19698],{"class":625},[533,20914,20901],{"class":621},[533,20916,19687],{"class":543},[533,20918,20919,20922,20925],{"class":535,"line":11385},[533,20920,20921],{"class":543},"                    (rectangular_modulated_sine, ",[533,20923,20924],{"class":621},"\"Rectangular Modulated Sine Wave\"",[533,20926,19687],{"class":543},[533,20928,20929,20932,20935],{"class":535,"line":11390},[533,20930,20931],{"class":543},"                    (blackman_harris_modulated_sine, ",[533,20933,20934],{"class":621},"\"Blackman-Harris Modulated Sine Wave\"",[533,20936,19687],{"class":543},[533,20938,20939,20942,20945],{"class":535,"line":11402},[533,20940,20941],{"class":543},"                    (tukey_modulated_sine, ",[533,20943,20944],{"class":621},"\"Tukey Modulated Sine Wave\"",[533,20946,19687],{"class":543},[533,20948,20949,20952,20955],{"class":535,"line":11407},[533,20950,20951],{"class":543},"                    (sech_modulated_sine, ",[533,20953,20954],{"class":621},"\"Sech Modulated Sine Wave\"",[533,20956,19758],{"class":543},[533,20958,20959],{"class":535,"line":11412},[533,20960,891],{"emptyLinePlaceholder":790},[533,20962,20963],{"class":535,"line":11418},[533,20964,19767],{"class":593},[533,20966,20967,20969,20971,20973,20975,20977,20979,20981,20983,20985,20987,20989,20991,20993,20995,20997],{"class":535,"line":11423},[533,20968,19772],{"class":543},[533,20970,554],{"class":553},[533,20972,19777],{"class":543},[533,20974,19780],{"class":560},[533,20976,615],{"class":543},[533,20978,1157],{"class":625},[533,20980,1133],{"class":543},[533,20982,1157],{"class":625},[533,20984,1133],{"class":543},[533,20986,12901],{"class":567},[533,20988,554],{"class":553},[533,20990,615],{"class":543},[533,20992,19799],{"class":625},[533,20994,1133],{"class":543},[533,20996,19804],{"class":625},[533,20998,1937],{"class":543},[533,21000,21001,21003,21005,21007,21009],{"class":535,"line":11467},[533,21002,19811],{"class":543},[533,21004,554],{"class":553},[533,21006,19816],{"class":543},[533,21008,19819],{"class":560},[533,21010,1217],{"class":543},[533,21012,21013],{"class":535,"line":11473},[533,21014,891],{"emptyLinePlaceholder":790},[533,21016,21017,21019,21022,21024,21026],{"class":535,"line":11488},[533,21018,3180],{"class":539},[533,21020,21021],{"class":543}," i, (modulated_sine, title) ",[533,21023,2786],{"class":539},[533,21025,13380],{"class":553},[533,21027,21028],{"class":543},"(modulated_sines):\n",[533,21030,21031,21034,21036,21039,21041],{"class":535,"line":11505},[533,21032,21033],{"class":543},"    modulated_wave ",[533,21035,554],{"class":553},[533,21037,21038],{"class":543}," modulated_sine ",[533,21040,2469],{"class":553},[533,21042,17930],{"class":543},[533,21044,21045,21047,21049,21052,21054],{"class":535,"line":11518},[533,21046,19844],{"class":543},[533,21048,12932],{"class":560},[533,21050,21051],{"class":543},"(time, modulated_wave, ",[533,21053,19852],{"class":621},[533,21055,637],{"class":543},[533,21057,21058,21060,21062],{"class":535,"line":11523},[533,21059,19844],{"class":543},[533,21061,19861],{"class":560},[533,21063,19864],{"class":543},[533,21065,21066,21068,21070,21072,21074],{"class":535,"line":11555},[533,21067,19844],{"class":543},[533,21069,19871],{"class":560},[533,21071,615],{"class":543},[533,21073,19876],{"class":621},[533,21075,637],{"class":543},[533,21077,21078,21080,21082,21084,21086],{"class":535,"line":11561},[533,21079,19844],{"class":543},[533,21081,19885],{"class":560},[533,21083,615],{"class":543},[533,21085,19890],{"class":621},[533,21087,637],{"class":543},[533,21089,21090],{"class":535,"line":11577},[533,21091,891],{"emptyLinePlaceholder":790},[533,21093,21094],{"class":535,"line":11600},[533,21095,19906],{"class":593},[533,21097,21098,21100,21102,21104,21106,21108,21110,21112,21114,21116],{"class":535,"line":11621},[533,21099,3180],{"class":539},[533,21101,19913],{"class":543},[533,21103,2786],{"class":539},[533,21105,2976],{"class":553},[533,21107,19920],{"class":543},[533,21109,6350],{"class":553},[533,21111,6353],{"class":625},[533,21113,1133],{"class":543},[533,21115,15006],{"class":553},[533,21117,19931],{"class":543},[533,21119,21120,21122,21124],{"class":535,"line":11637},[533,21121,19936],{"class":543},[533,21123,19939],{"class":560},[533,21125,19942],{"class":543},[533,21127,21128],{"class":535,"line":11672},[533,21129,891],{"emptyLinePlaceholder":790},[533,21131,21132,21134,21136],{"class":535,"line":11689},[533,21133,12893],{"class":543},[533,21135,19953],{"class":560},[533,21137,1217],{"class":543},[533,21139,21140,21142,21144],{"class":535,"line":11697},[533,21141,12893],{"class":543},[533,21143,13120],{"class":560},[533,21145,1217],{"class":543},[2175,21147],{"alt":21148,"src":21149},"Output 11 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-11.webp",[524,21151,21153],{"className":526,"code":21152,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.signal.windows import blackmanharris, tukey\n\n# Define time vector\ntime = np.linspace(-5, 5, 1000)\n\n# Define different modulated sine waves\ngaussian_modulated_sine = np.exp(-time**2)\nsin2_modulated_sine = np.sin(np.pi * (time - time.min()) \u002F (time.max() - time.min()))**2\ncos2_modulated_sine = np.cos(np.pi * (time - time.min()) \u002F (time.max() - time.min()))**2\nrectangular_modulated_sine = np.ones_like(time)\nrectangular_modulated_sine[np.abs(time) > 2] = 0\nblackman_harris_modulated_sine = blackmanharris(len(time))\ntukey_modulated_sine = tukey(len(time), alpha=0.5)\nsech_modulated_sine = 1 \u002F np.cosh(time)\n\n# Define sine wave parameters\namplitude = 1\nfrequency = 5  # Frequency of the sine wave\nsine_wave = amplitude * np.sin(2 * np.pi * frequency * time)\n\n# List of modulated sine waves and titles\nmodulated_sines = [(gaussian_modulated_sine, \"Gaussian Modulated Sine Wave\"),\n                   (sin2_modulated_sine, \"$Sin^{2}$ Modulated Sine Wave\"),\n                   (cos2_modulated_sine, \"$Cos^{2}$ Modulated Sine Wave\"),\n                   (rectangular_modulated_sine, \"Rectangular Modulated Sine Wave\"),\n                   (blackman_harris_modulated_sine, \"Blackman-Harris Modulated Sine Wave\"),\n                   (tukey_modulated_sine, \"Tukey Modulated Sine Wave\"),\n                   (sech_modulated_sine, \"Sech Modulated Sine Wave\")]\n\n# Create subplots\nfig, axes = plt.subplots(3, 3, figsize=(12, 9))\naxes = axes.flatten()\n\nfor i, (modulated_sine, title) in enumerate(modulated_sines):\n    modulated_wave = modulated_sine * sine_wave\n    axes[i].plot(time, modulated_wave, 'b')\n    axes[i].plot(time, modulated_sine, 'r', linestyle='--', label='Upper Modulation Function')\n    axes[i].set_title(title)\n    axes[i].set_xlabel(\"Time\")\n    axes[i].set_ylabel(\"Amplitude\")\n    axes[i].legend()\n\n# Hide unused subplots\nfor j in range(i + 1, len(axes)):\n    fig.delaxes(axes[j])\n\nplt.tight_layout()\nplt.show()\n",[57,21154,21155,21165,21175,21185,21189,21193,21219,21223,21227,21249,21293,21337,21349,21367,21381,21403,21419,21423,21427,21435,21445,21475,21479,21483,21495,21508,21521,21530,21539,21548,21557,21561,21565,21599,21611,21615,21627,21639,21651,21682,21690,21702,21714,21722,21726,21730,21752,21760,21764,21772],{"__ignoreMap":529},[533,21156,21157,21159,21161,21163],{"class":535,"line":536},[533,21158,883],{"class":539},[533,21160,11128],{"class":543},[533,21162,584],{"class":539},[533,21164,11133],{"class":543},[533,21166,21167,21169,21171,21173],{"class":535,"line":547},[533,21168,883],{"class":539},[533,21170,11140],{"class":543},[533,21172,584],{"class":539},[533,21174,11145],{"class":543},[533,21176,21177,21179,21181,21183],{"class":535,"line":575},[533,21178,877],{"class":539},[533,21180,19397],{"class":543},[533,21182,883],{"class":539},[533,21184,19402],{"class":543},[533,21186,21187],{"class":535,"line":590},[533,21188,891],{"emptyLinePlaceholder":790},[533,21190,21191],{"class":535,"line":597},[533,21192,19411],{"class":593},[533,21194,21195,21197,21199,21201,21203,21205,21207,21209,21211,21213,21215,21217],{"class":535,"line":603},[533,21196,16947],{"class":543},[533,21198,554],{"class":553},[533,21200,2911],{"class":543},[533,21202,12734],{"class":560},[533,21204,615],{"class":543},[533,21206,2514],{"class":553},[533,21208,1220],{"class":625},[533,21210,1133],{"class":543},[533,21212,1220],{"class":625},[533,21214,1133],{"class":543},[533,21216,1240],{"class":625},[533,21218,637],{"class":543},[533,21220,21221],{"class":535,"line":609},[533,21222,891],{"emptyLinePlaceholder":790},[533,21224,21225],{"class":535,"line":640},[533,21226,20601],{"class":593},[533,21228,21229,21231,21233,21235,21237,21239,21241,21243,21245,21247],{"class":535,"line":646},[533,21230,20606],{"class":543},[533,21232,554],{"class":553},[533,21234,2911],{"class":543},[533,21236,16247],{"class":560},[533,21238,615],{"class":543},[533,21240,2514],{"class":553},[533,21242,20619],{"class":543},[533,21244,11935],{"class":553},[533,21246,1140],{"class":625},[533,21248,637],{"class":543},[533,21250,21251,21253,21255,21257,21259,21261,21263,21265,21267,21269,21271,21273,21275,21277,21279,21281,21283,21285,21287,21289,21291],{"class":535,"line":658},[533,21252,20630],{"class":543},[533,21254,554],{"class":553},[533,21256,2911],{"class":543},[533,21258,14336],{"class":560},[533,21260,19484],{"class":543},[533,21262,2469],{"class":553},[533,21264,20643],{"class":543},[533,21266,2514],{"class":553},[533,21268,20648],{"class":543},[533,21270,2234],{"class":560},[533,21272,19499],{"class":543},[533,21274,2941],{"class":553},[533,21276,20657],{"class":543},[533,21278,13480],{"class":560},[533,21280,16535],{"class":543},[533,21282,2514],{"class":553},[533,21284,20648],{"class":543},[533,21286,2234],{"class":560},[533,21288,19517],{"class":543},[533,21290,11935],{"class":553},[533,21292,16566],{"class":625},[533,21294,21295,21297,21299,21301,21303,21305,21307,21309,21311,21313,21315,21317,21319,21321,21323,21325,21327,21329,21331,21333,21335],{"class":535,"line":680},[533,21296,20678],{"class":543},[533,21298,554],{"class":553},[533,21300,2911],{"class":543},[533,21302,14318],{"class":560},[533,21304,19484],{"class":543},[533,21306,2469],{"class":553},[533,21308,20643],{"class":543},[533,21310,2514],{"class":553},[533,21312,20648],{"class":543},[533,21314,2234],{"class":560},[533,21316,19499],{"class":543},[533,21318,2941],{"class":553},[533,21320,20657],{"class":543},[533,21322,13480],{"class":560},[533,21324,16535],{"class":543},[533,21326,2514],{"class":553},[533,21328,20648],{"class":543},[533,21330,2234],{"class":560},[533,21332,19517],{"class":543},[533,21334,11935],{"class":553},[533,21336,16566],{"class":625},[533,21338,21339,21341,21343,21345,21347],{"class":535,"line":1536},[533,21340,20723],{"class":543},[533,21342,554],{"class":553},[533,21344,2911],{"class":543},[533,21346,19578],{"class":560},[533,21348,20732],{"class":543},[533,21350,21351,21353,21355,21357,21359,21361,21363,21365],{"class":535,"line":1552},[533,21352,20737],{"class":543},[533,21354,12852],{"class":560},[533,21356,20742],{"class":543},[533,21358,2808],{"class":553},[533,21360,11938],{"class":625},[533,21362,11314],{"class":543},[533,21364,554],{"class":553},[533,21366,16932],{"class":625},[533,21368,21369,21371,21373,21375,21377,21379],{"class":535,"line":1911},[533,21370,20757],{"class":543},[533,21372,554],{"class":553},[533,21374,19611],{"class":560},[533,21376,615],{"class":543},[533,21378,15006],{"class":553},[533,21380,20768],{"class":543},[533,21382,21383,21385,21387,21389,21391,21393,21395,21397,21399,21401],{"class":535,"line":1940},[533,21384,20773],{"class":543},[533,21386,554],{"class":553},[533,21388,19628],{"class":560},[533,21390,615],{"class":543},[533,21392,15006],{"class":553},[533,21394,20784],{"class":543},[533,21396,19638],{"class":567},[533,21398,554],{"class":553},[533,21400,14323],{"class":625},[533,21402,637],{"class":543},[533,21404,21405,21407,21409,21411,21413,21415,21417],{"class":535,"line":1968},[533,21406,20797],{"class":543},[533,21408,554],{"class":553},[533,21410,6353],{"class":625},[533,21412,11903],{"class":553},[533,21414,2911],{"class":543},[533,21416,19660],{"class":560},[533,21418,20732],{"class":543},[533,21420,21421],{"class":535,"line":1995},[533,21422,891],{"emptyLinePlaceholder":790},[533,21424,21425],{"class":535,"line":4164},[533,21426,18131],{"class":593},[533,21428,21429,21431,21433],{"class":535,"line":4199},[533,21430,17153],{"class":543},[533,21432,554],{"class":553},[533,21434,16942],{"class":625},[533,21436,21437,21439,21441,21443],{"class":535,"line":4206},[533,21438,17779],{"class":543},[533,21440,554],{"class":553},[533,21442,17784],{"class":625},[533,21444,17787],{"class":593},[533,21446,21447,21449,21451,21453,21455,21457,21459,21461,21463,21465,21467,21469,21471,21473],{"class":535,"line":4214},[533,21448,17877],{"class":543},[533,21450,554],{"class":553},[533,21452,17218],{"class":543},[533,21454,2469],{"class":553},[533,21456,2911],{"class":543},[533,21458,14336],{"class":560},[533,21460,615],{"class":543},[533,21462,1140],{"class":625},[533,21464,2254],{"class":553},[533,21466,17896],{"class":543},[533,21468,2469],{"class":553},[533,21470,17901],{"class":543},[533,21472,2469],{"class":553},[533,21474,17906],{"class":543},[533,21476,21477],{"class":535,"line":11296},[533,21478,891],{"emptyLinePlaceholder":790},[533,21480,21481],{"class":535,"line":11302},[533,21482,20874],{"class":593},[533,21484,21485,21487,21489,21491,21493],{"class":535,"line":11332},[533,21486,20879],{"class":543},[533,21488,554],{"class":553},[533,21490,20884],{"class":543},[533,21492,20887],{"class":621},[533,21494,19687],{"class":543},[533,21496,21497,21500,21502,21504,21506],{"class":535,"line":11345},[533,21498,21499],{"class":543},"                   (sin2_modulated_sine, ",[533,21501,19695],{"class":621},[533,21503,19698],{"class":625},[533,21505,20901],{"class":621},[533,21507,19687],{"class":543},[533,21509,21510,21513,21515,21517,21519],{"class":535,"line":11372},[533,21511,21512],{"class":543},"                   (cos2_modulated_sine, ",[533,21514,19711],{"class":621},[533,21516,19698],{"class":625},[533,21518,20901],{"class":621},[533,21520,19687],{"class":543},[533,21522,21523,21526,21528],{"class":535,"line":11385},[533,21524,21525],{"class":543},"                   (rectangular_modulated_sine, ",[533,21527,20924],{"class":621},[533,21529,19687],{"class":543},[533,21531,21532,21535,21537],{"class":535,"line":11390},[533,21533,21534],{"class":543},"                   (blackman_harris_modulated_sine, ",[533,21536,20934],{"class":621},[533,21538,19687],{"class":543},[533,21540,21541,21544,21546],{"class":535,"line":11402},[533,21542,21543],{"class":543},"                   (tukey_modulated_sine, ",[533,21545,20944],{"class":621},[533,21547,19687],{"class":543},[533,21549,21550,21553,21555],{"class":535,"line":11407},[533,21551,21552],{"class":543},"                   (sech_modulated_sine, ",[533,21554,20954],{"class":621},[533,21556,19758],{"class":543},[533,21558,21559],{"class":535,"line":11412},[533,21560,891],{"emptyLinePlaceholder":790},[533,21562,21563],{"class":535,"line":11418},[533,21564,19767],{"class":593},[533,21566,21567,21569,21571,21573,21575,21577,21579,21581,21583,21585,21587,21589,21591,21593,21595,21597],{"class":535,"line":11423},[533,21568,19772],{"class":543},[533,21570,554],{"class":553},[533,21572,19777],{"class":543},[533,21574,19780],{"class":560},[533,21576,615],{"class":543},[533,21578,1157],{"class":625},[533,21580,1133],{"class":543},[533,21582,1157],{"class":625},[533,21584,1133],{"class":543},[533,21586,12901],{"class":567},[533,21588,554],{"class":553},[533,21590,615],{"class":543},[533,21592,19799],{"class":625},[533,21594,1133],{"class":543},[533,21596,19804],{"class":625},[533,21598,1937],{"class":543},[533,21600,21601,21603,21605,21607,21609],{"class":535,"line":11467},[533,21602,19811],{"class":543},[533,21604,554],{"class":553},[533,21606,19816],{"class":543},[533,21608,19819],{"class":560},[533,21610,1217],{"class":543},[533,21612,21613],{"class":535,"line":11473},[533,21614,891],{"emptyLinePlaceholder":790},[533,21616,21617,21619,21621,21623,21625],{"class":535,"line":11488},[533,21618,3180],{"class":539},[533,21620,21021],{"class":543},[533,21622,2786],{"class":539},[533,21624,13380],{"class":553},[533,21626,21028],{"class":543},[533,21628,21629,21631,21633,21635,21637],{"class":535,"line":11505},[533,21630,21033],{"class":543},[533,21632,554],{"class":553},[533,21634,21038],{"class":543},[533,21636,2469],{"class":553},[533,21638,17930],{"class":543},[533,21640,21641,21643,21645,21647,21649],{"class":535,"line":11518},[533,21642,19844],{"class":543},[533,21644,12932],{"class":560},[533,21646,21051],{"class":543},[533,21648,19852],{"class":621},[533,21650,637],{"class":543},[533,21652,21653,21655,21657,21660,21663,21665,21667,21669,21672,21674,21676,21678,21680],{"class":535,"line":11523},[533,21654,19844],{"class":543},[533,21656,12932],{"class":560},[533,21658,21659],{"class":543},"(time, modulated_sine, ",[533,21661,21662],{"class":621},"'r'",[533,21664,1133],{"class":543},[533,21666,12684],{"class":567},[533,21668,554],{"class":553},[533,21670,21671],{"class":621},"'--'",[533,21673,1133],{"class":543},[533,21675,12942],{"class":567},[533,21677,554],{"class":553},[533,21679,18909],{"class":621},[533,21681,637],{"class":543},[533,21683,21684,21686,21688],{"class":535,"line":11555},[533,21685,19844],{"class":543},[533,21687,19861],{"class":560},[533,21689,19864],{"class":543},[533,21691,21692,21694,21696,21698,21700],{"class":535,"line":11561},[533,21693,19844],{"class":543},[533,21695,19871],{"class":560},[533,21697,615],{"class":543},[533,21699,19876],{"class":621},[533,21701,637],{"class":543},[533,21703,21704,21706,21708,21710,21712],{"class":535,"line":11577},[533,21705,19844],{"class":543},[533,21707,19885],{"class":560},[533,21709,615],{"class":543},[533,21711,19890],{"class":621},[533,21713,637],{"class":543},[533,21715,21716,21718,21720],{"class":535,"line":11600},[533,21717,19844],{"class":543},[533,21719,13110],{"class":560},[533,21721,1217],{"class":543},[533,21723,21724],{"class":535,"line":11621},[533,21725,891],{"emptyLinePlaceholder":790},[533,21727,21728],{"class":535,"line":11637},[533,21729,19906],{"class":593},[533,21731,21732,21734,21736,21738,21740,21742,21744,21746,21748,21750],{"class":535,"line":11672},[533,21733,3180],{"class":539},[533,21735,19913],{"class":543},[533,21737,2786],{"class":539},[533,21739,2976],{"class":553},[533,21741,19920],{"class":543},[533,21743,6350],{"class":553},[533,21745,6353],{"class":625},[533,21747,1133],{"class":543},[533,21749,15006],{"class":553},[533,21751,19931],{"class":543},[533,21753,21754,21756,21758],{"class":535,"line":11689},[533,21755,19936],{"class":543},[533,21757,19939],{"class":560},[533,21759,19942],{"class":543},[533,21761,21762],{"class":535,"line":11697},[533,21763,891],{"emptyLinePlaceholder":790},[533,21765,21766,21768,21770],{"class":535,"line":11734},[533,21767,12893],{"class":543},[533,21769,19953],{"class":560},[533,21771,1217],{"class":543},[533,21773,21774,21776,21778],{"class":535,"line":11766},[533,21775,12893],{"class":543},[533,21777,13120],{"class":560},[533,21779,1217],{"class":543},[2175,21781],{"alt":21782,"src":21783},"Output 12 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-12.webp",[12,21785,21786],{},"Below are some applied examples in the context of common quantum gates.",[12,21788,21789,21790,21793],{},"Relevant equations for the ",[974,21791,21792],{},"modulated Gaussian pulses"," used in the plots for some common quantum gates:",[3552,21795,21797],{"id":21796},"_1-gaussian-envelope",[974,21798,21799],{},"1. Gaussian Envelope",[12,21801,21802,21803,22189],{},"The Gaussian envelope is used to smoothly shape the pulse to minimize spectral leakage:\n",[533,21804,21806,21884],{"className":21805},[9443],[533,21807,21809],{"className":21808},[9447],[9174,21810,21811],{"xmlns":9450},[9452,21812,21813,21881],{},[9455,21814,21815,21818,21820,21822,21824,21826,21832,21834,21837],{},[9461,21816,21817],{},"A",[9958,21819,615],{"stretchy":9960},[9461,21821,9582],{},[9958,21823,2632],{"stretchy":9960},[9958,21825,554],{},[9458,21827,21828,21830],{},[9461,21829,21817],{},[10856,21831,1049],{},[9461,21833,16247],{},[9958,21835,21836],{},"⁡",[9455,21838,21839,21841,21844,21879],{},[9958,21840,615],{"fence":1089},[9958,21842,21843],{},"−",[21845,21846,21847,21868],"mfrac",{},[9455,21848,21849,21851,21853,21855,21861],{},[9958,21850,615],{"stretchy":9960},[9461,21852,9582],{},[9958,21854,21843],{},[9458,21856,21857,21859],{},[9461,21858,9582],{},[10856,21860,1049],{},[21862,21863,21864,21866],"msup",{},[9958,21865,2632],{"stretchy":9960},[10856,21867,1140],{},[9455,21869,21870,21872],{},[10856,21871,1140],{},[21862,21873,21874,21877],{},[9461,21875,21876],{},"σ",[10856,21878,1140],{},[9958,21880,2632],{"fence":1089},[9473,21882,21883],{"encoding":9475},"A(t) = A_0 \\exp\\left(-\\frac{(t - t_0)^2}{2\\sigma^2}\\right)",[533,21885,21887,21916],{"className":21886,"ariaHidden":1089},[9480],[533,21888,21890,21893,21896,21899,21902,21905,21909,21913],{"className":21889},[9484],[533,21891],{"className":21892,"style":9998},[9488],[533,21894,21817],{"className":21895},[9493,9497],[533,21897,615],{"className":21898},[10002],[533,21900,9582],{"className":21901},[9493,9497],[533,21903,2632],{"className":21904},[10101],[533,21906],{"className":21907,"style":21908},[10348],"margin-right:0.2778em;",[533,21910,554],{"className":21911},[21912],"mrel",[533,21914],{"className":21915,"style":21908},[10348],[533,21917,21919,21923,21964,21967,21971,21974],{"className":21918},[9484],[533,21920],{"className":21921,"style":21922},[9488],"height:1.8em;vertical-align:-0.65em;",[533,21924,21926,21929],{"className":21925},[9493],[533,21927,21817],{"className":21928},[9493,9497],[533,21930,21932],{"className":21931},[9502],[533,21933,21935,21956],{"className":21934},[9506,9507],[533,21936,21938,21953],{"className":21937},[9511],[533,21939,21942],{"className":21940,"style":21941},[9515],"height:0.3011em;",[533,21943,21944,21947],{"style":9617},[533,21945],{"className":21946,"style":9524},[9523],[533,21948,21950],{"className":21949},[9528,9529,9530,9531],[533,21951,1049],{"className":21952},[9493,9531],[533,21954,1090],{"className":21955},[9546],[533,21957,21959],{"className":21958},[9511],[533,21960,21962],{"className":21961,"style":9553},[9515],[533,21963],{},[533,21965],{"className":21966,"style":10349},[10348],[533,21968,16247],{"className":21969},[21970],"mop",[533,21972],{"className":21973,"style":10349},[10348],[533,21975,21978,21988,21991,22183],{"className":21976},[21977],"minner",[533,21979,21983],{"className":21980,"style":21982},[10002,21981],"delimcenter","top:0em;",[533,21984,615],{"className":21985},[21986,21987],"delimsizing","size2",[533,21989,21843],{"className":21990},[9493],[533,21992,21994,21998,22180],{"className":21993},[9493],[533,21995],{"className":21996},[10002,21997],"nulldelimiter",[533,21999,22001],{"className":22000},[21845],[533,22002,22004,22171],{"className":22003},[9506,9507],[533,22005,22007,22168],{"className":22006},[9511],[533,22008,22011,22061,22072],{"className":22009,"style":22010},[9515],"height:1.1089em;",[533,22012,22014,22018],{"style":22013},"top:-2.655em;",[533,22015],{"className":22016,"style":22017},[9523],"height:3em;",[533,22019,22021],{"className":22020},[9528,9529,9530,9531],[533,22022,22024,22027],{"className":22023},[9493,9531],[533,22025,1140],{"className":22026},[9493,9531],[533,22028,22030,22033],{"className":22029},[9493,9531],[533,22031,21876],{"className":22032,"style":9498},[9493,9497,9531],[533,22034,22036],{"className":22035},[9502],[533,22037,22039],{"className":22038},[9506],[533,22040,22042],{"className":22041},[9511],[533,22043,22046],{"className":22044,"style":22045},[9515],"height:0.7463em;",[533,22047,22049,22053],{"style":22048},"top:-2.786em;margin-right:0.0714em;",[533,22050],{"className":22051,"style":22052},[9523],"height:2.5em;",[533,22054,22058],{"className":22055},[9528,22056,22057,9531],"reset-size3","size1",[533,22059,1140],{"className":22060},[9493,9531],[533,22062,22064,22067],{"style":22063},"top:-3.23em;",[533,22065],{"className":22066,"style":22017},[9523],[533,22068],{"className":22069,"style":22071},[22070],"frac-line","border-bottom-width:0.04em;",[533,22073,22075,22078],{"style":22074},"top:-3.485em;",[533,22076],{"className":22077,"style":22017},[9523],[533,22079,22081],{"className":22080},[9528,9529,9530,9531],[533,22082,22084,22087,22090,22094,22137],{"className":22083},[9493,9531],[533,22085,615],{"className":22086},[10002,9531],[533,22088,9582],{"className":22089},[9493,9497,9531],[533,22091,21843],{"className":22092},[22093,9531],"mbin",[533,22095,22097,22100],{"className":22096},[9493,9531],[533,22098,9582],{"className":22099},[9493,9497,9531],[533,22101,22103],{"className":22102},[9502],[533,22104,22106,22128],{"className":22105},[9506,9507],[533,22107,22109,22125],{"className":22108},[9511],[533,22110,22113],{"className":22111,"style":22112},[9515],"height:0.3173em;",[533,22114,22116,22119],{"style":22115},"top:-2.357em;margin-left:0em;margin-right:0.0714em;",[533,22117],{"className":22118,"style":22052},[9523],[533,22120,22122],{"className":22121},[9528,22056,22057,9531],[533,22123,1049],{"className":22124},[9493,9531],[533,22126,1090],{"className":22127},[9546],[533,22129,22131],{"className":22130},[9511],[533,22132,22135],{"className":22133,"style":22134},[9515],"height:0.143em;",[533,22136],{},[533,22138,22140,22143],{"className":22139},[10101,9531],[533,22141,2632],{"className":22142},[10101,9531],[533,22144,22146],{"className":22145},[9502],[533,22147,22149],{"className":22148},[9506],[533,22150,22152],{"className":22151},[9511],[533,22153,22156],{"className":22154,"style":22155},[9515],"height:0.8913em;",[533,22157,22159,22162],{"style":22158},"top:-2.931em;margin-right:0.0714em;",[533,22160],{"className":22161,"style":22052},[9523],[533,22163,22165],{"className":22164},[9528,22056,22057,9531],[533,22166,1140],{"className":22167},[9493,9531],[533,22169,1090],{"className":22170},[9546],[533,22172,22174],{"className":22173},[9511],[533,22175,22178],{"className":22176,"style":22177},[9515],"height:0.345em;",[533,22179],{},[533,22181],{"className":22182},[10101,21997],[533,22184,22186],{"className":22185,"style":21982},[10101,21981],[533,22187,2632],{"className":22188},[21986,21987],"\nwhere:",[753,22191,22192,22275,22358],{},[756,22193,22194,22274],{},[533,22195,22197,22219],{"className":22196},[9443],[533,22198,22200],{"className":22199},[9447],[9174,22201,22202],{"xmlns":9450},[9452,22203,22204,22216],{},[9455,22205,22206,22208,22214],{},[9958,22207,615],{"stretchy":9960},[9458,22209,22210,22212],{},[9461,22211,21817],{},[10856,22213,1049],{},[9958,22215,2632],{"stretchy":9960},[9473,22217,22218],{"encoding":9475},"( A_0 )",[533,22220,22222],{"className":22221,"ariaHidden":1089},[9480],[533,22223,22225,22228,22231,22271],{"className":22224},[9484],[533,22226],{"className":22227,"style":9998},[9488],[533,22229,615],{"className":22230},[10002],[533,22232,22234,22237],{"className":22233},[9493],[533,22235,21817],{"className":22236},[9493,9497],[533,22238,22240],{"className":22239},[9502],[533,22241,22243,22263],{"className":22242},[9506,9507],[533,22244,22246,22260],{"className":22245},[9511],[533,22247,22249],{"className":22248,"style":21941},[9515],[533,22250,22251,22254],{"style":9617},[533,22252],{"className":22253,"style":9524},[9523],[533,22255,22257],{"className":22256},[9528,9529,9530,9531],[533,22258,1049],{"className":22259},[9493,9531],[533,22261,1090],{"className":22262},[9546],[533,22264,22266],{"className":22265},[9511],[533,22267,22269],{"className":22268,"style":9553},[9515],[533,22270],{},[533,22272,2632],{"className":22273},[10101]," is the peak amplitude,",[756,22276,22277,22357],{},[533,22278,22280,22302],{"className":22279},[9443],[533,22281,22283],{"className":22282},[9447],[9174,22284,22285],{"xmlns":9450},[9452,22286,22287,22299],{},[9455,22288,22289,22291,22297],{},[9958,22290,615],{"stretchy":9960},[9458,22292,22293,22295],{},[9461,22294,9582],{},[10856,22296,1049],{},[9958,22298,2632],{"stretchy":9960},[9473,22300,22301],{"encoding":9475},"( t_0 )",[533,22303,22305],{"className":22304,"ariaHidden":1089},[9480],[533,22306,22308,22311,22314,22354],{"className":22307},[9484],[533,22309],{"className":22310,"style":9998},[9488],[533,22312,615],{"className":22313},[10002],[533,22315,22317,22320],{"className":22316},[9493],[533,22318,9582],{"className":22319},[9493,9497],[533,22321,22323],{"className":22322},[9502],[533,22324,22326,22346],{"className":22325},[9506,9507],[533,22327,22329,22343],{"className":22328},[9511],[533,22330,22332],{"className":22331,"style":21941},[9515],[533,22333,22334,22337],{"style":9617},[533,22335],{"className":22336,"style":9524},[9523],[533,22338,22340],{"className":22339},[9528,9529,9530,9531],[533,22341,1049],{"className":22342},[9493,9531],[533,22344,1090],{"className":22345},[9546],[533,22347,22349],{"className":22348},[9511],[533,22350,22352],{"className":22351,"style":9553},[9515],[533,22353],{},[533,22355,2632],{"className":22356},[10101]," is the pulse center,",[756,22359,22360,22399],{},[533,22361,22363,22381],{"className":22362},[9443],[533,22364,22366],{"className":22365},[9447],[9174,22367,22368],{"xmlns":9450},[9452,22369,22370,22378],{},[9455,22371,22372,22374,22376],{},[9958,22373,615],{"stretchy":9960},[9461,22375,21876],{},[9958,22377,2632],{"stretchy":9960},[9473,22379,22380],{"encoding":9475},"( \\sigma )",[533,22382,22384],{"className":22383,"ariaHidden":1089},[9480],[533,22385,22387,22390,22393,22396],{"className":22386},[9484],[533,22388],{"className":22389,"style":9998},[9488],[533,22391,615],{"className":22392},[10002],[533,22394,21876],{"className":22395,"style":9498},[9493,9497],[533,22397,2632],{"className":22398},[10101]," determines the width of the pulse.",[3552,22401,22403],{"id":22402},"_2-modulated-pulse-for-pauli-x-gate",[974,22404,22405],{},"2. Modulated Pulse for Pauli-X Gate",[12,22407,4657,22408,22411,22412,544,22415,22189],{},[974,22409,22410],{},"Pauli-X gate"," is implemented with a ",[974,22413,22414],{},"zero-phase cosine modulation",[533,22416,22418,22525],{"className":22417},[9443],[533,22419,22421],{"className":22420},[9447],[9174,22422,22423],{"xmlns":9450},[9452,22424,22425,22522],{},[9455,22426,22427,22434,22436,22438,22440,22442,22448,22450,22452,22492,22494,22496,22498,22500,22503,22509,22511,22513,22520],{},[9458,22428,22429,22432],{},[9461,22430,22431],{},"E",[9461,22433,9471],{},[9958,22435,615],{"stretchy":9960},[9461,22437,9582],{},[9958,22439,2632],{"stretchy":9960},[9958,22441,554],{},[9458,22443,22444,22446],{},[9461,22445,21817],{},[10856,22447,1049],{},[9461,22449,16247],{},[9958,22451,21836],{},[9455,22453,22454,22456,22458,22490],{},[9958,22455,615],{"fence":1089},[9958,22457,21843],{},[21845,22459,22460,22480],{},[9455,22461,22462,22464,22466,22468,22474],{},[9958,22463,615],{"stretchy":9960},[9461,22465,9582],{},[9958,22467,21843],{},[9458,22469,22470,22472],{},[9461,22471,9582],{},[10856,22473,1049],{},[21862,22475,22476,22478],{},[9958,22477,2632],{"stretchy":9960},[10856,22479,1140],{},[9455,22481,22482,22484],{},[10856,22483,1140],{},[21862,22485,22486,22488],{},[9461,22487,21876],{},[10856,22489,1140],{},[9958,22491,2632],{"fence":1089},[9461,22493,14318],{},[9958,22495,21836],{},[9958,22497,615],{"stretchy":9960},[10856,22499,1140],{},[9461,22501,22502],{},"π",[9458,22504,22505,22507],{},[9461,22506,618],{},[9461,22508,9579],{},[9461,22510,9582],{},[9958,22512,6350],{},[9458,22514,22515,22518],{},[9461,22516,22517],{},"ϕ",[9461,22519,9471],{},[9958,22521,2632],{"stretchy":9960},[9473,22523,22524],{"encoding":9475},"E_X(t) = A_0 \\exp\\left(-\\frac{(t - t_0)^2}{2\\sigma^2}\\right) \\cos(2\\pi f_c t + \\phi_X)",[533,22526,22528,22594,22910],{"className":22527,"ariaHidden":1089},[9480],[533,22529,22531,22534,22576,22579,22582,22585,22588,22591],{"className":22530},[9484],[533,22532],{"className":22533,"style":9998},[9488],[533,22535,22537,22541],{"className":22536},[9493],[533,22538,22431],{"className":22539,"style":22540},[9493,9497],"margin-right:0.0576em;",[533,22542,22544],{"className":22543},[9502],[533,22545,22547,22568],{"className":22546},[9506,9507],[533,22548,22550,22565],{"className":22549},[9511],[533,22551,22553],{"className":22552,"style":9516},[9515],[533,22554,22556,22559],{"style":22555},"top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;",[533,22557],{"className":22558,"style":9524},[9523],[533,22560,22562],{"className":22561},[9528,9529,9530,9531],[533,22563,9471],{"className":22564,"style":9542},[9493,9497,9531],[533,22566,1090],{"className":22567},[9546],[533,22569,22571],{"className":22570},[9511],[533,22572,22574],{"className":22573,"style":9553},[9515],[533,22575],{},[533,22577,615],{"className":22578},[10002],[533,22580,9582],{"className":22581},[9493,9497],[533,22583,2632],{"className":22584},[10101],[533,22586],{"className":22587,"style":21908},[10348],[533,22589,554],{"className":22590},[21912],[533,22592],{"className":22593,"style":21908},[10348],[533,22595,22597,22600,22640,22643,22646,22649,22839,22842,22845,22848,22851,22854,22897,22900,22904,22907],{"className":22596},[9484],[533,22598],{"className":22599,"style":21922},[9488],[533,22601,22603,22606],{"className":22602},[9493],[533,22604,21817],{"className":22605},[9493,9497],[533,22607,22609],{"className":22608},[9502],[533,22610,22612,22632],{"className":22611},[9506,9507],[533,22613,22615,22629],{"className":22614},[9511],[533,22616,22618],{"className":22617,"style":21941},[9515],[533,22619,22620,22623],{"style":9617},[533,22621],{"className":22622,"style":9524},[9523],[533,22624,22626],{"className":22625},[9528,9529,9530,9531],[533,22627,1049],{"className":22628},[9493,9531],[533,22630,1090],{"className":22631},[9546],[533,22633,22635],{"className":22634},[9511],[533,22636,22638],{"className":22637,"style":9553},[9515],[533,22639],{},[533,22641],{"className":22642,"style":10349},[10348],[533,22644,16247],{"className":22645},[21970],[533,22647],{"className":22648,"style":10349},[10348],[533,22650,22652,22658,22661,22833],{"className":22651},[21977],[533,22653,22655],{"className":22654,"style":21982},[10002,21981],[533,22656,615],{"className":22657},[21986,21987],[533,22659,21843],{"className":22660},[9493],[533,22662,22664,22667,22830],{"className":22663},[9493],[533,22665],{"className":22666},[10002,21997],[533,22668,22670],{"className":22669},[21845],[533,22671,22673,22822],{"className":22672},[9506,9507],[533,22674,22676,22819],{"className":22675},[9511],[533,22677,22679,22722,22730],{"className":22678,"style":22010},[9515],[533,22680,22681,22684],{"style":22013},[533,22682],{"className":22683,"style":22017},[9523],[533,22685,22687],{"className":22686},[9528,9529,9530,9531],[533,22688,22690,22693],{"className":22689},[9493,9531],[533,22691,1140],{"className":22692},[9493,9531],[533,22694,22696,22699],{"className":22695},[9493,9531],[533,22697,21876],{"className":22698,"style":9498},[9493,9497,9531],[533,22700,22702],{"className":22701},[9502],[533,22703,22705],{"className":22704},[9506],[533,22706,22708],{"className":22707},[9511],[533,22709,22711],{"className":22710,"style":22045},[9515],[533,22712,22713,22716],{"style":22048},[533,22714],{"className":22715,"style":22052},[9523],[533,22717,22719],{"className":22718},[9528,22056,22057,9531],[533,22720,1140],{"className":22721},[9493,9531],[533,22723,22724,22727],{"style":22063},[533,22725],{"className":22726,"style":22017},[9523],[533,22728],{"className":22729,"style":22071},[22070],[533,22731,22732,22735],{"style":22074},[533,22733],{"className":22734,"style":22017},[9523],[533,22736,22738],{"className":22737},[9528,9529,9530,9531],[533,22739,22741,22744,22747,22750,22790],{"className":22740},[9493,9531],[533,22742,615],{"className":22743},[10002,9531],[533,22745,9582],{"className":22746},[9493,9497,9531],[533,22748,21843],{"className":22749},[22093,9531],[533,22751,22753,22756],{"className":22752},[9493,9531],[533,22754,9582],{"className":22755},[9493,9497,9531],[533,22757,22759],{"className":22758},[9502],[533,22760,22762,22782],{"className":22761},[9506,9507],[533,22763,22765,22779],{"className":22764},[9511],[533,22766,22768],{"className":22767,"style":22112},[9515],[533,22769,22770,22773],{"style":22115},[533,22771],{"className":22772,"style":22052},[9523],[533,22774,22776],{"className":22775},[9528,22056,22057,9531],[533,22777,1049],{"className":22778},[9493,9531],[533,22780,1090],{"className":22781},[9546],[533,22783,22785],{"className":22784},[9511],[533,22786,22788],{"className":22787,"style":22134},[9515],[533,22789],{},[533,22791,22793,22796],{"className":22792},[10101,9531],[533,22794,2632],{"className":22795},[10101,9531],[533,22797,22799],{"className":22798},[9502],[533,22800,22802],{"className":22801},[9506],[533,22803,22805],{"className":22804},[9511],[533,22806,22808],{"className":22807,"style":22155},[9515],[533,22809,22810,22813],{"style":22158},[533,22811],{"className":22812,"style":22052},[9523],[533,22814,22816],{"className":22815},[9528,22056,22057,9531],[533,22817,1140],{"className":22818},[9493,9531],[533,22820,1090],{"className":22821},[9546],[533,22823,22825],{"className":22824},[9511],[533,22826,22828],{"className":22827,"style":22177},[9515],[533,22829],{},[533,22831],{"className":22832},[10101,21997],[533,22834,22836],{"className":22835,"style":21982},[10101,21981],[533,22837,2632],{"className":22838},[21986,21987],[533,22840],{"className":22841,"style":10349},[10348],[533,22843,14318],{"className":22844},[21970],[533,22846,615],{"className":22847},[10002],[533,22849,1140],{"className":22850},[9493],[533,22852,22502],{"className":22853,"style":9498},[9493,9497],[533,22855,22857,22861],{"className":22856},[9493],[533,22858,618],{"className":22859,"style":22860},[9493,9497],"margin-right:0.1076em;",[533,22862,22864],{"className":22863},[9502],[533,22865,22867,22889],{"className":22866},[9506,9507],[533,22868,22870,22886],{"className":22869},[9511],[533,22871,22874],{"className":22872,"style":22873},[9515],"height:0.1514em;",[533,22875,22877,22880],{"style":22876},"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em;",[533,22878],{"className":22879,"style":9524},[9523],[533,22881,22883],{"className":22882},[9528,9529,9530,9531],[533,22884,9579],{"className":22885},[9493,9497,9531],[533,22887,1090],{"className":22888},[9546],[533,22890,22892],{"className":22891},[9511],[533,22893,22895],{"className":22894,"style":9553},[9515],[533,22896],{},[533,22898,9582],{"className":22899},[9493,9497],[533,22901],{"className":22902,"style":22903},[10348],"margin-right:0.2222em;",[533,22905,6350],{"className":22906},[22093],[533,22908],{"className":22909,"style":22903},[10348],[533,22911,22913,22916,22956],{"className":22912},[9484],[533,22914],{"className":22915,"style":9998},[9488],[533,22917,22919,22922],{"className":22918},[9493],[533,22920,22517],{"className":22921},[9493,9497],[533,22923,22925],{"className":22924},[9502],[533,22926,22928,22948],{"className":22927},[9506,9507],[533,22929,22931,22945],{"className":22930},[9511],[533,22932,22934],{"className":22933,"style":9516},[9515],[533,22935,22936,22939],{"style":9617},[533,22937],{"className":22938,"style":9524},[9523],[533,22940,22942],{"className":22941},[9528,9529,9530,9531],[533,22943,9471],{"className":22944,"style":9542},[9493,9497,9531],[533,22946,1090],{"className":22947},[9546],[533,22949,22951],{"className":22950},[9511],[533,22952,22954],{"className":22953,"style":9553},[9515],[533,22955],{},[533,22957,2632],{"className":22958},[10101],[753,22960,22961,23044,23152],{},[756,22962,22963,23043],{},[533,22964,22966,22988],{"className":22965},[9443],[533,22967,22969],{"className":22968},[9447],[9174,22970,22971],{"xmlns":9450},[9452,22972,22973,22985],{},[9455,22974,22975,22977,22983],{},[9958,22976,615],{"stretchy":9960},[9458,22978,22979,22981],{},[9461,22980,618],{},[9461,22982,9579],{},[9958,22984,2632],{"stretchy":9960},[9473,22986,22987],{"encoding":9475},"( f_c )",[533,22989,22991],{"className":22990,"ariaHidden":1089},[9480],[533,22992,22994,22997,23000,23040],{"className":22993},[9484],[533,22995],{"className":22996,"style":9998},[9488],[533,22998,615],{"className":22999},[10002],[533,23001,23003,23006],{"className":23002},[9493],[533,23004,618],{"className":23005,"style":22860},[9493,9497],[533,23007,23009],{"className":23008},[9502],[533,23010,23012,23032],{"className":23011},[9506,9507],[533,23013,23015,23029],{"className":23014},[9511],[533,23016,23018],{"className":23017,"style":22873},[9515],[533,23019,23020,23023],{"style":22876},[533,23021],{"className":23022,"style":9524},[9523],[533,23024,23026],{"className":23025},[9528,9529,9530,9531],[533,23027,9579],{"className":23028},[9493,9497,9531],[533,23030,1090],{"className":23031},[9546],[533,23033,23035],{"className":23034},[9511],[533,23036,23038],{"className":23037,"style":9553},[9515],[533,23039],{},[533,23041,2632],{"className":23042},[10101]," is the carrier frequency (typically GHz range),",[756,23045,23046,23148,23149,114],{},[533,23047,23049,23075],{"className":23048},[9443],[533,23050,23052],{"className":23051},[9447],[9174,23053,23054],{"xmlns":9450},[9452,23055,23056,23072],{},[9455,23057,23058,23060,23066,23068,23070],{},[9958,23059,615],{"stretchy":9960},[9458,23061,23062,23064],{},[9461,23063,22517],{},[9461,23065,9471],{},[9958,23067,554],{},[10856,23069,1049],{},[9958,23071,2632],{"stretchy":9960},[9473,23073,23074],{"encoding":9475},"( \\phi_X = 0 )",[533,23076,23078,23136],{"className":23077,"ariaHidden":1089},[9480],[533,23079,23081,23084,23087,23127,23130,23133],{"className":23080},[9484],[533,23082],{"className":23083,"style":9998},[9488],[533,23085,615],{"className":23086},[10002],[533,23088,23090,23093],{"className":23089},[9493],[533,23091,22517],{"className":23092},[9493,9497],[533,23094,23096],{"className":23095},[9502],[533,23097,23099,23119],{"className":23098},[9506,9507],[533,23100,23102,23116],{"className":23101},[9511],[533,23103,23105],{"className":23104,"style":9516},[9515],[533,23106,23107,23110],{"style":9617},[533,23108],{"className":23109,"style":9524},[9523],[533,23111,23113],{"className":23112},[9528,9529,9530,9531],[533,23114,9471],{"className":23115,"style":9542},[9493,9497,9531],[533,23117,1090],{"className":23118},[9546],[533,23120,23122],{"className":23121},[9511],[533,23123,23125],{"className":23124,"style":9553},[9515],[533,23126],{},[533,23128],{"className":23129,"style":21908},[10348],[533,23131,554],{"className":23132},[21912],[533,23134],{"className":23135,"style":21908},[10348],[533,23137,23139,23142,23145],{"className":23138},[9484],[533,23140],{"className":23141,"style":9998},[9488],[533,23143,1049],{"className":23144},[9493],[533,23146,2632],{"className":23147},[10101]," for an ",[974,23150,23151],{},"X gate",[756,23153,23154,23155,23158],{},"The modulation is centered at the qubit frequency with ",[974,23156,23157],{},"zero phase shift",", leading to a cosine-like oscillation.",[3552,23160,23162],{"id":23161},"_3-modulated-pulse-for-pauli-y-gate",[974,23163,23164],{},"3. Modulated Pulse for Pauli-Y Gate",[12,23166,4657,23167,22411,23170,544,23220,22189],{},[974,23168,23169],{},"Pauli-Y gate",[974,23171,23172,23219],{},[533,23173,23175,23197],{"className":23174},[9443],[533,23176,23178],{"className":23177},[9447],[9174,23179,23180],{"xmlns":9450},[9452,23181,23182,23194],{},[9455,23183,23184,23186,23188,23190,23192],{},[9958,23185,615],{"stretchy":9960},[9461,23187,22502],{},[9461,23189,2941],{"mathvariant":9573},[10856,23191,1140],{},[9958,23193,2632],{"stretchy":9960},[9473,23195,23196],{"encoding":9475},"(\\pi\u002F2)",[533,23198,23200],{"className":23199,"ariaHidden":1089},[9480],[533,23201,23203,23206,23209,23212,23216],{"className":23202},[9484],[533,23204],{"className":23205,"style":9998},[9488],[533,23207,615],{"className":23208},[10002],[533,23210,22502],{"className":23211,"style":9498},[9493,9497],[533,23213,23215],{"className":23214},[9493],"\u002F2",[533,23217,2632],{"className":23218},[10101]," phase-shifted cosine modulation",[533,23221,23223,23328],{"className":23222},[9443],[533,23224,23226],{"className":23225},[9447],[9174,23227,23228],{"xmlns":9450},[9452,23229,23230,23325],{},[9455,23231,23232,23239,23241,23243,23245,23247,23253,23255,23257,23297,23299,23301,23303,23305,23307,23313,23315,23317,23323],{},[9458,23233,23234,23236],{},[9461,23235,22431],{},[9461,23237,23238],{},"Y",[9958,23240,615],{"stretchy":9960},[9461,23242,9582],{},[9958,23244,2632],{"stretchy":9960},[9958,23246,554],{},[9458,23248,23249,23251],{},[9461,23250,21817],{},[10856,23252,1049],{},[9461,23254,16247],{},[9958,23256,21836],{},[9455,23258,23259,23261,23263,23295],{},[9958,23260,615],{"fence":1089},[9958,23262,21843],{},[21845,23264,23265,23285],{},[9455,23266,23267,23269,23271,23273,23279],{},[9958,23268,615],{"stretchy":9960},[9461,23270,9582],{},[9958,23272,21843],{},[9458,23274,23275,23277],{},[9461,23276,9582],{},[10856,23278,1049],{},[21862,23280,23281,23283],{},[9958,23282,2632],{"stretchy":9960},[10856,23284,1140],{},[9455,23286,23287,23289],{},[10856,23288,1140],{},[21862,23290,23291,23293],{},[9461,23292,21876],{},[10856,23294,1140],{},[9958,23296,2632],{"fence":1089},[9461,23298,14318],{},[9958,23300,21836],{},[9958,23302,615],{"stretchy":9960},[10856,23304,1140],{},[9461,23306,22502],{},[9458,23308,23309,23311],{},[9461,23310,618],{},[9461,23312,9579],{},[9461,23314,9582],{},[9958,23316,6350],{},[9458,23318,23319,23321],{},[9461,23320,22517],{},[9461,23322,23238],{},[9958,23324,2632],{"stretchy":9960},[9473,23326,23327],{"encoding":9475},"E_Y(t) = A_0 \\exp\\left(-\\frac{(t - t_0)^2}{2\\sigma^2}\\right) \\cos(2\\pi f_c t + \\phi_Y)",[533,23329,23331,23395,23707],{"className":23330,"ariaHidden":1089},[9480],[533,23332,23334,23337,23377,23380,23383,23386,23389,23392],{"className":23333},[9484],[533,23335],{"className":23336,"style":9998},[9488],[533,23338,23340,23343],{"className":23339},[9493],[533,23341,22431],{"className":23342,"style":22540},[9493,9497],[533,23344,23346],{"className":23345},[9502],[533,23347,23349,23369],{"className":23348},[9506,9507],[533,23350,23352,23366],{"className":23351},[9511],[533,23353,23355],{"className":23354,"style":9516},[9515],[533,23356,23357,23360],{"style":22555},[533,23358],{"className":23359,"style":9524},[9523],[533,23361,23363],{"className":23362},[9528,9529,9530,9531],[533,23364,23238],{"className":23365,"style":22903},[9493,9497,9531],[533,23367,1090],{"className":23368},[9546],[533,23370,23372],{"className":23371},[9511],[533,23373,23375],{"className":23374,"style":9553},[9515],[533,23376],{},[533,23378,615],{"className":23379},[10002],[533,23381,9582],{"className":23382},[9493,9497],[533,23384,2632],{"className":23385},[10101],[533,23387],{"className":23388,"style":21908},[10348],[533,23390,554],{"className":23391},[21912],[533,23393],{"className":23394,"style":21908},[10348],[533,23396,23398,23401,23441,23444,23447,23450,23640,23643,23646,23649,23652,23655,23695,23698,23701,23704],{"className":23397},[9484],[533,23399],{"className":23400,"style":21922},[9488],[533,23402,23404,23407],{"className":23403},[9493],[533,23405,21817],{"className":23406},[9493,9497],[533,23408,23410],{"className":23409},[9502],[533,23411,23413,23433],{"className":23412},[9506,9507],[533,23414,23416,23430],{"className":23415},[9511],[533,23417,23419],{"className":23418,"style":21941},[9515],[533,23420,23421,23424],{"style":9617},[533,23422],{"className":23423,"style":9524},[9523],[533,23425,23427],{"className":23426},[9528,9529,9530,9531],[533,23428,1049],{"className":23429},[9493,9531],[533,23431,1090],{"className":23432},[9546],[533,23434,23436],{"className":23435},[9511],[533,23437,23439],{"className":23438,"style":9553},[9515],[533,23440],{},[533,23442],{"className":23443,"style":10349},[10348],[533,23445,16247],{"className":23446},[21970],[533,23448],{"className":23449,"style":10349},[10348],[533,23451,23453,23459,23462,23634],{"className":23452},[21977],[533,23454,23456],{"className":23455,"style":21982},[10002,21981],[533,23457,615],{"className":23458},[21986,21987],[533,23460,21843],{"className":23461},[9493],[533,23463,23465,23468,23631],{"className":23464},[9493],[533,23466],{"className":23467},[10002,21997],[533,23469,23471],{"className":23470},[21845],[533,23472,23474,23623],{"className":23473},[9506,9507],[533,23475,23477,23620],{"className":23476},[9511],[533,23478,23480,23523,23531],{"className":23479,"style":22010},[9515],[533,23481,23482,23485],{"style":22013},[533,23483],{"className":23484,"style":22017},[9523],[533,23486,23488],{"className":23487},[9528,9529,9530,9531],[533,23489,23491,23494],{"className":23490},[9493,9531],[533,23492,1140],{"className":23493},[9493,9531],[533,23495,23497,23500],{"className":23496},[9493,9531],[533,23498,21876],{"className":23499,"style":9498},[9493,9497,9531],[533,23501,23503],{"className":23502},[9502],[533,23504,23506],{"className":23505},[9506],[533,23507,23509],{"className":23508},[9511],[533,23510,23512],{"className":23511,"style":22045},[9515],[533,23513,23514,23517],{"style":22048},[533,23515],{"className":23516,"style":22052},[9523],[533,23518,23520],{"className":23519},[9528,22056,22057,9531],[533,23521,1140],{"className":23522},[9493,9531],[533,23524,23525,23528],{"style":22063},[533,23526],{"className":23527,"style":22017},[9523],[533,23529],{"className":23530,"style":22071},[22070],[533,23532,23533,23536],{"style":22074},[533,23534],{"className":23535,"style":22017},[9523],[533,23537,23539],{"className":23538},[9528,9529,9530,9531],[533,23540,23542,23545,23548,23551,23591],{"className":23541},[9493,9531],[533,23543,615],{"className":23544},[10002,9531],[533,23546,9582],{"className":23547},[9493,9497,9531],[533,23549,21843],{"className":23550},[22093,9531],[533,23552,23554,23557],{"className":23553},[9493,9531],[533,23555,9582],{"className":23556},[9493,9497,9531],[533,23558,23560],{"className":23559},[9502],[533,23561,23563,23583],{"className":23562},[9506,9507],[533,23564,23566,23580],{"className":23565},[9511],[533,23567,23569],{"className":23568,"style":22112},[9515],[533,23570,23571,23574],{"style":22115},[533,23572],{"className":23573,"style":22052},[9523],[533,23575,23577],{"className":23576},[9528,22056,22057,9531],[533,23578,1049],{"className":23579},[9493,9531],[533,23581,1090],{"className":23582},[9546],[533,23584,23586],{"className":23585},[9511],[533,23587,23589],{"className":23588,"style":22134},[9515],[533,23590],{},[533,23592,23594,23597],{"className":23593},[10101,9531],[533,23595,2632],{"className":23596},[10101,9531],[533,23598,23600],{"className":23599},[9502],[533,23601,23603],{"className":23602},[9506],[533,23604,23606],{"className":23605},[9511],[533,23607,23609],{"className":23608,"style":22155},[9515],[533,23610,23611,23614],{"style":22158},[533,23612],{"className":23613,"style":22052},[9523],[533,23615,23617],{"className":23616},[9528,22056,22057,9531],[533,23618,1140],{"className":23619},[9493,9531],[533,23621,1090],{"className":23622},[9546],[533,23624,23626],{"className":23625},[9511],[533,23627,23629],{"className":23628,"style":22177},[9515],[533,23630],{},[533,23632],{"className":23633},[10101,21997],[533,23635,23637],{"className":23636,"style":21982},[10101,21981],[533,23638,2632],{"className":23639},[21986,21987],[533,23641],{"className":23642,"style":10349},[10348],[533,23644,14318],{"className":23645},[21970],[533,23647,615],{"className":23648},[10002],[533,23650,1140],{"className":23651},[9493],[533,23653,22502],{"className":23654,"style":9498},[9493,9497],[533,23656,23658,23661],{"className":23657},[9493],[533,23659,618],{"className":23660,"style":22860},[9493,9497],[533,23662,23664],{"className":23663},[9502],[533,23665,23667,23687],{"className":23666},[9506,9507],[533,23668,23670,23684],{"className":23669},[9511],[533,23671,23673],{"className":23672,"style":22873},[9515],[533,23674,23675,23678],{"style":22876},[533,23676],{"className":23677,"style":9524},[9523],[533,23679,23681],{"className":23680},[9528,9529,9530,9531],[533,23682,9579],{"className":23683},[9493,9497,9531],[533,23685,1090],{"className":23686},[9546],[533,23688,23690],{"className":23689},[9511],[533,23691,23693],{"className":23692,"style":9553},[9515],[533,23694],{},[533,23696,9582],{"className":23697},[9493,9497],[533,23699],{"className":23700,"style":22903},[10348],[533,23702,6350],{"className":23703},[22093],[533,23705],{"className":23706,"style":22903},[10348],[533,23708,23710,23713,23753],{"className":23709},[9484],[533,23711],{"className":23712,"style":9998},[9488],[533,23714,23716,23719],{"className":23715},[9493],[533,23717,22517],{"className":23718},[9493,9497],[533,23720,23722],{"className":23721},[9502],[533,23723,23725,23745],{"className":23724},[9506,9507],[533,23726,23728,23742],{"className":23727},[9511],[533,23729,23731],{"className":23730,"style":9516},[9515],[533,23732,23733,23736],{"style":9617},[533,23734],{"className":23735,"style":9524},[9523],[533,23737,23739],{"className":23738},[9528,9529,9530,9531],[533,23740,23238],{"className":23741,"style":22903},[9493,9497,9531],[533,23743,1090],{"className":23744},[9546],[533,23746,23748],{"className":23747},[9511],[533,23749,23751],{"className":23750,"style":9553},[9515],[533,23752],{},[533,23754,2632],{"className":23755},[10101],[753,23757,23758,23935],{},[756,23759,23760,23934],{},[533,23761,23763,23793],{"className":23762},[9443],[533,23764,23766],{"className":23765},[9447],[9174,23767,23768],{"xmlns":9450},[9452,23769,23770,23790],{},[9455,23771,23772,23774,23780,23782,23788],{},[9958,23773,615],{"stretchy":9960},[9458,23775,23776,23778],{},[9461,23777,22517],{},[9461,23779,23238],{},[9958,23781,554],{},[21845,23783,23784,23786],{},[9461,23785,22502],{},[10856,23787,1140],{},[9958,23789,2632],{"stretchy":9960},[9473,23791,23792],{"encoding":9475},"( \\phi_Y = \\frac{\\pi}{2} )",[533,23794,23796,23854],{"className":23795,"ariaHidden":1089},[9480],[533,23797,23799,23802,23805,23845,23848,23851],{"className":23798},[9484],[533,23800],{"className":23801,"style":9998},[9488],[533,23803,615],{"className":23804},[10002],[533,23806,23808,23811],{"className":23807},[9493],[533,23809,22517],{"className":23810},[9493,9497],[533,23812,23814],{"className":23813},[9502],[533,23815,23817,23837],{"className":23816},[9506,9507],[533,23818,23820,23834],{"className":23819},[9511],[533,23821,23823],{"className":23822,"style":9516},[9515],[533,23824,23825,23828],{"style":9617},[533,23826],{"className":23827,"style":9524},[9523],[533,23829,23831],{"className":23830},[9528,9529,9530,9531],[533,23832,23238],{"className":23833,"style":22903},[9493,9497,9531],[533,23835,1090],{"className":23836},[9546],[533,23838,23840],{"className":23839},[9511],[533,23841,23843],{"className":23842,"style":9553},[9515],[533,23844],{},[533,23846],{"className":23847,"style":21908},[10348],[533,23849,554],{"className":23850},[21912],[533,23852],{"className":23853,"style":21908},[10348],[533,23855,23857,23861,23931],{"className":23856},[9484],[533,23858],{"className":23859,"style":23860},[9488],"height:1.095em;vertical-align:-0.345em;",[533,23862,23864,23867,23928],{"className":23863},[9493],[533,23865],{"className":23866},[10002,21997],[533,23868,23870],{"className":23869},[21845],[533,23871,23873,23920],{"className":23872},[9506,9507],[533,23874,23876,23917],{"className":23875},[9511],[533,23877,23880,23894,23902],{"className":23878,"style":23879},[9515],"height:0.6954em;",[533,23881,23882,23885],{"style":22013},[533,23883],{"className":23884,"style":22017},[9523],[533,23886,23888],{"className":23887},[9528,9529,9530,9531],[533,23889,23891],{"className":23890},[9493,9531],[533,23892,1140],{"className":23893},[9493,9531],[533,23895,23896,23899],{"style":22063},[533,23897],{"className":23898,"style":22017},[9523],[533,23900],{"className":23901,"style":22071},[22070],[533,23903,23905,23908],{"style":23904},"top:-3.394em;",[533,23906],{"className":23907,"style":22017},[9523],[533,23909,23911],{"className":23910},[9528,9529,9530,9531],[533,23912,23914],{"className":23913},[9493,9531],[533,23915,22502],{"className":23916,"style":9498},[9493,9497,9531],[533,23918,1090],{"className":23919},[9546],[533,23921,23923],{"className":23922},[9511],[533,23924,23926],{"className":23925,"style":22177},[9515],[533,23927],{},[533,23929],{"className":23930},[10101,21997],[533,23932,2632],{"className":23933},[10101]," shifts the phase by 90° (producing a sine-like waveform).",[756,23936,23937,23938,23987],{},"The modulation has a ",[974,23939,23940,23986],{},[533,23941,23943,23965],{"className":23942},[9443],[533,23944,23946],{"className":23945},[9447],[9174,23947,23948],{"xmlns":9450},[9452,23949,23950,23962],{},[9455,23951,23952,23954,23956,23958,23960],{},[9958,23953,615],{"stretchy":9960},[9461,23955,22502],{},[9461,23957,2941],{"mathvariant":9573},[10856,23959,1140],{},[9958,23961,2632],{"stretchy":9960},[9473,23963,23964],{"encoding":9475},"( \\pi\u002F2 )",[533,23966,23968],{"className":23967,"ariaHidden":1089},[9480],[533,23969,23971,23974,23977,23980,23983],{"className":23970},[9484],[533,23972],{"className":23973,"style":9998},[9488],[533,23975,615],{"className":23976},[10002],[533,23978,22502],{"className":23979,"style":9498},[9493,9497],[533,23981,23215],{"className":23982},[9493],[533,23984,2632],{"className":23985},[10101]," phase shift",", which shifts the waveform by a quarter cycle, making it a sine-like oscillation.",[3552,23989,23991],{"id":23990},"_4-why-no-pulse-for-pauli-z-gate",[974,23992,23993],{},"4. Why No Pulse for Pauli-Z Gate?",[12,23995,23996,23997,24039,24040,544,24043,24217],{},"For ",[974,23998,23999,24000],{},"Pauli-Z ",[533,24001,24003,24021],{"className":24002},[9443],[533,24004,24006],{"className":24005},[9447],[9174,24007,24008],{"xmlns":9450},[9452,24009,24010,24018],{},[9455,24011,24012,24014,24016],{},[9958,24013,615],{"stretchy":9960},[9461,24015,9468],{},[9958,24017,2632],{"stretchy":9960},[9473,24019,24020],{"encoding":9475},"( Z )",[533,24022,24024],{"className":24023,"ariaHidden":1089},[9480],[533,24025,24027,24030,24033,24036],{"className":24026},[9484],[533,24028],{"className":24029,"style":9998},[9488],[533,24031,615],{"className":24032},[10002],[533,24034,9468],{"className":24035,"style":9538},[9493,9497],[533,24037,2632],{"className":24038},[10101],", no physical pulse is needed because it is implemented as a ",[974,24041,24042],{},"virtual phase shift",[533,24044,24046,24103],{"className":24045},[9443],[533,24047,24049],{"className":24048},[9447],[9174,24050,24051],{"xmlns":9450},[9452,24052,24053,24100],{},[9455,24054,24055,24057,24059,24061,24064,24066,24068,24070,24072,24075,24077,24079,24081,24083,24094,24096,24098],{},[9461,24056,9961],{"mathvariant":9573},[10856,24058,1049],{},[9958,24060,10860],{"stretchy":9960},[9958,24062,24063],{},"→",[9461,24065,9961],{"mathvariant":9573},[10856,24067,1049],{},[9958,24069,10860],{"stretchy":9960},[9958,24071,2464],{"separator":1089},[10348,24073],{"width":24074},"1em",[9461,24076,9961],{"mathvariant":9573},[10856,24078,1052],{},[9958,24080,10860],{"stretchy":9960},[9958,24082,24063],{},[21862,24084,24085,24087],{},[9461,24086,629],{},[9455,24088,24089,24091],{},[9461,24090,2556],{},[9461,24092,24093],{},"θ",[9461,24095,9961],{"mathvariant":9573},[10856,24097,1052],{},[9958,24099,10860],{"stretchy":9960},[9473,24101,24102],{"encoding":9475},"|0\\rangle \\rightarrow |0\\rangle, \\quad |1\\rangle \\rightarrow e^{i\\theta}|1\\rangle",[533,24104,24106,24128,24166],{"className":24105,"ariaHidden":1089},[9480],[533,24107,24109,24112,24116,24119,24122,24125],{"className":24108},[9484],[533,24110],{"className":24111,"style":9998},[9488],[533,24113,24115],{"className":24114},[9493],"∣0",[533,24117,10860],{"className":24118},[10101],[533,24120],{"className":24121,"style":21908},[10348],[533,24123,24063],{"className":24124},[21912],[533,24126],{"className":24127,"style":21908},[10348],[533,24129,24131,24134,24137,24140,24143,24147,24150,24154,24157,24160,24163],{"className":24130},[9484],[533,24132],{"className":24133,"style":9998},[9488],[533,24135,24115],{"className":24136},[9493],[533,24138,10860],{"className":24139},[10101],[533,24141,2464],{"className":24142},[10344],[533,24144],{"className":24145,"style":24146},[10348],"margin-right:1em;",[533,24148],{"className":24149,"style":10349},[10348],[533,24151,24153],{"className":24152},[9493],"∣1",[533,24155,10860],{"className":24156},[10101],[533,24158],{"className":24159,"style":21908},[10348],[533,24161,24063],{"className":24162},[21912],[533,24164],{"className":24165,"style":21908},[10348],[533,24167,24169,24173,24211,24214],{"className":24168},[9484],[533,24170],{"className":24171,"style":24172},[9488],"height:1.0991em;vertical-align:-0.25em;",[533,24174,24176,24179],{"className":24175},[9493],[533,24177,629],{"className":24178},[9493,9497],[533,24180,24182],{"className":24181},[9502],[533,24183,24185],{"className":24184},[9506],[533,24186,24188],{"className":24187},[9511],[533,24189,24192],{"className":24190,"style":24191},[9515],"height:0.8491em;",[533,24193,24195,24198],{"style":24194},"top:-3.063em;margin-right:0.05em;",[533,24196],{"className":24197,"style":9524},[9523],[533,24199,24201],{"className":24200},[9528,9529,9530,9531],[533,24202,24204,24207],{"className":24203},[9493,9531],[533,24205,2556],{"className":24206},[9493,9497,9531],[533,24208,24093],{"className":24209,"style":24210},[9493,9497,9531],"margin-right:0.0278em;",[533,24212,24153],{"className":24213},[9493],[533,24215,10860],{"className":24216},[10101],"\nThis shift is typically done in software rather than by applying a physical pulse.",[10993,24219],{},[12,24221,24222,24223,21793],{},"Relevant equations in table form, for the ",[974,24224,21792],{},[30,24226,24227,24237],{},[33,24228,24229],{},[36,24230,24231,24234],{},[39,24232,24233],{},"Gate",[39,24235,24236],{},"Equation",[49,24238,24239,24597,25140,25683,26228],{},[36,24240,24241,24246],{},[54,24242,24243],{},[974,24244,24245],{},"Gaussian Envelope",[54,24247,24248],{},[533,24249,24251,24322],{"className":24250},[9443],[533,24252,24254],{"className":24253},[9447],[9174,24255,24256],{"xmlns":9450},[9452,24257,24258,24320],{},[9455,24259,24260,24262,24264,24266,24268,24270,24276,24278,24280],{},[9461,24261,21817],{},[9958,24263,615],{"stretchy":9960},[9461,24265,9582],{},[9958,24267,2632],{"stretchy":9960},[9958,24269,554],{},[9458,24271,24272,24274],{},[9461,24273,21817],{},[10856,24275,1049],{},[9461,24277,16247],{},[9958,24279,21836],{},[9455,24281,24282,24284,24286,24318],{},[9958,24283,615],{"fence":1089},[9958,24285,21843],{},[21845,24287,24288,24308],{},[9455,24289,24290,24292,24294,24296,24302],{},[9958,24291,615],{"stretchy":9960},[9461,24293,9582],{},[9958,24295,21843],{},[9458,24297,24298,24300],{},[9461,24299,9582],{},[10856,24301,1049],{},[21862,24303,24304,24306],{},[9958,24305,2632],{"stretchy":9960},[10856,24307,1140],{},[9455,24309,24310,24312],{},[10856,24311,1140],{},[21862,24313,24314,24316],{},[9461,24315,21876],{},[10856,24317,1140],{},[9958,24319,2632],{"fence":1089},[9473,24321,21883],{"encoding":9475},[533,24323,24325,24352],{"className":24324,"ariaHidden":1089},[9480],[533,24326,24328,24331,24334,24337,24340,24343,24346,24349],{"className":24327},[9484],[533,24329],{"className":24330,"style":9998},[9488],[533,24332,21817],{"className":24333},[9493,9497],[533,24335,615],{"className":24336},[10002],[533,24338,9582],{"className":24339},[9493,9497],[533,24341,2632],{"className":24342},[10101],[533,24344],{"className":24345,"style":21908},[10348],[533,24347,554],{"className":24348},[21912],[533,24350],{"className":24351,"style":21908},[10348],[533,24353,24355,24358,24398,24401,24404,24407],{"className":24354},[9484],[533,24356],{"className":24357,"style":21922},[9488],[533,24359,24361,24364],{"className":24360},[9493],[533,24362,21817],{"className":24363},[9493,9497],[533,24365,24367],{"className":24366},[9502],[533,24368,24370,24390],{"className":24369},[9506,9507],[533,24371,24373,24387],{"className":24372},[9511],[533,24374,24376],{"className":24375,"style":21941},[9515],[533,24377,24378,24381],{"style":9617},[533,24379],{"className":24380,"style":9524},[9523],[533,24382,24384],{"className":24383},[9528,9529,9530,9531],[533,24385,1049],{"className":24386},[9493,9531],[533,24388,1090],{"className":24389},[9546],[533,24391,24393],{"className":24392},[9511],[533,24394,24396],{"className":24395,"style":9553},[9515],[533,24397],{},[533,24399],{"className":24400,"style":10349},[10348],[533,24402,16247],{"className":24403},[21970],[533,24405],{"className":24406,"style":10349},[10348],[533,24408,24410,24416,24419,24591],{"className":24409},[21977],[533,24411,24413],{"className":24412,"style":21982},[10002,21981],[533,24414,615],{"className":24415},[21986,21987],[533,24417,21843],{"className":24418},[9493],[533,24420,24422,24425,24588],{"className":24421},[9493],[533,24423],{"className":24424},[10002,21997],[533,24426,24428],{"className":24427},[21845],[533,24429,24431,24580],{"className":24430},[9506,9507],[533,24432,24434,24577],{"className":24433},[9511],[533,24435,24437,24480,24488],{"className":24436,"style":22010},[9515],[533,24438,24439,24442],{"style":22013},[533,24440],{"className":24441,"style":22017},[9523],[533,24443,24445],{"className":24444},[9528,9529,9530,9531],[533,24446,24448,24451],{"className":24447},[9493,9531],[533,24449,1140],{"className":24450},[9493,9531],[533,24452,24454,24457],{"className":24453},[9493,9531],[533,24455,21876],{"className":24456,"style":9498},[9493,9497,9531],[533,24458,24460],{"className":24459},[9502],[533,24461,24463],{"className":24462},[9506],[533,24464,24466],{"className":24465},[9511],[533,24467,24469],{"className":24468,"style":22045},[9515],[533,24470,24471,24474],{"style":22048},[533,24472],{"className":24473,"style":22052},[9523],[533,24475,24477],{"className":24476},[9528,22056,22057,9531],[533,24478,1140],{"className":24479},[9493,9531],[533,24481,24482,24485],{"style":22063},[533,24483],{"className":24484,"style":22017},[9523],[533,24486],{"className":24487,"style":22071},[22070],[533,24489,24490,24493],{"style":22074},[533,24491],{"className":24492,"style":22017},[9523],[533,24494,24496],{"className":24495},[9528,9529,9530,9531],[533,24497,24499,24502,24505,24508,24548],{"className":24498},[9493,9531],[533,24500,615],{"className":24501},[10002,9531],[533,24503,9582],{"className":24504},[9493,9497,9531],[533,24506,21843],{"className":24507},[22093,9531],[533,24509,24511,24514],{"className":24510},[9493,9531],[533,24512,9582],{"className":24513},[9493,9497,9531],[533,24515,24517],{"className":24516},[9502],[533,24518,24520,24540],{"className":24519},[9506,9507],[533,24521,24523,24537],{"className":24522},[9511],[533,24524,24526],{"className":24525,"style":22112},[9515],[533,24527,24528,24531],{"style":22115},[533,24529],{"className":24530,"style":22052},[9523],[533,24532,24534],{"className":24533},[9528,22056,22057,9531],[533,24535,1049],{"className":24536},[9493,9531],[533,24538,1090],{"className":24539},[9546],[533,24541,24543],{"className":24542},[9511],[533,24544,24546],{"className":24545,"style":22134},[9515],[533,24547],{},[533,24549,24551,24554],{"className":24550},[10101,9531],[533,24552,2632],{"className":24553},[10101,9531],[533,24555,24557],{"className":24556},[9502],[533,24558,24560],{"className":24559},[9506],[533,24561,24563],{"className":24562},[9511],[533,24564,24566],{"className":24565,"style":22155},[9515],[533,24567,24568,24571],{"style":22158},[533,24569],{"className":24570,"style":22052},[9523],[533,24572,24574],{"className":24573},[9528,22056,22057,9531],[533,24575,1140],{"className":24576},[9493,9531],[533,24578,1090],{"className":24579},[9546],[533,24581,24583],{"className":24582},[9511],[533,24584,24586],{"className":24585,"style":22177},[9515],[533,24587],{},[533,24589],{"className":24590},[10101,21997],[533,24592,24594],{"className":24593,"style":21982},[10101,21981],[533,24595,2632],{"className":24596},[21986,21987],[36,24598,24599,24604],{},[54,24600,24601],{},[974,24602,24603],{},"Pauli-X Gate",[54,24605,24606],{},[533,24607,24609,24712],{"className":24608},[9443],[533,24610,24612],{"className":24611},[9447],[9174,24613,24614],{"xmlns":9450},[9452,24615,24616,24710],{},[9455,24617,24618,24624,24626,24628,24630,24632,24638,24640,24642,24682,24684,24686,24688,24690,24692,24698,24700,24702,24708],{},[9458,24619,24620,24622],{},[9461,24621,22431],{},[9461,24623,9471],{},[9958,24625,615],{"stretchy":9960},[9461,24627,9582],{},[9958,24629,2632],{"stretchy":9960},[9958,24631,554],{},[9458,24633,24634,24636],{},[9461,24635,21817],{},[10856,24637,1049],{},[9461,24639,16247],{},[9958,24641,21836],{},[9455,24643,24644,24646,24648,24680],{},[9958,24645,615],{"fence":1089},[9958,24647,21843],{},[21845,24649,24650,24670],{},[9455,24651,24652,24654,24656,24658,24664],{},[9958,24653,615],{"stretchy":9960},[9461,24655,9582],{},[9958,24657,21843],{},[9458,24659,24660,24662],{},[9461,24661,9582],{},[10856,24663,1049],{},[21862,24665,24666,24668],{},[9958,24667,2632],{"stretchy":9960},[10856,24669,1140],{},[9455,24671,24672,24674],{},[10856,24673,1140],{},[21862,24675,24676,24678],{},[9461,24677,21876],{},[10856,24679,1140],{},[9958,24681,2632],{"fence":1089},[9461,24683,14318],{},[9958,24685,21836],{},[9958,24687,615],{"stretchy":9960},[10856,24689,1140],{},[9461,24691,22502],{},[9458,24693,24694,24696],{},[9461,24695,618],{},[9461,24697,9579],{},[9461,24699,9582],{},[9958,24701,6350],{},[9458,24703,24704,24706],{},[9461,24705,22517],{},[9461,24707,9471],{},[9958,24709,2632],{"stretchy":9960},[9473,24711,22524],{"encoding":9475},[533,24713,24715,24779,25091],{"className":24714,"ariaHidden":1089},[9480],[533,24716,24718,24721,24761,24764,24767,24770,24773,24776],{"className":24717},[9484],[533,24719],{"className":24720,"style":9998},[9488],[533,24722,24724,24727],{"className":24723},[9493],[533,24725,22431],{"className":24726,"style":22540},[9493,9497],[533,24728,24730],{"className":24729},[9502],[533,24731,24733,24753],{"className":24732},[9506,9507],[533,24734,24736,24750],{"className":24735},[9511],[533,24737,24739],{"className":24738,"style":9516},[9515],[533,24740,24741,24744],{"style":22555},[533,24742],{"className":24743,"style":9524},[9523],[533,24745,24747],{"className":24746},[9528,9529,9530,9531],[533,24748,9471],{"className":24749,"style":9542},[9493,9497,9531],[533,24751,1090],{"className":24752},[9546],[533,24754,24756],{"className":24755},[9511],[533,24757,24759],{"className":24758,"style":9553},[9515],[533,24760],{},[533,24762,615],{"className":24763},[10002],[533,24765,9582],{"className":24766},[9493,9497],[533,24768,2632],{"className":24769},[10101],[533,24771],{"className":24772,"style":21908},[10348],[533,24774,554],{"className":24775},[21912],[533,24777],{"className":24778,"style":21908},[10348],[533,24780,24782,24785,24825,24828,24831,24834,25024,25027,25030,25033,25036,25039,25079,25082,25085,25088],{"className":24781},[9484],[533,24783],{"className":24784,"style":21922},[9488],[533,24786,24788,24791],{"className":24787},[9493],[533,24789,21817],{"className":24790},[9493,9497],[533,24792,24794],{"className":24793},[9502],[533,24795,24797,24817],{"className":24796},[9506,9507],[533,24798,24800,24814],{"className":24799},[9511],[533,24801,24803],{"className":24802,"style":21941},[9515],[533,24804,24805,24808],{"style":9617},[533,24806],{"className":24807,"style":9524},[9523],[533,24809,24811],{"className":24810},[9528,9529,9530,9531],[533,24812,1049],{"className":24813},[9493,9531],[533,24815,1090],{"className":24816},[9546],[533,24818,24820],{"className":24819},[9511],[533,24821,24823],{"className":24822,"style":9553},[9515],[533,24824],{},[533,24826],{"className":24827,"style":10349},[10348],[533,24829,16247],{"className":24830},[21970],[533,24832],{"className":24833,"style":10349},[10348],[533,24835,24837,24843,24846,25018],{"className":24836},[21977],[533,24838,24840],{"className":24839,"style":21982},[10002,21981],[533,24841,615],{"className":24842},[21986,21987],[533,24844,21843],{"className":24845},[9493],[533,24847,24849,24852,25015],{"className":24848},[9493],[533,24850],{"className":24851},[10002,21997],[533,24853,24855],{"className":24854},[21845],[533,24856,24858,25007],{"className":24857},[9506,9507],[533,24859,24861,25004],{"className":24860},[9511],[533,24862,24864,24907,24915],{"className":24863,"style":22010},[9515],[533,24865,24866,24869],{"style":22013},[533,24867],{"className":24868,"style":22017},[9523],[533,24870,24872],{"className":24871},[9528,9529,9530,9531],[533,24873,24875,24878],{"className":24874},[9493,9531],[533,24876,1140],{"className":24877},[9493,9531],[533,24879,24881,24884],{"className":24880},[9493,9531],[533,24882,21876],{"className":24883,"style":9498},[9493,9497,9531],[533,24885,24887],{"className":24886},[9502],[533,24888,24890],{"className":24889},[9506],[533,24891,24893],{"className":24892},[9511],[533,24894,24896],{"className":24895,"style":22045},[9515],[533,24897,24898,24901],{"style":22048},[533,24899],{"className":24900,"style":22052},[9523],[533,24902,24904],{"className":24903},[9528,22056,22057,9531],[533,24905,1140],{"className":24906},[9493,9531],[533,24908,24909,24912],{"style":22063},[533,24910],{"className":24911,"style":22017},[9523],[533,24913],{"className":24914,"style":22071},[22070],[533,24916,24917,24920],{"style":22074},[533,24918],{"className":24919,"style":22017},[9523],[533,24921,24923],{"className":24922},[9528,9529,9530,9531],[533,24924,24926,24929,24932,24935,24975],{"className":24925},[9493,9531],[533,24927,615],{"className":24928},[10002,9531],[533,24930,9582],{"className":24931},[9493,9497,9531],[533,24933,21843],{"className":24934},[22093,9531],[533,24936,24938,24941],{"className":24937},[9493,9531],[533,24939,9582],{"className":24940},[9493,9497,9531],[533,24942,24944],{"className":24943},[9502],[533,24945,24947,24967],{"className":24946},[9506,9507],[533,24948,24950,24964],{"className":24949},[9511],[533,24951,24953],{"className":24952,"style":22112},[9515],[533,24954,24955,24958],{"style":22115},[533,24956],{"className":24957,"style":22052},[9523],[533,24959,24961],{"className":24960},[9528,22056,22057,9531],[533,24962,1049],{"className":24963},[9493,9531],[533,24965,1090],{"className":24966},[9546],[533,24968,24970],{"className":24969},[9511],[533,24971,24973],{"className":24972,"style":22134},[9515],[533,24974],{},[533,24976,24978,24981],{"className":24977},[10101,9531],[533,24979,2632],{"className":24980},[10101,9531],[533,24982,24984],{"className":24983},[9502],[533,24985,24987],{"className":24986},[9506],[533,24988,24990],{"className":24989},[9511],[533,24991,24993],{"className":24992,"style":22155},[9515],[533,24994,24995,24998],{"style":22158},[533,24996],{"className":24997,"style":22052},[9523],[533,24999,25001],{"className":25000},[9528,22056,22057,9531],[533,25002,1140],{"className":25003},[9493,9531],[533,25005,1090],{"className":25006},[9546],[533,25008,25010],{"className":25009},[9511],[533,25011,25013],{"className":25012,"style":22177},[9515],[533,25014],{},[533,25016],{"className":25017},[10101,21997],[533,25019,25021],{"className":25020,"style":21982},[10101,21981],[533,25022,2632],{"className":25023},[21986,21987],[533,25025],{"className":25026,"style":10349},[10348],[533,25028,14318],{"className":25029},[21970],[533,25031,615],{"className":25032},[10002],[533,25034,1140],{"className":25035},[9493],[533,25037,22502],{"className":25038,"style":9498},[9493,9497],[533,25040,25042,25045],{"className":25041},[9493],[533,25043,618],{"className":25044,"style":22860},[9493,9497],[533,25046,25048],{"className":25047},[9502],[533,25049,25051,25071],{"className":25050},[9506,9507],[533,25052,25054,25068],{"className":25053},[9511],[533,25055,25057],{"className":25056,"style":22873},[9515],[533,25058,25059,25062],{"style":22876},[533,25060],{"className":25061,"style":9524},[9523],[533,25063,25065],{"className":25064},[9528,9529,9530,9531],[533,25066,9579],{"className":25067},[9493,9497,9531],[533,25069,1090],{"className":25070},[9546],[533,25072,25074],{"className":25073},[9511],[533,25075,25077],{"className":25076,"style":9553},[9515],[533,25078],{},[533,25080,9582],{"className":25081},[9493,9497],[533,25083],{"className":25084,"style":22903},[10348],[533,25086,6350],{"className":25087},[22093],[533,25089],{"className":25090,"style":22903},[10348],[533,25092,25094,25097,25137],{"className":25093},[9484],[533,25095],{"className":25096,"style":9998},[9488],[533,25098,25100,25103],{"className":25099},[9493],[533,25101,22517],{"className":25102},[9493,9497],[533,25104,25106],{"className":25105},[9502],[533,25107,25109,25129],{"className":25108},[9506,9507],[533,25110,25112,25126],{"className":25111},[9511],[533,25113,25115],{"className":25114,"style":9516},[9515],[533,25116,25117,25120],{"style":9617},[533,25118],{"className":25119,"style":9524},[9523],[533,25121,25123],{"className":25122},[9528,9529,9530,9531],[533,25124,9471],{"className":25125,"style":9542},[9493,9497,9531],[533,25127,1090],{"className":25128},[9546],[533,25130,25132],{"className":25131},[9511],[533,25133,25135],{"className":25134,"style":9553},[9515],[533,25136],{},[533,25138,2632],{"className":25139},[10101],[36,25141,25142,25147],{},[54,25143,25144],{},[974,25145,25146],{},"Pauli-Y Gate",[54,25148,25149],{},[533,25150,25152,25255],{"className":25151},[9443],[533,25153,25155],{"className":25154},[9447],[9174,25156,25157],{"xmlns":9450},[9452,25158,25159,25253],{},[9455,25160,25161,25167,25169,25171,25173,25175,25181,25183,25185,25225,25227,25229,25231,25233,25235,25241,25243,25245,25251],{},[9458,25162,25163,25165],{},[9461,25164,22431],{},[9461,25166,23238],{},[9958,25168,615],{"stretchy":9960},[9461,25170,9582],{},[9958,25172,2632],{"stretchy":9960},[9958,25174,554],{},[9458,25176,25177,25179],{},[9461,25178,21817],{},[10856,25180,1049],{},[9461,25182,16247],{},[9958,25184,21836],{},[9455,25186,25187,25189,25191,25223],{},[9958,25188,615],{"fence":1089},[9958,25190,21843],{},[21845,25192,25193,25213],{},[9455,25194,25195,25197,25199,25201,25207],{},[9958,25196,615],{"stretchy":9960},[9461,25198,9582],{},[9958,25200,21843],{},[9458,25202,25203,25205],{},[9461,25204,9582],{},[10856,25206,1049],{},[21862,25208,25209,25211],{},[9958,25210,2632],{"stretchy":9960},[10856,25212,1140],{},[9455,25214,25215,25217],{},[10856,25216,1140],{},[21862,25218,25219,25221],{},[9461,25220,21876],{},[10856,25222,1140],{},[9958,25224,2632],{"fence":1089},[9461,25226,14318],{},[9958,25228,21836],{},[9958,25230,615],{"stretchy":9960},[10856,25232,1140],{},[9461,25234,22502],{},[9458,25236,25237,25239],{},[9461,25238,618],{},[9461,25240,9579],{},[9461,25242,9582],{},[9958,25244,6350],{},[9458,25246,25247,25249],{},[9461,25248,22517],{},[9461,25250,23238],{},[9958,25252,2632],{"stretchy":9960},[9473,25254,23327],{"encoding":9475},[533,25256,25258,25322,25634],{"className":25257,"ariaHidden":1089},[9480],[533,25259,25261,25264,25304,25307,25310,25313,25316,25319],{"className":25260},[9484],[533,25262],{"className":25263,"style":9998},[9488],[533,25265,25267,25270],{"className":25266},[9493],[533,25268,22431],{"className":25269,"style":22540},[9493,9497],[533,25271,25273],{"className":25272},[9502],[533,25274,25276,25296],{"className":25275},[9506,9507],[533,25277,25279,25293],{"className":25278},[9511],[533,25280,25282],{"className":25281,"style":9516},[9515],[533,25283,25284,25287],{"style":22555},[533,25285],{"className":25286,"style":9524},[9523],[533,25288,25290],{"className":25289},[9528,9529,9530,9531],[533,25291,23238],{"className":25292,"style":22903},[9493,9497,9531],[533,25294,1090],{"className":25295},[9546],[533,25297,25299],{"className":25298},[9511],[533,25300,25302],{"className":25301,"style":9553},[9515],[533,25303],{},[533,25305,615],{"className":25306},[10002],[533,25308,9582],{"className":25309},[9493,9497],[533,25311,2632],{"className":25312},[10101],[533,25314],{"className":25315,"style":21908},[10348],[533,25317,554],{"className":25318},[21912],[533,25320],{"className":25321,"style":21908},[10348],[533,25323,25325,25328,25368,25371,25374,25377,25567,25570,25573,25576,25579,25582,25622,25625,25628,25631],{"className":25324},[9484],[533,25326],{"className":25327,"style":21922},[9488],[533,25329,25331,25334],{"className":25330},[9493],[533,25332,21817],{"className":25333},[9493,9497],[533,25335,25337],{"className":25336},[9502],[533,25338,25340,25360],{"className":25339},[9506,9507],[533,25341,25343,25357],{"className":25342},[9511],[533,25344,25346],{"className":25345,"style":21941},[9515],[533,25347,25348,25351],{"style":9617},[533,25349],{"className":25350,"style":9524},[9523],[533,25352,25354],{"className":25353},[9528,9529,9530,9531],[533,25355,1049],{"className":25356},[9493,9531],[533,25358,1090],{"className":25359},[9546],[533,25361,25363],{"className":25362},[9511],[533,25364,25366],{"className":25365,"style":9553},[9515],[533,25367],{},[533,25369],{"className":25370,"style":10349},[10348],[533,25372,16247],{"className":25373},[21970],[533,25375],{"className":25376,"style":10349},[10348],[533,25378,25380,25386,25389,25561],{"className":25379},[21977],[533,25381,25383],{"className":25382,"style":21982},[10002,21981],[533,25384,615],{"className":25385},[21986,21987],[533,25387,21843],{"className":25388},[9493],[533,25390,25392,25395,25558],{"className":25391},[9493],[533,25393],{"className":25394},[10002,21997],[533,25396,25398],{"className":25397},[21845],[533,25399,25401,25550],{"className":25400},[9506,9507],[533,25402,25404,25547],{"className":25403},[9511],[533,25405,25407,25450,25458],{"className":25406,"style":22010},[9515],[533,25408,25409,25412],{"style":22013},[533,25410],{"className":25411,"style":22017},[9523],[533,25413,25415],{"className":25414},[9528,9529,9530,9531],[533,25416,25418,25421],{"className":25417},[9493,9531],[533,25419,1140],{"className":25420},[9493,9531],[533,25422,25424,25427],{"className":25423},[9493,9531],[533,25425,21876],{"className":25426,"style":9498},[9493,9497,9531],[533,25428,25430],{"className":25429},[9502],[533,25431,25433],{"className":25432},[9506],[533,25434,25436],{"className":25435},[9511],[533,25437,25439],{"className":25438,"style":22045},[9515],[533,25440,25441,25444],{"style":22048},[533,25442],{"className":25443,"style":22052},[9523],[533,25445,25447],{"className":25446},[9528,22056,22057,9531],[533,25448,1140],{"className":25449},[9493,9531],[533,25451,25452,25455],{"style":22063},[533,25453],{"className":25454,"style":22017},[9523],[533,25456],{"className":25457,"style":22071},[22070],[533,25459,25460,25463],{"style":22074},[533,25461],{"className":25462,"style":22017},[9523],[533,25464,25466],{"className":25465},[9528,9529,9530,9531],[533,25467,25469,25472,25475,25478,25518],{"className":25468},[9493,9531],[533,25470,615],{"className":25471},[10002,9531],[533,25473,9582],{"className":25474},[9493,9497,9531],[533,25476,21843],{"className":25477},[22093,9531],[533,25479,25481,25484],{"className":25480},[9493,9531],[533,25482,9582],{"className":25483},[9493,9497,9531],[533,25485,25487],{"className":25486},[9502],[533,25488,25490,25510],{"className":25489},[9506,9507],[533,25491,25493,25507],{"className":25492},[9511],[533,25494,25496],{"className":25495,"style":22112},[9515],[533,25497,25498,25501],{"style":22115},[533,25499],{"className":25500,"style":22052},[9523],[533,25502,25504],{"className":25503},[9528,22056,22057,9531],[533,25505,1049],{"className":25506},[9493,9531],[533,25508,1090],{"className":25509},[9546],[533,25511,25513],{"className":25512},[9511],[533,25514,25516],{"className":25515,"style":22134},[9515],[533,25517],{},[533,25519,25521,25524],{"className":25520},[10101,9531],[533,25522,2632],{"className":25523},[10101,9531],[533,25525,25527],{"className":25526},[9502],[533,25528,25530],{"className":25529},[9506],[533,25531,25533],{"className":25532},[9511],[533,25534,25536],{"className":25535,"style":22155},[9515],[533,25537,25538,25541],{"style":22158},[533,25539],{"className":25540,"style":22052},[9523],[533,25542,25544],{"className":25543},[9528,22056,22057,9531],[533,25545,1140],{"className":25546},[9493,9531],[533,25548,1090],{"className":25549},[9546],[533,25551,25553],{"className":25552},[9511],[533,25554,25556],{"className":25555,"style":22177},[9515],[533,25557],{},[533,25559],{"className":25560},[10101,21997],[533,25562,25564],{"className":25563,"style":21982},[10101,21981],[533,25565,2632],{"className":25566},[21986,21987],[533,25568],{"className":25569,"style":10349},[10348],[533,25571,14318],{"className":25572},[21970],[533,25574,615],{"className":25575},[10002],[533,25577,1140],{"className":25578},[9493],[533,25580,22502],{"className":25581,"style":9498},[9493,9497],[533,25583,25585,25588],{"className":25584},[9493],[533,25586,618],{"className":25587,"style":22860},[9493,9497],[533,25589,25591],{"className":25590},[9502],[533,25592,25594,25614],{"className":25593},[9506,9507],[533,25595,25597,25611],{"className":25596},[9511],[533,25598,25600],{"className":25599,"style":22873},[9515],[533,25601,25602,25605],{"style":22876},[533,25603],{"className":25604,"style":9524},[9523],[533,25606,25608],{"className":25607},[9528,9529,9530,9531],[533,25609,9579],{"className":25610},[9493,9497,9531],[533,25612,1090],{"className":25613},[9546],[533,25615,25617],{"className":25616},[9511],[533,25618,25620],{"className":25619,"style":9553},[9515],[533,25621],{},[533,25623,9582],{"className":25624},[9493,9497],[533,25626],{"className":25627,"style":22903},[10348],[533,25629,6350],{"className":25630},[22093],[533,25632],{"className":25633,"style":22903},[10348],[533,25635,25637,25640,25680],{"className":25636},[9484],[533,25638],{"className":25639,"style":9998},[9488],[533,25641,25643,25646],{"className":25642},[9493],[533,25644,22517],{"className":25645},[9493,9497],[533,25647,25649],{"className":25648},[9502],[533,25650,25652,25672],{"className":25651},[9506,9507],[533,25653,25655,25669],{"className":25654},[9511],[533,25656,25658],{"className":25657,"style":9516},[9515],[533,25659,25660,25663],{"style":9617},[533,25661],{"className":25662,"style":9524},[9523],[533,25664,25666],{"className":25665},[9528,9529,9530,9531],[533,25667,23238],{"className":25668,"style":22903},[9493,9497,9531],[533,25670,1090],{"className":25671},[9546],[533,25673,25675],{"className":25674},[9511],[533,25676,25678],{"className":25677,"style":9553},[9515],[533,25679],{},[533,25681,2632],{"className":25682},[10101],[36,25684,25685,25690],{},[54,25686,25687],{},[974,25688,25689],{},"Hadamard Gate",[54,25691,25692],{},[533,25693,25695,25799],{"className":25694},[9443],[533,25696,25698],{"className":25697},[9447],[9174,25699,25700],{"xmlns":9450},[9452,25701,25702,25796],{},[9455,25703,25704,25710,25712,25714,25716,25718,25724,25726,25728,25768,25770,25772,25774,25776,25778,25784,25786,25788,25794],{},[9458,25705,25706,25708],{},[9461,25707,22431],{},[9461,25709,16132],{},[9958,25711,615],{"stretchy":9960},[9461,25713,9582],{},[9958,25715,2632],{"stretchy":9960},[9958,25717,554],{},[9458,25719,25720,25722],{},[9461,25721,21817],{},[10856,25723,1049],{},[9461,25725,16247],{},[9958,25727,21836],{},[9455,25729,25730,25732,25734,25766],{},[9958,25731,615],{"fence":1089},[9958,25733,21843],{},[21845,25735,25736,25756],{},[9455,25737,25738,25740,25742,25744,25750],{},[9958,25739,615],{"stretchy":9960},[9461,25741,9582],{},[9958,25743,21843],{},[9458,25745,25746,25748],{},[9461,25747,9582],{},[10856,25749,1049],{},[21862,25751,25752,25754],{},[9958,25753,2632],{"stretchy":9960},[10856,25755,1140],{},[9455,25757,25758,25760],{},[10856,25759,1140],{},[21862,25761,25762,25764],{},[9461,25763,21876],{},[10856,25765,1140],{},[9958,25767,2632],{"fence":1089},[9461,25769,14318],{},[9958,25771,21836],{},[9958,25773,615],{"stretchy":9960},[10856,25775,1140],{},[9461,25777,22502],{},[9458,25779,25780,25782],{},[9461,25781,618],{},[9461,25783,9579],{},[9461,25785,9582],{},[9958,25787,6350],{},[9458,25789,25790,25792],{},[9461,25791,22517],{},[9461,25793,16132],{},[9958,25795,2632],{"stretchy":9960},[9473,25797,25798],{"encoding":9475},"E_H(t) = A_0 \\exp\\left(-\\frac{(t - t_0)^2}{2\\sigma^2}\\right) \\cos(2\\pi f_c t + \\phi_H)",[533,25800,25802,25867,26179],{"className":25801,"ariaHidden":1089},[9480],[533,25803,25805,25808,25849,25852,25855,25858,25861,25864],{"className":25804},[9484],[533,25806],{"className":25807,"style":9998},[9488],[533,25809,25811,25814],{"className":25810},[9493],[533,25812,22431],{"className":25813,"style":22540},[9493,9497],[533,25815,25817],{"className":25816},[9502],[533,25818,25820,25841],{"className":25819},[9506,9507],[533,25821,25823,25838],{"className":25822},[9511],[533,25824,25826],{"className":25825,"style":9516},[9515],[533,25827,25828,25831],{"style":22555},[533,25829],{"className":25830,"style":9524},[9523],[533,25832,25834],{"className":25833},[9528,9529,9530,9531],[533,25835,16132],{"className":25836,"style":25837},[9493,9497,9531],"margin-right:0.0813em;",[533,25839,1090],{"className":25840},[9546],[533,25842,25844],{"className":25843},[9511],[533,25845,25847],{"className":25846,"style":9553},[9515],[533,25848],{},[533,25850,615],{"className":25851},[10002],[533,25853,9582],{"className":25854},[9493,9497],[533,25856,2632],{"className":25857},[10101],[533,25859],{"className":25860,"style":21908},[10348],[533,25862,554],{"className":25863},[21912],[533,25865],{"className":25866,"style":21908},[10348],[533,25868,25870,25873,25913,25916,25919,25922,26112,26115,26118,26121,26124,26127,26167,26170,26173,26176],{"className":25869},[9484],[533,25871],{"className":25872,"style":21922},[9488],[533,25874,25876,25879],{"className":25875},[9493],[533,25877,21817],{"className":25878},[9493,9497],[533,25880,25882],{"className":25881},[9502],[533,25883,25885,25905],{"className":25884},[9506,9507],[533,25886,25888,25902],{"className":25887},[9511],[533,25889,25891],{"className":25890,"style":21941},[9515],[533,25892,25893,25896],{"style":9617},[533,25894],{"className":25895,"style":9524},[9523],[533,25897,25899],{"className":25898},[9528,9529,9530,9531],[533,25900,1049],{"className":25901},[9493,9531],[533,25903,1090],{"className":25904},[9546],[533,25906,25908],{"className":25907},[9511],[533,25909,25911],{"className":25910,"style":9553},[9515],[533,25912],{},[533,25914],{"className":25915,"style":10349},[10348],[533,25917,16247],{"className":25918},[21970],[533,25920],{"className":25921,"style":10349},[10348],[533,25923,25925,25931,25934,26106],{"className":25924},[21977],[533,25926,25928],{"className":25927,"style":21982},[10002,21981],[533,25929,615],{"className":25930},[21986,21987],[533,25932,21843],{"className":25933},[9493],[533,25935,25937,25940,26103],{"className":25936},[9493],[533,25938],{"className":25939},[10002,21997],[533,25941,25943],{"className":25942},[21845],[533,25944,25946,26095],{"className":25945},[9506,9507],[533,25947,25949,26092],{"className":25948},[9511],[533,25950,25952,25995,26003],{"className":25951,"style":22010},[9515],[533,25953,25954,25957],{"style":22013},[533,25955],{"className":25956,"style":22017},[9523],[533,25958,25960],{"className":25959},[9528,9529,9530,9531],[533,25961,25963,25966],{"className":25962},[9493,9531],[533,25964,1140],{"className":25965},[9493,9531],[533,25967,25969,25972],{"className":25968},[9493,9531],[533,25970,21876],{"className":25971,"style":9498},[9493,9497,9531],[533,25973,25975],{"className":25974},[9502],[533,25976,25978],{"className":25977},[9506],[533,25979,25981],{"className":25980},[9511],[533,25982,25984],{"className":25983,"style":22045},[9515],[533,25985,25986,25989],{"style":22048},[533,25987],{"className":25988,"style":22052},[9523],[533,25990,25992],{"className":25991},[9528,22056,22057,9531],[533,25993,1140],{"className":25994},[9493,9531],[533,25996,25997,26000],{"style":22063},[533,25998],{"className":25999,"style":22017},[9523],[533,26001],{"className":26002,"style":22071},[22070],[533,26004,26005,26008],{"style":22074},[533,26006],{"className":26007,"style":22017},[9523],[533,26009,26011],{"className":26010},[9528,9529,9530,9531],[533,26012,26014,26017,26020,26023,26063],{"className":26013},[9493,9531],[533,26015,615],{"className":26016},[10002,9531],[533,26018,9582],{"className":26019},[9493,9497,9531],[533,26021,21843],{"className":26022},[22093,9531],[533,26024,26026,26029],{"className":26025},[9493,9531],[533,26027,9582],{"className":26028},[9493,9497,9531],[533,26030,26032],{"className":26031},[9502],[533,26033,26035,26055],{"className":26034},[9506,9507],[533,26036,26038,26052],{"className":26037},[9511],[533,26039,26041],{"className":26040,"style":22112},[9515],[533,26042,26043,26046],{"style":22115},[533,26044],{"className":26045,"style":22052},[9523],[533,26047,26049],{"className":26048},[9528,22056,22057,9531],[533,26050,1049],{"className":26051},[9493,9531],[533,26053,1090],{"className":26054},[9546],[533,26056,26058],{"className":26057},[9511],[533,26059,26061],{"className":26060,"style":22134},[9515],[533,26062],{},[533,26064,26066,26069],{"className":26065},[10101,9531],[533,26067,2632],{"className":26068},[10101,9531],[533,26070,26072],{"className":26071},[9502],[533,26073,26075],{"className":26074},[9506],[533,26076,26078],{"className":26077},[9511],[533,26079,26081],{"className":26080,"style":22155},[9515],[533,26082,26083,26086],{"style":22158},[533,26084],{"className":26085,"style":22052},[9523],[533,26087,26089],{"className":26088},[9528,22056,22057,9531],[533,26090,1140],{"className":26091},[9493,9531],[533,26093,1090],{"className":26094},[9546],[533,26096,26098],{"className":26097},[9511],[533,26099,26101],{"className":26100,"style":22177},[9515],[533,26102],{},[533,26104],{"className":26105},[10101,21997],[533,26107,26109],{"className":26108,"style":21982},[10101,21981],[533,26110,2632],{"className":26111},[21986,21987],[533,26113],{"className":26114,"style":10349},[10348],[533,26116,14318],{"className":26117},[21970],[533,26119,615],{"className":26120},[10002],[533,26122,1140],{"className":26123},[9493],[533,26125,22502],{"className":26126,"style":9498},[9493,9497],[533,26128,26130,26133],{"className":26129},[9493],[533,26131,618],{"className":26132,"style":22860},[9493,9497],[533,26134,26136],{"className":26135},[9502],[533,26137,26139,26159],{"className":26138},[9506,9507],[533,26140,26142,26156],{"className":26141},[9511],[533,26143,26145],{"className":26144,"style":22873},[9515],[533,26146,26147,26150],{"style":22876},[533,26148],{"className":26149,"style":9524},[9523],[533,26151,26153],{"className":26152},[9528,9529,9530,9531],[533,26154,9579],{"className":26155},[9493,9497,9531],[533,26157,1090],{"className":26158},[9546],[533,26160,26162],{"className":26161},[9511],[533,26163,26165],{"className":26164,"style":9553},[9515],[533,26166],{},[533,26168,9582],{"className":26169},[9493,9497],[533,26171],{"className":26172,"style":22903},[10348],[533,26174,6350],{"className":26175},[22093],[533,26177],{"className":26178,"style":22903},[10348],[533,26180,26182,26185,26225],{"className":26181},[9484],[533,26183],{"className":26184,"style":9998},[9488],[533,26186,26188,26191],{"className":26187},[9493],[533,26189,22517],{"className":26190},[9493,9497],[533,26192,26194],{"className":26193},[9502],[533,26195,26197,26217],{"className":26196},[9506,9507],[533,26198,26200,26214],{"className":26199},[9511],[533,26201,26203],{"className":26202,"style":9516},[9515],[533,26204,26205,26208],{"style":9617},[533,26206],{"className":26207,"style":9524},[9523],[533,26209,26211],{"className":26210},[9528,9529,9530,9531],[533,26212,16132],{"className":26213,"style":25837},[9493,9497,9531],[533,26215,1090],{"className":26216},[9546],[533,26218,26220],{"className":26219},[9511],[533,26221,26223],{"className":26222,"style":9553},[9515],[533,26224],{},[533,26226,2632],{"className":26227},[10101],[36,26229,26230,26235],{},[54,26231,26232],{},[974,26233,26234],{},"CNOT Target Qubit Pulse",[54,26236,26237],{},[533,26238,26240,26354],{"className":26239},[9443],[533,26241,26243],{"className":26242},[9447],[9174,26244,26245],{"xmlns":9450},[9452,26246,26247,26351],{},[9455,26248,26249,26265,26267,26269,26271,26273,26279,26281,26283,26323,26325,26327,26329,26331,26333,26339,26341,26343,26349],{},[9458,26250,26251,26253],{},[9461,26252,22431],{},[9455,26254,26255,26258,26260,26263],{},[9461,26256,26257],{},"C",[9461,26259,2603],{},[9461,26261,26262],{},"O",[9461,26264,6090],{},[9958,26266,615],{"stretchy":9960},[9461,26268,9582],{},[9958,26270,2632],{"stretchy":9960},[9958,26272,554],{},[9458,26274,26275,26277],{},[9461,26276,21817],{},[10856,26278,1049],{},[9461,26280,16247],{},[9958,26282,21836],{},[9455,26284,26285,26287,26289,26321],{},[9958,26286,615],{"fence":1089},[9958,26288,21843],{},[21845,26290,26291,26311],{},[9455,26292,26293,26295,26297,26299,26305],{},[9958,26294,615],{"stretchy":9960},[9461,26296,9582],{},[9958,26298,21843],{},[9458,26300,26301,26303],{},[9461,26302,9582],{},[10856,26304,1049],{},[21862,26306,26307,26309],{},[9958,26308,2632],{"stretchy":9960},[10856,26310,1140],{},[9455,26312,26313,26315],{},[10856,26314,1140],{},[21862,26316,26317,26319],{},[9461,26318,21876],{},[10856,26320,1140],{},[9958,26322,2632],{"fence":1089},[9461,26324,14318],{},[9958,26326,21836],{},[9958,26328,615],{"stretchy":9960},[10856,26330,1140],{},[9461,26332,22502],{},[9458,26334,26335,26337],{},[9461,26336,618],{},[9461,26338,9579],{},[9461,26340,9582],{},[9958,26342,6350],{},[9458,26344,26345,26347],{},[9461,26346,22517],{},[9461,26348,9471],{},[9958,26350,2632],{"stretchy":9960},[9473,26352,26353],{"encoding":9475},"E_{CNOT}(t) = A_0 \\exp\\left(-\\frac{(t - t_0)^2}{2\\sigma^2}\\right) \\cos(2\\pi f_c t + \\phi_X)",[533,26355,26357,26435,26747],{"className":26356,"ariaHidden":1089},[9480],[533,26358,26360,26363,26417,26420,26423,26426,26429,26432],{"className":26359},[9484],[533,26361],{"className":26362,"style":9998},[9488],[533,26364,26366,26369],{"className":26365},[9493],[533,26367,22431],{"className":26368,"style":22540},[9493,9497],[533,26370,26372],{"className":26371},[9502],[533,26373,26375,26409],{"className":26374},[9506,9507],[533,26376,26378,26406],{"className":26377},[9511],[533,26379,26381],{"className":26380,"style":9516},[9515],[533,26382,26383,26386],{"style":22555},[533,26384],{"className":26385,"style":9524},[9523],[533,26387,26389],{"className":26388},[9528,9529,9530,9531],[533,26390,26392,26395,26399,26402],{"className":26391},[9493,9531],[533,26393,26257],{"className":26394,"style":9538},[9493,9497,9531],[533,26396,2603],{"className":26397,"style":26398},[9493,9497,9531],"margin-right:0.109em;",[533,26400,26262],{"className":26401,"style":24210},[9493,9497,9531],[533,26403,6090],{"className":26404,"style":26405},[9493,9497,9531],"margin-right:0.1389em;",[533,26407,1090],{"className":26408},[9546],[533,26410,26412],{"className":26411},[9511],[533,26413,26415],{"className":26414,"style":9553},[9515],[533,26416],{},[533,26418,615],{"className":26419},[10002],[533,26421,9582],{"className":26422},[9493,9497],[533,26424,2632],{"className":26425},[10101],[533,26427],{"className":26428,"style":21908},[10348],[533,26430,554],{"className":26431},[21912],[533,26433],{"className":26434,"style":21908},[10348],[533,26436,26438,26441,26481,26484,26487,26490,26680,26683,26686,26689,26692,26695,26735,26738,26741,26744],{"className":26437},[9484],[533,26439],{"className":26440,"style":21922},[9488],[533,26442,26444,26447],{"className":26443},[9493],[533,26445,21817],{"className":26446},[9493,9497],[533,26448,26450],{"className":26449},[9502],[533,26451,26453,26473],{"className":26452},[9506,9507],[533,26454,26456,26470],{"className":26455},[9511],[533,26457,26459],{"className":26458,"style":21941},[9515],[533,26460,26461,26464],{"style":9617},[533,26462],{"className":26463,"style":9524},[9523],[533,26465,26467],{"className":26466},[9528,9529,9530,9531],[533,26468,1049],{"className":26469},[9493,9531],[533,26471,1090],{"className":26472},[9546],[533,26474,26476],{"className":26475},[9511],[533,26477,26479],{"className":26478,"style":9553},[9515],[533,26480],{},[533,26482],{"className":26483,"style":10349},[10348],[533,26485,16247],{"className":26486},[21970],[533,26488],{"className":26489,"style":10349},[10348],[533,26491,26493,26499,26502,26674],{"className":26492},[21977],[533,26494,26496],{"className":26495,"style":21982},[10002,21981],[533,26497,615],{"className":26498},[21986,21987],[533,26500,21843],{"className":26501},[9493],[533,26503,26505,26508,26671],{"className":26504},[9493],[533,26506],{"className":26507},[10002,21997],[533,26509,26511],{"className":26510},[21845],[533,26512,26514,26663],{"className":26513},[9506,9507],[533,26515,26517,26660],{"className":26516},[9511],[533,26518,26520,26563,26571],{"className":26519,"style":22010},[9515],[533,26521,26522,26525],{"style":22013},[533,26523],{"className":26524,"style":22017},[9523],[533,26526,26528],{"className":26527},[9528,9529,9530,9531],[533,26529,26531,26534],{"className":26530},[9493,9531],[533,26532,1140],{"className":26533},[9493,9531],[533,26535,26537,26540],{"className":26536},[9493,9531],[533,26538,21876],{"className":26539,"style":9498},[9493,9497,9531],[533,26541,26543],{"className":26542},[9502],[533,26544,26546],{"className":26545},[9506],[533,26547,26549],{"className":26548},[9511],[533,26550,26552],{"className":26551,"style":22045},[9515],[533,26553,26554,26557],{"style":22048},[533,26555],{"className":26556,"style":22052},[9523],[533,26558,26560],{"className":26559},[9528,22056,22057,9531],[533,26561,1140],{"className":26562},[9493,9531],[533,26564,26565,26568],{"style":22063},[533,26566],{"className":26567,"style":22017},[9523],[533,26569],{"className":26570,"style":22071},[22070],[533,26572,26573,26576],{"style":22074},[533,26574],{"className":26575,"style":22017},[9523],[533,26577,26579],{"className":26578},[9528,9529,9530,9531],[533,26580,26582,26585,26588,26591,26631],{"className":26581},[9493,9531],[533,26583,615],{"className":26584},[10002,9531],[533,26586,9582],{"className":26587},[9493,9497,9531],[533,26589,21843],{"className":26590},[22093,9531],[533,26592,26594,26597],{"className":26593},[9493,9531],[533,26595,9582],{"className":26596},[9493,9497,9531],[533,26598,26600],{"className":26599},[9502],[533,26601,26603,26623],{"className":26602},[9506,9507],[533,26604,26606,26620],{"className":26605},[9511],[533,26607,26609],{"className":26608,"style":22112},[9515],[533,26610,26611,26614],{"style":22115},[533,26612],{"className":26613,"style":22052},[9523],[533,26615,26617],{"className":26616},[9528,22056,22057,9531],[533,26618,1049],{"className":26619},[9493,9531],[533,26621,1090],{"className":26622},[9546],[533,26624,26626],{"className":26625},[9511],[533,26627,26629],{"className":26628,"style":22134},[9515],[533,26630],{},[533,26632,26634,26637],{"className":26633},[10101,9531],[533,26635,2632],{"className":26636},[10101,9531],[533,26638,26640],{"className":26639},[9502],[533,26641,26643],{"className":26642},[9506],[533,26644,26646],{"className":26645},[9511],[533,26647,26649],{"className":26648,"style":22155},[9515],[533,26650,26651,26654],{"style":22158},[533,26652],{"className":26653,"style":22052},[9523],[533,26655,26657],{"className":26656},[9528,22056,22057,9531],[533,26658,1140],{"className":26659},[9493,9531],[533,26661,1090],{"className":26662},[9546],[533,26664,26666],{"className":26665},[9511],[533,26667,26669],{"className":26668,"style":22177},[9515],[533,26670],{},[533,26672],{"className":26673},[10101,21997],[533,26675,26677],{"className":26676,"style":21982},[10101,21981],[533,26678,2632],{"className":26679},[21986,21987],[533,26681],{"className":26682,"style":10349},[10348],[533,26684,14318],{"className":26685},[21970],[533,26687,615],{"className":26688},[10002],[533,26690,1140],{"className":26691},[9493],[533,26693,22502],{"className":26694,"style":9498},[9493,9497],[533,26696,26698,26701],{"className":26697},[9493],[533,26699,618],{"className":26700,"style":22860},[9493,9497],[533,26702,26704],{"className":26703},[9502],[533,26705,26707,26727],{"className":26706},[9506,9507],[533,26708,26710,26724],{"className":26709},[9511],[533,26711,26713],{"className":26712,"style":22873},[9515],[533,26714,26715,26718],{"style":22876},[533,26716],{"className":26717,"style":9524},[9523],[533,26719,26721],{"className":26720},[9528,9529,9530,9531],[533,26722,9579],{"className":26723},[9493,9497,9531],[533,26725,1090],{"className":26726},[9546],[533,26728,26730],{"className":26729},[9511],[533,26731,26733],{"className":26732,"style":9553},[9515],[533,26734],{},[533,26736,9582],{"className":26737},[9493,9497],[533,26739],{"className":26740,"style":22903},[10348],[533,26742,6350],{"className":26743},[22093],[533,26745],{"className":26746,"style":22903},[10348],[533,26748,26750,26753,26793],{"className":26749},[9484],[533,26751],{"className":26752,"style":9998},[9488],[533,26754,26756,26759],{"className":26755},[9493],[533,26757,22517],{"className":26758},[9493,9497],[533,26760,26762],{"className":26761},[9502],[533,26763,26765,26785],{"className":26764},[9506,9507],[533,26766,26768,26782],{"className":26767},[9511],[533,26769,26771],{"className":26770,"style":9516},[9515],[533,26772,26773,26776],{"style":9617},[533,26774],{"className":26775,"style":9524},[9523],[533,26777,26779],{"className":26778},[9528,9529,9530,9531],[533,26780,9471],{"className":26781,"style":9542},[9493,9497,9531],[533,26783,1090],{"className":26784},[9546],[533,26786,26788],{"className":26787},[9511],[533,26789,26791],{"className":26790,"style":9553},[9515],[533,26792],{},[533,26794,2632],{"className":26795},[10101],[524,26797,26799],{"className":526,"code":26798,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define parameters\nt0 = 0      # Pulse center\nsigma = 5   # Standard deviation of Gaussian modulation function (ns)\nA0 = 1      # Peak amplitude\n\n# Increase the number of points by 1.5x for denser lollipop visualization\nnum_points = int(40 * 1.5)\nt = np.linspace(-20, 20, num_points)  # Adjusted time axis\n\n# Compute Gaussian modulation function\ngaussian_modulation = A0 * np.exp(-(t - t0)**2 \u002F (2 * sigma**2))\n\n# Store modulation functions and titles in an array\nmodulations = [\n    (gaussian_modulation, \"Gaussian Modulation Function for Pauli-X Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for Pauli-Y Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for Hadamard Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for CNOT Gate Target Qubit\")\n]\n\n# Create a figure with constrained layout\nfig, axs = plt.subplots(2, 2, figsize=(12, 8), constrained_layout=True)\naxs = axs.flatten()\n\n# Lollipop plot setup\nfor ax, (modulation, title) in zip(axs, modulations):\n    ax.stem(t, modulation, linefmt='b-', markerfmt='bo', basefmt='k-')\n    ax.set_title(title)\n    ax.set_xlabel(\"Time (ns)\")\n    ax.set_ylabel(\"Amplitude\")\n\n# Memory Addressing with Lollipop Representation\nfig_combined, ax_combined = plt.subplots(figsize=(12, 6), constrained_layout=True)\n\n# Memory addresses as an index range\nmemory_addresses = np.arange(len(t))\n\n# Lollipop-style plot for memory addressing\nax_combined.stem(memory_addresses, gaussian_modulation, linefmt='b-', markerfmt='bo', basefmt='k-')\n\n# Labels and title\nax_combined.set_title(\"Memory Addressing with Lollipop Representation for Quantum Gate Control\")\nax_combined.set_xlabel(\"Memory Address Index\")\nax_combined.set_ylabel(\"Amplitude\")\nax_combined.grid(True)\n\n# Display plots\nplt.show()\n",[57,26800,26801,26811,26821,26825,26830,26843,26855,26867,26871,26876,26897,26923,26927,26932,26980,26984,26989,26998,27008,27017,27026,27035,27039,27043,27048,27092,27106,27110,27115,27130,27163,27171,27184,27196,27200,27205,27240,27244,27249,27266,27270,27275,27309,27313,27318,27331,27344,27356,27368,27372,27377],{"__ignoreMap":529},[533,26802,26803,26805,26807,26809],{"class":535,"line":536},[533,26804,883],{"class":539},[533,26806,11128],{"class":543},[533,26808,584],{"class":539},[533,26810,11133],{"class":543},[533,26812,26813,26815,26817,26819],{"class":535,"line":547},[533,26814,883],{"class":539},[533,26816,11140],{"class":543},[533,26818,584],{"class":539},[533,26820,11145],{"class":543},[533,26822,26823],{"class":535,"line":575},[533,26824,891],{"emptyLinePlaceholder":790},[533,26826,26827],{"class":535,"line":590},[533,26828,26829],{"class":593},"# Define parameters\n",[533,26831,26832,26835,26837,26840],{"class":535,"line":597},[533,26833,26834],{"class":543},"t0 ",[533,26836,554],{"class":553},[533,26838,26839],{"class":625}," 0",[533,26841,26842],{"class":593},"      # Pulse center\n",[533,26844,26845,26848,26850,26852],{"class":535,"line":603},[533,26846,26847],{"class":543},"sigma ",[533,26849,554],{"class":553},[533,26851,17784],{"class":625},[533,26853,26854],{"class":593},"   # Standard deviation of Gaussian modulation function (ns)\n",[533,26856,26857,26860,26862,26864],{"class":535,"line":609},[533,26858,26859],{"class":543},"A0 ",[533,26861,554],{"class":553},[533,26863,6353],{"class":625},[533,26865,26866],{"class":593},"      # Peak amplitude\n",[533,26868,26869],{"class":535,"line":640},[533,26870,891],{"emptyLinePlaceholder":790},[533,26872,26873],{"class":535,"line":646},[533,26874,26875],{"class":593},"# Increase the number of points by 1.5x for denser lollipop visualization\n",[533,26877,26878,26881,26883,26886,26888,26890,26892,26895],{"class":535,"line":658},[533,26879,26880],{"class":543},"num_points ",[533,26882,554],{"class":553},[533,26884,26885],{"class":553}," int",[533,26887,615],{"class":543},[533,26889,17507],{"class":625},[533,26891,2254],{"class":553},[533,26893,26894],{"class":625}," 1.5",[533,26896,637],{"class":543},[533,26898,26899,26901,26903,26905,26907,26909,26911,26913,26915,26917,26920],{"class":535,"line":680},[533,26900,19416],{"class":543},[533,26902,554],{"class":553},[533,26904,2911],{"class":543},[533,26906,12734],{"class":560},[533,26908,615],{"class":543},[533,26910,2514],{"class":553},[533,26912,17468],{"class":625},[533,26914,1133],{"class":543},[533,26916,17468],{"class":625},[533,26918,26919],{"class":543},", num_points)  ",[533,26921,26922],{"class":593},"# Adjusted time axis\n",[533,26924,26925],{"class":535,"line":1536},[533,26926,891],{"emptyLinePlaceholder":790},[533,26928,26929],{"class":535,"line":1552},[533,26930,26931],{"class":593},"# Compute Gaussian modulation function\n",[533,26933,26934,26936,26938,26941,26943,26945,26947,26949,26951,26954,26956,26959,26961,26963,26965,26967,26969,26971,26974,26976,26978],{"class":535,"line":1911},[533,26935,16987],{"class":543},[533,26937,554],{"class":553},[533,26939,26940],{"class":543}," A0 ",[533,26942,2469],{"class":553},[533,26944,2911],{"class":543},[533,26946,16247],{"class":560},[533,26948,615],{"class":543},[533,26950,2514],{"class":553},[533,26952,26953],{"class":543},"(t ",[533,26955,2514],{"class":553},[533,26957,26958],{"class":543}," t0)",[533,26960,11935],{"class":553},[533,26962,1140],{"class":625},[533,26964,11903],{"class":553},[533,26966,5037],{"class":543},[533,26968,1140],{"class":625},[533,26970,2254],{"class":553},[533,26972,26973],{"class":543}," sigma",[533,26975,11935],{"class":553},[533,26977,1140],{"class":625},[533,26979,1937],{"class":543},[533,26981,26982],{"class":535,"line":1940},[533,26983,891],{"emptyLinePlaceholder":790},[533,26985,26986],{"class":535,"line":1968},[533,26987,26988],{"class":593},"# Store modulation functions and titles in an array\n",[533,26990,26991,26993,26995],{"class":535,"line":1995},[533,26992,20259],{"class":543},[533,26994,554],{"class":553},[533,26996,26997],{"class":543}," [\n",[533,26999,27000,27003,27006],{"class":535,"line":4164},[533,27001,27002],{"class":543},"    (gaussian_modulation, ",[533,27004,27005],{"class":621},"\"Gaussian Modulation Function for Pauli-X Gate\"",[533,27007,19687],{"class":543},[533,27009,27010,27012,27015],{"class":535,"line":4199},[533,27011,27002],{"class":543},[533,27013,27014],{"class":621},"\"Gaussian Modulation Function for Pauli-Y Gate\"",[533,27016,19687],{"class":543},[533,27018,27019,27021,27024],{"class":535,"line":4206},[533,27020,27002],{"class":543},[533,27022,27023],{"class":621},"\"Gaussian Modulation Function for Hadamard Gate\"",[533,27025,19687],{"class":543},[533,27027,27028,27030,27033],{"class":535,"line":4214},[533,27029,27002],{"class":543},[533,27031,27032],{"class":621},"\"Gaussian Modulation Function for CNOT Gate Target Qubit\"",[533,27034,637],{"class":543},[533,27036,27037],{"class":535,"line":11296},[533,27038,14965],{"class":543},[533,27040,27041],{"class":535,"line":11302},[533,27042,891],{"emptyLinePlaceholder":790},[533,27044,27045],{"class":535,"line":11332},[533,27046,27047],{"class":593},"# Create a figure with constrained layout\n",[533,27049,27050,27053,27055,27057,27059,27061,27063,27065,27067,27069,27071,27073,27075,27077,27079,27081,27083,27086,27088,27090],{"class":535,"line":11345},[533,27051,27052],{"class":543},"fig, axs ",[533,27054,554],{"class":553},[533,27056,19777],{"class":543},[533,27058,19780],{"class":560},[533,27060,615],{"class":543},[533,27062,1140],{"class":625},[533,27064,1133],{"class":543},[533,27066,1140],{"class":625},[533,27068,1133],{"class":543},[533,27070,12901],{"class":567},[533,27072,554],{"class":553},[533,27074,615],{"class":543},[533,27076,19799],{"class":625},[533,27078,1133],{"class":543},[533,27080,12908],{"class":625},[533,27082,3945],{"class":543},[533,27084,27085],{"class":567},"constrained_layout",[533,27087,554],{"class":553},[533,27089,1958],{"class":625},[533,27091,637],{"class":543},[533,27093,27094,27097,27099,27102,27104],{"class":535,"line":11372},[533,27095,27096],{"class":543},"axs ",[533,27098,554],{"class":553},[533,27100,27101],{"class":543}," axs.",[533,27103,19819],{"class":560},[533,27105,1217],{"class":543},[533,27107,27108],{"class":535,"line":11385},[533,27109,891],{"emptyLinePlaceholder":790},[533,27111,27112],{"class":535,"line":11390},[533,27113,27114],{"class":593},"# Lollipop plot setup\n",[533,27116,27117,27119,27122,27124,27127],{"class":535,"line":11402},[533,27118,3180],{"class":539},[533,27120,27121],{"class":543}," ax, (modulation, title) ",[533,27123,2786],{"class":539},[533,27125,27126],{"class":553}," zip",[533,27128,27129],{"class":543},"(axs, modulations):\n",[533,27131,27132,27135,27137,27139,27141,27143,27145,27147,27149,27151,27153,27155,27157,27159,27161],{"class":535,"line":11407},[533,27133,27134],{"class":543},"    ax.",[533,27136,17603],{"class":560},[533,27138,20405],{"class":543},[533,27140,17608],{"class":567},[533,27142,554],{"class":553},[533,27144,17613],{"class":621},[533,27146,1133],{"class":543},[533,27148,17618],{"class":567},[533,27150,554],{"class":553},[533,27152,17623],{"class":621},[533,27154,1133],{"class":543},[533,27156,17628],{"class":567},[533,27158,554],{"class":553},[533,27160,17633],{"class":621},[533,27162,637],{"class":543},[533,27164,27165,27167,27169],{"class":535,"line":11412},[533,27166,27134],{"class":543},[533,27168,19861],{"class":560},[533,27170,19864],{"class":543},[533,27172,27173,27175,27177,27179,27182],{"class":535,"line":11418},[533,27174,27134],{"class":543},[533,27176,19871],{"class":560},[533,27178,615],{"class":543},[533,27180,27181],{"class":621},"\"Time (ns)\"",[533,27183,637],{"class":543},[533,27185,27186,27188,27190,27192,27194],{"class":535,"line":11423},[533,27187,27134],{"class":543},[533,27189,19885],{"class":560},[533,27191,615],{"class":543},[533,27193,19890],{"class":621},[533,27195,637],{"class":543},[533,27197,27198],{"class":535,"line":11467},[533,27199,891],{"emptyLinePlaceholder":790},[533,27201,27202],{"class":535,"line":11473},[533,27203,27204],{"class":593},"# Memory Addressing with Lollipop Representation\n",[533,27206,27207,27210,27212,27214,27216,27218,27220,27222,27224,27226,27228,27230,27232,27234,27236,27238],{"class":535,"line":11488},[533,27208,27209],{"class":543},"fig_combined, ax_combined ",[533,27211,554],{"class":553},[533,27213,19777],{"class":543},[533,27215,19780],{"class":560},[533,27217,615],{"class":543},[533,27219,12901],{"class":567},[533,27221,554],{"class":553},[533,27223,615],{"class":543},[533,27225,19799],{"class":625},[533,27227,1133],{"class":543},[533,27229,1967],{"class":625},[533,27231,3945],{"class":543},[533,27233,27085],{"class":567},[533,27235,554],{"class":553},[533,27237,1958],{"class":625},[533,27239,637],{"class":543},[533,27241,27242],{"class":535,"line":11505},[533,27243,891],{"emptyLinePlaceholder":790},[533,27245,27246],{"class":535,"line":11518},[533,27247,27248],{"class":593},"# Memory addresses as an index range\n",[533,27250,27251,27254,27256,27258,27260,27262,27264],{"class":535,"line":11523},[533,27252,27253],{"class":543},"memory_addresses ",[533,27255,554],{"class":553},[533,27257,2911],{"class":543},[533,27259,15001],{"class":560},[533,27261,615],{"class":543},[533,27263,15006],{"class":553},[533,27265,19618],{"class":543},[533,27267,27268],{"class":535,"line":11555},[533,27269,891],{"emptyLinePlaceholder":790},[533,27271,27272],{"class":535,"line":11561},[533,27273,27274],{"class":593},"# Lollipop-style plot for memory addressing\n",[533,27276,27277,27280,27282,27285,27287,27289,27291,27293,27295,27297,27299,27301,27303,27305,27307],{"class":535,"line":11577},[533,27278,27279],{"class":543},"ax_combined.",[533,27281,17603],{"class":560},[533,27283,27284],{"class":543},"(memory_addresses, gaussian_modulation, ",[533,27286,17608],{"class":567},[533,27288,554],{"class":553},[533,27290,17613],{"class":621},[533,27292,1133],{"class":543},[533,27294,17618],{"class":567},[533,27296,554],{"class":553},[533,27298,17623],{"class":621},[533,27300,1133],{"class":543},[533,27302,17628],{"class":567},[533,27304,554],{"class":553},[533,27306,17633],{"class":621},[533,27308,637],{"class":543},[533,27310,27311],{"class":535,"line":11600},[533,27312,891],{"emptyLinePlaceholder":790},[533,27314,27315],{"class":535,"line":11621},[533,27316,27317],{"class":593},"# Labels and title\n",[533,27319,27320,27322,27324,27326,27329],{"class":535,"line":11637},[533,27321,27279],{"class":543},[533,27323,19861],{"class":560},[533,27325,615],{"class":543},[533,27327,27328],{"class":621},"\"Memory Addressing with Lollipop Representation for Quantum Gate Control\"",[533,27330,637],{"class":543},[533,27332,27333,27335,27337,27339,27342],{"class":535,"line":11672},[533,27334,27279],{"class":543},[533,27336,19871],{"class":560},[533,27338,615],{"class":543},[533,27340,27341],{"class":621},"\"Memory Address Index\"",[533,27343,637],{"class":543},[533,27345,27346,27348,27350,27352,27354],{"class":535,"line":11689},[533,27347,27279],{"class":543},[533,27349,19885],{"class":560},[533,27351,615],{"class":543},[533,27353,19890],{"class":621},[533,27355,637],{"class":543},[533,27357,27358,27360,27362,27364,27366],{"class":535,"line":11697},[533,27359,27279],{"class":543},[533,27361,17098],{"class":560},[533,27363,615],{"class":543},[533,27365,1958],{"class":625},[533,27367,637],{"class":543},[533,27369,27370],{"class":535,"line":11734},[533,27371,891],{"emptyLinePlaceholder":790},[533,27373,27374],{"class":535,"line":11766},[533,27375,27376],{"class":593},"# Display plots\n",[533,27378,27379,27381,27383],{"class":535,"line":11806},[533,27380,12893],{"class":543},[533,27382,13120],{"class":560},[533,27384,1217],{"class":543},[2175,27386],{"alt":27387,"src":27388},"Output 13 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-13.webp",[2175,27390],{"alt":27391,"src":27392},"Output 14 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-14.webp",[524,27394,27396],{"className":526,"code":27395,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define parameters\nt0 = 0      # Pulse center\nsigma = 5   # Standard deviation of Gaussian modulation function (ns)\nA0 = 1      # Peak amplitude\nfrequency = 0.2  # Frequency of the carrier wave (normalized)\n\n# Increase the number of points by 1.5x for denser visualization\nnum_points = int(40 * 1.5)\nt = np.linspace(-20, 20, num_points)  # Adjusted time axis\n\n# Compute Gaussian modulation function\ngaussian_modulation = A0 * np.exp(-(t - t0)**2 \u002F (2 * sigma**2))\n\n# Generate In-phase (I) and Quadrature (Q) components\nI = gaussian_modulation * np.cos(2 * np.pi * frequency * t)\nQ = gaussian_modulation * np.sin(2 * np.pi * frequency * t)\n\n# Plot IQ diagram\nfig, ax = plt.subplots(figsize=(6, 6), constrained_layout=True)\nax.plot(I, Q, 'bo-', alpha=0.7, label=\"IQ Trajectory\")\nax.set_xlabel(\"In-phase (I)\")\nax.set_ylabel(\"Quadrature (Q)\")\nax.set_title(\"IQ Diagram for Gaussian Modulated Pulse\")\nax.axhline(0, color='k', linewidth=0.5)\nax.axvline(0, color='k', linewidth=0.5)\nax.grid(True)\nax.legend()\n\nplt.show()\n",[57,27397,27398,27408,27418,27422,27426,27436,27446,27456,27468,27472,27477,27495,27519,27523,27527,27571,27575,27580,27612,27643,27647,27652,27687,27720,27733,27746,27759,27788,27816,27828,27836,27840],{"__ignoreMap":529},[533,27399,27400,27402,27404,27406],{"class":535,"line":536},[533,27401,883],{"class":539},[533,27403,11128],{"class":543},[533,27405,584],{"class":539},[533,27407,11133],{"class":543},[533,27409,27410,27412,27414,27416],{"class":535,"line":547},[533,27411,883],{"class":539},[533,27413,11140],{"class":543},[533,27415,584],{"class":539},[533,27417,11145],{"class":543},[533,27419,27420],{"class":535,"line":575},[533,27421,891],{"emptyLinePlaceholder":790},[533,27423,27424],{"class":535,"line":590},[533,27425,26829],{"class":593},[533,27427,27428,27430,27432,27434],{"class":535,"line":597},[533,27429,26834],{"class":543},[533,27431,554],{"class":553},[533,27433,26839],{"class":625},[533,27435,26842],{"class":593},[533,27437,27438,27440,27442,27444],{"class":535,"line":603},[533,27439,26847],{"class":543},[533,27441,554],{"class":553},[533,27443,17784],{"class":625},[533,27445,26854],{"class":593},[533,27447,27448,27450,27452,27454],{"class":535,"line":609},[533,27449,26859],{"class":543},[533,27451,554],{"class":553},[533,27453,6353],{"class":625},[533,27455,26866],{"class":593},[533,27457,27458,27460,27462,27465],{"class":535,"line":640},[533,27459,17779],{"class":543},[533,27461,554],{"class":553},[533,27463,27464],{"class":625}," 0.2",[533,27466,27467],{"class":593},"  # Frequency of the carrier wave (normalized)\n",[533,27469,27470],{"class":535,"line":646},[533,27471,891],{"emptyLinePlaceholder":790},[533,27473,27474],{"class":535,"line":658},[533,27475,27476],{"class":593},"# Increase the number of points by 1.5x for denser visualization\n",[533,27478,27479,27481,27483,27485,27487,27489,27491,27493],{"class":535,"line":680},[533,27480,26880],{"class":543},[533,27482,554],{"class":553},[533,27484,26885],{"class":553},[533,27486,615],{"class":543},[533,27488,17507],{"class":625},[533,27490,2254],{"class":553},[533,27492,26894],{"class":625},[533,27494,637],{"class":543},[533,27496,27497,27499,27501,27503,27505,27507,27509,27511,27513,27515,27517],{"class":535,"line":1536},[533,27498,19416],{"class":543},[533,27500,554],{"class":553},[533,27502,2911],{"class":543},[533,27504,12734],{"class":560},[533,27506,615],{"class":543},[533,27508,2514],{"class":553},[533,27510,17468],{"class":625},[533,27512,1133],{"class":543},[533,27514,17468],{"class":625},[533,27516,26919],{"class":543},[533,27518,26922],{"class":593},[533,27520,27521],{"class":535,"line":1552},[533,27522,891],{"emptyLinePlaceholder":790},[533,27524,27525],{"class":535,"line":1911},[533,27526,26931],{"class":593},[533,27528,27529,27531,27533,27535,27537,27539,27541,27543,27545,27547,27549,27551,27553,27555,27557,27559,27561,27563,27565,27567,27569],{"class":535,"line":1940},[533,27530,16987],{"class":543},[533,27532,554],{"class":553},[533,27534,26940],{"class":543},[533,27536,2469],{"class":553},[533,27538,2911],{"class":543},[533,27540,16247],{"class":560},[533,27542,615],{"class":543},[533,27544,2514],{"class":553},[533,27546,26953],{"class":543},[533,27548,2514],{"class":553},[533,27550,26958],{"class":543},[533,27552,11935],{"class":553},[533,27554,1140],{"class":625},[533,27556,11903],{"class":553},[533,27558,5037],{"class":543},[533,27560,1140],{"class":625},[533,27562,2254],{"class":553},[533,27564,26973],{"class":543},[533,27566,11935],{"class":553},[533,27568,1140],{"class":625},[533,27570,1937],{"class":543},[533,27572,27573],{"class":535,"line":1968},[533,27574,891],{"emptyLinePlaceholder":790},[533,27576,27577],{"class":535,"line":1995},[533,27578,27579],{"class":593},"# Generate In-phase (I) and Quadrature (Q) components\n",[533,27581,27582,27585,27587,27589,27591,27593,27595,27597,27599,27601,27603,27605,27607,27609],{"class":535,"line":4164},[533,27583,27584],{"class":543},"I ",[533,27586,554],{"class":553},[533,27588,17925],{"class":543},[533,27590,2469],{"class":553},[533,27592,2911],{"class":543},[533,27594,14318],{"class":560},[533,27596,615],{"class":543},[533,27598,1140],{"class":625},[533,27600,2254],{"class":553},[533,27602,17896],{"class":543},[533,27604,2469],{"class":553},[533,27606,17901],{"class":543},[533,27608,2469],{"class":553},[533,27610,27611],{"class":543}," t)\n",[533,27613,27614,27617,27619,27621,27623,27625,27627,27629,27631,27633,27635,27637,27639,27641],{"class":535,"line":4199},[533,27615,27616],{"class":543},"Q ",[533,27618,554],{"class":553},[533,27620,17925],{"class":543},[533,27622,2469],{"class":553},[533,27624,2911],{"class":543},[533,27626,14336],{"class":560},[533,27628,615],{"class":543},[533,27630,1140],{"class":625},[533,27632,2254],{"class":553},[533,27634,17896],{"class":543},[533,27636,2469],{"class":553},[533,27638,17901],{"class":543},[533,27640,2469],{"class":553},[533,27642,27611],{"class":543},[533,27644,27645],{"class":535,"line":4206},[533,27646,891],{"emptyLinePlaceholder":790},[533,27648,27649],{"class":535,"line":4214},[533,27650,27651],{"class":593},"# Plot IQ diagram\n",[533,27653,27654,27657,27659,27661,27663,27665,27667,27669,27671,27673,27675,27677,27679,27681,27683,27685],{"class":535,"line":11296},[533,27655,27656],{"class":543},"fig, ax ",[533,27658,554],{"class":553},[533,27660,19777],{"class":543},[533,27662,19780],{"class":560},[533,27664,615],{"class":543},[533,27666,12901],{"class":567},[533,27668,554],{"class":553},[533,27670,615],{"class":543},[533,27672,1967],{"class":625},[533,27674,1133],{"class":543},[533,27676,1967],{"class":625},[533,27678,3945],{"class":543},[533,27680,27085],{"class":567},[533,27682,554],{"class":553},[533,27684,1958],{"class":625},[533,27686,637],{"class":543},[533,27688,27689,27692,27694,27697,27700,27702,27704,27706,27709,27711,27713,27715,27718],{"class":535,"line":11302},[533,27690,27691],{"class":543},"ax.",[533,27693,12932],{"class":560},[533,27695,27696],{"class":543},"(I, Q, ",[533,27698,27699],{"class":621},"'bo-'",[533,27701,1133],{"class":543},[533,27703,19638],{"class":567},[533,27705,554],{"class":553},[533,27707,27708],{"class":625},"0.7",[533,27710,1133],{"class":543},[533,27712,12942],{"class":567},[533,27714,554],{"class":553},[533,27716,27717],{"class":621},"\"IQ Trajectory\"",[533,27719,637],{"class":543},[533,27721,27722,27724,27726,27728,27731],{"class":535,"line":11332},[533,27723,27691],{"class":543},[533,27725,19871],{"class":560},[533,27727,615],{"class":543},[533,27729,27730],{"class":621},"\"In-phase (I)\"",[533,27732,637],{"class":543},[533,27734,27735,27737,27739,27741,27744],{"class":535,"line":11345},[533,27736,27691],{"class":543},[533,27738,19885],{"class":560},[533,27740,615],{"class":543},[533,27742,27743],{"class":621},"\"Quadrature (Q)\"",[533,27745,637],{"class":543},[533,27747,27748,27750,27752,27754,27757],{"class":535,"line":11372},[533,27749,27691],{"class":543},[533,27751,19861],{"class":560},[533,27753,615],{"class":543},[533,27755,27756],{"class":621},"\"IQ Diagram for Gaussian Modulated Pulse\"",[533,27758,637],{"class":543},[533,27760,27761,27763,27765,27767,27769,27771,27773,27775,27778,27780,27782,27784,27786],{"class":535,"line":11385},[533,27762,27691],{"class":543},[533,27764,12993],{"class":560},[533,27766,615],{"class":543},[533,27768,1049],{"class":625},[533,27770,1133],{"class":543},[533,27772,12978],{"class":567},[533,27774,554],{"class":553},[533,27776,27777],{"class":621},"'k'",[533,27779,1133],{"class":543},[533,27781,12694],{"class":567},[533,27783,554],{"class":553},[533,27785,14323],{"class":625},[533,27787,637],{"class":543},[533,27789,27790,27792,27794,27796,27798,27800,27802,27804,27806,27808,27810,27812,27814],{"class":535,"line":11390},[533,27791,27691],{"class":543},[533,27793,12678],{"class":560},[533,27795,615],{"class":543},[533,27797,1049],{"class":625},[533,27799,1133],{"class":543},[533,27801,12978],{"class":567},[533,27803,554],{"class":553},[533,27805,27777],{"class":621},[533,27807,1133],{"class":543},[533,27809,12694],{"class":567},[533,27811,554],{"class":553},[533,27813,14323],{"class":625},[533,27815,637],{"class":543},[533,27817,27818,27820,27822,27824,27826],{"class":535,"line":11402},[533,27819,27691],{"class":543},[533,27821,17098],{"class":560},[533,27823,615],{"class":543},[533,27825,1958],{"class":625},[533,27827,637],{"class":543},[533,27829,27830,27832,27834],{"class":535,"line":11407},[533,27831,27691],{"class":543},[533,27833,13110],{"class":560},[533,27835,1217],{"class":543},[533,27837,27838],{"class":535,"line":11412},[533,27839,891],{"emptyLinePlaceholder":790},[533,27841,27842,27844,27846],{"class":535,"line":11418},[533,27843,12893],{"class":543},[533,27845,13120],{"class":560},[533,27847,1217],{"class":543},[2175,27849],{"alt":27850,"src":27851},"Output 15 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-15.webp",[524,27853,27855],{"className":526,"code":27854,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define parameters\nt0 = 0      # Pulse center\nsigma = 5   # Standard deviation of Gaussian modulation function (ns)\nA0 = 1      # Peak amplitude\n\n# Increase the number of points by 1.5x for denser lollipop visualization\nnum_points = int(40 * 1.5)\nt = np.linspace(-20, 20, num_points)  # Adjusted time axis\n\n# Compute Gaussian modulation function\ngaussian_modulation = A0 * np.exp(-(t - t0)**2 \u002F (2 * sigma**2))\n\n# Store modulation functions and titles in an array\nmodulations = [\n    (gaussian_modulation, \"Gaussian Modulation Function for Pauli-X Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for Pauli-Y Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for Hadamard Gate\"),\n    (gaussian_modulation, \"Gaussian Modulation Function for CNOT Gate Target Qubit\")\n]\n\n# Create lollipop plots\nfig, axs = plt.subplots(2, 2, figsize=(12, 8), constrained_layout=True)\naxs = axs.flatten()\n\nfor ax, (modulation, title) in zip(axs, modulations):\n    ax.stem(t, gaussian_modulation, linefmt='b-', markerfmt='bo', basefmt='k-')\n    ax.set_title(title)\n    ax.set_xlabel(\"Time (ns)\")\n    ax.set_ylabel(\"Amplitude\")\n\nplt.show()\n",[57,27856,27857,27867,27877,27881,27885,27895,27905,27915,27919,27923,27941,27965,27969,27973,28017,28021,28025,28033,28041,28049,28057,28065,28069,28073,28078,28120,28132,28136,28148,28181,28189,28201,28213,28217],{"__ignoreMap":529},[533,27858,27859,27861,27863,27865],{"class":535,"line":536},[533,27860,883],{"class":539},[533,27862,11128],{"class":543},[533,27864,584],{"class":539},[533,27866,11133],{"class":543},[533,27868,27869,27871,27873,27875],{"class":535,"line":547},[533,27870,883],{"class":539},[533,27872,11140],{"class":543},[533,27874,584],{"class":539},[533,27876,11145],{"class":543},[533,27878,27879],{"class":535,"line":575},[533,27880,891],{"emptyLinePlaceholder":790},[533,27882,27883],{"class":535,"line":590},[533,27884,26829],{"class":593},[533,27886,27887,27889,27891,27893],{"class":535,"line":597},[533,27888,26834],{"class":543},[533,27890,554],{"class":553},[533,27892,26839],{"class":625},[533,27894,26842],{"class":593},[533,27896,27897,27899,27901,27903],{"class":535,"line":603},[533,27898,26847],{"class":543},[533,27900,554],{"class":553},[533,27902,17784],{"class":625},[533,27904,26854],{"class":593},[533,27906,27907,27909,27911,27913],{"class":535,"line":609},[533,27908,26859],{"class":543},[533,27910,554],{"class":553},[533,27912,6353],{"class":625},[533,27914,26866],{"class":593},[533,27916,27917],{"class":535,"line":640},[533,27918,891],{"emptyLinePlaceholder":790},[533,27920,27921],{"class":535,"line":646},[533,27922,26875],{"class":593},[533,27924,27925,27927,27929,27931,27933,27935,27937,27939],{"class":535,"line":658},[533,27926,26880],{"class":543},[533,27928,554],{"class":553},[533,27930,26885],{"class":553},[533,27932,615],{"class":543},[533,27934,17507],{"class":625},[533,27936,2254],{"class":553},[533,27938,26894],{"class":625},[533,27940,637],{"class":543},[533,27942,27943,27945,27947,27949,27951,27953,27955,27957,27959,27961,27963],{"class":535,"line":680},[533,27944,19416],{"class":543},[533,27946,554],{"class":553},[533,27948,2911],{"class":543},[533,27950,12734],{"class":560},[533,27952,615],{"class":543},[533,27954,2514],{"class":553},[533,27956,17468],{"class":625},[533,27958,1133],{"class":543},[533,27960,17468],{"class":625},[533,27962,26919],{"class":543},[533,27964,26922],{"class":593},[533,27966,27967],{"class":535,"line":1536},[533,27968,891],{"emptyLinePlaceholder":790},[533,27970,27971],{"class":535,"line":1552},[533,27972,26931],{"class":593},[533,27974,27975,27977,27979,27981,27983,27985,27987,27989,27991,27993,27995,27997,27999,28001,28003,28005,28007,28009,28011,28013,28015],{"class":535,"line":1911},[533,27976,16987],{"class":543},[533,27978,554],{"class":553},[533,27980,26940],{"class":543},[533,27982,2469],{"class":553},[533,27984,2911],{"class":543},[533,27986,16247],{"class":560},[533,27988,615],{"class":543},[533,27990,2514],{"class":553},[533,27992,26953],{"class":543},[533,27994,2514],{"class":553},[533,27996,26958],{"class":543},[533,27998,11935],{"class":553},[533,28000,1140],{"class":625},[533,28002,11903],{"class":553},[533,28004,5037],{"class":543},[533,28006,1140],{"class":625},[533,28008,2254],{"class":553},[533,28010,26973],{"class":543},[533,28012,11935],{"class":553},[533,28014,1140],{"class":625},[533,28016,1937],{"class":543},[533,28018,28019],{"class":535,"line":1940},[533,28020,891],{"emptyLinePlaceholder":790},[533,28022,28023],{"class":535,"line":1968},[533,28024,26988],{"class":593},[533,28026,28027,28029,28031],{"class":535,"line":1995},[533,28028,20259],{"class":543},[533,28030,554],{"class":553},[533,28032,26997],{"class":543},[533,28034,28035,28037,28039],{"class":535,"line":4164},[533,28036,27002],{"class":543},[533,28038,27005],{"class":621},[533,28040,19687],{"class":543},[533,28042,28043,28045,28047],{"class":535,"line":4199},[533,28044,27002],{"class":543},[533,28046,27014],{"class":621},[533,28048,19687],{"class":543},[533,28050,28051,28053,28055],{"class":535,"line":4206},[533,28052,27002],{"class":543},[533,28054,27023],{"class":621},[533,28056,19687],{"class":543},[533,28058,28059,28061,28063],{"class":535,"line":4214},[533,28060,27002],{"class":543},[533,28062,27032],{"class":621},[533,28064,637],{"class":543},[533,28066,28067],{"class":535,"line":11296},[533,28068,14965],{"class":543},[533,28070,28071],{"class":535,"line":11302},[533,28072,891],{"emptyLinePlaceholder":790},[533,28074,28075],{"class":535,"line":11332},[533,28076,28077],{"class":593},"# Create lollipop plots\n",[533,28079,28080,28082,28084,28086,28088,28090,28092,28094,28096,28098,28100,28102,28104,28106,28108,28110,28112,28114,28116,28118],{"class":535,"line":11345},[533,28081,27052],{"class":543},[533,28083,554],{"class":553},[533,28085,19777],{"class":543},[533,28087,19780],{"class":560},[533,28089,615],{"class":543},[533,28091,1140],{"class":625},[533,28093,1133],{"class":543},[533,28095,1140],{"class":625},[533,28097,1133],{"class":543},[533,28099,12901],{"class":567},[533,28101,554],{"class":553},[533,28103,615],{"class":543},[533,28105,19799],{"class":625},[533,28107,1133],{"class":543},[533,28109,12908],{"class":625},[533,28111,3945],{"class":543},[533,28113,27085],{"class":567},[533,28115,554],{"class":553},[533,28117,1958],{"class":625},[533,28119,637],{"class":543},[533,28121,28122,28124,28126,28128,28130],{"class":535,"line":11372},[533,28123,27096],{"class":543},[533,28125,554],{"class":553},[533,28127,27101],{"class":543},[533,28129,19819],{"class":560},[533,28131,1217],{"class":543},[533,28133,28134],{"class":535,"line":11385},[533,28135,891],{"emptyLinePlaceholder":790},[533,28137,28138,28140,28142,28144,28146],{"class":535,"line":11390},[533,28139,3180],{"class":539},[533,28141,27121],{"class":543},[533,28143,2786],{"class":539},[533,28145,27126],{"class":553},[533,28147,27129],{"class":543},[533,28149,28150,28152,28154,28157,28159,28161,28163,28165,28167,28169,28171,28173,28175,28177,28179],{"class":535,"line":11402},[533,28151,27134],{"class":543},[533,28153,17603],{"class":560},[533,28155,28156],{"class":543},"(t, gaussian_modulation, ",[533,28158,17608],{"class":567},[533,28160,554],{"class":553},[533,28162,17613],{"class":621},[533,28164,1133],{"class":543},[533,28166,17618],{"class":567},[533,28168,554],{"class":553},[533,28170,17623],{"class":621},[533,28172,1133],{"class":543},[533,28174,17628],{"class":567},[533,28176,554],{"class":553},[533,28178,17633],{"class":621},[533,28180,637],{"class":543},[533,28182,28183,28185,28187],{"class":535,"line":11407},[533,28184,27134],{"class":543},[533,28186,19861],{"class":560},[533,28188,19864],{"class":543},[533,28190,28191,28193,28195,28197,28199],{"class":535,"line":11412},[533,28192,27134],{"class":543},[533,28194,19871],{"class":560},[533,28196,615],{"class":543},[533,28198,27181],{"class":621},[533,28200,637],{"class":543},[533,28202,28203,28205,28207,28209,28211],{"class":535,"line":11418},[533,28204,27134],{"class":543},[533,28206,19885],{"class":560},[533,28208,615],{"class":543},[533,28210,19890],{"class":621},[533,28212,637],{"class":543},[533,28214,28215],{"class":535,"line":11423},[533,28216,891],{"emptyLinePlaceholder":790},[533,28218,28219,28221,28223],{"class":535,"line":11467},[533,28220,12893],{"class":543},[533,28222,13120],{"class":560},[533,28224,1217],{"class":543},[2175,28226],{"alt":28227,"src":28228},"Output 16 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-16.webp",[524,28230,28232],{"className":526,"code":28231,"language":528,"meta":529,"style":529},"import numpy as np\nimport matplotlib.pyplot as plt\n\n# Define parameters\nt0 = 0      # Pulse center\nsigma = 5   # Standard deviation of Gaussian modulation (ns)\nA0 = 1      # Peak amplitude\nfc = 5e9    # Carrier frequency (5 GHz, typical for superconducting qubits)\nphi_X = 0           # X gate (Pauli-X) - $\\pi$ rotation around X-axis\nphi_Y = np.pi \u002F 2   # Y gate (Pauli-Y) - $\\pi\u002F2$ rotation around Y-axis\nphi_H = np.pi \u002F 2   # Hadamard gate (H) - $\\pi\u002F2$ rotation around Y-axis\nt = np.linspace(-20, 20, 1000)  # Time axis in nanoseconds\n\n# Compute Gaussian modulation function\ngaussian_envelope = A0 * np.exp(-(t - t0)**2 \u002F (2 * sigma**2))\n\n# Compute modulated pulses for X, Y, H, and CNOT gates\nmodulated_pulse_X = gaussian_envelope * np.cos(2 * np.pi * fc * t * 1e-9 + phi_X)\nmodulated_pulse_Y = gaussian_envelope * np.cos(2 * np.pi * fc * t * 1e-9 + phi_Y)\nmodulated_pulse_H = gaussian_envelope * np.cos(2 * np.pi * fc * t * 1e-9 + phi_H)\nmodulated_pulse_CNOT = gaussian_envelope * np.cos(2 * np.pi * fc * t * 1e-9 + phi_X)  # Similar to X gate\n\n# Store pulses and titles in an array\npulses = np.array([\n    (modulated_pulse_X, \"Pauli-X Gate\"),\n    (modulated_pulse_Y, \"Pauli-Y Gate\"),\n    (modulated_pulse_H, \"Hadamard Gate\"),\n    (modulated_pulse_CNOT, \"CNOT Gate Target Qubit\")\n], dtype=object)\n\n# Create plots with blue pulse lines\nfig, axs = plt.subplots(2, 2, figsize=(12, 8), constrained_layout=True)\naxs = axs.flatten()\n\nfor ax, (pulse, title) in zip(axs, pulses):\n    ax.plot(t, pulse, 'b', linewidth=0.5, label=f\"{title} Modulated Pulse\")  # Blue line with reduced thickness\n    ax.plot(t, gaussian_envelope, 'r--', linewidth=1.0, label=\"Gaussian Envelope\")\n    ax.plot(t, -gaussian_envelope, 'r--', linewidth=1.0)\n    ax.set_title(f\"Modulated Pulse for {title}\")\n    ax.set_xlabel(\"Time (ns)\")\n    ax.set_ylabel(\"Amplitude\")\n    # ax.legend()\n    # ax.grid()\n\nplt.show()\n",[57,28233,28234,28244,28254,28258,28262,28272,28283,28293,28306,28318,28334,28350,28379,28383,28387,28432,28436,28441,28485,28525,28565,28608,28612,28617,28631,28641,28651,28661,28671,28682,28686,28691,28733,28745,28749,28763,28806,28837,28863,28886,28898,28910,28915,28920,28924],{"__ignoreMap":529},[533,28235,28236,28238,28240,28242],{"class":535,"line":536},[533,28237,883],{"class":539},[533,28239,11128],{"class":543},[533,28241,584],{"class":539},[533,28243,11133],{"class":543},[533,28245,28246,28248,28250,28252],{"class":535,"line":547},[533,28247,883],{"class":539},[533,28249,11140],{"class":543},[533,28251,584],{"class":539},[533,28253,11145],{"class":543},[533,28255,28256],{"class":535,"line":575},[533,28257,891],{"emptyLinePlaceholder":790},[533,28259,28260],{"class":535,"line":590},[533,28261,26829],{"class":593},[533,28263,28264,28266,28268,28270],{"class":535,"line":597},[533,28265,26834],{"class":543},[533,28267,554],{"class":553},[533,28269,26839],{"class":625},[533,28271,26842],{"class":593},[533,28273,28274,28276,28278,28280],{"class":535,"line":603},[533,28275,26847],{"class":543},[533,28277,554],{"class":553},[533,28279,17784],{"class":625},[533,28281,28282],{"class":593},"   # Standard deviation of Gaussian modulation (ns)\n",[533,28284,28285,28287,28289,28291],{"class":535,"line":609},[533,28286,26859],{"class":543},[533,28288,554],{"class":553},[533,28290,6353],{"class":625},[533,28292,26866],{"class":593},[533,28294,28295,28298,28300,28303],{"class":535,"line":640},[533,28296,28297],{"class":543},"fc ",[533,28299,554],{"class":553},[533,28301,28302],{"class":625}," 5e9",[533,28304,28305],{"class":593},"    # Carrier frequency (5 GHz, typical for superconducting qubits)\n",[533,28307,28308,28311,28313,28315],{"class":535,"line":646},[533,28309,28310],{"class":543},"phi_X ",[533,28312,554],{"class":553},[533,28314,26839],{"class":625},[533,28316,28317],{"class":593},"           # X gate (Pauli-X) - $\\pi$ rotation around X-axis\n",[533,28319,28320,28323,28325,28327,28329,28331],{"class":535,"line":658},[533,28321,28322],{"class":543},"phi_Y ",[533,28324,554],{"class":553},[533,28326,17896],{"class":543},[533,28328,2941],{"class":553},[533,28330,11938],{"class":625},[533,28332,28333],{"class":593},"   # Y gate (Pauli-Y) - $\\pi\u002F2$ rotation around Y-axis\n",[533,28335,28336,28339,28341,28343,28345,28347],{"class":535,"line":680},[533,28337,28338],{"class":543},"phi_H ",[533,28340,554],{"class":553},[533,28342,17896],{"class":543},[533,28344,2941],{"class":553},[533,28346,11938],{"class":625},[533,28348,28349],{"class":593},"   # Hadamard gate (H) - $\\pi\u002F2$ rotation around Y-axis\n",[533,28351,28352,28354,28356,28358,28360,28362,28364,28366,28368,28370,28372,28374,28376],{"class":535,"line":1536},[533,28353,19416],{"class":543},[533,28355,554],{"class":553},[533,28357,2911],{"class":543},[533,28359,12734],{"class":560},[533,28361,615],{"class":543},[533,28363,2514],{"class":553},[533,28365,17468],{"class":625},[533,28367,1133],{"class":543},[533,28369,17468],{"class":625},[533,28371,1133],{"class":543},[533,28373,1240],{"class":625},[533,28375,16970],{"class":543},[533,28377,28378],{"class":593},"# Time axis in nanoseconds\n",[533,28380,28381],{"class":535,"line":1552},[533,28382,891],{"emptyLinePlaceholder":790},[533,28384,28385],{"class":535,"line":1911},[533,28386,26931],{"class":593},[533,28388,28389,28392,28394,28396,28398,28400,28402,28404,28406,28408,28410,28412,28414,28416,28418,28420,28422,28424,28426,28428,28430],{"class":535,"line":1940},[533,28390,28391],{"class":543},"gaussian_envelope ",[533,28393,554],{"class":553},[533,28395,26940],{"class":543},[533,28397,2469],{"class":553},[533,28399,2911],{"class":543},[533,28401,16247],{"class":560},[533,28403,615],{"class":543},[533,28405,2514],{"class":553},[533,28407,26953],{"class":543},[533,28409,2514],{"class":553},[533,28411,26958],{"class":543},[533,28413,11935],{"class":553},[533,28415,1140],{"class":625},[533,28417,11903],{"class":553},[533,28419,5037],{"class":543},[533,28421,1140],{"class":625},[533,28423,2254],{"class":553},[533,28425,26973],{"class":543},[533,28427,11935],{"class":553},[533,28429,1140],{"class":625},[533,28431,1937],{"class":543},[533,28433,28434],{"class":535,"line":1968},[533,28435,891],{"emptyLinePlaceholder":790},[533,28437,28438],{"class":535,"line":1995},[533,28439,28440],{"class":593},"# Compute modulated pulses for X, Y, H, and CNOT gates\n",[533,28442,28443,28446,28448,28451,28453,28455,28457,28459,28461,28463,28465,28467,28470,28472,28475,28477,28480,28482],{"class":535,"line":4164},[533,28444,28445],{"class":543},"modulated_pulse_X ",[533,28447,554],{"class":553},[533,28449,28450],{"class":543}," gaussian_envelope ",[533,28452,2469],{"class":553},[533,28454,2911],{"class":543},[533,28456,14318],{"class":560},[533,28458,615],{"class":543},[533,28460,1140],{"class":625},[533,28462,2254],{"class":553},[533,28464,17896],{"class":543},[533,28466,2469],{"class":553},[533,28468,28469],{"class":543}," fc ",[533,28471,2469],{"class":553},[533,28473,28474],{"class":543}," t ",[533,28476,2469],{"class":553},[533,28478,28479],{"class":625}," 1e-9",[533,28481,14257],{"class":553},[533,28483,28484],{"class":543}," phi_X)\n",[533,28486,28487,28490,28492,28494,28496,28498,28500,28502,28504,28506,28508,28510,28512,28514,28516,28518,28520,28522],{"class":535,"line":4199},[533,28488,28489],{"class":543},"modulated_pulse_Y ",[533,28491,554],{"class":553},[533,28493,28450],{"class":543},[533,28495,2469],{"class":553},[533,28497,2911],{"class":543},[533,28499,14318],{"class":560},[533,28501,615],{"class":543},[533,28503,1140],{"class":625},[533,28505,2254],{"class":553},[533,28507,17896],{"class":543},[533,28509,2469],{"class":553},[533,28511,28469],{"class":543},[533,28513,2469],{"class":553},[533,28515,28474],{"class":543},[533,28517,2469],{"class":553},[533,28519,28479],{"class":625},[533,28521,14257],{"class":553},[533,28523,28524],{"class":543}," phi_Y)\n",[533,28526,28527,28530,28532,28534,28536,28538,28540,28542,28544,28546,28548,28550,28552,28554,28556,28558,28560,28562],{"class":535,"line":4206},[533,28528,28529],{"class":543},"modulated_pulse_H ",[533,28531,554],{"class":553},[533,28533,28450],{"class":543},[533,28535,2469],{"class":553},[533,28537,2911],{"class":543},[533,28539,14318],{"class":560},[533,28541,615],{"class":543},[533,28543,1140],{"class":625},[533,28545,2254],{"class":553},[533,28547,17896],{"class":543},[533,28549,2469],{"class":553},[533,28551,28469],{"class":543},[533,28553,2469],{"class":553},[533,28555,28474],{"class":543},[533,28557,2469],{"class":553},[533,28559,28479],{"class":625},[533,28561,14257],{"class":553},[533,28563,28564],{"class":543}," phi_H)\n",[533,28566,28567,28570,28572,28574,28576,28578,28580,28582,28584,28586,28588,28590,28592,28594,28596,28598,28600,28602,28605],{"class":535,"line":4214},[533,28568,28569],{"class":543},"modulated_pulse_CNOT ",[533,28571,554],{"class":553},[533,28573,28450],{"class":543},[533,28575,2469],{"class":553},[533,28577,2911],{"class":543},[533,28579,14318],{"class":560},[533,28581,615],{"class":543},[533,28583,1140],{"class":625},[533,28585,2254],{"class":553},[533,28587,17896],{"class":543},[533,28589,2469],{"class":553},[533,28591,28469],{"class":543},[533,28593,2469],{"class":553},[533,28595,28474],{"class":543},[533,28597,2469],{"class":553},[533,28599,28479],{"class":625},[533,28601,14257],{"class":553},[533,28603,28604],{"class":543}," phi_X)  ",[533,28606,28607],{"class":593},"# Similar to X gate\n",[533,28609,28610],{"class":535,"line":11296},[533,28611,891],{"emptyLinePlaceholder":790},[533,28613,28614],{"class":535,"line":11302},[533,28615,28616],{"class":593},"# Store pulses and titles in an array\n",[533,28618,28619,28622,28624,28626,28628],{"class":535,"line":11332},[533,28620,28621],{"class":543},"pulses ",[533,28623,554],{"class":553},[533,28625,2911],{"class":543},[533,28627,2914],{"class":560},[533,28629,28630],{"class":543},"([\n",[533,28632,28633,28636,28639],{"class":535,"line":11345},[533,28634,28635],{"class":543},"    (modulated_pulse_X, ",[533,28637,28638],{"class":621},"\"Pauli-X Gate\"",[533,28640,19687],{"class":543},[533,28642,28643,28646,28649],{"class":535,"line":11372},[533,28644,28645],{"class":543},"    (modulated_pulse_Y, ",[533,28647,28648],{"class":621},"\"Pauli-Y Gate\"",[533,28650,19687],{"class":543},[533,28652,28653,28656,28659],{"class":535,"line":11385},[533,28654,28655],{"class":543},"    (modulated_pulse_H, ",[533,28657,28658],{"class":621},"\"Hadamard Gate\"",[533,28660,19687],{"class":543},[533,28662,28663,28666,28669],{"class":535,"line":11390},[533,28664,28665],{"class":543},"    (modulated_pulse_CNOT, ",[533,28667,28668],{"class":621},"\"CNOT Gate Target Qubit\"",[533,28670,637],{"class":543},[533,28672,28673,28675,28677,28680],{"class":535,"line":11402},[533,28674,16316],{"class":543},[533,28676,16210],{"class":567},[533,28678,28679],{"class":553},"=object",[533,28681,637],{"class":543},[533,28683,28684],{"class":535,"line":11407},[533,28685,891],{"emptyLinePlaceholder":790},[533,28687,28688],{"class":535,"line":11412},[533,28689,28690],{"class":593},"# Create plots with blue pulse lines\n",[533,28692,28693,28695,28697,28699,28701,28703,28705,28707,28709,28711,28713,28715,28717,28719,28721,28723,28725,28727,28729,28731],{"class":535,"line":11418},[533,28694,27052],{"class":543},[533,28696,554],{"class":553},[533,28698,19777],{"class":543},[533,28700,19780],{"class":560},[533,28702,615],{"class":543},[533,28704,1140],{"class":625},[533,28706,1133],{"class":543},[533,28708,1140],{"class":625},[533,28710,1133],{"class":543},[533,28712,12901],{"class":567},[533,28714,554],{"class":553},[533,28716,615],{"class":543},[533,28718,19799],{"class":625},[533,28720,1133],{"class":543},[533,28722,12908],{"class":625},[533,28724,3945],{"class":543},[533,28726,27085],{"class":567},[533,28728,554],{"class":553},[533,28730,1958],{"class":625},[533,28732,637],{"class":543},[533,28734,28735,28737,28739,28741,28743],{"class":535,"line":11423},[533,28736,27096],{"class":543},[533,28738,554],{"class":553},[533,28740,27101],{"class":543},[533,28742,19819],{"class":560},[533,28744,1217],{"class":543},[533,28746,28747],{"class":535,"line":11467},[533,28748,891],{"emptyLinePlaceholder":790},[533,28750,28751,28753,28756,28758,28760],{"class":535,"line":11473},[533,28752,3180],{"class":539},[533,28754,28755],{"class":543}," ax, (pulse, title) ",[533,28757,2786],{"class":539},[533,28759,27126],{"class":553},[533,28761,28762],{"class":543},"(axs, pulses):\n",[533,28764,28765,28767,28769,28772,28774,28776,28778,28780,28782,28784,28786,28788,28790,28792,28794,28796,28798,28801,28803],{"class":535,"line":11488},[533,28766,27134],{"class":543},[533,28768,12932],{"class":560},[533,28770,28771],{"class":543},"(t, pulse, ",[533,28773,19852],{"class":621},[533,28775,1133],{"class":543},[533,28777,12694],{"class":567},[533,28779,554],{"class":553},[533,28781,14323],{"class":625},[533,28783,1133],{"class":543},[533,28785,12942],{"class":567},[533,28787,554],{"class":553},[533,28789,618],{"class":539},[533,28791,439],{"class":621},[533,28793,626],{"class":625},[533,28795,8639],{"class":543},[533,28797,632],{"class":625},[533,28799,28800],{"class":621}," Modulated Pulse\"",[533,28802,16970],{"class":543},[533,28804,28805],{"class":593},"# Blue line with reduced thickness\n",[533,28807,28808,28810,28812,28815,28818,28820,28822,28824,28826,28828,28830,28832,28835],{"class":535,"line":11505},[533,28809,27134],{"class":543},[533,28811,12932],{"class":560},[533,28813,28814],{"class":543},"(t, gaussian_envelope, ",[533,28816,28817],{"class":621},"'r--'",[533,28819,1133],{"class":543},[533,28821,12694],{"class":567},[533,28823,554],{"class":553},[533,28825,2239],{"class":625},[533,28827,1133],{"class":543},[533,28829,12942],{"class":567},[533,28831,554],{"class":553},[533,28833,28834],{"class":621},"\"Gaussian Envelope\"",[533,28836,637],{"class":543},[533,28838,28839,28841,28843,28846,28848,28851,28853,28855,28857,28859,28861],{"class":535,"line":11518},[533,28840,27134],{"class":543},[533,28842,12932],{"class":560},[533,28844,28845],{"class":543},"(t, ",[533,28847,2514],{"class":553},[533,28849,28850],{"class":543},"gaussian_envelope, ",[533,28852,28817],{"class":621},[533,28854,1133],{"class":543},[533,28856,12694],{"class":567},[533,28858,554],{"class":553},[533,28860,2239],{"class":625},[533,28862,637],{"class":543},[533,28864,28865,28867,28869,28871,28873,28876,28878,28880,28882,28884],{"class":535,"line":11523},[533,28866,27134],{"class":543},[533,28868,19861],{"class":560},[533,28870,615],{"class":543},[533,28872,618],{"class":539},[533,28874,28875],{"class":621},"\"Modulated Pulse for ",[533,28877,626],{"class":625},[533,28879,8639],{"class":543},[533,28881,632],{"class":625},[533,28883,439],{"class":621},[533,28885,637],{"class":543},[533,28887,28888,28890,28892,28894,28896],{"class":535,"line":11555},[533,28889,27134],{"class":543},[533,28891,19871],{"class":560},[533,28893,615],{"class":543},[533,28895,27181],{"class":621},[533,28897,637],{"class":543},[533,28899,28900,28902,28904,28906,28908],{"class":535,"line":11561},[533,28901,27134],{"class":543},[533,28903,19885],{"class":560},[533,28905,615],{"class":543},[533,28907,19890],{"class":621},[533,28909,637],{"class":543},[533,28911,28912],{"class":535,"line":11577},[533,28913,28914],{"class":593},"    # ax.legend()\n",[533,28916,28917],{"class":535,"line":11600},[533,28918,28919],{"class":593},"    # ax.grid()\n",[533,28921,28922],{"class":535,"line":11621},[533,28923,891],{"emptyLinePlaceholder":790},[533,28925,28926,28928,28930],{"class":535,"line":11637},[533,28927,12893],{"class":543},[533,28929,13120],{"class":560},[533,28931,1217],{"class":543},[2175,28933],{"alt":28934,"src":28935},"Output 17 of the notebook","\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-17.webp",[773,28937,28938],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":28940},[28941,28942,28943,28944],{"id":21796,"depth":575,"text":21799},{"id":22402,"depth":575,"text":22405},{"id":23161,"depth":575,"text":23164},{"id":23990,"depth":575,"text":23993},[4349,4637,16782,28946],"Pulse shapes",[28948],{"username":6135,"name":6133,"role":16786,"bio":16787,"links":28949},[28950,28951],{"label":4363,"href":16790},{"label":16792,"href":16821},{"username":6135,"name":6133,"role":16794},"How microwave pulses are shaped to control a quantum chip: Gaussian and sinusoidal envelopes, and the modulated pulses behind common gates.",{},"\u002F_content\u002Fimages\u002Fpulse-shapes-and-envelopes\u002Foutput-01.png","\u002Fblog\u002Fexpert-notes\u002Fpulse-shapes-and-envelopes",[],{"title":16811,"description":28953},"blog\u002Fexpert-notes\u002Fpulse-shapes-and-envelopes",[16806,16807],"rMZ4iqQH2cbmCBRoqkOFfhhxUP4drkLawHVzQiASkEE",{"id":28963,"title":28964,"authors":28965,"body":28966,"breadcrumb":48581,"builders":48583,"byline":48588,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":48589,"draft":786,"extension":787,"eyebrow":48590,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":48591,"navigation":790,"newsItems":7,"next":7,"ogImage":48592,"order":7,"outcomes":7,"path":48593,"publishDate":16800,"readingTime":48594,"related":48595,"relatedProjects":7,"seo":48596,"stem":48597,"tags":48598,"track":7,"trackName":7,"__hash__":48599},"blog\u002Fblog\u002Fexpert-notes\u002Fwigner-functions-single-qubit-gates.md","Wigner Functions for Single-Qubit Quantum Gates",[6135],{"type":9,"value":28967,"toc":48566},[28968,28975,28977,28981,29053,29794,29892,30339,30484,30630,30839,30841,30845,30848,31183,31250,31787,31852,32489,32495,32864,32943,32945,32980,33012,33659,33948,33950,33954,34059,34381,34514,34754,34756,34791,35037,35785,35788,36293,36398,36893,36895,36953,37107,37522,37528,37801,37804,37806,37810,37873,38549,38552,38554,38558,38885,38887,38891,38894,38901,38903,38907,39076,39275,41373,42521,42527,42533,42539,42542,42545,42548,43538,43544,43547,43550,46193,46199,46205,46211,46214,46217,46220,48554,48560,48563],[12,28969,28970],{},[9404,28971,9406,28972,9411],{},[19,28973,9410],{"href":28974},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum\u002FNotebooks-for-Ideas\u002Fblob\u002Fmain\u002FWigner_Functions_for_Single_Qubit_Quantum_Gates_.ipynb",[10993,28976],{},[25,28978,28980],{"id":28979},"_1-core-objects-and-symbols","1. Core Objects and Symbols",[12,28982,28983,28986,28987,29052],{},[974,28984,28985],{},"Pauli matrices"," (in the computational basis (",[533,28988,28990,29016],{"className":28989},[9443],[533,28991,28993],{"className":28992},[9447],[9174,28994,28995],{"xmlns":9450},[9452,28996,28997,29013],{},[9455,28998,28999,29001,29003,29005,29007,29009,29011],{},[9958,29000,9961],{"stretchy":9960},[10856,29002,1049],{},[9958,29004,10860],{"stretchy":9960},[9958,29006,2464],{"separator":1089},[9958,29008,9961],{"stretchy":9960},[10856,29010,1052],{},[9958,29012,10860],{"stretchy":9960},[9473,29014,29015],{"encoding":9475},"{\\lvert 0\\rangle,\\lvert 1\\rangle}",[533,29017,29019],{"className":29018,"ariaHidden":1089},[9480],[533,29020,29022,29025],{"className":29021},[9484],[533,29023],{"className":29024,"style":9998},[9488],[533,29026,29028,29031,29034,29037,29040,29043,29046,29049],{"className":29027},[9493],[533,29029,9961],{"className":29030},[10002],[533,29032,1049],{"className":29033},[9493],[533,29035,10860],{"className":29036},[10101],[533,29038,2464],{"className":29039},[10344],[533,29041],{"className":29042,"style":10349},[10348],[533,29044,9961],{"className":29045},[10002],[533,29047,1052],{"className":29048},[9493],[533,29050,10860],{"className":29051},[10101],")):",[533,29054,29057],{"className":29055},[29056],"katex-display",[533,29058,29060,29229],{"className":29059},[9443],[533,29061,29063],{"className":29062},[9447],[9174,29064,29066],{"xmlns":9450,"display":29065},"block",[9452,29067,29068,29226],{},[9455,29069,29070,29077,29079,29121,29123,29125,29132,29134,29174,29176,29178,29184,29186],{},[9458,29071,29072,29074],{},[9461,29073,21876],{},[9461,29075,29076],{},"x",[9958,29078,554],{},[9455,29080,29081,29083,29119],{},[9958,29082,615],{"fence":1089},[29084,29085,29088,29105],"mtable",{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},"0.16em","center center",[29089,29090,29091,29099],"mtr",{},[29092,29093,29094],"mtd",{},[29095,29096,29097],"mstyle",{"scriptlevel":1049,"displaystyle":9960},[10856,29098,1049],{},[29092,29100,29101],{},[29095,29102,29103],{"scriptlevel":1049,"displaystyle":9960},[10856,29104,1052],{},[29089,29106,29107,29113],{},[29092,29108,29109],{},[29095,29110,29111],{"scriptlevel":1049,"displaystyle":9960},[10856,29112,1052],{},[29092,29114,29115],{},[29095,29116,29117],{"scriptlevel":1049,"displaystyle":9960},[10856,29118,1049],{},[9958,29120,2632],{"fence":1089},[9958,29122,2464],{"separator":1089},[10348,29124],{"width":24074},[9458,29126,29127,29129],{},[9461,29128,21876],{},[9461,29130,29131],{},"y",[9958,29133,554],{},[9455,29135,29136,29138,29172],{},[9958,29137,615],{"fence":1089},[29084,29139,29140,29158],{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},[29089,29141,29142,29148],{},[29092,29143,29144],{},[29095,29145,29146],{"scriptlevel":1049,"displaystyle":9960},[10856,29147,1049],{},[29092,29149,29150],{},[29095,29151,29152],{"scriptlevel":1049,"displaystyle":9960},[9455,29153,29154,29156],{},[9958,29155,21843],{},[9461,29157,2556],{},[29089,29159,29160,29166],{},[29092,29161,29162],{},[29095,29163,29164],{"scriptlevel":1049,"displaystyle":9960},[9461,29165,2556],{},[29092,29167,29168],{},[29095,29169,29170],{"scriptlevel":1049,"displaystyle":9960},[10856,29171,1049],{},[9958,29173,2632],{"fence":1089},[9958,29175,2464],{"separator":1089},[10348,29177],{"width":24074},[9458,29179,29180,29182],{},[9461,29181,21876],{},[9461,29183,1632],{},[9958,29185,554],{},[9455,29187,29188,29190,29224],{},[9958,29189,615],{"fence":1089},[29084,29191,29192,29206],{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},[29089,29193,29194,29200],{},[29092,29195,29196],{},[29095,29197,29198],{"scriptlevel":1049,"displaystyle":9960},[10856,29199,1052],{},[29092,29201,29202],{},[29095,29203,29204],{"scriptlevel":1049,"displaystyle":9960},[10856,29205,1049],{},[29089,29207,29208,29214],{},[29092,29209,29210],{},[29095,29211,29212],{"scriptlevel":1049,"displaystyle":9960},[10856,29213,1049],{},[29092,29215,29216],{},[29095,29217,29218],{"scriptlevel":1049,"displaystyle":9960},[9455,29219,29220,29222],{},[9958,29221,21843],{},[10856,29223,1052],{},[9958,29225,2632],{"fence":1089},[9473,29227,29228],{"encoding":9475},"\\sigma_x = \\begin{pmatrix} 0 & 1 \\\\ 1 & 0 \\end{pmatrix}, \\quad\n\\sigma_y = \\begin{pmatrix} 0 & -i \\\\ i & 0 \\end{pmatrix}, \\quad\n\\sigma_z = \\begin{pmatrix} 1 & 0 \\\\ 0 & -1 \\end{pmatrix}",[533,29230,29232,29287,29480,29668],{"className":29231,"ariaHidden":1089},[9480],[533,29233,29235,29238,29278,29281,29284],{"className":29234},[9484],[533,29236],{"className":29237,"style":9489},[9488],[533,29239,29241,29244],{"className":29240},[9493],[533,29242,21876],{"className":29243,"style":9498},[9493,9497],[533,29245,29247],{"className":29246},[9502],[533,29248,29250,29270],{"className":29249},[9506,9507],[533,29251,29253,29267],{"className":29252},[9511],[533,29254,29256],{"className":29255,"style":22873},[9515],[533,29257,29258,29261],{"style":9519},[533,29259],{"className":29260,"style":9524},[9523],[533,29262,29264],{"className":29263},[9528,9529,9530,9531],[533,29265,29076],{"className":29266},[9493,9497,9531],[533,29268,1090],{"className":29269},[9546],[533,29271,29273],{"className":29272},[9511],[533,29274,29276],{"className":29275,"style":9553},[9515],[533,29277],{},[533,29279],{"className":29280,"style":21908},[10348],[533,29282,554],{"className":29283},[21912],[533,29285],{"className":29286,"style":21908},[10348],[533,29288,29290,29294,29418,29421,29424,29427,29430,29471,29474,29477],{"className":29289},[9484],[533,29291],{"className":29292,"style":29293},[9488],"height:2.4em;vertical-align:-0.95em;",[533,29295,29297,29303,29412],{"className":29296},[21977],[533,29298,29300],{"className":29299,"style":21982},[10002,21981],[533,29301,615],{"className":29302},[21986,9530],[533,29304,29306],{"className":29305},[9493],[533,29307,29309,29359,29364,29367],{"className":29308},[29084],[533,29310,29313],{"className":29311},[29312],"col-align-c",[533,29314,29316,29350],{"className":29315},[9506,9507],[533,29317,29319,29347],{"className":29318},[9511],[533,29320,29323,29335],{"className":29321,"style":29322},[9515],"height:1.45em;",[533,29324,29326,29329],{"style":29325},"top:-3.61em;",[533,29327],{"className":29328,"style":22017},[9523],[533,29330,29332],{"className":29331},[9493],[533,29333,1049],{"className":29334},[9493],[533,29336,29338,29341],{"style":29337},"top:-2.41em;",[533,29339],{"className":29340,"style":22017},[9523],[533,29342,29344],{"className":29343},[9493],[533,29345,1052],{"className":29346},[9493],[533,29348,1090],{"className":29349},[9546],[533,29351,29353],{"className":29352},[9511],[533,29354,29357],{"className":29355,"style":29356},[9515],"height:0.95em;",[533,29358],{},[533,29360],{"className":29361,"style":29363},[29362],"arraycolsep","width:0.5em;",[533,29365],{"className":29366,"style":29363},[29362],[533,29368,29370],{"className":29369},[29312],[533,29371,29373,29404],{"className":29372},[9506,9507],[533,29374,29376,29401],{"className":29375},[9511],[533,29377,29379,29390],{"className":29378,"style":29322},[9515],[533,29380,29381,29384],{"style":29325},[533,29382],{"className":29383,"style":22017},[9523],[533,29385,29387],{"className":29386},[9493],[533,29388,1052],{"className":29389},[9493],[533,29391,29392,29395],{"style":29337},[533,29393],{"className":29394,"style":22017},[9523],[533,29396,29398],{"className":29397},[9493],[533,29399,1049],{"className":29400},[9493],[533,29402,1090],{"className":29403},[9546],[533,29405,29407],{"className":29406},[9511],[533,29408,29410],{"className":29409,"style":29356},[9515],[533,29411],{},[533,29413,29415],{"className":29414,"style":21982},[10101,21981],[533,29416,2632],{"className":29417},[21986,9530],[533,29419],{"className":29420,"style":10349},[10348],[533,29422,2464],{"className":29423},[10344],[533,29425],{"className":29426,"style":24146},[10348],[533,29428],{"className":29429,"style":10349},[10348],[533,29431,29433,29436],{"className":29432},[9493],[533,29434,21876],{"className":29435,"style":9498},[9493,9497],[533,29437,29439],{"className":29438},[9502],[533,29440,29442,29462],{"className":29441},[9506,9507],[533,29443,29445,29459],{"className":29444},[9511],[533,29446,29448],{"className":29447,"style":22873},[9515],[533,29449,29450,29453],{"style":9519},[533,29451],{"className":29452,"style":9524},[9523],[533,29454,29456],{"className":29455},[9528,9529,9530,9531],[533,29457,29131],{"className":29458,"style":9498},[9493,9497,9531],[533,29460,1090],{"className":29461},[9546],[533,29463,29465],{"className":29464},[9511],[533,29466,29469],{"className":29467,"style":29468},[9515],"height:0.2861em;",[533,29470],{},[533,29472],{"className":29473,"style":21908},[10348],[533,29475,554],{"className":29476},[21912],[533,29478],{"className":29479,"style":21908},[10348],[533,29481,29483,29486,29606,29609,29612,29615,29618,29659,29662,29665],{"className":29482},[9484],[533,29484],{"className":29485,"style":29293},[9488],[533,29487,29489,29495,29600],{"className":29488},[21977],[533,29490,29492],{"className":29491,"style":21982},[10002,21981],[533,29493,615],{"className":29494},[21986,9530],[533,29496,29498],{"className":29497},[9493],[533,29499,29501,29546,29549,29552],{"className":29500},[29084],[533,29502,29504],{"className":29503},[29312],[533,29505,29507,29538],{"className":29506},[9506,9507],[533,29508,29510,29535],{"className":29509},[9511],[533,29511,29513,29524],{"className":29512,"style":29322},[9515],[533,29514,29515,29518],{"style":29325},[533,29516],{"className":29517,"style":22017},[9523],[533,29519,29521],{"className":29520},[9493],[533,29522,1049],{"className":29523},[9493],[533,29525,29526,29529],{"style":29337},[533,29527],{"className":29528,"style":22017},[9523],[533,29530,29532],{"className":29531},[9493],[533,29533,2556],{"className":29534},[9493,9497],[533,29536,1090],{"className":29537},[9546],[533,29539,29541],{"className":29540},[9511],[533,29542,29544],{"className":29543,"style":29356},[9515],[533,29545],{},[533,29547],{"className":29548,"style":29363},[29362],[533,29550],{"className":29551,"style":29363},[29362],[533,29553,29555],{"className":29554},[29312],[533,29556,29558,29592],{"className":29557},[9506,9507],[533,29559,29561,29589],{"className":29560},[9511],[533,29562,29564,29578],{"className":29563,"style":29322},[9515],[533,29565,29566,29569],{"style":29325},[533,29567],{"className":29568,"style":22017},[9523],[533,29570,29572,29575],{"className":29571},[9493],[533,29573,21843],{"className":29574},[9493],[533,29576,2556],{"className":29577},[9493,9497],[533,29579,29580,29583],{"style":29337},[533,29581],{"className":29582,"style":22017},[9523],[533,29584,29586],{"className":29585},[9493],[533,29587,1049],{"className":29588},[9493],[533,29590,1090],{"className":29591},[9546],[533,29593,29595],{"className":29594},[9511],[533,29596,29598],{"className":29597,"style":29356},[9515],[533,29599],{},[533,29601,29603],{"className":29602,"style":21982},[10101,21981],[533,29604,2632],{"className":29605},[21986,9530],[533,29607],{"className":29608,"style":10349},[10348],[533,29610,2464],{"className":29611},[10344],[533,29613],{"className":29614,"style":24146},[10348],[533,29616],{"className":29617,"style":10349},[10348],[533,29619,29621,29624],{"className":29620},[9493],[533,29622,21876],{"className":29623,"style":9498},[9493,9497],[533,29625,29627],{"className":29626},[9502],[533,29628,29630,29651],{"className":29629},[9506,9507],[533,29631,29633,29648],{"className":29632},[9511],[533,29634,29636],{"className":29635,"style":22873},[9515],[533,29637,29638,29641],{"style":9519},[533,29639],{"className":29640,"style":9524},[9523],[533,29642,29644],{"className":29643},[9528,9529,9530,9531],[533,29645,1632],{"className":29646,"style":29647},[9493,9497,9531],"margin-right:0.044em;",[533,29649,1090],{"className":29650},[9546],[533,29652,29654],{"className":29653},[9511],[533,29655,29657],{"className":29656,"style":9553},[9515],[533,29658],{},[533,29660],{"className":29661,"style":21908},[10348],[533,29663,554],{"className":29664},[21912],[533,29666],{"className":29667,"style":21908},[10348],[533,29669,29671,29674],{"className":29670},[9484],[533,29672],{"className":29673,"style":29293},[9488],[533,29675,29677,29683,29788],{"className":29676},[21977],[533,29678,29680],{"className":29679,"style":21982},[10002,21981],[533,29681,615],{"className":29682},[21986,9530],[533,29684,29686],{"className":29685},[9493],[533,29687,29689,29734,29737,29740],{"className":29688},[29084],[533,29690,29692],{"className":29691},[29312],[533,29693,29695,29726],{"className":29694},[9506,9507],[533,29696,29698,29723],{"className":29697},[9511],[533,29699,29701,29712],{"className":29700,"style":29322},[9515],[533,29702,29703,29706],{"style":29325},[533,29704],{"className":29705,"style":22017},[9523],[533,29707,29709],{"className":29708},[9493],[533,29710,1052],{"className":29711},[9493],[533,29713,29714,29717],{"style":29337},[533,29715],{"className":29716,"style":22017},[9523],[533,29718,29720],{"className":29719},[9493],[533,29721,1049],{"className":29722},[9493],[533,29724,1090],{"className":29725},[9546],[533,29727,29729],{"className":29728},[9511],[533,29730,29732],{"className":29731,"style":29356},[9515],[533,29733],{},[533,29735],{"className":29736,"style":29363},[29362],[533,29738],{"className":29739,"style":29363},[29362],[533,29741,29743],{"className":29742},[29312],[533,29744,29746,29780],{"className":29745},[9506,9507],[533,29747,29749,29777],{"className":29748},[9511],[533,29750,29752,29763],{"className":29751,"style":29322},[9515],[533,29753,29754,29757],{"style":29325},[533,29755],{"className":29756,"style":22017},[9523],[533,29758,29760],{"className":29759},[9493],[533,29761,1049],{"className":29762},[9493],[533,29764,29765,29768],{"style":29337},[533,29766],{"className":29767,"style":22017},[9523],[533,29769,29771,29774],{"className":29770},[9493],[533,29772,21843],{"className":29773},[9493],[533,29775,1052],{"className":29776},[9493],[533,29778,1090],{"className":29779},[9546],[533,29781,29783],{"className":29782},[9511],[533,29784,29786],{"className":29785,"style":29356},[9515],[533,29787],{},[533,29789,29791],{"className":29790,"style":21982},[10101,21981],[533,29792,2632],{"className":29793},[21986,9530],[12,29795,29796,1576,29799,5037,29802,29891],{},[974,29797,29798],{},"Density operator",[974,29800,29801],{},"Bloch vector",[533,29803,29805,29831],{"className":29804},[9443],[533,29806,29808],{"className":29807},[9447],[9174,29809,29810],{"xmlns":9450},[9452,29811,29812,29828],{},[9455,29813,29814,29817,29820],{},[9461,29815,13035],{"mathvariant":29816},"bold",[9958,29818,29819],{},"∈",[21862,29821,29822,29826],{},[9461,29823,29825],{"mathvariant":29824},"double-struck","R",[10856,29827,1157],{},[9473,29829,29830],{"encoding":9475},"\\mathbf r\\in\\mathbb R^3",[533,29832,29834,29854],{"className":29833,"ariaHidden":1089},[9480],[533,29835,29837,29841,29845,29848,29851],{"className":29836},[9484],[533,29838],{"className":29839,"style":29840},[9488],"height:0.5782em;vertical-align:-0.0391em;",[533,29842,13035],{"className":29843},[9493,29844],"mathbf",[533,29846],{"className":29847,"style":21908},[10348],[533,29849,29819],{"className":29850},[21912],[533,29852],{"className":29853,"style":21908},[10348],[533,29855,29857,29861],{"className":29856},[9484],[533,29858],{"className":29859,"style":29860},[9488],"height:0.8141em;",[533,29862,29864,29868],{"className":29863},[9493],[533,29865,29825],{"className":29866},[9493,29867],"mathbb",[533,29869,29871],{"className":29870},[9502],[533,29872,29874],{"className":29873},[9506],[533,29875,29877],{"className":29876},[9511],[533,29878,29880],{"className":29879,"style":29860},[9515],[533,29881,29882,29885],{"style":24194},[533,29883],{"className":29884,"style":9524},[9523],[533,29886,29888],{"className":29887},[9528,9529,9530,9531],[533,29889,1157],{"className":29890},[9493,9531],"):",[533,29893,29895],{"className":29894},[29056],[533,29896,29898,29996],{"className":29897},[9443],[533,29899,29901],{"className":29900},[9447],[9174,29902,29903],{"xmlns":9450,"display":29065},[9452,29904,29905,29993],{},[9455,29906,29907,29910,29912,29920,29923,29925,29927,29929,29932,29935,29937,29939,29942,29948,29950,29953,29955,29957,29959,29961,29967,29969,29971,29975,29977,29979,29991],{},[9461,29908,29909],{},"ρ",[9958,29911,554],{},[29095,29913,29914],{"scriptlevel":1049,"displaystyle":9960},[21845,29915,29916,29918],{},[10856,29917,1052],{},[10856,29919,1140],{},[9958,29921,615],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},"1.2em",[9461,29924,10779],{},[9958,29926,6350],{},[9461,29928,13035],{"mathvariant":29816},[9958,29930,29931],{},"⋅",[9461,29933,21876],{"mathvariant":29934},"bold-italic",[9958,29936,2632],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9958,29938,2464],{"separator":1089},[10348,29940],{"width":29941},"2em",[9458,29943,29944,29946],{},[9461,29945,13035],{},[9461,29947,2561],{},[9958,29949,554],{},[9461,29951,29952],{"mathvariant":9573},"Tr",[9958,29954,21836],{},[9958,29956,615],{"stretchy":9960},[9461,29958,29909],{},[9958,29960,2464],{"separator":1089},[9458,29962,29963,29965],{},[9461,29964,21876],{},[9461,29966,2561],{},[9958,29968,2632],{"stretchy":9960},[9958,29970,2464],{"separator":1089},[29972,29973,29974],"mtext",{}," ",[9461,29976,2561],{},[9958,29978,29819],{},[9455,29980,29981,29983,29985,29987,29989],{},[9461,29982,29076],{},[9958,29984,2464],{"separator":1089},[9461,29986,29131],{},[9958,29988,2464],{"separator":1089},[9461,29990,1632],{},[9461,29992,114],{"mathvariant":9573},[9473,29994,29995],{"encoding":9475},"\\rho = \\tfrac{1}{2}\\big(I + \\mathbf r\\cdot\\boldsymbol{\\sigma}\\big),\\qquad\nr_j = \\operatorname{Tr}(\\rho,\\sigma_j),\\ j\\in{x,y,z}.",[533,29997,29999,30018,30112,30131,30216,30306],{"className":29998,"ariaHidden":1089},[9480],[533,30000,30002,30006,30009,30012,30015],{"className":30001},[9484],[533,30003],{"className":30004,"style":30005},[9488],"height:0.625em;vertical-align:-0.1944em;",[533,30007,29909],{"className":30008},[9493,9497],[533,30010],{"className":30011,"style":21908},[10348],[533,30013,554],{"className":30014},[21912],[533,30016],{"className":30017,"style":21908},[10348],[533,30019,30021,30025,30094,30100,30103,30106,30109],{"className":30020},[9484],[533,30022],{"className":30023,"style":30024},[9488],"height:1.2em;vertical-align:-0.35em;",[533,30026,30028,30031,30091],{"className":30027},[9493],[533,30029],{"className":30030},[10002,21997],[533,30032,30034],{"className":30033},[21845],[533,30035,30037,30083],{"className":30036},[9506,9507],[533,30038,30040,30080],{"className":30039},[9511],[533,30041,30044,30058,30066],{"className":30042,"style":30043},[9515],"height:0.8451em;",[533,30045,30046,30049],{"style":22013},[533,30047],{"className":30048,"style":22017},[9523],[533,30050,30052],{"className":30051},[9528,9529,9530,9531],[533,30053,30055],{"className":30054},[9493,9531],[533,30056,1140],{"className":30057},[9493,9531],[533,30059,30060,30063],{"style":22063},[533,30061],{"className":30062,"style":22017},[9523],[533,30064],{"className":30065,"style":22071},[22070],[533,30067,30068,30071],{"style":23904},[533,30069],{"className":30070,"style":22017},[9523],[533,30072,30074],{"className":30073},[9528,9529,9530,9531],[533,30075,30077],{"className":30076},[9493,9531],[533,30078,1052],{"className":30079},[9493,9531],[533,30081,1090],{"className":30082},[9546],[533,30084,30086],{"className":30085},[9511],[533,30087,30089],{"className":30088,"style":22177},[9515],[533,30090],{},[533,30092],{"className":30093},[10101,21997],[533,30095,30097],{"className":30096},[9493],[533,30098,615],{"className":30099},[21986,22057],[533,30101,10779],{"className":30102,"style":9542},[9493,9497],[533,30104],{"className":30105,"style":22903},[10348],[533,30107,6350],{"className":30108},[22093],[533,30110],{"className":30111,"style":22903},[10348],[533,30113,30115,30119,30122,30125,30128],{"className":30114},[9484],[533,30116],{"className":30117,"style":30118},[9488],"height:0.4445em;",[533,30120,13035],{"className":30121},[9493,29844],[533,30123],{"className":30124,"style":22903},[10348],[533,30126,29931],{"className":30127},[22093],[533,30129],{"className":30130,"style":22903},[10348],[533,30132,30134,30137,30148,30154,30157,30161,30164,30207,30210,30213],{"className":30133},[9484],[533,30135],{"className":30136,"style":30024},[9488],[533,30138,30140],{"className":30139},[9493],[533,30141,30143],{"className":30142},[9493],[533,30144,21876],{"className":30145,"style":30147},[9493,30146],"boldsymbol","margin-right:0.037em;",[533,30149,30151],{"className":30150},[9493],[533,30152,2632],{"className":30153},[21986,22057],[533,30155,2464],{"className":30156},[10344],[533,30158],{"className":30159,"style":30160},[10348],"margin-right:2em;",[533,30162],{"className":30163,"style":10349},[10348],[533,30165,30167,30170],{"className":30166},[9493],[533,30168,13035],{"className":30169,"style":24210},[9493,9497],[533,30171,30173],{"className":30172},[9502],[533,30174,30176,30199],{"className":30175},[9506,9507],[533,30177,30179,30196],{"className":30178},[9511],[533,30180,30183],{"className":30181,"style":30182},[9515],"height:0.3117em;",[533,30184,30186,30189],{"style":30185},"top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;",[533,30187],{"className":30188,"style":9524},[9523],[533,30190,30192],{"className":30191},[9528,9529,9530,9531],[533,30193,2561],{"className":30194,"style":30195},[9493,9497,9531],"margin-right:0.0572em;",[533,30197,1090],{"className":30198},[9546],[533,30200,30202],{"className":30201},[9511],[533,30203,30205],{"className":30204,"style":29468},[9515],[533,30206],{},[533,30208],{"className":30209,"style":21908},[10348],[533,30211,554],{"className":30212},[21912],[533,30214],{"className":30215,"style":21908},[10348],[533,30217,30219,30223,30230,30233,30236,30239,30242,30282,30285,30288,30291,30294,30297,30300,30303],{"className":30218},[9484],[533,30220],{"className":30221,"style":30222},[9488],"height:1.0361em;vertical-align:-0.2861em;",[533,30224,30226],{"className":30225},[21970],[533,30227,29952],{"className":30228},[9493,30229],"mathrm",[533,30231,615],{"className":30232},[10002],[533,30234,29909],{"className":30235},[9493,9497],[533,30237,2464],{"className":30238},[10344],[533,30240],{"className":30241,"style":10349},[10348],[533,30243,30245,30248],{"className":30244},[9493],[533,30246,21876],{"className":30247,"style":9498},[9493,9497],[533,30249,30251],{"className":30250},[9502],[533,30252,30254,30274],{"className":30253},[9506,9507],[533,30255,30257,30271],{"className":30256},[9511],[533,30258,30260],{"className":30259,"style":30182},[9515],[533,30261,30262,30265],{"style":9519},[533,30263],{"className":30264,"style":9524},[9523],[533,30266,30268],{"className":30267},[9528,9529,9530,9531],[533,30269,2561],{"className":30270,"style":30195},[9493,9497,9531],[533,30272,1090],{"className":30273},[9546],[533,30275,30277],{"className":30276},[9511],[533,30278,30280],{"className":30279,"style":29468},[9515],[533,30281],{},[533,30283,2632],{"className":30284},[10101],[533,30286,2464],{"className":30287},[10344],[533,30289,29974],{"className":30290},[10348],[533,30292],{"className":30293,"style":10349},[10348],[533,30295,2561],{"className":30296,"style":30195},[9493,9497],[533,30298],{"className":30299,"style":21908},[10348],[533,30301,29819],{"className":30302},[21912],[533,30304],{"className":30305,"style":21908},[10348],[533,30307,30309,30312,30336],{"className":30308},[9484],[533,30310],{"className":30311,"style":30005},[9488],[533,30313,30315,30318,30321,30324,30327,30330,30333],{"className":30314},[9493],[533,30316,29076],{"className":30317},[9493,9497],[533,30319,2464],{"className":30320},[10344],[533,30322],{"className":30323,"style":10349},[10348],[533,30325,29131],{"className":30326,"style":9498},[9493,9497],[533,30328,2464],{"className":30329},[10344],[533,30331],{"className":30332,"style":10349},[10348],[533,30334,1632],{"className":30335,"style":29647},[9493,9497],[533,30337,114],{"className":30338},[9493],[12,30340,30341,30342,30420,30421,1205],{},"For a pure state (",[533,30343,30345,30375],{"className":30344},[9443],[533,30346,30348],{"className":30347},[9447],[9174,30349,30350],{"xmlns":9450},[9452,30351,30352,30372],{},[9455,30353,30354,30356,30358,30360,30363,30365,30368,30370],{},[9461,30355,29909],{},[9958,30357,554],{},[9958,30359,9961],{"stretchy":9960},[9461,30361,30362],{},"ψ",[9958,30364,10860],{"stretchy":9960},[9958,30366,30367],{"stretchy":9960},"⟨",[9461,30369,30362],{},[9958,30371,9961],{"stretchy":9960},[9473,30373,30374],{"encoding":9475},"\\rho = \\lvert\\psi\\rangle\\langle\\psi\\rvert",[533,30376,30378,30396],{"className":30377,"ariaHidden":1089},[9480],[533,30379,30381,30384,30387,30390,30393],{"className":30380},[9484],[533,30382],{"className":30383,"style":30005},[9488],[533,30385,29909],{"className":30386},[9493,9497],[533,30388],{"className":30389,"style":21908},[10348],[533,30391,554],{"className":30392},[21912],[533,30394],{"className":30395,"style":21908},[10348],[533,30397,30399,30402,30405,30408,30411,30414,30417],{"className":30398},[9484],[533,30400],{"className":30401,"style":9998},[9488],[533,30403,9961],{"className":30404},[10002],[533,30406,30362],{"className":30407,"style":9498},[9493,9497],[533,30409,10860],{"className":30410},[10101],[533,30412,30367],{"className":30413},[10002],[533,30415,30362],{"className":30416,"style":9498},[9493,9497],[533,30418,9961],{"className":30419},[10101],"), one has (",[533,30422,30424,30447],{"className":30423},[9443],[533,30425,30427],{"className":30426},[9447],[9174,30428,30429],{"xmlns":9450},[9452,30430,30431,30444],{},[9455,30432,30433,30436,30438,30440,30442],{},[9958,30434,30435],{"stretchy":9960},"∥",[9461,30437,13035],{"mathvariant":29816},[9958,30439,30435],{"stretchy":9960},[9958,30441,554],{},[10856,30443,1052],{},[9473,30445,30446],{"encoding":9475},"\\lVert\\mathbf r\\rVert = 1",[533,30448,30450,30474],{"className":30449,"ariaHidden":1089},[9480],[533,30451,30453,30456,30459,30462,30465,30468,30471],{"className":30452},[9484],[533,30454],{"className":30455,"style":9998},[9488],[533,30457,30435],{"className":30458},[10002],[533,30460,13035],{"className":30461},[9493,29844],[533,30463,30435],{"className":30464},[10101],[533,30466],{"className":30467,"style":21908},[10348],[533,30469,554],{"className":30470},[21912],[533,30472],{"className":30473,"style":21908},[10348],[533,30475,30477,30481],{"className":30476},[9484],[533,30478],{"className":30479,"style":30480},[9488],"height:0.6444em;",[533,30482,1052],{"className":30483},[9493],[12,30485,30486,30489,30490,30629],{},[974,30487,30488],{},"Unit vector on the sphere"," (spherical angles (",[533,30491,30493,30538],{"className":30492},[9443],[533,30494,30496],{"className":30495},[9447],[9174,30497,30498],{"xmlns":9450},[9452,30499,30500,30535],{},[9455,30501,30502,30504,30506,30508,30510,30512,30514,30517,30519,30521,30523,30525,30527,30529,30531,30533],{},[9461,30503,24093],{},[9958,30505,29819],{},[9958,30507,1522],{"stretchy":9960},[10856,30509,1049],{},[9958,30511,2464],{"separator":1089},[9461,30513,22502],{},[9958,30515,30516],{"stretchy":9960},"]",[9958,30518,2464],{"separator":1089},[29972,30520,29974],{},[9461,30522,22517],{},[9958,30524,29819],{},[9958,30526,1522],{"stretchy":9960},[10856,30528,1049],{},[9958,30530,2464],{"separator":1089},[10856,30532,1140],{},[9461,30534,22502],{},[9473,30536,30537],{"encoding":9475},"\\theta\\in[0,\\pi],\\ \\phi\\in[0,2\\pi",[533,30539,30541,30560,30605],{"className":30540,"ariaHidden":1089},[9480],[533,30542,30544,30548,30551,30554,30557],{"className":30543},[9484],[533,30545],{"className":30546,"style":30547},[9488],"height:0.7335em;vertical-align:-0.0391em;",[533,30549,24093],{"className":30550,"style":24210},[9493,9497],[533,30552],{"className":30553,"style":21908},[10348],[533,30555,29819],{"className":30556},[21912],[533,30558],{"className":30559,"style":21908},[10348],[533,30561,30563,30566,30569,30572,30575,30578,30581,30584,30587,30590,30593,30596,30599,30602],{"className":30562},[9484],[533,30564],{"className":30565,"style":9998},[9488],[533,30567,1522],{"className":30568},[10002],[533,30570,1049],{"className":30571},[9493],[533,30573,2464],{"className":30574},[10344],[533,30576],{"className":30577,"style":10349},[10348],[533,30579,22502],{"className":30580,"style":9498},[9493,9497],[533,30582,30516],{"className":30583},[10101],[533,30585,2464],{"className":30586},[10344],[533,30588,29974],{"className":30589},[10348],[533,30591],{"className":30592,"style":10349},[10348],[533,30594,22517],{"className":30595},[9493,9497],[533,30597],{"className":30598,"style":21908},[10348],[533,30600,29819],{"className":30601},[21912],[533,30603],{"className":30604,"style":21908},[10348],[533,30606,30608,30611,30614,30617,30620,30623,30626],{"className":30607},[9484],[533,30609],{"className":30610,"style":9998},[9488],[533,30612,1522],{"className":30613},[10002],[533,30615,1049],{"className":30616},[9493],[533,30618,2464],{"className":30619},[10344],[533,30621],{"className":30622,"style":10349},[10348],[533,30624,1140],{"className":30625},[9493],[533,30627,22502],{"className":30628,"style":9498},[9493,9497],"))):",[533,30631,30633],{"className":30632},[29056],[533,30634,30636,30707],{"className":30635},[9443],[533,30637,30639],{"className":30638},[9447],[9174,30640,30641],{"xmlns":9450,"display":29065},[9452,30642,30643,30704],{},[9455,30644,30645,30648,30650,30652,30654,30656,30658,30660,30662,30664,30666,30668,30670,30672,30674,30676,30678,30680,30682,30684,30686,30688,30690,30692,30694,30696,30698,30700,30702],{},[9461,30646,30647],{"mathvariant":29816},"n",[9958,30649,615],{"stretchy":9960},[9461,30651,24093],{},[9958,30653,2464],{"separator":1089},[9461,30655,22517],{},[9958,30657,2632],{"stretchy":9960},[9958,30659,554],{},[9958,30661,615],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9461,30663,14336],{},[9958,30665,21836],{},[9461,30667,24093],{},[9461,30669,14318],{},[9958,30671,21836],{},[9461,30673,22517],{},[9958,30675,2464],{"separator":1089},[29972,30677,29974],{},[9461,30679,14336],{},[9958,30681,21836],{},[9461,30683,24093],{},[9461,30685,14336],{},[9958,30687,21836],{},[9461,30689,22517],{},[9958,30691,2464],{"separator":1089},[29972,30693,29974],{},[9461,30695,14318],{},[9958,30697,21836],{},[9461,30699,24093],{},[9958,30701,2632],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9461,30703,114],{"mathvariant":9573},[9473,30705,30706],{"encoding":9475},"\\mathbf n(\\theta,\\phi) = \\big(\\sin\\theta\\cos\\phi,\\ \\sin\\theta\\sin\\phi,\\ \\cos\\theta\\big).",[533,30708,30710,30746],{"className":30709,"ariaHidden":1089},[9480],[533,30711,30713,30716,30719,30722,30725,30728,30731,30734,30737,30740,30743],{"className":30712},[9484],[533,30714],{"className":30715,"style":9998},[9488],[533,30717,30647],{"className":30718},[9493,29844],[533,30720,615],{"className":30721},[10002],[533,30723,24093],{"className":30724,"style":24210},[9493,9497],[533,30726,2464],{"className":30727},[10344],[533,30729],{"className":30730,"style":10349},[10348],[533,30732,22517],{"className":30733},[9493,9497],[533,30735,2632],{"className":30736},[10101],[533,30738],{"className":30739,"style":21908},[10348],[533,30741,554],{"className":30742},[21912],[533,30744],{"className":30745,"style":21908},[10348],[533,30747,30749,30752,30758,30761,30764,30767,30770,30773,30776,30779,30782,30785,30788,30791,30794,30797,30800,30803,30806,30809,30812,30815,30818,30821,30824,30827,30830,30836],{"className":30748},[9484],[533,30750],{"className":30751,"style":30024},[9488],[533,30753,30755],{"className":30754},[9493],[533,30756,615],{"className":30757},[21986,22057],[533,30759],{"className":30760,"style":10349},[10348],[533,30762,14336],{"className":30763},[21970],[533,30765],{"className":30766,"style":10349},[10348],[533,30768,24093],{"className":30769,"style":24210},[9493,9497],[533,30771],{"className":30772,"style":10349},[10348],[533,30774,14318],{"className":30775},[21970],[533,30777],{"className":30778,"style":10349},[10348],[533,30780,22517],{"className":30781},[9493,9497],[533,30783,2464],{"className":30784},[10344],[533,30786,29974],{"className":30787},[10348],[533,30789],{"className":30790,"style":10349},[10348],[533,30792,14336],{"className":30793},[21970],[533,30795],{"className":30796,"style":10349},[10348],[533,30798,24093],{"className":30799,"style":24210},[9493,9497],[533,30801],{"className":30802,"style":10349},[10348],[533,30804,14336],{"className":30805},[21970],[533,30807],{"className":30808,"style":10349},[10348],[533,30810,22517],{"className":30811},[9493,9497],[533,30813,2464],{"className":30814},[10344],[533,30816,29974],{"className":30817},[10348],[533,30819],{"className":30820,"style":10349},[10348],[533,30822,14318],{"className":30823},[21970],[533,30825],{"className":30826,"style":10349},[10348],[533,30828,24093],{"className":30829,"style":24210},[9493,9497],[533,30831,30833],{"className":30832},[9493],[533,30834,2632],{"className":30835},[21986,22057],[533,30837,114],{"className":30838},[9493],[10993,30840],{},[25,30842,30844],{"id":30843},"_2-stratonovichweyl-sw-kernel-and-qubit-wigner-function","2. Stratonovich–Weyl (SW) Kernel and Qubit Wigner Function",[12,30846,30847],{},"A convenient SW kernel for a qubit is",[533,30849,30851],{"className":30850},[29056],[533,30852,30854,30922],{"className":30853},[9443],[533,30855,30857],{"className":30856},[9447],[9174,30858,30859],{"xmlns":9450,"display":29065},[9452,30860,30861,30919],{},[9455,30862,30863,30865,30867,30869,30871,30873,30875,30877,30885,30888,30890,30892,30897,30899,30901,30903,30905,30907,30909,30911,30913,30915,30917],{},[9461,30864,9574],{"mathvariant":9573},[9958,30866,615],{"stretchy":9960},[9461,30868,24093],{},[9958,30870,2464],{"separator":1089},[9461,30872,22517],{},[9958,30874,2632],{"stretchy":9960},[9958,30876,554],{},[29095,30878,30879],{"scriptlevel":1049,"displaystyle":9960},[21845,30880,30881,30883],{},[10856,30882,1052],{},[10856,30884,1140],{},[9958,30886,615],{"fence":9960,"stretchy":1089,"minsize":30887,"maxsize":30887},"1.8em",[9461,30889,10779],{},[9958,30891,6350],{},[30893,30894,30895],"msqrt",{},[10856,30896,1157],{},[9958,30898,2595],{"separator":1089},[9461,30900,30647],{"mathvariant":29816},[9958,30902,615],{"stretchy":9960},[9461,30904,24093],{},[9958,30906,2464],{"separator":1089},[9461,30908,22517],{},[9958,30910,2632],{"stretchy":9960},[9958,30912,29931],{},[9461,30914,21876],{"mathvariant":29934},[9958,30916,2632],{"fence":9960,"stretchy":1089,"minsize":30887,"maxsize":30887},[9958,30918,2464],{"separator":1089},[9473,30920,30921],{"encoding":9475},"\\Delta(\\theta,\\phi) = \\tfrac{1}{2}\\Big(I + \\sqrt{3};\\mathbf n(\\theta,\\phi)\\cdot\\boldsymbol{\\sigma}\\Big),",[533,30923,30925,30961,31053,31159],{"className":30924,"ariaHidden":1089},[9480],[533,30926,30928,30931,30934,30937,30940,30943,30946,30949,30952,30955,30958],{"className":30927},[9484],[533,30929],{"className":30930,"style":9998},[9488],[533,30932,9574],{"className":30933},[9493],[533,30935,615],{"className":30936},[10002],[533,30938,24093],{"className":30939,"style":24210},[9493,9497],[533,30941,2464],{"className":30942},[10344],[533,30944],{"className":30945,"style":10349},[10348],[533,30947,22517],{"className":30948},[9493,9497],[533,30950,2632],{"className":30951},[10101],[533,30953],{"className":30954,"style":21908},[10348],[533,30956,554],{"className":30957},[21912],[533,30959],{"className":30960,"style":21908},[10348],[533,30962,30964,30967,31035,31041,31044,31047,31050],{"className":30963},[9484],[533,30965],{"className":30966,"style":21922},[9488],[533,30968,30970,30973,31032],{"className":30969},[9493],[533,30971],{"className":30972},[10002,21997],[533,30974,30976],{"className":30975},[21845],[533,30977,30979,31024],{"className":30978},[9506,9507],[533,30980,30982,31021],{"className":30981},[9511],[533,30983,30985,30999,31007],{"className":30984,"style":30043},[9515],[533,30986,30987,30990],{"style":22013},[533,30988],{"className":30989,"style":22017},[9523],[533,30991,30993],{"className":30992},[9528,9529,9530,9531],[533,30994,30996],{"className":30995},[9493,9531],[533,30997,1140],{"className":30998},[9493,9531],[533,31000,31001,31004],{"style":22063},[533,31002],{"className":31003,"style":22017},[9523],[533,31005],{"className":31006,"style":22071},[22070],[533,31008,31009,31012],{"style":23904},[533,31010],{"className":31011,"style":22017},[9523],[533,31013,31015],{"className":31014},[9528,9529,9530,9531],[533,31016,31018],{"className":31017},[9493,9531],[533,31019,1052],{"className":31020},[9493,9531],[533,31022,1090],{"className":31023},[9546],[533,31025,31027],{"className":31026},[9511],[533,31028,31030],{"className":31029,"style":22177},[9515],[533,31031],{},[533,31033],{"className":31034},[10101,21997],[533,31036,31038],{"className":31037},[9493],[533,31039,615],{"className":31040},[21986,21987],[533,31042,10779],{"className":31043,"style":9542},[9493,9497],[533,31045],{"className":31046,"style":22903},[10348],[533,31048,6350],{"className":31049},[22093],[533,31051],{"className":31052,"style":22903},[10348],[533,31054,31056,31060,31123,31126,31129,31132,31135,31138,31141,31144,31147,31150,31153,31156],{"className":31055},[9484],[533,31057],{"className":31058,"style":31059},[9488],"height:1.2061em;vertical-align:-0.25em;",[533,31061,31063],{"className":31062},[9493,2262],[533,31064,31066,31114],{"className":31065},[9506,9507],[533,31067,31069,31111],{"className":31068},[9511],[533,31070,31073,31088],{"className":31071,"style":31072},[9515],"height:0.9561em;",[533,31074,31078,31081],{"className":31075,"style":31077},[31076],"svg-align","top:-3em;",[533,31079],{"className":31080,"style":22017},[9523],[533,31082,31085],{"className":31083,"style":31084},[9493],"padding-left:0.833em;",[533,31086,1157],{"className":31087},[9493],[533,31089,31091,31094],{"style":31090},"top:-2.9161em;",[533,31092],{"className":31093,"style":22017},[9523],[533,31095,31099],{"className":31096,"style":31098},[31097],"hide-tail","min-width:0.853em;height:1.08em;",[31100,31101,31107],"svg",{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","1.08em","0 0 400000 1080","xMinYMin slice",[31108,31109],"path",{"d":31110},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[533,31112,1090],{"className":31113},[9546],[533,31115,31117],{"className":31116},[9511],[533,31118,31121],{"className":31119,"style":31120},[9515],"height:0.0839em;",[533,31122],{},[533,31124,2595],{"className":31125},[10344],[533,31127],{"className":31128,"style":10349},[10348],[533,31130,30647],{"className":31131},[9493,29844],[533,31133,615],{"className":31134},[10002],[533,31136,24093],{"className":31137,"style":24210},[9493,9497],[533,31139,2464],{"className":31140},[10344],[533,31142],{"className":31143,"style":10349},[10348],[533,31145,22517],{"className":31146},[9493,9497],[533,31148,2632],{"className":31149},[10101],[533,31151],{"className":31152,"style":22903},[10348],[533,31154,29931],{"className":31155},[22093],[533,31157],{"className":31158,"style":22903},[10348],[533,31160,31162,31165,31174,31180],{"className":31161},[9484],[533,31163],{"className":31164,"style":21922},[9488],[533,31166,31168],{"className":31167},[9493],[533,31169,31171],{"className":31170},[9493],[533,31172,21876],{"className":31173,"style":30147},[9493,30146],[533,31175,31177],{"className":31176},[9493],[533,31178,2632],{"className":31179},[21986,21987],[533,31181,2464],{"className":31182},[10344],[12,31184,31185,31186,31189,31190,14555],{},"which yields the ",[974,31187,31188],{},"spin Wigner function"," (on (",[533,31191,31193,31212],{"className":31192},[9443],[533,31194,31196],{"className":31195},[9447],[9174,31197,31198],{"xmlns":9450},[9452,31199,31200,31209],{},[9455,31201,31202],{},[21862,31203,31204,31207],{},[9461,31205,31206],{},"S",[10856,31208,1140],{},[9473,31210,31211],{"encoding":9475},"S^2",[533,31213,31215],{"className":31214,"ariaHidden":1089},[9480],[533,31216,31218,31221],{"className":31217},[9484],[533,31219],{"className":31220,"style":29860},[9488],[533,31222,31224,31227],{"className":31223},[9493],[533,31225,31206],{"className":31226,"style":22540},[9493,9497],[533,31228,31230],{"className":31229},[9502],[533,31231,31233],{"className":31232},[9506],[533,31234,31236],{"className":31235},[9511],[533,31237,31239],{"className":31238,"style":29860},[9515],[533,31240,31241,31244],{"style":24194},[533,31242],{"className":31243,"style":9524},[9523],[533,31245,31247],{"className":31246},[9528,9529,9530,9531],[533,31248,1140],{"className":31249},[9493,9531],[533,31251,31253],{"className":31252},[29056],[533,31254,31256,31368],{"className":31255},[9443],[533,31257,31259],{"className":31258},[9447],[9174,31260,31261],{"xmlns":9450,"display":29065},[9452,31262,31263,31365],{},[29084,31264,31266],{"width":31265},"100%",[29089,31267,31268,31271,31358,31360],{},[29092,31269],{"width":31270},"50%",[29092,31272,31273],{},[9455,31274,31275,31282,31284,31286,31288,31290,31292,31294,31296,31298,31300,31302,31304,31306,31308,31310,31312,31314,31316,31318,31320,31328,31330,31338,31340,31342,31344,31346,31348,31350,31352,31354,31356],{},[9458,31276,31277,31280],{},[9461,31278,31279],{},"W",[9461,31281,29909],{},[9958,31283,615],{"stretchy":9960},[9461,31285,24093],{},[9958,31287,2464],{"separator":1089},[9461,31289,22517],{},[9958,31291,2632],{"stretchy":9960},[9958,31293,554],{},[9461,31295,29952],{"mathvariant":9573},[9958,31297,21836],{},[9958,31299,1522],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9461,31301,29909],{},[9958,31303,2464],{"separator":1089},[9461,31305,9574],{"mathvariant":9573},[9958,31307,615],{"stretchy":9960},[9461,31309,24093],{},[9958,31311,2464],{"separator":1089},[9461,31313,22517],{},[9958,31315,2632],{"stretchy":9960},[9958,31317,30516],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9958,31319,554],{},[29095,31321,31322],{"scriptlevel":1049,"displaystyle":9960},[21845,31323,31324,31326],{},[10856,31325,1052],{},[10856,31327,1140],{},[9958,31329,6350],{},[21845,31331,31332,31336],{},[30893,31333,31334],{},[10856,31335,1157],{},[10856,31337,1140],{},[9958,31339,2595],{"separator":1089},[9461,31341,13035],{"mathvariant":29816},[9958,31343,29931],{},[9461,31345,30647],{"mathvariant":29816},[9958,31347,615],{"stretchy":9960},[9461,31349,24093],{},[9958,31351,2464],{"separator":1089},[9461,31353,22517],{},[9958,31355,2632],{"stretchy":9960},[9461,31357,114],{"mathvariant":9573},[29092,31359],{"width":31270},[29092,31361,31362],{},[29972,31363,31364],{},"(SW–Qubit)",[9473,31366,31367],{"encoding":9475},"W_\\rho(\\theta,\\phi) = \\operatorname{Tr}\\big[\\rho,\\Delta(\\theta,\\phi)\\big]\n= \\tfrac{1}{2} + \\frac{\\sqrt{3}}{2}; \\mathbf r\\cdot\\mathbf n(\\theta,\\phi).\n\\tag{SW–Qubit}",[533,31369,31371,31445,31511,31595,31733,31763],{"className":31370,"ariaHidden":1089},[9480],[533,31372,31374,31377,31418,31421,31424,31427,31430,31433,31436,31439,31442],{"className":31373},[9484],[533,31375],{"className":31376,"style":30222},[9488],[533,31378,31380,31383],{"className":31379},[9493],[533,31381,31279],{"className":31382,"style":26405},[9493,9497],[533,31384,31386],{"className":31385},[9502],[533,31387,31389,31410],{"className":31388},[9506,9507],[533,31390,31392,31407],{"className":31391},[9511],[533,31393,31395],{"className":31394,"style":22873},[9515],[533,31396,31398,31401],{"style":31397},"top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;",[533,31399],{"className":31400,"style":9524},[9523],[533,31402,31404],{"className":31403},[9528,9529,9530,9531],[533,31405,29909],{"className":31406},[9493,9497,9531],[533,31408,1090],{"className":31409},[9546],[533,31411,31413],{"className":31412},[9511],[533,31414,31416],{"className":31415,"style":29468},[9515],[533,31417],{},[533,31419,615],{"className":31420},[10002],[533,31422,24093],{"className":31423,"style":24210},[9493,9497],[533,31425,2464],{"className":31426},[10344],[533,31428],{"className":31429,"style":10349},[10348],[533,31431,22517],{"className":31432},[9493,9497],[533,31434,2632],{"className":31435},[10101],[533,31437],{"className":31438,"style":21908},[10348],[533,31440,554],{"className":31441},[21912],[533,31443],{"className":31444,"style":21908},[10348],[533,31446,31448,31451,31457,31460,31466,31469,31472,31475,31478,31481,31484,31487,31490,31493,31496,31502,31505,31508],{"className":31447},[9484],[533,31449],{"className":31450,"style":30024},[9488],[533,31452,31454],{"className":31453},[21970],[533,31455,29952],{"className":31456},[9493,30229],[533,31458],{"className":31459,"style":10349},[10348],[533,31461,31463],{"className":31462},[9493],[533,31464,1522],{"className":31465},[21986,22057],[533,31467,29909],{"className":31468},[9493,9497],[533,31470,2464],{"className":31471},[10344],[533,31473],{"className":31474,"style":10349},[10348],[533,31476,9574],{"className":31477},[9493],[533,31479,615],{"className":31480},[10002],[533,31482,24093],{"className":31483,"style":24210},[9493,9497],[533,31485,2464],{"className":31486},[10344],[533,31488],{"className":31489,"style":10349},[10348],[533,31491,22517],{"className":31492},[9493,9497],[533,31494,2632],{"className":31495},[10101],[533,31497,31499],{"className":31498},[9493],[533,31500,30516],{"className":31501},[21986,22057],[533,31503],{"className":31504,"style":21908},[10348],[533,31506,554],{"className":31507},[21912],[533,31509],{"className":31510,"style":21908},[10348],[533,31512,31514,31518,31586,31589,31592],{"className":31513},[9484],[533,31515],{"className":31516,"style":31517},[9488],"height:1.1901em;vertical-align:-0.345em;",[533,31519,31521,31524,31583],{"className":31520},[9493],[533,31522],{"className":31523},[10002,21997],[533,31525,31527],{"className":31526},[21845],[533,31528,31530,31575],{"className":31529},[9506,9507],[533,31531,31533,31572],{"className":31532},[9511],[533,31534,31536,31550,31558],{"className":31535,"style":30043},[9515],[533,31537,31538,31541],{"style":22013},[533,31539],{"className":31540,"style":22017},[9523],[533,31542,31544],{"className":31543},[9528,9529,9530,9531],[533,31545,31547],{"className":31546},[9493,9531],[533,31548,1140],{"className":31549},[9493,9531],[533,31551,31552,31555],{"style":22063},[533,31553],{"className":31554,"style":22017},[9523],[533,31556],{"className":31557,"style":22071},[22070],[533,31559,31560,31563],{"style":23904},[533,31561],{"className":31562,"style":22017},[9523],[533,31564,31566],{"className":31565},[9528,9529,9530,9531],[533,31567,31569],{"className":31568},[9493,9531],[533,31570,1052],{"className":31571},[9493,9531],[533,31573,1090],{"className":31574},[9546],[533,31576,31578],{"className":31577},[9511],[533,31579,31581],{"className":31580,"style":22177},[9515],[533,31582],{},[533,31584],{"className":31585},[10101,21997],[533,31587],{"className":31588,"style":22903},[10348],[533,31590,6350],{"className":31591},[22093],[533,31593],{"className":31594,"style":22903},[10348],[533,31596,31598,31602,31715,31718,31721,31724,31727,31730],{"className":31597},[9484],[533,31599],{"className":31600,"style":31601},[9488],"height:2.2702em;vertical-align:-0.686em;",[533,31603,31605,31608,31712],{"className":31604},[9493],[533,31606],{"className":31607},[10002,21997],[533,31609,31611],{"className":31610},[21845],[533,31612,31614,31703],{"className":31613},[9506,9507],[533,31615,31617,31700],{"className":31616},[9511],[533,31618,31621,31633,31641],{"className":31619,"style":31620},[9515],"height:1.5842em;",[533,31622,31624,31627],{"style":31623},"top:-2.314em;",[533,31625],{"className":31626,"style":22017},[9523],[533,31628,31630],{"className":31629},[9493],[533,31631,1140],{"className":31632},[9493],[533,31634,31635,31638],{"style":22063},[533,31636],{"className":31637,"style":22017},[9523],[533,31639],{"className":31640,"style":22071},[22070],[533,31642,31644,31647],{"style":31643},"top:-3.677em;",[533,31645],{"className":31646,"style":22017},[9523],[533,31648,31650],{"className":31649},[9493],[533,31651,31653],{"className":31652},[9493,2262],[533,31654,31656,31691],{"className":31655},[9506,9507],[533,31657,31659,31688],{"className":31658},[9511],[533,31660,31663,31675],{"className":31661,"style":31662},[9515],"height:0.9072em;",[533,31664,31666,31669],{"className":31665,"style":31077},[31076],[533,31667],{"className":31668,"style":22017},[9523],[533,31670,31672],{"className":31671,"style":31084},[9493],[533,31673,1157],{"className":31674},[9493],[533,31676,31678,31681],{"style":31677},"top:-2.8672em;",[533,31679],{"className":31680,"style":22017},[9523],[533,31682,31684],{"className":31683,"style":31098},[31097],[31100,31685,31686],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,31687],{"d":31110},[533,31689,1090],{"className":31690},[9546],[533,31692,31694],{"className":31693},[9511],[533,31695,31698],{"className":31696,"style":31697},[9515],"height:0.1328em;",[533,31699],{},[533,31701,1090],{"className":31702},[9546],[533,31704,31706],{"className":31705},[9511],[533,31707,31710],{"className":31708,"style":31709},[9515],"height:0.686em;",[533,31711],{},[533,31713],{"className":31714},[10101,21997],[533,31716,2595],{"className":31717},[10344],[533,31719],{"className":31720,"style":10349},[10348],[533,31722,13035],{"className":31723},[9493,29844],[533,31725],{"className":31726,"style":22903},[10348],[533,31728,29931],{"className":31729},[22093],[533,31731],{"className":31732,"style":22903},[10348],[533,31734,31736,31739,31742,31745,31748,31751,31754,31757,31760],{"className":31735},[9484],[533,31737],{"className":31738,"style":9998},[9488],[533,31740,30647],{"className":31741},[9493,29844],[533,31743,615],{"className":31744},[10002],[533,31746,24093],{"className":31747,"style":24210},[9493,9497],[533,31749,2464],{"className":31750},[10344],[533,31752],{"className":31753,"style":10349},[10348],[533,31755,22517],{"className":31756},[9493,9497],[533,31758,2632],{"className":31759},[10101],[533,31761,114],{"className":31762},[9493],[533,31764,31767,31770],{"className":31765},[31766],"tag",[533,31768],{"className":31769,"style":31601},[9488],[533,31771,31774,31777,31784],{"className":31772},[9493,31773],"text",[533,31775,615],{"className":31776},[9493],[533,31778,31780],{"className":31779},[9493],[533,31781,31783],{"className":31782},[9493],"SW–Qubit",[533,31785,2632],{"className":31786},[9493],[12,31788,31789,31790,31851],{},"For a pure state ((",[533,31791,31793,31815],{"className":31792},[9443],[533,31794,31796],{"className":31795},[9447],[9174,31797,31798],{"xmlns":9450},[9452,31799,31800,31812],{},[9455,31801,31802,31804,31806,31808,31810],{},[9958,31803,30435],{"stretchy":9960},[9461,31805,13035],{"mathvariant":29816},[9958,31807,30435],{"stretchy":9960},[9958,31809,554],{},[10856,31811,1052],{},[9473,31813,31814],{"encoding":9475},"\\lVert\\mathbf r\\rVert=1",[533,31816,31818,31842],{"className":31817,"ariaHidden":1089},[9480],[533,31819,31821,31824,31827,31830,31833,31836,31839],{"className":31820},[9484],[533,31822],{"className":31823,"style":9998},[9488],[533,31825,30435],{"className":31826},[10002],[533,31828,13035],{"className":31829},[9493,29844],[533,31831,30435],{"className":31832},[10101],[533,31834],{"className":31835,"style":21908},[10348],[533,31837,554],{"className":31838},[21912],[533,31840],{"className":31841,"style":21908},[10348],[533,31843,31845,31848],{"className":31844},[9484],[533,31846],{"className":31847,"style":30480},[9488],[533,31849,1052],{"className":31850},[9493],")), the extrema are",[533,31853,31855],{"className":31854},[29056],[533,31856,31858,31936],{"className":31857},[9443],[533,31859,31861],{"className":31860},[9447],[9174,31862,31863],{"xmlns":9450,"display":29065},[9452,31864,31865,31933],{},[9455,31866,31867,31875,31877,31885,31887,31897,31899,31901,31909,31911,31919,31921,31931],{},[9458,31868,31869,31871,31873],{},[9461,31870,31279],{},[9461,31872,13480],{},[9958,31874,21836],{},[9958,31876,554],{},[29095,31878,31879],{"scriptlevel":1049,"displaystyle":9960},[21845,31880,31881,31883],{},[10856,31882,1052],{},[10856,31884,1140],{},[9958,31886,6350],{},[29095,31888,31889],{"scriptlevel":1049,"displaystyle":9960},[21845,31890,31891,31895],{},[30893,31892,31893],{},[10856,31894,1157],{},[10856,31896,1140],{},[9958,31898,2464],{"separator":1089},[10348,31900],{"width":29941},[9458,31902,31903,31905,31907],{},[9461,31904,31279],{},[9461,31906,2234],{},[9958,31908,21836],{},[9958,31910,554],{},[29095,31912,31913],{"scriptlevel":1049,"displaystyle":9960},[21845,31914,31915,31917],{},[10856,31916,1052],{},[10856,31918,1140],{},[9958,31920,21843],{},[29095,31922,31923],{"scriptlevel":1049,"displaystyle":9960},[21845,31924,31925,31929],{},[30893,31926,31927],{},[10856,31928,1157],{},[10856,31930,1140],{},[9461,31932,114],{"mathvariant":9573},[9473,31934,31935],{"encoding":9475},"W_{\\max}=\\tfrac{1}{2}+\\tfrac{\\sqrt{3}}{2},\\qquad W_{\\min}=\\tfrac{1}{2}-\\tfrac{\\sqrt{3}}{2}.",[533,31937,31939,32007,32090,32285,32368],{"className":31938,"ariaHidden":1089},[9480],[533,31940,31942,31945,31998,32001,32004],{"className":31941},[9484],[533,31943],{"className":31944,"style":9595},[9488],[533,31946,31948,31951],{"className":31947},[9493],[533,31949,31279],{"className":31950,"style":26405},[9493,9497],[533,31952,31954],{"className":31953},[9502],[533,31955,31957,31990],{"className":31956},[9506,9507],[533,31958,31960,31987],{"className":31959},[9511],[533,31961,31963],{"className":31962,"style":22873},[9515],[533,31964,31965,31968],{"style":31397},[533,31966],{"className":31967,"style":9524},[9523],[533,31969,31971],{"className":31970},[9528,9529,9530,9531],[533,31972,31974],{"className":31973},[9493,9531],[533,31975,31977,31981,31984],{"className":31976},[21970,9531],[533,31978,31980],{"className":31979},[9531],"m",[533,31982,19],{"className":31983},[9531],[533,31985,29076],{"className":31986},[9531],[533,31988,1090],{"className":31989},[9546],[533,31991,31993],{"className":31992},[9511],[533,31994,31996],{"className":31995,"style":9553},[9515],[533,31997],{},[533,31999],{"className":32000,"style":21908},[10348],[533,32002,554],{"className":32003},[21912],[533,32005],{"className":32006,"style":21908},[10348],[533,32008,32010,32013,32081,32084,32087],{"className":32009},[9484],[533,32011],{"className":32012,"style":31517},[9488],[533,32014,32016,32019,32078],{"className":32015},[9493],[533,32017],{"className":32018},[10002,21997],[533,32020,32022],{"className":32021},[21845],[533,32023,32025,32070],{"className":32024},[9506,9507],[533,32026,32028,32067],{"className":32027},[9511],[533,32029,32031,32045,32053],{"className":32030,"style":30043},[9515],[533,32032,32033,32036],{"style":22013},[533,32034],{"className":32035,"style":22017},[9523],[533,32037,32039],{"className":32038},[9528,9529,9530,9531],[533,32040,32042],{"className":32041},[9493,9531],[533,32043,1140],{"className":32044},[9493,9531],[533,32046,32047,32050],{"style":22063},[533,32048],{"className":32049,"style":22017},[9523],[533,32051],{"className":32052,"style":22071},[22070],[533,32054,32055,32058],{"style":23904},[533,32056],{"className":32057,"style":22017},[9523],[533,32059,32061],{"className":32060},[9528,9529,9530,9531],[533,32062,32064],{"className":32063},[9493,9531],[533,32065,1052],{"className":32066},[9493,9531],[533,32068,1090],{"className":32069},[9546],[533,32071,32073],{"className":32072},[9511],[533,32074,32076],{"className":32075,"style":22177},[9515],[533,32077],{},[533,32079],{"className":32080},[10101,21997],[533,32082],{"className":32083,"style":22903},[10348],[533,32085,6350],{"className":32086},[22093],[533,32088],{"className":32089,"style":22903},[10348],[533,32091,32093,32097,32214,32217,32220,32223,32276,32279,32282],{"className":32092},[9484],[533,32094],{"className":32095,"style":32096},[9488],"height:1.383em;vertical-align:-0.345em;",[533,32098,32100,32103,32211],{"className":32099},[9493],[533,32101],{"className":32102},[10002,21997],[533,32104,32106],{"className":32105},[21845],[533,32107,32109,32203],{"className":32108},[9506,9507],[533,32110,32112,32200],{"className":32111},[9511],[533,32113,32116,32130,32138],{"className":32114,"style":32115},[9515],"height:1.038em;",[533,32117,32118,32121],{"style":22013},[533,32119],{"className":32120,"style":22017},[9523],[533,32122,32124],{"className":32123},[9528,9529,9530,9531],[533,32125,32127],{"className":32126},[9493,9531],[533,32128,1140],{"className":32129},[9493,9531],[533,32131,32132,32135],{"style":22063},[533,32133],{"className":32134,"style":22017},[9523],[533,32136],{"className":32137,"style":22071},[22070],[533,32139,32141,32144],{"style":32140},"top:-3.399em;",[533,32142],{"className":32143,"style":22017},[9523],[533,32145,32147],{"className":32146},[9528,9529,9530,9531],[533,32148,32150],{"className":32149},[9493,9531],[533,32151,32153],{"className":32152},[9493,2262,9531],[533,32154,32156,32191],{"className":32155},[9506,9507],[533,32157,32159,32188],{"className":32158},[9511],[533,32160,32163,32175],{"className":32161,"style":32162},[9515],"height:0.9128em;",[533,32164,32166,32169],{"className":32165,"style":31077},[31076],[533,32167],{"className":32168,"style":22017},[9523],[533,32170,32172],{"className":32171,"style":31084},[9493,9531],[533,32173,1157],{"className":32174},[9493,9531],[533,32176,32178,32181],{"style":32177},"top:-2.8728em;",[533,32179],{"className":32180,"style":22017},[9523],[533,32182,32184],{"className":32183,"style":31098},[31097,9531],[31100,32185,32186],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,32187],{"d":31110},[533,32189,1090],{"className":32190},[9546],[533,32192,32194],{"className":32193},[9511],[533,32195,32198],{"className":32196,"style":32197},[9515],"height:0.1272em;",[533,32199],{},[533,32201,1090],{"className":32202},[9546],[533,32204,32206],{"className":32205},[9511],[533,32207,32209],{"className":32208,"style":22177},[9515],[533,32210],{},[533,32212],{"className":32213},[10101,21997],[533,32215,2464],{"className":32216},[10344],[533,32218],{"className":32219,"style":30160},[10348],[533,32221],{"className":32222,"style":10349},[10348],[533,32224,32226,32229],{"className":32225},[9493],[533,32227,31279],{"className":32228,"style":26405},[9493,9497],[533,32230,32232],{"className":32231},[9502],[533,32233,32235,32268],{"className":32234},[9506,9507],[533,32236,32238,32265],{"className":32237},[9511],[533,32239,32242],{"className":32240,"style":32241},[9515],"height:0.3175em;",[533,32243,32244,32247],{"style":31397},[533,32245],{"className":32246,"style":9524},[9523],[533,32248,32250],{"className":32249},[9528,9529,9530,9531],[533,32251,32253],{"className":32252},[9493,9531],[533,32254,32256,32259,32262],{"className":32255},[21970,9531],[533,32257,31980],{"className":32258},[9531],[533,32260,2556],{"className":32261},[9531],[533,32263,30647],{"className":32264},[9531],[533,32266,1090],{"className":32267},[9546],[533,32269,32271],{"className":32270},[9511],[533,32272,32274],{"className":32273,"style":9553},[9515],[533,32275],{},[533,32277],{"className":32278,"style":21908},[10348],[533,32280,554],{"className":32281},[21912],[533,32283],{"className":32284,"style":21908},[10348],[533,32286,32288,32291,32359,32362,32365],{"className":32287},[9484],[533,32289],{"className":32290,"style":31517},[9488],[533,32292,32294,32297,32356],{"className":32293},[9493],[533,32295],{"className":32296},[10002,21997],[533,32298,32300],{"className":32299},[21845],[533,32301,32303,32348],{"className":32302},[9506,9507],[533,32304,32306,32345],{"className":32305},[9511],[533,32307,32309,32323,32331],{"className":32308,"style":30043},[9515],[533,32310,32311,32314],{"style":22013},[533,32312],{"className":32313,"style":22017},[9523],[533,32315,32317],{"className":32316},[9528,9529,9530,9531],[533,32318,32320],{"className":32319},[9493,9531],[533,32321,1140],{"className":32322},[9493,9531],[533,32324,32325,32328],{"style":22063},[533,32326],{"className":32327,"style":22017},[9523],[533,32329],{"className":32330,"style":22071},[22070],[533,32332,32333,32336],{"style":23904},[533,32334],{"className":32335,"style":22017},[9523],[533,32337,32339],{"className":32338},[9528,9529,9530,9531],[533,32340,32342],{"className":32341},[9493,9531],[533,32343,1052],{"className":32344},[9493,9531],[533,32346,1090],{"className":32347},[9546],[533,32349,32351],{"className":32350},[9511],[533,32352,32354],{"className":32353,"style":22177},[9515],[533,32355],{},[533,32357],{"className":32358},[10101,21997],[533,32360],{"className":32361,"style":22903},[10348],[533,32363,21843],{"className":32364},[22093],[533,32366],{"className":32367,"style":22903},[10348],[533,32369,32371,32374,32486],{"className":32370},[9484],[533,32372],{"className":32373,"style":32096},[9488],[533,32375,32377,32380,32483],{"className":32376},[9493],[533,32378],{"className":32379},[10002,21997],[533,32381,32383],{"className":32382},[21845],[533,32384,32386,32475],{"className":32385},[9506,9507],[533,32387,32389,32472],{"className":32388},[9511],[533,32390,32392,32406,32414],{"className":32391,"style":32115},[9515],[533,32393,32394,32397],{"style":22013},[533,32395],{"className":32396,"style":22017},[9523],[533,32398,32400],{"className":32399},[9528,9529,9530,9531],[533,32401,32403],{"className":32402},[9493,9531],[533,32404,1140],{"className":32405},[9493,9531],[533,32407,32408,32411],{"style":22063},[533,32409],{"className":32410,"style":22017},[9523],[533,32412],{"className":32413,"style":22071},[22070],[533,32415,32416,32419],{"style":32140},[533,32417],{"className":32418,"style":22017},[9523],[533,32420,32422],{"className":32421},[9528,9529,9530,9531],[533,32423,32425],{"className":32424},[9493,9531],[533,32426,32428],{"className":32427},[9493,2262,9531],[533,32429,32431,32464],{"className":32430},[9506,9507],[533,32432,32434,32461],{"className":32433},[9511],[533,32435,32437,32449],{"className":32436,"style":32162},[9515],[533,32438,32440,32443],{"className":32439,"style":31077},[31076],[533,32441],{"className":32442,"style":22017},[9523],[533,32444,32446],{"className":32445,"style":31084},[9493,9531],[533,32447,1157],{"className":32448},[9493,9531],[533,32450,32451,32454],{"style":32177},[533,32452],{"className":32453,"style":22017},[9523],[533,32455,32457],{"className":32456,"style":31098},[31097,9531],[31100,32458,32459],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,32460],{"d":31110},[533,32462,1090],{"className":32463},[9546],[533,32465,32467],{"className":32466},[9511],[533,32468,32470],{"className":32469,"style":32197},[9515],[533,32471],{},[533,32473,1090],{"className":32474},[9546],[533,32476,32478],{"className":32477},[9511],[533,32479,32481],{"className":32480,"style":22177},[9515],[533,32482],{},[533,32484],{"className":32485},[10101,21997],[533,32487,114],{"className":32488},[9493],[12,32490,32491,32494],{},[974,32492,32493],{},"Covariance (rigid rotation):"," for any unitary (U),",[533,32496,32498],{"className":32497},[29056],[533,32499,32501,32596],{"className":32500},[9443],[533,32502,32504],{"className":32503},[9447],[9174,32505,32506],{"xmlns":9450,"display":29065},[9452,32507,32508,32593],{},[29084,32509,32510],{"width":31265},[29089,32511,32512,32514,32586,32588],{},[29092,32513],{"width":31270},[29092,32515,32516],{},[9455,32517,32518,32537,32539,32541,32543,32545,32547,32549,32555,32558,32560,32570,32572,32574,32576,32578,32580,32582,32584],{},[9458,32519,32520,32522],{},[9461,32521,31279],{},[9455,32523,32524,32527,32529],{},[9461,32525,32526],{},"U",[9461,32528,29909],{},[21862,32530,32531,32533],{},[9461,32532,32526],{},[9958,32534,32536],{"lspace":32535,"rspace":32535},"0em","†",[9958,32538,615],{"stretchy":9960},[9461,32540,24093],{},[9958,32542,2464],{"separator":1089},[9461,32544,22517],{},[9958,32546,2632],{"stretchy":9960},[9958,32548,554],{},[9458,32550,32551,32553],{},[9461,32552,31279],{},[9461,32554,29909],{},[9958,32556,32557],{"stretchy":9960},"!",[9958,32559,615],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[21862,32561,32562,32564],{},[9461,32563,29825],{},[9455,32565,32566,32568],{},[9958,32567,21843],{},[10856,32569,1052],{},[9461,32571,30647],{"mathvariant":29816},[9958,32573,615],{"stretchy":9960},[9461,32575,24093],{},[9958,32577,2464],{"separator":1089},[9461,32579,22517],{},[9958,32581,2632],{"stretchy":9960},[9958,32583,2632],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9958,32585,2464],{"separator":1089},[29092,32587],{"width":31270},[29092,32589,32590],{},[29972,32591,32592],{},"(Covariance)",[9473,32594,32595],{"encoding":9475},"W_{U\\rho U^{\\dagger}}(\\theta,\\phi) = W_{\\rho}!\\big(R^{-1}\\mathbf n(\\theta,\\phi)\\big),\n\\tag{Covariance}",[533,32597,32599,32715,32842],{"className":32598,"ariaHidden":1089},[9480],[533,32600,32602,32606,32688,32691,32694,32697,32700,32703,32706,32709,32712],{"className":32601},[9484],[533,32603],{"className":32604,"style":32605},[9488],"height:1.0887em;vertical-align:-0.3387em;",[533,32607,32609,32612],{"className":32608},[9493],[533,32610,31279],{"className":32611,"style":26405},[9493,9497],[533,32613,32615],{"className":32614},[9502],[533,32616,32618,32679],{"className":32617},[9506,9507],[533,32619,32621,32676],{"className":32620},[9511],[533,32622,32625],{"className":32623,"style":32624},[9515],"height:0.3448em;",[533,32626,32628,32631],{"style":32627},"top:-2.4974em;margin-left:-0.1389em;margin-right:0.05em;",[533,32629],{"className":32630,"style":9524},[9523],[533,32632,32634],{"className":32633},[9528,9529,9530,9531],[533,32635,32637,32640,32643],{"className":32636},[9493,9531],[533,32638,32526],{"className":32639,"style":26398},[9493,9497,9531],[533,32641,29909],{"className":32642},[9493,9497,9531],[533,32644,32646,32649],{"className":32645},[9493,9531],[533,32647,32526],{"className":32648,"style":26398},[9493,9497,9531],[533,32650,32652],{"className":32651},[9502],[533,32653,32655],{"className":32654},[9506],[533,32656,32658],{"className":32657},[9511],[533,32659,32662],{"className":32660,"style":32661},[9515],"height:0.782em;",[533,32663,32664,32667],{"style":22048},[533,32665],{"className":32666,"style":22052},[9523],[533,32668,32670],{"className":32669},[9528,22056,22057,9531],[533,32671,32673],{"className":32672},[9493,9531],[533,32674,32536],{"className":32675},[9493,9531],[533,32677,1090],{"className":32678},[9546],[533,32680,32682],{"className":32681},[9511],[533,32683,32686],{"className":32684,"style":32685},[9515],"height:0.3387em;",[533,32687],{},[533,32689,615],{"className":32690},[10002],[533,32692,24093],{"className":32693,"style":24210},[9493,9497],[533,32695,2464],{"className":32696},[10344],[533,32698],{"className":32699,"style":10349},[10348],[533,32701,22517],{"className":32702},[9493,9497],[533,32704,2632],{"className":32705},[10101],[533,32707],{"className":32708,"style":21908},[10348],[533,32710,554],{"className":32711},[21912],[533,32713],{"className":32714,"style":21908},[10348],[533,32716,32718,32722,32765,32768,32774,32812,32815,32818,32821,32824,32827,32830,32833,32839],{"className":32717},[9484],[533,32719],{"className":32720,"style":32721},[9488],"height:1.2141em;vertical-align:-0.35em;",[533,32723,32725,32728],{"className":32724},[9493],[533,32726,31279],{"className":32727,"style":26405},[9493,9497],[533,32729,32731],{"className":32730},[9502],[533,32732,32734,32757],{"className":32733},[9506,9507],[533,32735,32737,32754],{"className":32736},[9511],[533,32738,32740],{"className":32739,"style":22873},[9515],[533,32741,32742,32745],{"style":31397},[533,32743],{"className":32744,"style":9524},[9523],[533,32746,32748],{"className":32747},[9528,9529,9530,9531],[533,32749,32751],{"className":32750},[9493,9531],[533,32752,29909],{"className":32753},[9493,9497,9531],[533,32755,1090],{"className":32756},[9546],[533,32758,32760],{"className":32759},[9511],[533,32761,32763],{"className":32762,"style":29468},[9515],[533,32764],{},[533,32766,32557],{"className":32767},[10101],[533,32769,32771],{"className":32770},[9493],[533,32772,615],{"className":32773},[21986,22057],[533,32775,32777,32781],{"className":32776},[9493],[533,32778,29825],{"className":32779,"style":32780},[9493,9497],"margin-right:0.0077em;",[533,32782,32784],{"className":32783},[9502],[533,32785,32787],{"className":32786},[9506],[533,32788,32790],{"className":32789},[9511],[533,32791,32794],{"className":32792,"style":32793},[9515],"height:0.8641em;",[533,32795,32797,32800],{"style":32796},"top:-3.113em;margin-right:0.05em;",[533,32798],{"className":32799,"style":9524},[9523],[533,32801,32803],{"className":32802},[9528,9529,9530,9531],[533,32804,32806,32809],{"className":32805},[9493,9531],[533,32807,21843],{"className":32808},[9493,9531],[533,32810,1052],{"className":32811},[9493,9531],[533,32813,30647],{"className":32814},[9493,29844],[533,32816,615],{"className":32817},[10002],[533,32819,24093],{"className":32820,"style":24210},[9493,9497],[533,32822,2464],{"className":32823},[10344],[533,32825],{"className":32826,"style":10349},[10348],[533,32828,22517],{"className":32829},[9493,9497],[533,32831,2632],{"className":32832},[10101],[533,32834,32836],{"className":32835},[9493],[533,32837,2632],{"className":32838},[21986,22057],[533,32840,2464],{"className":32841},[10344],[533,32843,32845,32848],{"className":32844},[31766],[533,32846],{"className":32847,"style":32721},[9488],[533,32849,32851,32854,32861],{"className":32850},[9493,31773],[533,32852,615],{"className":32853},[9493],[533,32855,32857],{"className":32856},[9493],[533,32858,32860],{"className":32859},[9493],"Covariance",[533,32862,2632],{"className":32863},[9493],[12,32865,32866,32867,32942],{},"where (",[533,32868,32870,32898],{"className":32869},[9443],[533,32871,32873],{"className":32872},[9447],[9174,32874,32875],{"xmlns":9450},[9452,32876,32877,32895],{},[9455,32878,32879,32881,32883,32889,32891,32893],{},[9461,32880,29825],{},[9958,32882,29819],{},[9455,32884,32885,32887],{},[9461,32886,31206],{"mathvariant":9573},[9461,32888,26262],{"mathvariant":9573},[9958,32890,615],{"stretchy":9960},[10856,32892,1157],{},[9958,32894,2632],{"stretchy":9960},[9473,32896,32897],{"encoding":9475},"R\\in\\mathrm{SO}(3)",[533,32899,32901,32920],{"className":32900,"ariaHidden":1089},[9480],[533,32902,32904,32908,32911,32914,32917],{"className":32903},[9484],[533,32905],{"className":32906,"style":32907},[9488],"height:0.7224em;vertical-align:-0.0391em;",[533,32909,29825],{"className":32910,"style":32780},[9493,9497],[533,32912],{"className":32913,"style":21908},[10348],[533,32915,29819],{"className":32916},[21912],[533,32918],{"className":32919,"style":21908},[10348],[533,32921,32923,32926,32933,32936,32939],{"className":32922},[9484],[533,32924],{"className":32925,"style":9998},[9488],[533,32927,32929],{"className":32928},[9493],[533,32930,32932],{"className":32931},[9493,30229],"SO",[533,32934,615],{"className":32935},[10002],[533,32937,1157],{"className":32938},[9493],[533,32940,2632],{"className":32941},[10101],") is the 3D rotation associated with (U) (see §3–§4).",[10993,32944],{},[25,32946,32948,32949,32979],{"id":32947},"_3-pauli-gates-as-πpiπ-rotations","3. Pauli Gates as (",[533,32950,32952,32966],{"className":32951},[9443],[533,32953,32955],{"className":32954},[9447],[9174,32956,32957],{"xmlns":9450},[9452,32958,32959,32963],{},[9455,32960,32961],{},[9461,32962,22502],{},[9473,32964,32965],{"encoding":9475},"\\pi",[533,32967,32969],{"className":32968,"ariaHidden":1089},[9480],[533,32970,32972,32976],{"className":32971},[9484],[533,32973],{"className":32974,"style":32975},[9488],"height:0.4306em;",[533,32977,22502],{"className":32978,"style":9498},[9493,9497],")-Rotations",[12,32981,32982,32983,33011],{},"The single‑qubit Pauli gates are equivalent (up to a global phase) to (",[533,32984,32986,32999],{"className":32985},[9443],[533,32987,32989],{"className":32988},[9447],[9174,32990,32991],{"xmlns":9450},[9452,32992,32993,32997],{},[9455,32994,32995],{},[9461,32996,22502],{},[9473,32998,32965],{"encoding":9475},[533,33000,33002],{"className":33001,"ariaHidden":1089},[9480],[533,33003,33005,33008],{"className":33004},[9484],[533,33006],{"className":33007,"style":32975},[9488],[533,33009,22502],{"className":33010,"style":9498},[9493,9497],")-rotations about Cartesian axes:",[533,33013,33015],{"className":33014},[29056],[533,33016,33018,33124],{"className":33017},[9443],[533,33019,33021],{"className":33020},[9447],[9174,33022,33023],{"xmlns":9450,"display":29065},[9452,33024,33025,33121],{},[9455,33026,33027,33029,33031,33055,33057,33059,33061,33063,33087,33089,33091,33093,33095,33119],{},[9461,33028,9471],{},[9958,33030,554],{},[21862,33032,33033,33035],{},[9461,33034,629],{},[9455,33036,33037,33039,33041,33047,33049],{},[9958,33038,21843],{},[9461,33040,2556],{},[21845,33042,33043,33045],{},[9461,33044,22502],{},[10856,33046,1140],{},[9958,33048,2464],{"separator":1089},[9458,33050,33051,33053],{},[9461,33052,21876],{},[9461,33054,29076],{},[9958,33056,2464],{"separator":1089},[10348,33058],{"width":29941},[9461,33060,23238],{},[9958,33062,554],{},[21862,33064,33065,33067],{},[9461,33066,629],{},[9455,33068,33069,33071,33073,33079,33081],{},[9958,33070,21843],{},[9461,33072,2556],{},[21845,33074,33075,33077],{},[9461,33076,22502],{},[10856,33078,1140],{},[9958,33080,2464],{"separator":1089},[9458,33082,33083,33085],{},[9461,33084,21876],{},[9461,33086,29131],{},[9958,33088,2464],{"separator":1089},[10348,33090],{"width":29941},[9461,33092,9468],{},[9958,33094,554],{},[21862,33096,33097,33099],{},[9461,33098,629],{},[9455,33100,33101,33103,33105,33111,33113],{},[9958,33102,21843],{},[9461,33104,2556],{},[21845,33106,33107,33109],{},[9461,33108,22502],{},[10856,33110,1140],{},[9958,33112,2464],{"separator":1089},[9458,33114,33115,33117],{},[9461,33116,21876],{},[9461,33118,1632],{},[9461,33120,114],{"mathvariant":9573},[9473,33122,33123],{"encoding":9475},"X = e^{-i\\frac{\\pi}{2},\\sigma_x},\\qquad\nY = e^{-i\\frac{\\pi}{2},\\sigma_y},\\qquad\nZ = e^{-i\\frac{\\pi}{2},\\sigma_z}.",[533,33125,33127,33145,33330,33504],{"className":33126,"ariaHidden":1089},[9480],[533,33128,33130,33133,33136,33139,33142],{"className":33129},[9484],[533,33131],{"className":33132,"style":9672},[9488],[533,33134,9471],{"className":33135,"style":9542},[9493,9497],[533,33137],{"className":33138,"style":21908},[10348],[533,33140,554],{"className":33141},[21912],[533,33143],{"className":33144,"style":21908},[10348],[533,33146,33148,33152,33309,33312,33315,33318,33321,33324,33327],{"className":33147},[9484],[533,33149],{"className":33150,"style":33151},[9488],"height:1.0915em;vertical-align:-0.1944em;",[533,33153,33155,33158],{"className":33154},[9493],[533,33156,629],{"className":33157},[9493,9497],[533,33159,33161],{"className":33160},[9502],[533,33162,33164],{"className":33163},[9506],[533,33165,33167],{"className":33166},[9511],[533,33168,33171],{"className":33169,"style":33170},[9515],"height:0.8971em;",[533,33172,33174,33177],{"style":33173},"top:-3.413em;margin-right:0.05em;",[533,33175],{"className":33176,"style":22017},[9523],[533,33178,33180],{"className":33179},[9528,9529,9530,9531],[533,33181,33183,33186,33189,33264,33267],{"className":33182},[9493,9531],[533,33184,21843],{"className":33185},[9493,9531],[533,33187,2556],{"className":33188},[9493,9497,9531],[533,33190,33192,33196,33261],{"className":33191},[9493,9531],[533,33193],{"className":33194},[10002,21997,9528,22056,33195],"size6",[533,33197,33199],{"className":33198},[21845],[533,33200,33202,33252],{"className":33201},[9506,9507],[533,33203,33205,33249],{"className":33204},[9511],[533,33206,33209,33224,33234],{"className":33207,"style":33208},[9515],"height:0.6915em;",[533,33210,33212,33215],{"style":33211},"top:-2.656em;",[533,33213],{"className":33214,"style":22017},[9523],[533,33216,33218],{"className":33217},[9528,22056,22057,9531],[533,33219,33221],{"className":33220},[9493,9531],[533,33222,1140],{"className":33223},[9493,9531],[533,33225,33227,33230],{"style":33226},"top:-3.2255em;",[533,33228],{"className":33229,"style":22017},[9523],[533,33231],{"className":33232,"style":33233},[22070,9531],"border-bottom-width:0.049em;",[533,33235,33237,33240],{"style":33236},"top:-3.384em;",[533,33238],{"className":33239,"style":22017},[9523],[533,33241,33243],{"className":33242},[9528,22056,22057,9531],[533,33244,33246],{"className":33245},[9493,9531],[533,33247,22502],{"className":33248,"style":9498},[9493,9497,9531],[533,33250,1090],{"className":33251},[9546],[533,33253,33255],{"className":33254},[9511],[533,33256,33259],{"className":33257,"style":33258},[9515],"height:0.344em;",[533,33260],{},[533,33262],{"className":33263},[10101,21997,9528,22056,33195],[533,33265,2464],{"className":33266},[10344,9531],[533,33268,33270,33273],{"className":33269},[9493,9531],[533,33271,21876],{"className":33272,"style":9498},[9493,9497,9531],[533,33274,33276],{"className":33275},[9502],[533,33277,33279,33301],{"className":33278},[9506,9507],[533,33280,33282,33298],{"className":33281},[9511],[533,33283,33286],{"className":33284,"style":33285},[9515],"height:0.1645em;",[533,33287,33289,33292],{"style":33288},"top:-2.357em;margin-left:-0.0359em;margin-right:0.0714em;",[533,33290],{"className":33291,"style":22052},[9523],[533,33293,33295],{"className":33294},[9528,22056,22057,9531],[533,33296,29076],{"className":33297},[9493,9497,9531],[533,33299,1090],{"className":33300},[9546],[533,33302,33304],{"className":33303},[9511],[533,33305,33307],{"className":33306,"style":22134},[9515],[533,33308],{},[533,33310,2464],{"className":33311},[10344],[533,33313],{"className":33314,"style":30160},[10348],[533,33316],{"className":33317,"style":10349},[10348],[533,33319,23238],{"className":33320,"style":22903},[9493,9497],[533,33322],{"className":33323,"style":21908},[10348],[533,33325,554],{"className":33326},[21912],[533,33328],{"className":33329,"style":21908},[10348],[533,33331,33333,33336,33483,33486,33489,33492,33495,33498,33501],{"className":33332},[9484],[533,33334],{"className":33335,"style":33151},[9488],[533,33337,33339,33342],{"className":33338},[9493],[533,33340,629],{"className":33341},[9493,9497],[533,33343,33345],{"className":33344},[9502],[533,33346,33348],{"className":33347},[9506],[533,33349,33351],{"className":33350},[9511],[533,33352,33354],{"className":33353,"style":33170},[9515],[533,33355,33356,33359],{"style":33173},[533,33357],{"className":33358,"style":22017},[9523],[533,33360,33362],{"className":33361},[9528,9529,9530,9531],[533,33363,33365,33368,33371,33439,33442],{"className":33364},[9493,9531],[533,33366,21843],{"className":33367},[9493,9531],[533,33369,2556],{"className":33370},[9493,9497,9531],[533,33372,33374,33377,33436],{"className":33373},[9493,9531],[533,33375],{"className":33376},[10002,21997,9528,22056,33195],[533,33378,33380],{"className":33379},[21845],[533,33381,33383,33428],{"className":33382},[9506,9507],[533,33384,33386,33425],{"className":33385},[9511],[533,33387,33389,33403,33411],{"className":33388,"style":33208},[9515],[533,33390,33391,33394],{"style":33211},[533,33392],{"className":33393,"style":22017},[9523],[533,33395,33397],{"className":33396},[9528,22056,22057,9531],[533,33398,33400],{"className":33399},[9493,9531],[533,33401,1140],{"className":33402},[9493,9531],[533,33404,33405,33408],{"style":33226},[533,33406],{"className":33407,"style":22017},[9523],[533,33409],{"className":33410,"style":33233},[22070,9531],[533,33412,33413,33416],{"style":33236},[533,33414],{"className":33415,"style":22017},[9523],[533,33417,33419],{"className":33418},[9528,22056,22057,9531],[533,33420,33422],{"className":33421},[9493,9531],[533,33423,22502],{"className":33424,"style":9498},[9493,9497,9531],[533,33426,1090],{"className":33427},[9546],[533,33429,33431],{"className":33430},[9511],[533,33432,33434],{"className":33433,"style":33258},[9515],[533,33435],{},[533,33437],{"className":33438},[10101,21997,9528,22056,33195],[533,33440,2464],{"className":33441},[10344,9531],[533,33443,33445,33448],{"className":33444},[9493,9531],[533,33446,21876],{"className":33447,"style":9498},[9493,9497,9531],[533,33449,33451],{"className":33450},[9502],[533,33452,33454,33474],{"className":33453},[9506,9507],[533,33455,33457,33471],{"className":33456},[9511],[533,33458,33460],{"className":33459,"style":33285},[9515],[533,33461,33462,33465],{"style":33288},[533,33463],{"className":33464,"style":22052},[9523],[533,33466,33468],{"className":33467},[9528,22056,22057,9531],[533,33469,29131],{"className":33470,"style":9498},[9493,9497,9531],[533,33472,1090],{"className":33473},[9546],[533,33475,33477],{"className":33476},[9511],[533,33478,33481],{"className":33479,"style":33480},[9515],"height:0.2819em;",[533,33482],{},[533,33484,2464],{"className":33485},[10344],[533,33487],{"className":33488,"style":30160},[10348],[533,33490],{"className":33491,"style":10349},[10348],[533,33493,9468],{"className":33494,"style":9538},[9493,9497],[533,33496],{"className":33497,"style":21908},[10348],[533,33499,554],{"className":33500},[21912],[533,33502],{"className":33503,"style":21908},[10348],[533,33505,33507,33510,33656],{"className":33506},[9484],[533,33508],{"className":33509,"style":33170},[9488],[533,33511,33513,33516],{"className":33512},[9493],[533,33514,629],{"className":33515},[9493,9497],[533,33517,33519],{"className":33518},[9502],[533,33520,33522],{"className":33521},[9506],[533,33523,33525],{"className":33524},[9511],[533,33526,33528],{"className":33527,"style":33170},[9515],[533,33529,33530,33533],{"style":33173},[533,33531],{"className":33532,"style":22017},[9523],[533,33534,33536],{"className":33535},[9528,9529,9530,9531],[533,33537,33539,33542,33545,33613,33616],{"className":33538},[9493,9531],[533,33540,21843],{"className":33541},[9493,9531],[533,33543,2556],{"className":33544},[9493,9497,9531],[533,33546,33548,33551,33610],{"className":33547},[9493,9531],[533,33549],{"className":33550},[10002,21997,9528,22056,33195],[533,33552,33554],{"className":33553},[21845],[533,33555,33557,33602],{"className":33556},[9506,9507],[533,33558,33560,33599],{"className":33559},[9511],[533,33561,33563,33577,33585],{"className":33562,"style":33208},[9515],[533,33564,33565,33568],{"style":33211},[533,33566],{"className":33567,"style":22017},[9523],[533,33569,33571],{"className":33570},[9528,22056,22057,9531],[533,33572,33574],{"className":33573},[9493,9531],[533,33575,1140],{"className":33576},[9493,9531],[533,33578,33579,33582],{"style":33226},[533,33580],{"className":33581,"style":22017},[9523],[533,33583],{"className":33584,"style":33233},[22070,9531],[533,33586,33587,33590],{"style":33236},[533,33588],{"className":33589,"style":22017},[9523],[533,33591,33593],{"className":33592},[9528,22056,22057,9531],[533,33594,33596],{"className":33595},[9493,9531],[533,33597,22502],{"className":33598,"style":9498},[9493,9497,9531],[533,33600,1090],{"className":33601},[9546],[533,33603,33605],{"className":33604},[9511],[533,33606,33608],{"className":33607,"style":33258},[9515],[533,33609],{},[533,33611],{"className":33612},[10101,21997,9528,22056,33195],[533,33614,2464],{"className":33615},[10344,9531],[533,33617,33619,33622],{"className":33618},[9493,9531],[533,33620,21876],{"className":33621,"style":9498},[9493,9497,9531],[533,33623,33625],{"className":33624},[9502],[533,33626,33628,33648],{"className":33627},[9506,9507],[533,33629,33631,33645],{"className":33630},[9511],[533,33632,33634],{"className":33633,"style":33285},[9515],[533,33635,33636,33639],{"style":33288},[533,33637],{"className":33638,"style":22052},[9523],[533,33640,33642],{"className":33641},[9528,22056,22057,9531],[533,33643,1632],{"className":33644,"style":29647},[9493,9497,9531],[533,33646,1090],{"className":33647},[9546],[533,33649,33651],{"className":33650},[9511],[533,33652,33654],{"className":33653,"style":22134},[9515],[533,33655],{},[533,33657,114],{"className":33658},[9493],[12,33660,33661,33662,33886,33887,33889,33890,1205],{},"They act on the Bloch vector by the corresponding rotation matrices (",[533,33663,33665,33717],{"className":33664},[9443],[533,33666,33668],{"className":33667},[9447],[9174,33669,33670],{"xmlns":9450},[9452,33671,33672,33714],{},[9455,33673,33674,33680,33682,33684,33686,33688,33694,33696,33698,33700,33702,33708,33710,33712],{},[9458,33675,33676,33678],{},[9461,33677,29825],{},[9461,33679,29076],{},[9958,33681,615],{"stretchy":9960},[9461,33683,22502],{},[9958,33685,2632],{"stretchy":9960},[9958,33687,2464],{"separator":1089},[9458,33689,33690,33692],{},[9461,33691,29825],{},[9461,33693,29131],{},[9958,33695,615],{"stretchy":9960},[9461,33697,22502],{},[9958,33699,2632],{"stretchy":9960},[9958,33701,2464],{"separator":1089},[9458,33703,33704,33706],{},[9461,33705,29825],{},[9461,33707,1632],{},[9958,33709,615],{"stretchy":9960},[9461,33711,22502],{},[9958,33713,2632],{"stretchy":9960},[9473,33715,33716],{"encoding":9475},"R_x(\\pi),R_y(\\pi),R_z(\\pi)",[533,33718,33720],{"className":33719,"ariaHidden":1089},[9480],[533,33721,33723,33726,33767,33770,33773,33776,33779,33782,33822,33825,33828,33831,33834,33837,33877,33880,33883],{"className":33722},[9484],[533,33724],{"className":33725,"style":30222},[9488],[533,33727,33729,33732],{"className":33728},[9493],[533,33730,29825],{"className":33731,"style":32780},[9493,9497],[533,33733,33735],{"className":33734},[9502],[533,33736,33738,33759],{"className":33737},[9506,9507],[533,33739,33741,33756],{"className":33740},[9511],[533,33742,33744],{"className":33743,"style":22873},[9515],[533,33745,33747,33750],{"style":33746},"top:-2.55em;margin-left:-0.0077em;margin-right:0.05em;",[533,33748],{"className":33749,"style":9524},[9523],[533,33751,33753],{"className":33752},[9528,9529,9530,9531],[533,33754,29076],{"className":33755},[9493,9497,9531],[533,33757,1090],{"className":33758},[9546],[533,33760,33762],{"className":33761},[9511],[533,33763,33765],{"className":33764,"style":9553},[9515],[533,33766],{},[533,33768,615],{"className":33769},[10002],[533,33771,22502],{"className":33772,"style":9498},[9493,9497],[533,33774,2632],{"className":33775},[10101],[533,33777,2464],{"className":33778},[10344],[533,33780],{"className":33781,"style":10349},[10348],[533,33783,33785,33788],{"className":33784},[9493],[533,33786,29825],{"className":33787,"style":32780},[9493,9497],[533,33789,33791],{"className":33790},[9502],[533,33792,33794,33814],{"className":33793},[9506,9507],[533,33795,33797,33811],{"className":33796},[9511],[533,33798,33800],{"className":33799,"style":22873},[9515],[533,33801,33802,33805],{"style":33746},[533,33803],{"className":33804,"style":9524},[9523],[533,33806,33808],{"className":33807},[9528,9529,9530,9531],[533,33809,29131],{"className":33810,"style":9498},[9493,9497,9531],[533,33812,1090],{"className":33813},[9546],[533,33815,33817],{"className":33816},[9511],[533,33818,33820],{"className":33819,"style":29468},[9515],[533,33821],{},[533,33823,615],{"className":33824},[10002],[533,33826,22502],{"className":33827,"style":9498},[9493,9497],[533,33829,2632],{"className":33830},[10101],[533,33832,2464],{"className":33833},[10344],[533,33835],{"className":33836,"style":10349},[10348],[533,33838,33840,33843],{"className":33839},[9493],[533,33841,29825],{"className":33842,"style":32780},[9493,9497],[533,33844,33846],{"className":33845},[9502],[533,33847,33849,33869],{"className":33848},[9506,9507],[533,33850,33852,33866],{"className":33851},[9511],[533,33853,33855],{"className":33854,"style":22873},[9515],[533,33856,33857,33860],{"style":33746},[533,33858],{"className":33859,"style":9524},[9523],[533,33861,33863],{"className":33862},[9528,9529,9530,9531],[533,33864,1632],{"className":33865,"style":29647},[9493,9497,9531],[533,33867,1090],{"className":33868},[9546],[533,33870,33872],{"className":33871},[9511],[533,33873,33875],{"className":33874,"style":9553},[9515],[533,33876],{},[533,33878,615],{"className":33879},[10002],[533,33881,22502],{"className":33882,"style":9498},[9493,9497],[533,33884,2632],{"className":33885},[10101],"), so ",[974,33888,32592],{}," implies the Wigner pattern simply rotates rigidly on (",[533,33891,33893,33910],{"className":33892},[9443],[533,33894,33896],{"className":33895},[9447],[9174,33897,33898],{"xmlns":9450},[9452,33899,33900,33908],{},[9455,33901,33902],{},[21862,33903,33904,33906],{},[9461,33905,31206],{},[10856,33907,1140],{},[9473,33909,31211],{"encoding":9475},[533,33911,33913],{"className":33912,"ariaHidden":1089},[9480],[533,33914,33916,33919],{"className":33915},[9484],[533,33917],{"className":33918,"style":29860},[9488],[533,33920,33922,33925],{"className":33921},[9493],[533,33923,31206],{"className":33924,"style":22540},[9493,9497],[533,33926,33928],{"className":33927},[9502],[533,33929,33931],{"className":33930},[9506],[533,33932,33934],{"className":33933},[9511],[533,33935,33937],{"className":33936,"style":29860},[9515],[533,33938,33939,33942],{"style":24194},[533,33940],{"className":33941,"style":9524},[9523],[533,33943,33945],{"className":33944},[9528,9529,9530,9531],[533,33946,1140],{"className":33947},[9493,9531],[10993,33949],{},[25,33951,33953],{"id":33952},"_4-general-su2-rotation-and-the-so3-map","4. General SU(2) Rotation and the SO(3) Map",[12,33955,33956,33957,34026,34027,34058],{},"A general single‑qubit rotation about a unit axis (",[533,33958,33960,33981],{"className":33959},[9443],[533,33961,33963],{"className":33962},[9447],[9174,33964,33965],{"xmlns":9450},[9452,33966,33967,33978],{},[9455,33968,33969],{},[33970,33971,33972,33975],"mover",{"accent":1089},[9461,33973,33974],{"mathvariant":29816},"u",[9958,33976,33977],{},"^",[9473,33979,33980],{"encoding":9475},"\\hat{\\mathbf u}",[533,33982,33984],{"className":33983,"ariaHidden":1089},[9480],[533,33985,33987,33991],{"className":33986},[9484],[533,33988],{"className":33989,"style":33990},[9488],"height:0.7079em;",[533,33992,33995],{"className":33993},[9493,33994],"accent",[533,33996,33998],{"className":33997},[9506],[533,33999,34001],{"className":34000},[9511],[533,34002,34004,34012],{"className":34003,"style":33990},[9515],[533,34005,34006,34009],{"style":31077},[533,34007],{"className":34008,"style":22017},[9523],[533,34010,33974],{"className":34011},[9493,29844],[533,34013,34015,34018],{"style":34014},"top:-3.0134em;",[533,34016],{"className":34017,"style":22017},[9523],[533,34019,34023],{"className":34020,"style":34022},[34021],"accent-body","left:-0.25em;",[533,34024,33977],{"className":34025},[9493],") by angle (",[533,34028,34030,34045],{"className":34029},[9443],[533,34031,34033],{"className":34032},[9447],[9174,34034,34035],{"xmlns":9450},[9452,34036,34037,34042],{},[9455,34038,34039],{},[9461,34040,34041],{},"α",[9473,34043,34044],{"encoding":9475},"\\alpha",[533,34046,34048],{"className":34047,"ariaHidden":1089},[9480],[533,34049,34051,34054],{"className":34050},[9484],[533,34052],{"className":34053,"style":32975},[9488],[533,34055,34041],{"className":34056,"style":34057},[9493,9497],"margin-right:0.0037em;",") is",[533,34060,34062],{"className":34061},[29056],[533,34063,34065,34133],{"className":34064},[9443],[533,34066,34068],{"className":34067},[9447],[9174,34069,34070],{"xmlns":9450,"display":29065},[9452,34071,34072,34130],{},[9455,34073,34074,34076,34078,34080,34082,34088,34090,34092,34094,34096,34098,34100,34102,34104,34106,34114,34116,34122,34124,34126,34128],{},[9461,34075,32526],{},[9958,34077,615],{"stretchy":9960},[9461,34079,34041],{},[9958,34081,2464],{"separator":1089},[33970,34083,34084,34086],{"accent":1089},[9461,34085,33974],{"mathvariant":29816},[9958,34087,33977],{},[9958,34089,2632],{"stretchy":9960},[9958,34091,554],{},[9461,34093,16247],{},[9958,34095,21836],{},[9958,34097,32557],{"stretchy":9960},[9958,34099,615],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9958,34101,21843],{},[9461,34103,2556],{},[9958,34105,2464],{"separator":1089},[29095,34107,34108],{"scriptlevel":1049,"displaystyle":9960},[21845,34109,34110,34112],{},[9461,34111,34041],{},[10856,34113,1140],{},[9958,34115,2464],{"separator":1089},[33970,34117,34118,34120],{"accent":1089},[9461,34119,33974],{"mathvariant":29816},[9958,34121,33977],{},[9958,34123,29931],{},[9461,34125,21876],{"mathvariant":29934},[9958,34127,2632],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9461,34129,114],{"mathvariant":9573},[9473,34131,34132],{"encoding":9475},"U(\\alpha,\\hat{\\mathbf u}) = \\exp!\\big(-i,\\tfrac{\\alpha}{2},\\hat{\\mathbf u}\\cdot\\boldsymbol{\\sigma}\\big).",[533,34134,34136,34200,34227,34357],{"className":34135,"ariaHidden":1089},[9480],[533,34137,34139,34142,34145,34148,34151,34154,34157,34188,34191,34194,34197],{"className":34138},[9484],[533,34140],{"className":34141,"style":9998},[9488],[533,34143,32526],{"className":34144,"style":26398},[9493,9497],[533,34146,615],{"className":34147},[10002],[533,34149,34041],{"className":34150,"style":34057},[9493,9497],[533,34152,2464],{"className":34153},[10344],[533,34155],{"className":34156,"style":10349},[10348],[533,34158,34160],{"className":34159},[9493,33994],[533,34161,34163],{"className":34162},[9506],[533,34164,34166],{"className":34165},[9511],[533,34167,34169,34177],{"className":34168,"style":33990},[9515],[533,34170,34171,34174],{"style":31077},[533,34172],{"className":34173,"style":22017},[9523],[533,34175,33974],{"className":34176},[9493,29844],[533,34178,34179,34182],{"style":34014},[533,34180],{"className":34181,"style":22017},[9523],[533,34183,34185],{"className":34184,"style":34022},[34021],[533,34186,33977],{"className":34187},[9493],[533,34189,2632],{"className":34190},[10101],[533,34192],{"className":34193,"style":21908},[10348],[533,34195,554],{"className":34196},[21912],[533,34198],{"className":34199,"style":21908},[10348],[533,34201,34203,34206,34209,34212,34218,34221,34224],{"className":34202},[9484],[533,34204],{"className":34205,"style":30024},[9488],[533,34207,16247],{"className":34208},[21970],[533,34210,32557],{"className":34211},[10101],[533,34213,34215],{"className":34214},[9493],[533,34216,615],{"className":34217},[21986,22057],[533,34219],{"className":34220,"style":22903},[10348],[533,34222,21843],{"className":34223},[22093],[533,34225],{"className":34226,"style":22903},[10348],[533,34228,34230,34234,34237,34240,34243,34311,34314,34317,34348,34351,34354],{"className":34229},[9484],[533,34231],{"className":34232,"style":34233},[9488],"height:1.0529em;vertical-align:-0.345em;",[533,34235,2556],{"className":34236},[9493,9497],[533,34238,2464],{"className":34239},[10344],[533,34241],{"className":34242,"style":10349},[10348],[533,34244,34246,34249,34308],{"className":34245},[9493],[533,34247],{"className":34248},[10002,21997],[533,34250,34252],{"className":34251},[21845],[533,34253,34255,34300],{"className":34254},[9506,9507],[533,34256,34258,34297],{"className":34257},[9511],[533,34259,34261,34275,34283],{"className":34260,"style":23879},[9515],[533,34262,34263,34266],{"style":22013},[533,34264],{"className":34265,"style":22017},[9523],[533,34267,34269],{"className":34268},[9528,9529,9530,9531],[533,34270,34272],{"className":34271},[9493,9531],[533,34273,1140],{"className":34274},[9493,9531],[533,34276,34277,34280],{"style":22063},[533,34278],{"className":34279,"style":22017},[9523],[533,34281],{"className":34282,"style":22071},[22070],[533,34284,34285,34288],{"style":23904},[533,34286],{"className":34287,"style":22017},[9523],[533,34289,34291],{"className":34290},[9528,9529,9530,9531],[533,34292,34294],{"className":34293},[9493,9531],[533,34295,34041],{"className":34296,"style":34057},[9493,9497,9531],[533,34298,1090],{"className":34299},[9546],[533,34301,34303],{"className":34302},[9511],[533,34304,34306],{"className":34305,"style":22177},[9515],[533,34307],{},[533,34309],{"className":34310},[10101,21997],[533,34312,2464],{"className":34313},[10344],[533,34315],{"className":34316,"style":10349},[10348],[533,34318,34320],{"className":34319},[9493,33994],[533,34321,34323],{"className":34322},[9506],[533,34324,34326],{"className":34325},[9511],[533,34327,34329,34337],{"className":34328,"style":33990},[9515],[533,34330,34331,34334],{"style":31077},[533,34332],{"className":34333,"style":22017},[9523],[533,34335,33974],{"className":34336},[9493,29844],[533,34338,34339,34342],{"style":34014},[533,34340],{"className":34341,"style":22017},[9523],[533,34343,34345],{"className":34344,"style":34022},[34021],[533,34346,33977],{"className":34347},[9493],[533,34349],{"className":34350,"style":22903},[10348],[533,34352,29931],{"className":34353},[22093],[533,34355],{"className":34356,"style":22903},[10348],[533,34358,34360,34363,34372,34378],{"className":34359},[9484],[533,34361],{"className":34362,"style":30024},[9488],[533,34364,34366],{"className":34365},[9493],[533,34367,34369],{"className":34368},[9493],[533,34370,21876],{"className":34371,"style":30147},[9493,30146],[533,34373,34375],{"className":34374},[9493],[533,34376,2632],{"className":34377},[21986,22057],[533,34379,114],{"className":34380},[9493],[12,34382,34383,34384,34414,34415,5037,34418,29891],{},"Its action on (",[533,34385,34387,34401],{"className":34386},[9443],[533,34388,34390],{"className":34389},[9447],[9174,34391,34392],{"xmlns":9450},[9452,34393,34394,34398],{},[9455,34395,34396],{},[9461,34397,13035],{"mathvariant":29816},[9473,34399,34400],{"encoding":9475},"\\mathbf r",[533,34402,34404],{"className":34403,"ariaHidden":1089},[9480],[533,34405,34407,34411],{"className":34406},[9484],[533,34408],{"className":34409,"style":34410},[9488],"height:0.4444em;",[533,34412,13035],{"className":34413},[9493,29844],") is the ",[974,34416,34417],{},"adjoint map",[533,34419,34421,34459],{"className":34420},[9443],[533,34422,34424],{"className":34423},[9447],[9174,34425,34426],{"xmlns":9450},[9452,34427,34428,34456],{},[9455,34429,34430,34436,34438,34440,34442,34444,34450,34452,34454],{},[9455,34431,34432,34434],{},[9461,34433,31206],{"mathvariant":9573},[9461,34435,32526],{"mathvariant":9573},[9958,34437,615],{"stretchy":9960},[10856,34439,1140],{},[9958,34441,2632],{"stretchy":9960},[9958,34443,24063],{},[9455,34445,34446,34448],{},[9461,34447,31206],{"mathvariant":9573},[9461,34449,26262],{"mathvariant":9573},[9958,34451,615],{"stretchy":9960},[10856,34453,1157],{},[9958,34455,2632],{"stretchy":9960},[9473,34457,34458],{"encoding":9475},"\\mathrm{SU}(2)\\to\\mathrm{SO}(3)",[533,34460,34462,34493],{"className":34461,"ariaHidden":1089},[9480],[533,34463,34465,34468,34475,34478,34481,34484,34487,34490],{"className":34464},[9484],[533,34466],{"className":34467,"style":9998},[9488],[533,34469,34471],{"className":34470},[9493],[533,34472,34474],{"className":34473},[9493,30229],"SU",[533,34476,615],{"className":34477},[10002],[533,34479,1140],{"className":34480},[9493],[533,34482,2632],{"className":34483},[10101],[533,34485],{"className":34486,"style":21908},[10348],[533,34488,24063],{"className":34489},[21912],[533,34491],{"className":34492,"style":21908},[10348],[533,34494,34496,34499,34505,34508,34511],{"className":34495},[9484],[533,34497],{"className":34498,"style":9998},[9488],[533,34500,34502],{"className":34501},[9493],[533,34503,32932],{"className":34504},[9493,30229],[533,34506,615],{"className":34507},[10002],[533,34509,1157],{"className":34510},[9493],[533,34512,2632],{"className":34513},[10101],[533,34515,34517],{"className":34516},[29056],[533,34518,34520,34587],{"className":34519},[9443],[533,34521,34523],{"className":34522},[9447],[9174,34524,34525],{"xmlns":9450,"display":29065},[9452,34526,34527,34584],{},[29084,34528,34529],{"width":31265},[29089,34530,34531,34533,34577,34579],{},[29092,34532],{"width":31270},[29092,34534,34535],{},[9455,34536,34537,34539,34541,34544,34546,34553,34555,34557,34559,34561,34563,34569,34571,34573,34575],{},[9461,34538,13035],{"mathvariant":29816},[9958,34540,2595],{"separator":1089},[9958,34542,34543],{},"⟼",[9958,34545,2595],{"separator":1089},[21862,34547,34548,34550],{},[9461,34549,13035],{"mathvariant":29816},[9958,34551,34552],{"mathvariant":9573,"lspace":32535,"rspace":32535},"′",[9958,34554,554],{},[9461,34556,29825],{},[9958,34558,615],{"stretchy":9960},[9461,34560,34041],{},[9958,34562,2464],{"separator":1089},[33970,34564,34565,34567],{"accent":1089},[9461,34566,33974],{"mathvariant":29816},[9958,34568,33977],{},[9958,34570,2632],{"stretchy":9960},[9958,34572,2464],{"separator":1089},[9461,34574,13035],{"mathvariant":29816},[9461,34576,114],{"mathvariant":9573},[29092,34578],{"width":31270},[29092,34580,34581],{},[29972,34582,34583],{},"(Adjoint)",[9473,34585,34586],{"encoding":9475},"\\mathbf r;\\longmapsto;\\mathbf r' = R(\\alpha,\\hat{\\mathbf u}),\\mathbf r.\n\\tag{Adjoint}",[533,34588,34590,34609,34664,34731],{"className":34589,"ariaHidden":1089},[9480],[533,34591,34593,34597,34600,34603,34606],{"className":34592},[9484],[533,34594],{"className":34595,"style":34596},[9488],"height:0.7054em;vertical-align:-0.1944em;",[533,34598,13035],{"className":34599},[9493,29844],[533,34601,2595],{"className":34602},[10344],[533,34604],{"className":34605,"style":21908},[10348],[533,34607,34543],{"className":34608},[21912],[533,34610,34612,34616,34619,34622,34655,34658,34661],{"className":34611},[9484],[533,34613],{"className":34614,"style":34615},[9488],"height:0.9963em;vertical-align:-0.1944em;",[533,34617,2595],{"className":34618},[10344],[533,34620],{"className":34621,"style":10349},[10348],[533,34623,34625,34628],{"className":34624},[9493],[533,34626,13035],{"className":34627},[9493,29844],[533,34629,34631],{"className":34630},[9502],[533,34632,34634],{"className":34633},[9506],[533,34635,34637],{"className":34636},[9511],[533,34638,34641],{"className":34639,"style":34640},[9515],"height:0.8019em;",[533,34642,34643,34646],{"style":32796},[533,34644],{"className":34645,"style":9524},[9523],[533,34647,34649],{"className":34648},[9528,9529,9530,9531],[533,34650,34652],{"className":34651},[9493,9531],[533,34653,34552],{"className":34654},[9493,9531],[533,34656],{"className":34657,"style":21908},[10348],[533,34659,554],{"className":34660},[21912],[533,34662],{"className":34663,"style":21908},[10348],[533,34665,34667,34670,34673,34676,34679,34682,34685,34716,34719,34722,34725,34728],{"className":34666},[9484],[533,34668],{"className":34669,"style":9998},[9488],[533,34671,29825],{"className":34672,"style":32780},[9493,9497],[533,34674,615],{"className":34675},[10002],[533,34677,34041],{"className":34678,"style":34057},[9493,9497],[533,34680,2464],{"className":34681},[10344],[533,34683],{"className":34684,"style":10349},[10348],[533,34686,34688],{"className":34687},[9493,33994],[533,34689,34691],{"className":34690},[9506],[533,34692,34694],{"className":34693},[9511],[533,34695,34697,34705],{"className":34696,"style":33990},[9515],[533,34698,34699,34702],{"style":31077},[533,34700],{"className":34701,"style":22017},[9523],[533,34703,33974],{"className":34704},[9493,29844],[533,34706,34707,34710],{"style":34014},[533,34708],{"className":34709,"style":22017},[9523],[533,34711,34713],{"className":34712,"style":34022},[34021],[533,34714,33977],{"className":34715},[9493],[533,34717,2632],{"className":34718},[10101],[533,34720,2464],{"className":34721},[10344],[533,34723],{"className":34724,"style":10349},[10348],[533,34726,13035],{"className":34727},[9493,29844],[533,34729,114],{"className":34730},[9493],[533,34732,34734,34738],{"className":34733},[31766],[533,34735],{"className":34736,"style":34737},[9488],"height:1.0519em;vertical-align:-0.25em;",[533,34739,34741,34744,34751],{"className":34740},[9493,31773],[533,34742,615],{"className":34743},[9493],[533,34745,34747],{"className":34746},[9493],[533,34748,34750],{"className":34749},[9493],"Adjoint",[533,34752,2632],{"className":34753},[9493],[10993,34755],{},[25,34757,34759,34760,34790],{"id":34758},"_5-rodrigues-formula-axisangle-to-rotation-matrix","5. Rodrigues’ Formula (Axis–Angle (",[533,34761,34763,34777],{"className":34762},[9443],[533,34764,34766],{"className":34765},[9447],[9174,34767,34768],{"xmlns":9450},[9452,34769,34770,34774],{},[9455,34771,34772],{},[9958,34773,24063],{},[9473,34775,34776],{"encoding":9475},"\\to",[533,34778,34780],{"className":34779,"ariaHidden":1089},[9480],[533,34781,34783,34787],{"className":34782},[9484],[533,34784],{"className":34785,"style":34786},[9488],"height:0.3669em;",[533,34788,24063],{"className":34789},[21912],") Rotation Matrix)",[12,34792,34793,34794,35036],{},"Let (",[533,34795,34797,34843],{"className":34796},[9443],[533,34798,34800],{"className":34799},[9447],[9174,34801,34802],{"xmlns":9450},[9452,34803,34804,34840],{},[9455,34805,34806,34812,34814,34816,34822,34824,34830,34832,34838],{},[33970,34807,34808,34810],{"accent":1089},[9461,34809,33974],{"mathvariant":29816},[9958,34811,33977],{},[9958,34813,554],{},[9958,34815,615],{"stretchy":9960},[9458,34817,34818,34820],{},[9461,34819,33974],{},[9461,34821,29076],{},[9958,34823,2464],{"separator":1089},[9458,34825,34826,34828],{},[9461,34827,33974],{},[9461,34829,29131],{},[9958,34831,2464],{"separator":1089},[9458,34833,34834,34836],{},[9461,34835,33974],{},[9461,34837,1632],{},[9958,34839,2632],{"stretchy":9960},[9473,34841,34842],{"encoding":9475},"\\hat{\\mathbf u}=(u_x,u_y,u_z)",[533,34844,34846,34892],{"className":34845,"ariaHidden":1089},[9480],[533,34847,34849,34852,34883,34886,34889],{"className":34848},[9484],[533,34850],{"className":34851,"style":33990},[9488],[533,34853,34855],{"className":34854},[9493,33994],[533,34856,34858],{"className":34857},[9506],[533,34859,34861],{"className":34860},[9511],[533,34862,34864,34872],{"className":34863,"style":33990},[9515],[533,34865,34866,34869],{"style":31077},[533,34867],{"className":34868,"style":22017},[9523],[533,34870,33974],{"className":34871},[9493,29844],[533,34873,34874,34877],{"style":34014},[533,34875],{"className":34876,"style":22017},[9523],[533,34878,34880],{"className":34879,"style":34022},[34021],[533,34881,33977],{"className":34882},[9493],[533,34884],{"className":34885,"style":21908},[10348],[533,34887,554],{"className":34888},[21912],[533,34890],{"className":34891,"style":21908},[10348],[533,34893,34895,34898,34901,34941,34944,34947,34987,34990,34993,35033],{"className":34894},[9484],[533,34896],{"className":34897,"style":30222},[9488],[533,34899,615],{"className":34900},[10002],[533,34902,34904,34907],{"className":34903},[9493],[533,34905,33974],{"className":34906},[9493,9497],[533,34908,34910],{"className":34909},[9502],[533,34911,34913,34933],{"className":34912},[9506,9507],[533,34914,34916,34930],{"className":34915},[9511],[533,34917,34919],{"className":34918,"style":22873},[9515],[533,34920,34921,34924],{"style":9617},[533,34922],{"className":34923,"style":9524},[9523],[533,34925,34927],{"className":34926},[9528,9529,9530,9531],[533,34928,29076],{"className":34929},[9493,9497,9531],[533,34931,1090],{"className":34932},[9546],[533,34934,34936],{"className":34935},[9511],[533,34937,34939],{"className":34938,"style":9553},[9515],[533,34940],{},[533,34942,2464],{"className":34943},[10344],[533,34945],{"className":34946,"style":10349},[10348],[533,34948,34950,34953],{"className":34949},[9493],[533,34951,33974],{"className":34952},[9493,9497],[533,34954,34956],{"className":34955},[9502],[533,34957,34959,34979],{"className":34958},[9506,9507],[533,34960,34962,34976],{"className":34961},[9511],[533,34963,34965],{"className":34964,"style":22873},[9515],[533,34966,34967,34970],{"style":9617},[533,34968],{"className":34969,"style":9524},[9523],[533,34971,34973],{"className":34972},[9528,9529,9530,9531],[533,34974,29131],{"className":34975,"style":9498},[9493,9497,9531],[533,34977,1090],{"className":34978},[9546],[533,34980,34982],{"className":34981},[9511],[533,34983,34985],{"className":34984,"style":29468},[9515],[533,34986],{},[533,34988,2464],{"className":34989},[10344],[533,34991],{"className":34992,"style":10349},[10348],[533,34994,34996,34999],{"className":34995},[9493],[533,34997,33974],{"className":34998},[9493,9497],[533,35000,35002],{"className":35001},[9502],[533,35003,35005,35025],{"className":35004},[9506,9507],[533,35006,35008,35022],{"className":35007},[9511],[533,35009,35011],{"className":35010,"style":22873},[9515],[533,35012,35013,35016],{"style":9617},[533,35014],{"className":35015,"style":9524},[9523],[533,35017,35019],{"className":35018},[9528,9529,9530,9531],[533,35020,1632],{"className":35021,"style":29647},[9493,9497,9531],[533,35023,1090],{"className":35024},[9546],[533,35026,35028],{"className":35027},[9511],[533,35029,35031],{"className":35030,"style":9553},[9515],[533,35032],{},[533,35034,2632],{"className":35035},[10101],") be a unit axis and define the cross‑product matrix",[533,35038,35040],{"className":35039},[29056],[533,35041,35043,35168],{"className":35042},[9443],[533,35044,35046],{"className":35045},[9447],[9174,35047,35048],{"xmlns":9450,"display":29065},[9452,35049,35050,35165],{},[9455,35051,35052,35054,35056,35062,35064,35066,35163],{},[9461,35053,15909],{},[9958,35055,615],{"stretchy":9960},[33970,35057,35058,35060],{"accent":1089},[9461,35059,33974],{"mathvariant":29816},[9958,35061,33977],{},[9958,35063,2632],{"stretchy":9960},[9958,35065,554],{},[9455,35067,35068,35070,35161],{},[9958,35069,615],{"fence":1089},[29084,35071,35073],{"rowspacing":29086,"columnalign":35072,"columnspacing":24074},"center center center center center center center",[29089,35074,35075,35081,35095,35115,35121,35145,35155],{},[29092,35076,35077],{},[29095,35078,35079],{"scriptlevel":1049,"displaystyle":9960},[10856,35080,1049],{},[29092,35082,35083],{},[29095,35084,35085],{"scriptlevel":1049,"displaystyle":9960},[9455,35086,35087,35089],{},[9958,35088,21843],{},[9458,35090,35091,35093],{},[9461,35092,33974],{},[9461,35094,1632],{},[29092,35096,35097],{},[29095,35098,35099],{"scriptlevel":1049,"displaystyle":9960},[9455,35100,35101,35107,35109],{},[9458,35102,35103,35105],{},[9461,35104,33974],{},[9461,35106,29131],{},[29972,35108,29974],{},[9458,35110,35111,35113],{},[9461,35112,33974],{},[9461,35114,1632],{},[29092,35116,35117],{},[29095,35118,35119],{"scriptlevel":1049,"displaystyle":9960},[10856,35120,1049],{},[29092,35122,35123],{},[29095,35124,35125],{"scriptlevel":1049,"displaystyle":9960},[9455,35126,35127,35129,35135,35137,35139],{},[9958,35128,21843],{},[9458,35130,35131,35133],{},[9461,35132,33974],{},[9461,35134,29076],{},[29972,35136,29974],{},[9958,35138,21843],{},[9458,35140,35141,35143],{},[9461,35142,33974],{},[9461,35144,29131],{},[29092,35146,35147],{},[29095,35148,35149],{"scriptlevel":1049,"displaystyle":9960},[9458,35150,35151,35153],{},[9461,35152,33974],{},[9461,35154,29076],{},[29092,35156,35157],{},[29095,35158,35159],{"scriptlevel":1049,"displaystyle":9960},[10856,35160,1049],{},[9958,35162,2632],{"fence":1089},[9461,35164,114],{"mathvariant":9573},[9473,35166,35167],{"encoding":9475},"K(\\hat{\\mathbf u}) = \\begin{pmatrix}\n0 & -u_z & u_y\\\nu_z & 0 & -u_x\\\n-u_y & u_x & 0\n\\end{pmatrix}.",[533,35169,35171,35226],{"className":35170,"ariaHidden":1089},[9480],[533,35172,35174,35177,35180,35183,35214,35217,35220,35223],{"className":35173},[9484],[533,35175],{"className":35176,"style":9998},[9488],[533,35178,15909],{"className":35179,"style":9538},[9493,9497],[533,35181,615],{"className":35182},[10002],[533,35184,35186],{"className":35185},[9493,33994],[533,35187,35189],{"className":35188},[9506],[533,35190,35192],{"className":35191},[9511],[533,35193,35195,35203],{"className":35194,"style":33990},[9515],[533,35196,35197,35200],{"style":31077},[533,35198],{"className":35199,"style":22017},[9523],[533,35201,33974],{"className":35202},[9493,29844],[533,35204,35205,35208],{"style":34014},[533,35206],{"className":35207,"style":22017},[9523],[533,35209,35211],{"className":35210,"style":34022},[34021],[533,35212,33977],{"className":35213},[9493],[533,35215,2632],{"className":35216},[10101],[533,35218],{"className":35219,"style":21908},[10348],[533,35221,554],{"className":35222},[21912],[533,35224],{"className":35225,"style":21908},[10348],[533,35227,35229,35232,35779,35782],{"className":35228},[9484],[533,35230],{"className":35231,"style":30024},[9488],[533,35233,35235,35241,35773],{"className":35234},[21977],[533,35236,35238],{"className":35237,"style":21982},[10002,21981],[533,35239,615],{"className":35240},[21986,22057],[533,35242,35244],{"className":35243},[9493],[533,35245,35247,35284,35287,35290,35364,35367,35370,35484,35487,35490,35524,35527,35530,35656,35659,35662,35733,35736,35739],{"className":35246},[29084],[533,35248,35250],{"className":35249},[29312],[533,35251,35253,35275],{"className":35252},[9506,9507],[533,35254,35256,35272],{"className":35255},[9511],[533,35257,35260],{"className":35258,"style":35259},[9515],"height:0.85em;",[533,35261,35263,35266],{"style":35262},"top:-3.01em;",[533,35264],{"className":35265,"style":22017},[9523],[533,35267,35269],{"className":35268},[9493],[533,35270,1049],{"className":35271},[9493],[533,35273,1090],{"className":35274},[9546],[533,35276,35278],{"className":35277},[9511],[533,35279,35282],{"className":35280,"style":35281},[9515],"height:0.35em;",[533,35283],{},[533,35285],{"className":35286,"style":29363},[29362],[533,35288],{"className":35289,"style":29363},[29362],[533,35291,35293],{"className":35292},[29312],[533,35294,35296,35356],{"className":35295},[9506,9507],[533,35297,35299,35353],{"className":35298},[9511],[533,35300,35302],{"className":35301,"style":35259},[9515],[533,35303,35304,35307],{"style":35262},[533,35305],{"className":35306,"style":22017},[9523],[533,35308,35310,35313],{"className":35309},[9493],[533,35311,21843],{"className":35312},[9493],[533,35314,35316,35319],{"className":35315},[9493],[533,35317,33974],{"className":35318},[9493,9497],[533,35320,35322],{"className":35321},[9502],[533,35323,35325,35345],{"className":35324},[9506,9507],[533,35326,35328,35342],{"className":35327},[9511],[533,35329,35331],{"className":35330,"style":22873},[9515],[533,35332,35333,35336],{"style":9617},[533,35334],{"className":35335,"style":9524},[9523],[533,35337,35339],{"className":35338},[9528,9529,9530,9531],[533,35340,1632],{"className":35341,"style":29647},[9493,9497,9531],[533,35343,1090],{"className":35344},[9546],[533,35346,35348],{"className":35347},[9511],[533,35349,35351],{"className":35350,"style":9553},[9515],[533,35352],{},[533,35354,1090],{"className":35355},[9546],[533,35357,35359],{"className":35358},[9511],[533,35360,35362],{"className":35361,"style":35281},[9515],[533,35363],{},[533,35365],{"className":35366,"style":29363},[29362],[533,35368],{"className":35369,"style":29363},[29362],[533,35371,35373],{"className":35372},[29312],[533,35374,35376,35476],{"className":35375},[9506,9507],[533,35377,35379,35473],{"className":35378},[9511],[533,35380,35382],{"className":35381,"style":35259},[9515],[533,35383,35384,35387],{"style":35262},[533,35385],{"className":35386,"style":22017},[9523],[533,35388,35390,35430,35433],{"className":35389},[9493],[533,35391,35393,35396],{"className":35392},[9493],[533,35394,33974],{"className":35395},[9493,9497],[533,35397,35399],{"className":35398},[9502],[533,35400,35402,35422],{"className":35401},[9506,9507],[533,35403,35405,35419],{"className":35404},[9511],[533,35406,35408],{"className":35407,"style":22873},[9515],[533,35409,35410,35413],{"style":9617},[533,35411],{"className":35412,"style":9524},[9523],[533,35414,35416],{"className":35415},[9528,9529,9530,9531],[533,35417,29131],{"className":35418,"style":9498},[9493,9497,9531],[533,35420,1090],{"className":35421},[9546],[533,35423,35425],{"className":35424},[9511],[533,35426,35428],{"className":35427,"style":29468},[9515],[533,35429],{},[533,35431,29974],{"className":35432},[10348],[533,35434,35436,35439],{"className":35435},[9493],[533,35437,33974],{"className":35438},[9493,9497],[533,35440,35442],{"className":35441},[9502],[533,35443,35445,35465],{"className":35444},[9506,9507],[533,35446,35448,35462],{"className":35447},[9511],[533,35449,35451],{"className":35450,"style":22873},[9515],[533,35452,35453,35456],{"style":9617},[533,35454],{"className":35455,"style":9524},[9523],[533,35457,35459],{"className":35458},[9528,9529,9530,9531],[533,35460,1632],{"className":35461,"style":29647},[9493,9497,9531],[533,35463,1090],{"className":35464},[9546],[533,35466,35468],{"className":35467},[9511],[533,35469,35471],{"className":35470,"style":9553},[9515],[533,35472],{},[533,35474,1090],{"className":35475},[9546],[533,35477,35479],{"className":35478},[9511],[533,35480,35482],{"className":35481,"style":35281},[9515],[533,35483],{},[533,35485],{"className":35486,"style":29363},[29362],[533,35488],{"className":35489,"style":29363},[29362],[533,35491,35493],{"className":35492},[29312],[533,35494,35496,35516],{"className":35495},[9506,9507],[533,35497,35499,35513],{"className":35498},[9511],[533,35500,35502],{"className":35501,"style":35259},[9515],[533,35503,35504,35507],{"style":35262},[533,35505],{"className":35506,"style":22017},[9523],[533,35508,35510],{"className":35509},[9493],[533,35511,1049],{"className":35512},[9493],[533,35514,1090],{"className":35515},[9546],[533,35517,35519],{"className":35518},[9511],[533,35520,35522],{"className":35521,"style":35281},[9515],[533,35523],{},[533,35525],{"className":35526,"style":29363},[29362],[533,35528],{"className":35529,"style":29363},[29362],[533,35531,35533],{"className":35532},[29312],[533,35534,35536,35648],{"className":35535},[9506,9507],[533,35537,35539,35645],{"className":35538},[9511],[533,35540,35542],{"className":35541,"style":35259},[9515],[533,35543,35544,35547],{"style":35262},[533,35545],{"className":35546,"style":22017},[9523],[533,35548,35550,35553,35593,35596,35599,35602,35605],{"className":35549},[9493],[533,35551,21843],{"className":35552},[9493],[533,35554,35556,35559],{"className":35555},[9493],[533,35557,33974],{"className":35558},[9493,9497],[533,35560,35562],{"className":35561},[9502],[533,35563,35565,35585],{"className":35564},[9506,9507],[533,35566,35568,35582],{"className":35567},[9511],[533,35569,35571],{"className":35570,"style":22873},[9515],[533,35572,35573,35576],{"style":9617},[533,35574],{"className":35575,"style":9524},[9523],[533,35577,35579],{"className":35578},[9528,9529,9530,9531],[533,35580,29076],{"className":35581},[9493,9497,9531],[533,35583,1090],{"className":35584},[9546],[533,35586,35588],{"className":35587},[9511],[533,35589,35591],{"className":35590,"style":9553},[9515],[533,35592],{},[533,35594,29974],{"className":35595},[10348],[533,35597],{"className":35598,"style":22903},[10348],[533,35600,21843],{"className":35601},[22093],[533,35603],{"className":35604,"style":22903},[10348],[533,35606,35608,35611],{"className":35607},[9493],[533,35609,33974],{"className":35610},[9493,9497],[533,35612,35614],{"className":35613},[9502],[533,35615,35617,35637],{"className":35616},[9506,9507],[533,35618,35620,35634],{"className":35619},[9511],[533,35621,35623],{"className":35622,"style":22873},[9515],[533,35624,35625,35628],{"style":9617},[533,35626],{"className":35627,"style":9524},[9523],[533,35629,35631],{"className":35630},[9528,9529,9530,9531],[533,35632,29131],{"className":35633,"style":9498},[9493,9497,9531],[533,35635,1090],{"className":35636},[9546],[533,35638,35640],{"className":35639},[9511],[533,35641,35643],{"className":35642,"style":29468},[9515],[533,35644],{},[533,35646,1090],{"className":35647},[9546],[533,35649,35651],{"className":35650},[9511],[533,35652,35654],{"className":35653,"style":35281},[9515],[533,35655],{},[533,35657],{"className":35658,"style":29363},[29362],[533,35660],{"className":35661,"style":29363},[29362],[533,35663,35665],{"className":35664},[29312],[533,35666,35668,35725],{"className":35667},[9506,9507],[533,35669,35671,35722],{"className":35670},[9511],[533,35672,35674],{"className":35673,"style":35259},[9515],[533,35675,35676,35679],{"style":35262},[533,35677],{"className":35678,"style":22017},[9523],[533,35680,35682],{"className":35681},[9493],[533,35683,35685,35688],{"className":35684},[9493],[533,35686,33974],{"className":35687},[9493,9497],[533,35689,35691],{"className":35690},[9502],[533,35692,35694,35714],{"className":35693},[9506,9507],[533,35695,35697,35711],{"className":35696},[9511],[533,35698,35700],{"className":35699,"style":22873},[9515],[533,35701,35702,35705],{"style":9617},[533,35703],{"className":35704,"style":9524},[9523],[533,35706,35708],{"className":35707},[9528,9529,9530,9531],[533,35709,29076],{"className":35710},[9493,9497,9531],[533,35712,1090],{"className":35713},[9546],[533,35715,35717],{"className":35716},[9511],[533,35718,35720],{"className":35719,"style":9553},[9515],[533,35721],{},[533,35723,1090],{"className":35724},[9546],[533,35726,35728],{"className":35727},[9511],[533,35729,35731],{"className":35730,"style":35281},[9515],[533,35732],{},[533,35734],{"className":35735,"style":29363},[29362],[533,35737],{"className":35738,"style":29363},[29362],[533,35740,35742],{"className":35741},[29312],[533,35743,35745,35765],{"className":35744},[9506,9507],[533,35746,35748,35762],{"className":35747},[9511],[533,35749,35751],{"className":35750,"style":35259},[9515],[533,35752,35753,35756],{"style":35262},[533,35754],{"className":35755,"style":22017},[9523],[533,35757,35759],{"className":35758},[9493],[533,35760,1049],{"className":35761},[9493],[533,35763,1090],{"className":35764},[9546],[533,35766,35768],{"className":35767},[9511],[533,35769,35771],{"className":35770,"style":35281},[9515],[533,35772],{},[533,35774,35776],{"className":35775,"style":21982},[10101,21981],[533,35777,2632],{"className":35778},[21986,22057],[533,35780],{"className":35781,"style":10349},[10348],[533,35783,114],{"className":35784},[9493],[12,35786,35787],{},"Then the corresponding rotation matrix is",[533,35789,35791],{"className":35790},[29056],[533,35792,35794,35914],{"className":35793},[9443],[533,35795,35797],{"className":35796},[9447],[9174,35798,35799],{"xmlns":9450,"display":29065},[9452,35800,35801,35911],{},[29084,35802,35803],{"width":31265},[29089,35804,35805,35807,35904,35906],{},[29092,35806],{"width":31270},[29092,35808,35809],{},[9455,35810,35811,35813,35815,35817,35819,35825,35827,35829,35831,35833,35835,35837,35843,35845,35847,35849,35851,35853,35855,35857,35859,35861,35867,35869,35880,35882,35884,35886,35888,35890,35892,35894,35900,35902],{},[9461,35812,29825],{},[9958,35814,615],{"stretchy":9960},[9461,35816,34041],{},[9958,35818,2464],{"separator":1089},[33970,35820,35821,35823],{"accent":1089},[9461,35822,33974],{"mathvariant":29816},[9958,35824,33977],{},[9958,35826,2632],{"stretchy":9960},[9958,35828,554],{},[9461,35830,14318],{},[9958,35832,21836],{},[9461,35834,34041],{},[9958,35836,2464],{"separator":1089},[9458,35838,35839,35841],{},[9461,35840,10779],{},[10856,35842,1157],{},[9958,35844,6350],{},[9958,35846,615],{"stretchy":9960},[10856,35848,1052],{},[9958,35850,21843],{},[9461,35852,14318],{},[9958,35854,21836],{},[9461,35856,34041],{},[9958,35858,2632],{"stretchy":9960},[9958,35860,2464],{"separator":1089},[33970,35862,35863,35865],{"accent":1089},[9461,35864,33974],{"mathvariant":29816},[9958,35866,33977],{},[9958,35868,2464],{"separator":1089},[21862,35870,35871,35877],{},[33970,35872,35873,35875],{"accent":1089},[9461,35874,33974],{"mathvariant":29816},[9958,35876,33977],{},[9461,35878,6090],{"mathvariant":35879},"sans-serif",[9958,35881,6350],{},[9461,35883,14336],{},[9958,35885,21836],{},[9461,35887,34041],{},[9958,35889,2464],{"separator":1089},[9461,35891,15909],{},[9958,35893,615],{"stretchy":9960},[33970,35895,35896,35898],{"accent":1089},[9461,35897,33974],{"mathvariant":29816},[9958,35899,33977],{},[9958,35901,2632],{"stretchy":9960},[9461,35903,114],{"mathvariant":9573},[29092,35905],{"width":31270},[29092,35907,35908],{},[29972,35909,35910],{},"(Rodrigues)",[9473,35912,35913],{"encoding":9475},"R(\\alpha,\\hat{\\mathbf u}) = \\cos\\alpha,I_3 + (1-\\cos\\alpha),\\hat{\\mathbf u},\\hat{\\mathbf u}^{\\mathsf T} + \\sin\\alpha,K(\\hat{\\mathbf u}).\n\\tag{Rodrigues}",[533,35915,35917,35981,36053,36074,36207,36271],{"className":35916,"ariaHidden":1089},[9480],[533,35918,35920,35923,35926,35929,35932,35935,35938,35969,35972,35975,35978],{"className":35919},[9484],[533,35921],{"className":35922,"style":9998},[9488],[533,35924,29825],{"className":35925,"style":32780},[9493,9497],[533,35927,615],{"className":35928},[10002],[533,35930,34041],{"className":35931,"style":34057},[9493,9497],[533,35933,2464],{"className":35934},[10344],[533,35936],{"className":35937,"style":10349},[10348],[533,35939,35941],{"className":35940},[9493,33994],[533,35942,35944],{"className":35943},[9506],[533,35945,35947],{"className":35946},[9511],[533,35948,35950,35958],{"className":35949,"style":33990},[9515],[533,35951,35952,35955],{"style":31077},[533,35953],{"className":35954,"style":22017},[9523],[533,35956,33974],{"className":35957},[9493,29844],[533,35959,35960,35963],{"style":34014},[533,35961],{"className":35962,"style":22017},[9523],[533,35964,35966],{"className":35965,"style":34022},[34021],[533,35967,33977],{"className":35968},[9493],[533,35970,2632],{"className":35971},[10101],[533,35973],{"className":35974,"style":21908},[10348],[533,35976,554],{"className":35977},[21912],[533,35979],{"className":35980,"style":21908},[10348],[533,35982,35984,35988,35991,35994,35997,36000,36003,36044,36047,36050],{"className":35983},[9484],[533,35985],{"className":35986,"style":35987},[9488],"height:0.8778em;vertical-align:-0.1944em;",[533,35989,14318],{"className":35990},[21970],[533,35992],{"className":35993,"style":10349},[10348],[533,35995,34041],{"className":35996,"style":34057},[9493,9497],[533,35998,2464],{"className":35999},[10344],[533,36001],{"className":36002,"style":10349},[10348],[533,36004,36006,36009],{"className":36005},[9493],[533,36007,10779],{"className":36008,"style":9542},[9493,9497],[533,36010,36012],{"className":36011},[9502],[533,36013,36015,36036],{"className":36014},[9506,9507],[533,36016,36018,36033],{"className":36017},[9511],[533,36019,36021],{"className":36020,"style":21941},[9515],[533,36022,36024,36027],{"style":36023},"top:-2.55em;margin-left:-0.0785em;margin-right:0.05em;",[533,36025],{"className":36026,"style":9524},[9523],[533,36028,36030],{"className":36029},[9528,9529,9530,9531],[533,36031,1157],{"className":36032},[9493,9531],[533,36034,1090],{"className":36035},[9546],[533,36037,36039],{"className":36038},[9511],[533,36040,36042],{"className":36041,"style":9553},[9515],[533,36043],{},[533,36045],{"className":36046,"style":22903},[10348],[533,36048,6350],{"className":36049},[22093],[533,36051],{"className":36052,"style":22903},[10348],[533,36054,36056,36059,36062,36065,36068,36071],{"className":36055},[9484],[533,36057],{"className":36058,"style":9998},[9488],[533,36060,615],{"className":36061},[10002],[533,36063,1052],{"className":36064},[9493],[533,36066],{"className":36067,"style":22903},[10348],[533,36069,21843],{"className":36070},[22093],[533,36072],{"className":36073,"style":22903},[10348],[533,36075,36077,36081,36084,36087,36090,36093,36096,36099,36130,36133,36136,36198,36201,36204],{"className":36076},[9484],[533,36078],{"className":36079,"style":36080},[9488],"height:1.1491em;vertical-align:-0.25em;",[533,36082,14318],{"className":36083},[21970],[533,36085],{"className":36086,"style":10349},[10348],[533,36088,34041],{"className":36089,"style":34057},[9493,9497],[533,36091,2632],{"className":36092},[10101],[533,36094,2464],{"className":36095},[10344],[533,36097],{"className":36098,"style":10349},[10348],[533,36100,36102],{"className":36101},[9493,33994],[533,36103,36105],{"className":36104},[9506],[533,36106,36108],{"className":36107},[9511],[533,36109,36111,36119],{"className":36110,"style":33990},[9515],[533,36112,36113,36116],{"style":31077},[533,36114],{"className":36115,"style":22017},[9523],[533,36117,33974],{"className":36118},[9493,29844],[533,36120,36121,36124],{"style":34014},[533,36122],{"className":36123,"style":22017},[9523],[533,36125,36127],{"className":36126,"style":34022},[34021],[533,36128,33977],{"className":36129},[9493],[533,36131,2464],{"className":36132},[10344],[533,36134],{"className":36135,"style":10349},[10348],[533,36137,36139,36170],{"className":36138},[9493],[533,36140,36142],{"className":36141},[9493,33994],[533,36143,36145],{"className":36144},[9506],[533,36146,36148],{"className":36147},[9511],[533,36149,36151,36159],{"className":36150,"style":33990},[9515],[533,36152,36153,36156],{"style":31077},[533,36154],{"className":36155,"style":22017},[9523],[533,36157,33974],{"className":36158},[9493,29844],[533,36160,36161,36164],{"style":34014},[533,36162],{"className":36163,"style":22017},[9523],[533,36165,36167],{"className":36166,"style":34022},[34021],[533,36168,33977],{"className":36169},[9493],[533,36171,36173],{"className":36172},[9502],[533,36174,36176],{"className":36175},[9506],[533,36177,36179],{"className":36178},[9511],[533,36180,36183],{"className":36181,"style":36182},[9515],"height:0.8991em;",[533,36184,36185,36188],{"style":32796},[533,36186],{"className":36187,"style":9524},[9523],[533,36189,36191],{"className":36190},[9528,9529,9530,9531],[533,36192,36194],{"className":36193},[9493,9531],[533,36195,6090],{"className":36196},[9493,36197,9531],"mathsf",[533,36199],{"className":36200,"style":22903},[10348],[533,36202,6350],{"className":36203},[22093],[533,36205],{"className":36206,"style":22903},[10348],[533,36208,36210,36213,36216,36219,36222,36225,36228,36231,36234,36265,36268],{"className":36209},[9484],[533,36211],{"className":36212,"style":9998},[9488],[533,36214,14336],{"className":36215},[21970],[533,36217],{"className":36218,"style":10349},[10348],[533,36220,34041],{"className":36221,"style":34057},[9493,9497],[533,36223,2464],{"className":36224},[10344],[533,36226],{"className":36227,"style":10349},[10348],[533,36229,15909],{"className":36230,"style":9538},[9493,9497],[533,36232,615],{"className":36233},[10002],[533,36235,36237],{"className":36236},[9493,33994],[533,36238,36240],{"className":36239},[9506],[533,36241,36243],{"className":36242},[9511],[533,36244,36246,36254],{"className":36245,"style":33990},[9515],[533,36247,36248,36251],{"style":31077},[533,36249],{"className":36250,"style":22017},[9523],[533,36252,33974],{"className":36253},[9493,29844],[533,36255,36256,36259],{"style":34014},[533,36257],{"className":36258,"style":22017},[9523],[533,36260,36262],{"className":36261,"style":34022},[34021],[533,36263,33977],{"className":36264},[9493],[533,36266,2632],{"className":36267},[10101],[533,36269,114],{"className":36270},[9493],[533,36272,36274,36277],{"className":36273},[31766],[533,36275],{"className":36276,"style":36080},[9488],[533,36278,36280,36283,36290],{"className":36279},[9493,31773],[533,36281,615],{"className":36282},[9493],[533,36284,36286],{"className":36285},[9493],[533,36287,36289],{"className":36288},[9493],"Rodrigues",[533,36291,2632],{"className":36292},[9493],[12,36294,36295,36296,36394,36395,36397],{},"This matrix implements the evolution (",[533,36297,36299,36325],{"className":36298},[9443],[533,36300,36302],{"className":36301},[9447],[9174,36303,36304],{"xmlns":9450},[9452,36305,36306,36322],{},[9455,36307,36308,36314,36316,36318,36320],{},[21862,36309,36310,36312],{},[9461,36311,13035],{"mathvariant":29816},[9958,36313,34552],{"mathvariant":9573,"lspace":32535,"rspace":32535},[9958,36315,554],{},[9461,36317,29825],{},[9958,36319,2464],{"separator":1089},[9461,36321,13035],{"mathvariant":29816},[9473,36323,36324],{"encoding":9475},"\\mathbf r' = R,\\mathbf r",[533,36326,36328,36376],{"className":36327,"ariaHidden":1089},[9480],[533,36329,36331,36335,36367,36370,36373],{"className":36330},[9484],[533,36332],{"className":36333,"style":36334},[9488],"height:0.7519em;",[533,36336,36338,36341],{"className":36337},[9493],[533,36339,13035],{"className":36340},[9493,29844],[533,36342,36344],{"className":36343},[9502],[533,36345,36347],{"className":36346},[9506],[533,36348,36350],{"className":36349},[9511],[533,36351,36353],{"className":36352,"style":36334},[9515],[533,36354,36355,36358],{"style":24194},[533,36356],{"className":36357,"style":9524},[9523],[533,36359,36361],{"className":36360},[9528,9529,9530,9531],[533,36362,36364],{"className":36363},[9493,9531],[533,36365,34552],{"className":36366},[9493,9531],[533,36368],{"className":36369,"style":21908},[10348],[533,36371,554],{"className":36372},[21912],[533,36374],{"className":36375,"style":21908},[10348],[533,36377,36379,36382,36385,36388,36391],{"className":36378},[9484],[533,36380],{"className":36381,"style":35987},[9488],[533,36383,29825],{"className":36384,"style":32780},[9493,9497],[533,36386,2464],{"className":36387},[10344],[533,36389],{"className":36390,"style":10349},[10348],[533,36392,13035],{"className":36393},[9493,29844],"), and by ",[974,36396,32592],{}," the Wigner function obeys",[533,36399,36401],{"className":36400},[29056],[533,36402,36404,36498],{"className":36403},[9443],[533,36405,36407],{"className":36406},[9447],[9174,36408,36409],{"xmlns":9450,"display":29065},[9452,36410,36411,36495],{},[9455,36412,36413,36419,36421,36423,36425,36427,36429,36431,36433,36435,36443,36445,36453,36455,36457,36459,36461,36463,36465,36471,36473,36475,36477,36479,36481,36483,36485,36487,36489,36491,36493],{},[9458,36414,36415,36417],{},[9461,36416,31279],{},[9461,36418,29909],{},[9958,36420,615],{"stretchy":9960},[9461,36422,24093],{},[9958,36424,2464],{"separator":1089},[9461,36426,22517],{},[9958,36428,2595],{"separator":1089},[9461,36430,34041],{},[9958,36432,2632],{"stretchy":9960},[9958,36434,554],{},[29095,36436,36437],{"scriptlevel":1049,"displaystyle":9960},[21845,36438,36439,36441],{},[10856,36440,1052],{},[10856,36442,1140],{},[9958,36444,6350],{},[21845,36446,36447,36451],{},[30893,36448,36449],{},[10856,36450,1157],{},[10856,36452,1140],{},[9958,36454,2595],{"separator":1089},[9958,36456,615],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9461,36458,29825],{},[9958,36460,615],{"stretchy":9960},[9461,36462,34041],{},[9958,36464,2464],{"separator":1089},[33970,36466,36467,36469],{"accent":1089},[9461,36468,33974],{"mathvariant":29816},[9958,36470,33977],{},[9958,36472,2632],{"stretchy":9960},[9958,36474,2464],{"separator":1089},[9461,36476,13035],{"mathvariant":29816},[9958,36478,2632],{"fence":9960,"stretchy":1089,"minsize":29922,"maxsize":29922},[9958,36480,29931],{},[9461,36482,30647],{"mathvariant":29816},[9958,36484,615],{"stretchy":9960},[9461,36486,24093],{},[9958,36488,2464],{"separator":1089},[9461,36490,22517],{},[9958,36492,2632],{"stretchy":9960},[9461,36494,114],{"mathvariant":9573},[9473,36496,36497],{"encoding":9475},"W_\\rho(\\theta,\\phi;\\alpha) = \\tfrac{1}{2} + \\frac{\\sqrt{3}}{2}; \\big(R(\\alpha,\\hat{\\mathbf u}),\\mathbf r\\big)\\cdot\\mathbf n(\\theta,\\phi).",[533,36499,36501,36583,36666,36863],{"className":36500,"ariaHidden":1089},[9480],[533,36502,36504,36507,36547,36550,36553,36556,36559,36562,36565,36568,36571,36574,36577,36580],{"className":36503},[9484],[533,36505],{"className":36506,"style":30222},[9488],[533,36508,36510,36513],{"className":36509},[9493],[533,36511,31279],{"className":36512,"style":26405},[9493,9497],[533,36514,36516],{"className":36515},[9502],[533,36517,36519,36539],{"className":36518},[9506,9507],[533,36520,36522,36536],{"className":36521},[9511],[533,36523,36525],{"className":36524,"style":22873},[9515],[533,36526,36527,36530],{"style":31397},[533,36528],{"className":36529,"style":9524},[9523],[533,36531,36533],{"className":36532},[9528,9529,9530,9531],[533,36534,29909],{"className":36535},[9493,9497,9531],[533,36537,1090],{"className":36538},[9546],[533,36540,36542],{"className":36541},[9511],[533,36543,36545],{"className":36544,"style":29468},[9515],[533,36546],{},[533,36548,615],{"className":36549},[10002],[533,36551,24093],{"className":36552,"style":24210},[9493,9497],[533,36554,2464],{"className":36555},[10344],[533,36557],{"className":36558,"style":10349},[10348],[533,36560,22517],{"className":36561},[9493,9497],[533,36563,2595],{"className":36564},[10344],[533,36566],{"className":36567,"style":10349},[10348],[533,36569,34041],{"className":36570,"style":34057},[9493,9497],[533,36572,2632],{"className":36573},[10101],[533,36575],{"className":36576,"style":21908},[10348],[533,36578,554],{"className":36579},[21912],[533,36581],{"className":36582,"style":21908},[10348],[533,36584,36586,36589,36657,36660,36663],{"className":36585},[9484],[533,36587],{"className":36588,"style":31517},[9488],[533,36590,36592,36595,36654],{"className":36591},[9493],[533,36593],{"className":36594},[10002,21997],[533,36596,36598],{"className":36597},[21845],[533,36599,36601,36646],{"className":36600},[9506,9507],[533,36602,36604,36643],{"className":36603},[9511],[533,36605,36607,36621,36629],{"className":36606,"style":30043},[9515],[533,36608,36609,36612],{"style":22013},[533,36610],{"className":36611,"style":22017},[9523],[533,36613,36615],{"className":36614},[9528,9529,9530,9531],[533,36616,36618],{"className":36617},[9493,9531],[533,36619,1140],{"className":36620},[9493,9531],[533,36622,36623,36626],{"style":22063},[533,36624],{"className":36625,"style":22017},[9523],[533,36627],{"className":36628,"style":22071},[22070],[533,36630,36631,36634],{"style":23904},[533,36632],{"className":36633,"style":22017},[9523],[533,36635,36637],{"className":36636},[9528,9529,9530,9531],[533,36638,36640],{"className":36639},[9493,9531],[533,36641,1052],{"className":36642},[9493,9531],[533,36644,1090],{"className":36645},[9546],[533,36647,36649],{"className":36648},[9511],[533,36650,36652],{"className":36651,"style":22177},[9515],[533,36653],{},[533,36655],{"className":36656},[10101,21997],[533,36658],{"className":36659,"style":22903},[10348],[533,36661,6350],{"className":36662},[22093],[533,36664],{"className":36665,"style":22903},[10348],[533,36667,36669,36672,36778,36781,36784,36790,36793,36796,36799,36802,36805,36836,36839,36842,36845,36848,36854,36857,36860],{"className":36668},[9484],[533,36670],{"className":36671,"style":31601},[9488],[533,36673,36675,36678,36775],{"className":36674},[9493],[533,36676],{"className":36677},[10002,21997],[533,36679,36681],{"className":36680},[21845],[533,36682,36684,36767],{"className":36683},[9506,9507],[533,36685,36687,36764],{"className":36686},[9511],[533,36688,36690,36701,36709],{"className":36689,"style":31620},[9515],[533,36691,36692,36695],{"style":31623},[533,36693],{"className":36694,"style":22017},[9523],[533,36696,36698],{"className":36697},[9493],[533,36699,1140],{"className":36700},[9493],[533,36702,36703,36706],{"style":22063},[533,36704],{"className":36705,"style":22017},[9523],[533,36707],{"className":36708,"style":22071},[22070],[533,36710,36711,36714],{"style":31643},[533,36712],{"className":36713,"style":22017},[9523],[533,36715,36717],{"className":36716},[9493],[533,36718,36720],{"className":36719},[9493,2262],[533,36721,36723,36756],{"className":36722},[9506,9507],[533,36724,36726,36753],{"className":36725},[9511],[533,36727,36729,36741],{"className":36728,"style":31662},[9515],[533,36730,36732,36735],{"className":36731,"style":31077},[31076],[533,36733],{"className":36734,"style":22017},[9523],[533,36736,36738],{"className":36737,"style":31084},[9493],[533,36739,1157],{"className":36740},[9493],[533,36742,36743,36746],{"style":31677},[533,36744],{"className":36745,"style":22017},[9523],[533,36747,36749],{"className":36748,"style":31098},[31097],[31100,36750,36751],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,36752],{"d":31110},[533,36754,1090],{"className":36755},[9546],[533,36757,36759],{"className":36758},[9511],[533,36760,36762],{"className":36761,"style":31697},[9515],[533,36763],{},[533,36765,1090],{"className":36766},[9546],[533,36768,36770],{"className":36769},[9511],[533,36771,36773],{"className":36772,"style":31709},[9515],[533,36774],{},[533,36776],{"className":36777},[10101,21997],[533,36779,2595],{"className":36780},[10344],[533,36782],{"className":36783,"style":10349},[10348],[533,36785,36787],{"className":36786},[9493],[533,36788,615],{"className":36789},[21986,22057],[533,36791,29825],{"className":36792,"style":32780},[9493,9497],[533,36794,615],{"className":36795},[10002],[533,36797,34041],{"className":36798,"style":34057},[9493,9497],[533,36800,2464],{"className":36801},[10344],[533,36803],{"className":36804,"style":10349},[10348],[533,36806,36808],{"className":36807},[9493,33994],[533,36809,36811],{"className":36810},[9506],[533,36812,36814],{"className":36813},[9511],[533,36815,36817,36825],{"className":36816,"style":33990},[9515],[533,36818,36819,36822],{"style":31077},[533,36820],{"className":36821,"style":22017},[9523],[533,36823,33974],{"className":36824},[9493,29844],[533,36826,36827,36830],{"style":34014},[533,36828],{"className":36829,"style":22017},[9523],[533,36831,36833],{"className":36832,"style":34022},[34021],[533,36834,33977],{"className":36835},[9493],[533,36837,2632],{"className":36838},[10101],[533,36840,2464],{"className":36841},[10344],[533,36843],{"className":36844,"style":10349},[10348],[533,36846,13035],{"className":36847},[9493,29844],[533,36849,36851],{"className":36850},[9493],[533,36852,2632],{"className":36853},[21986,22057],[533,36855],{"className":36856,"style":22903},[10348],[533,36858,29931],{"className":36859},[22093],[533,36861],{"className":36862,"style":22903},[10348],[533,36864,36866,36869,36872,36875,36878,36881,36884,36887,36890],{"className":36865},[9484],[533,36867],{"className":36868,"style":9998},[9488],[533,36870,30647],{"className":36871},[9493,29844],[533,36873,615],{"className":36874},[10002],[533,36876,24093],{"className":36877,"style":24210},[9493,9497],[533,36879,2464],{"className":36880},[10344],[533,36882],{"className":36883,"style":10349},[10348],[533,36885,22517],{"className":36886},[9493,9497],[533,36888,2632],{"className":36889},[10101],[533,36891,114],{"className":36892},[9493],[10993,36894],{},[25,36896,36898,36899,36952],{"id":36897},"_6-optional-discrete-222times222-finitestate-wigner","6. Optional: Discrete (",[533,36900,36902,36921],{"className":36901},[9443],[533,36903,36905],{"className":36904},[9447],[9174,36906,36907],{"xmlns":9450},[9452,36908,36909,36918],{},[9455,36910,36911,36913,36916],{},[10856,36912,1140],{},[9958,36914,36915],{},"×",[10856,36917,1140],{},[9473,36919,36920],{"encoding":9475},"2\\times2",[533,36922,36924,36943],{"className":36923,"ariaHidden":1089},[9480],[533,36925,36927,36931,36934,36937,36940],{"className":36926},[9484],[533,36928],{"className":36929,"style":36930},[9488],"height:0.7278em;vertical-align:-0.0833em;",[533,36932,1140],{"className":36933},[9493],[533,36935],{"className":36936,"style":22903},[10348],[533,36938,36915],{"className":36939},[22093],[533,36941],{"className":36942,"style":22903},[10348],[533,36944,36946,36949],{"className":36945},[9484],[533,36947],{"className":36948,"style":30480},[9488],[533,36950,1140],{"className":36951},[9493],") (Finite‑State) Wigner",[12,36954,36955,36956,37035,37036,37106],{},"On a 4‑point discrete phase space (",[533,36957,36959,36987],{"className":36958},[9443],[533,36960,36962],{"className":36961},[9447],[9174,36963,36964],{"xmlns":9450},[9452,36965,36966,36984],{},[9455,36967,36968,36970,36972],{},[9461,36969,34041],{},[9958,36971,29819],{},[9455,36973,36974,36976,36978,36980,36982],{},[9958,36975,615],{"stretchy":9960},[9461,36977,2374],{},[9958,36979,2464],{"separator":1089},[9461,36981,12],{},[9958,36983,2632],{"stretchy":9960},[9473,36985,36986],{"encoding":9475},"\\alpha\\in{(q,p)}",[533,36988,36990,37008],{"className":36989,"ariaHidden":1089},[9480],[533,36991,36993,36996,36999,37002,37005],{"className":36992},[9484],[533,36994],{"className":36995,"style":29840},[9488],[533,36997,34041],{"className":36998,"style":34057},[9493,9497],[533,37000],{"className":37001,"style":21908},[10348],[533,37003,29819],{"className":37004},[21912],[533,37006],{"className":37007,"style":21908},[10348],[533,37009,37011,37014],{"className":37010},[9484],[533,37012],{"className":37013,"style":9998},[9488],[533,37015,37017,37020,37023,37026,37029,37032],{"className":37016},[9493],[533,37018,615],{"className":37019},[10002],[533,37021,2374],{"className":37022,"style":9498},[9493,9497],[533,37024,2464],{"className":37025},[10344],[533,37027],{"className":37028,"style":10349},[10348],[533,37030,12],{"className":37031},[9493,9497],[533,37033,2632],{"className":37034},[10101],"), define phase‑point operators (",[533,37037,37039,37057],{"className":37038},[9443],[533,37040,37042],{"className":37041},[9447],[9174,37043,37044],{"xmlns":9450},[9452,37045,37046,37054],{},[9455,37047,37048],{},[9458,37049,37050,37052],{},[9461,37051,21817],{},[9461,37053,34041],{},[9473,37055,37056],{"encoding":9475},"A_\\alpha",[533,37058,37060],{"className":37059,"ariaHidden":1089},[9480],[533,37061,37063,37066],{"className":37062},[9484],[533,37064],{"className":37065,"style":9595},[9488],[533,37067,37069,37072],{"className":37068},[9493],[533,37070,21817],{"className":37071},[9493,9497],[533,37073,37075],{"className":37074},[9502],[533,37076,37078,37098],{"className":37077},[9506,9507],[533,37079,37081,37095],{"className":37080},[9511],[533,37082,37084],{"className":37083,"style":22873},[9515],[533,37085,37086,37089],{"style":9617},[533,37087],{"className":37088,"style":9524},[9523],[533,37090,37092],{"className":37091},[9528,9529,9530,9531],[533,37093,34041],{"className":37094,"style":34057},[9493,9497,9531],[533,37096,1090],{"className":37097},[9546],[533,37099,37101],{"className":37100},[9511],[533,37102,37104],{"className":37103,"style":9553},[9515],[533,37105],{},") with",[533,37108,37110],{"className":37109},[29056],[533,37111,37113,37190],{"className":37112},[9443],[533,37114,37116],{"className":37115},[9447],[9174,37117,37118],{"xmlns":9450,"display":29065},[9452,37119,37120,37187],{},[9455,37121,37122,37130,37136,37138,37140,37142,37144,37146,37148,37150,37152,37158,37160,37162,37164,37166,37168,37174,37176,37185],{},[37123,37124,37125,37128],"munder",{},[9958,37126,37127],{},"∑",[9461,37129,34041],{},[9458,37131,37132,37134],{},[9461,37133,21817],{},[9461,37135,34041],{},[9958,37137,554],{},[10856,37139,1140],{},[9461,37141,10779],{},[9958,37143,2464],{"separator":1089},[10348,37145],{"width":24074},[9461,37147,29952],{"mathvariant":9573},[9958,37149,21836],{},[9958,37151,615],{"stretchy":9960},[9458,37153,37154,37156],{},[9461,37155,21817],{},[9461,37157,34041],{},[9958,37159,2632],{"stretchy":9960},[9958,37161,554],{},[10856,37163,1052],{},[9958,37165,2464],{"separator":1089},[10348,37167],{"width":24074},[9458,37169,37170,37172],{},[9461,37171,21817],{},[9461,37173,34041],{},[9958,37175,554],{},[37177,37178,37179,37181,37183],"msubsup",{},[9461,37180,21817],{},[9461,37182,34041],{},[9958,37184,32536],{"lspace":32535,"rspace":32535},[9461,37186,114],{"mathvariant":9573},[9473,37188,37189],{"encoding":9475},"\\sum_{\\alpha} A_\\alpha = 2I,\\quad \\operatorname{Tr}(A_\\alpha)=1,\\quad A_\\alpha = A_\\alpha^{\\dagger}.",[533,37191,37193,37307,37389,37456],{"className":37192,"ariaHidden":1089},[9480],[533,37194,37196,37200,37255,37258,37298,37301,37304],{"className":37195},[9484],[533,37197],{"className":37198,"style":37199},[9488],"height:2.3em;vertical-align:-1.25em;",[533,37201,37204],{"className":37202},[21970,37203],"op-limits",[533,37205,37207,37246],{"className":37206},[9506,9507],[533,37208,37210,37243],{"className":37209},[9511],[533,37211,37214,37230],{"className":37212,"style":37213},[9515],"height:1.05em;",[533,37215,37217,37221],{"style":37216},"top:-1.9em;margin-left:0em;",[533,37218],{"className":37219,"style":37220},[9523],"height:3.05em;",[533,37222,37224],{"className":37223},[9528,9529,9530,9531],[533,37225,37227],{"className":37226},[9493,9531],[533,37228,34041],{"className":37229,"style":34057},[9493,9497,9531],[533,37231,37233,37236],{"style":37232},"top:-3.05em;",[533,37234],{"className":37235,"style":37220},[9523],[533,37237,37238],{},[533,37239,37127],{"className":37240},[21970,37241,37242],"op-symbol","large-op",[533,37244,1090],{"className":37245},[9546],[533,37247,37249],{"className":37248},[9511],[533,37250,37253],{"className":37251,"style":37252},[9515],"height:1.25em;",[533,37254],{},[533,37256],{"className":37257,"style":10349},[10348],[533,37259,37261,37264],{"className":37260},[9493],[533,37262,21817],{"className":37263},[9493,9497],[533,37265,37267],{"className":37266},[9502],[533,37268,37270,37290],{"className":37269},[9506,9507],[533,37271,37273,37287],{"className":37272},[9511],[533,37274,37276],{"className":37275,"style":22873},[9515],[533,37277,37278,37281],{"style":9617},[533,37279],{"className":37280,"style":9524},[9523],[533,37282,37284],{"className":37283},[9528,9529,9530,9531],[533,37285,34041],{"className":37286,"style":34057},[9493,9497,9531],[533,37288,1090],{"className":37289},[9546],[533,37291,37293],{"className":37292},[9511],[533,37294,37296],{"className":37295,"style":9553},[9515],[533,37297],{},[533,37299],{"className":37300,"style":21908},[10348],[533,37302,554],{"className":37303},[21912],[533,37305],{"className":37306,"style":21908},[10348],[533,37308,37310,37313,37316,37319,37322,37325,37328,37334,37337,37377,37380,37383,37386],{"className":37309},[9484],[533,37311],{"className":37312,"style":9998},[9488],[533,37314,1140],{"className":37315},[9493],[533,37317,10779],{"className":37318,"style":9542},[9493,9497],[533,37320,2464],{"className":37321},[10344],[533,37323],{"className":37324,"style":24146},[10348],[533,37326],{"className":37327,"style":10349},[10348],[533,37329,37331],{"className":37330},[21970],[533,37332,29952],{"className":37333},[9493,30229],[533,37335,615],{"className":37336},[10002],[533,37338,37340,37343],{"className":37339},[9493],[533,37341,21817],{"className":37342},[9493,9497],[533,37344,37346],{"className":37345},[9502],[533,37347,37349,37369],{"className":37348},[9506,9507],[533,37350,37352,37366],{"className":37351},[9511],[533,37353,37355],{"className":37354,"style":22873},[9515],[533,37356,37357,37360],{"style":9617},[533,37358],{"className":37359,"style":9524},[9523],[533,37361,37363],{"className":37362},[9528,9529,9530,9531],[533,37364,34041],{"className":37365,"style":34057},[9493,9497,9531],[533,37367,1090],{"className":37368},[9546],[533,37370,37372],{"className":37371},[9511],[533,37373,37375],{"className":37374,"style":9553},[9515],[533,37376],{},[533,37378,2632],{"className":37379},[10101],[533,37381],{"className":37382,"style":21908},[10348],[533,37384,554],{"className":37385},[21912],[533,37387],{"className":37388,"style":21908},[10348],[533,37390,37392,37395,37398,37401,37404,37407,37447,37450,37453],{"className":37391},[9484],[533,37393],{"className":37394,"style":35987},[9488],[533,37396,1052],{"className":37397},[9493],[533,37399,2464],{"className":37400},[10344],[533,37402],{"className":37403,"style":24146},[10348],[533,37405],{"className":37406,"style":10349},[10348],[533,37408,37410,37413],{"className":37409},[9493],[533,37411,21817],{"className":37412},[9493,9497],[533,37414,37416],{"className":37415},[9502],[533,37417,37419,37439],{"className":37418},[9506,9507],[533,37420,37422,37436],{"className":37421},[9511],[533,37423,37425],{"className":37424,"style":22873},[9515],[533,37426,37427,37430],{"style":9617},[533,37428],{"className":37429,"style":9524},[9523],[533,37431,37433],{"className":37432},[9528,9529,9530,9531],[533,37434,34041],{"className":37435,"style":34057},[9493,9497,9531],[533,37437,1090],{"className":37438},[9546],[533,37440,37442],{"className":37441},[9511],[533,37443,37445],{"className":37444,"style":9553},[9515],[533,37446],{},[533,37448],{"className":37449,"style":21908},[10348],[533,37451,554],{"className":37452},[21912],[533,37454],{"className":37455,"style":21908},[10348],[533,37457,37459,37463,37519],{"className":37458},[9484],[533,37460],{"className":37461,"style":37462},[9488],"height:1.1461em;vertical-align:-0.247em;",[533,37464,37466,37469],{"className":37465},[9493],[533,37467,21817],{"className":37468},[9493,9497],[533,37470,37472],{"className":37471},[9502],[533,37473,37475,37510],{"className":37474},[9506,9507],[533,37476,37478,37507],{"className":37477},[9511],[533,37479,37481,37493],{"className":37480,"style":36182},[9515],[533,37482,37484,37487],{"style":37483},"top:-2.453em;margin-left:0em;margin-right:0.05em;",[533,37485],{"className":37486,"style":9524},[9523],[533,37488,37490],{"className":37489},[9528,9529,9530,9531],[533,37491,34041],{"className":37492,"style":34057},[9493,9497,9531],[533,37494,37495,37498],{"style":32796},[533,37496],{"className":37497,"style":9524},[9523],[533,37499,37501],{"className":37500},[9528,9529,9530,9531],[533,37502,37504],{"className":37503},[9493,9531],[533,37505,32536],{"className":37506},[9493,9531],[533,37508,1090],{"className":37509},[9546],[533,37511,37513],{"className":37512},[9511],[533,37514,37517],{"className":37515,"style":37516},[9515],"height:0.247em;",[533,37518],{},[533,37520,114],{"className":37521},[9493],[12,37523,4657,37524,37527],{},[974,37525,37526],{},"discrete Wigner function"," is",[533,37529,37531],{"className":37530},[29056],[533,37532,37534,37590],{"className":37533},[9443],[533,37535,37537],{"className":37536},[9447],[9174,37538,37539],{"xmlns":9450,"display":29065},[9452,37540,37541,37587],{},[9455,37542,37543,37549,37551,37553,37555,37557,37565,37567,37569,37571,37573,37575,37577,37583,37585],{},[9458,37544,37545,37547],{},[9461,37546,31279],{},[9461,37548,29909],{},[9958,37550,615],{"stretchy":9960},[9461,37552,34041],{},[9958,37554,2632],{"stretchy":9960},[9958,37556,554],{},[29095,37558,37559],{"scriptlevel":1049,"displaystyle":9960},[21845,37560,37561,37563],{},[10856,37562,1052],{},[10856,37564,1140],{},[9958,37566,2464],{"separator":1089},[9461,37568,29952],{"mathvariant":9573},[9958,37570,21836],{},[9958,37572,615],{"stretchy":9960},[9461,37574,29909],{},[9958,37576,2464],{"separator":1089},[9458,37578,37579,37581],{},[9461,37580,21817],{},[9461,37582,34041],{},[9958,37584,2632],{"stretchy":9960},[9958,37586,2464],{"separator":1089},[9473,37588,37589],{"encoding":9475},"W_\\rho(\\alpha) = \\tfrac{1}{2},\\operatorname{Tr}(\\rho,A_\\alpha),",[533,37591,37593,37657],{"className":37592,"ariaHidden":1089},[9480],[533,37594,37596,37599,37639,37642,37645,37648,37651,37654],{"className":37595},[9484],[533,37597],{"className":37598,"style":30222},[9488],[533,37600,37602,37605],{"className":37601},[9493],[533,37603,31279],{"className":37604,"style":26405},[9493,9497],[533,37606,37608],{"className":37607},[9502],[533,37609,37611,37631],{"className":37610},[9506,9507],[533,37612,37614,37628],{"className":37613},[9511],[533,37615,37617],{"className":37616,"style":22873},[9515],[533,37618,37619,37622],{"style":31397},[533,37620],{"className":37621,"style":9524},[9523],[533,37623,37625],{"className":37624},[9528,9529,9530,9531],[533,37626,29909],{"className":37627},[9493,9497,9531],[533,37629,1090],{"className":37630},[9546],[533,37632,37634],{"className":37633},[9511],[533,37635,37637],{"className":37636,"style":29468},[9515],[533,37638],{},[533,37640,615],{"className":37641},[10002],[533,37643,34041],{"className":37644,"style":34057},[9493,9497],[533,37646,2632],{"className":37647},[10101],[533,37649],{"className":37650,"style":21908},[10348],[533,37652,554],{"className":37653},[21912],[533,37655],{"className":37656,"style":21908},[10348],[533,37658,37660,37663,37731,37734,37737,37743,37746,37749,37752,37755,37795,37798],{"className":37659},[9484],[533,37661],{"className":37662,"style":31517},[9488],[533,37664,37666,37669,37728],{"className":37665},[9493],[533,37667],{"className":37668},[10002,21997],[533,37670,37672],{"className":37671},[21845],[533,37673,37675,37720],{"className":37674},[9506,9507],[533,37676,37678,37717],{"className":37677},[9511],[533,37679,37681,37695,37703],{"className":37680,"style":30043},[9515],[533,37682,37683,37686],{"style":22013},[533,37684],{"className":37685,"style":22017},[9523],[533,37687,37689],{"className":37688},[9528,9529,9530,9531],[533,37690,37692],{"className":37691},[9493,9531],[533,37693,1140],{"className":37694},[9493,9531],[533,37696,37697,37700],{"style":22063},[533,37698],{"className":37699,"style":22017},[9523],[533,37701],{"className":37702,"style":22071},[22070],[533,37704,37705,37708],{"style":23904},[533,37706],{"className":37707,"style":22017},[9523],[533,37709,37711],{"className":37710},[9528,9529,9530,9531],[533,37712,37714],{"className":37713},[9493,9531],[533,37715,1052],{"className":37716},[9493,9531],[533,37718,1090],{"className":37719},[9546],[533,37721,37723],{"className":37722},[9511],[533,37724,37726],{"className":37725,"style":22177},[9515],[533,37727],{},[533,37729],{"className":37730},[10101,21997],[533,37732,2464],{"className":37733},[10344],[533,37735],{"className":37736,"style":10349},[10348],[533,37738,37740],{"className":37739},[21970],[533,37741,29952],{"className":37742},[9493,30229],[533,37744,615],{"className":37745},[10002],[533,37747,29909],{"className":37748},[9493,9497],[533,37750,2464],{"className":37751},[10344],[533,37753],{"className":37754,"style":10349},[10348],[533,37756,37758,37761],{"className":37757},[9493],[533,37759,21817],{"className":37760},[9493,9497],[533,37762,37764],{"className":37763},[9502],[533,37765,37767,37787],{"className":37766},[9506,9507],[533,37768,37770,37784],{"className":37769},[9511],[533,37771,37773],{"className":37772,"style":22873},[9515],[533,37774,37775,37778],{"style":9617},[533,37776],{"className":37777,"style":9524},[9523],[533,37779,37781],{"className":37780},[9528,9529,9530,9531],[533,37782,34041],{"className":37783,"style":34057},[9493,9497,9531],[533,37785,1090],{"className":37786},[9546],[533,37788,37790],{"className":37789},[9511],[533,37791,37793],{"className":37792,"style":9553},[9515],[533,37794],{},[533,37796,2632],{"className":37797},[10101],[533,37799,2464],{"className":37800},[10344],[12,37802,37803],{},"with line sums reproducing measurement probabilities in mutually unbiased bases.",[10993,37805],{},[25,37807,37809],{"id":37808},"_7-color-scale-purestate-bounds","7. Color Scale (Pure‑State Bounds)",[12,37811,37812,37813,29891],{},"For (",[533,37814,37816,37837],{"className":37815},[9443],[533,37817,37819],{"className":37818},[9447],[9174,37820,37821],{"xmlns":9450},[9452,37822,37823,37835],{},[9455,37824,37825,37827,37829,37831,37833],{},[9958,37826,30435],{"stretchy":9960},[9461,37828,13035],{"mathvariant":29816},[9958,37830,30435],{"stretchy":9960},[9958,37832,554],{},[10856,37834,1052],{},[9473,37836,31814],{"encoding":9475},[533,37838,37840,37864],{"className":37839,"ariaHidden":1089},[9480],[533,37841,37843,37846,37849,37852,37855,37858,37861],{"className":37842},[9484],[533,37844],{"className":37845,"style":9998},[9488],[533,37847,30435],{"className":37848},[10002],[533,37850,13035],{"className":37851},[9493,29844],[533,37853,30435],{"className":37854},[10101],[533,37856],{"className":37857,"style":21908},[10348],[533,37859,554],{"className":37860},[21912],[533,37862],{"className":37863,"style":21908},[10348],[533,37865,37867,37870],{"className":37866},[9484],[533,37868],{"className":37869,"style":30480},[9488],[533,37871,1052],{"className":37872},[9493],[533,37874,37876],{"className":37875},[29056],[533,37877,37879,37968],{"className":37878},[9443],[533,37880,37882],{"className":37881},[9447],[9174,37883,37884],{"xmlns":9450,"display":29065},[9452,37885,37886,37965],{},[9455,37887,37888,37896,37898,37906,37908,37918,37921,37923,37926,37928,37930,37938,37940,37948,37950,37960,37962],{},[9458,37889,37890,37892,37894],{},[9461,37891,31279],{},[9461,37893,2234],{},[9958,37895,21836],{},[9958,37897,554],{},[29095,37899,37900],{"scriptlevel":1049,"displaystyle":9960},[21845,37901,37902,37904],{},[10856,37903,1052],{},[10856,37905,1140],{},[9958,37907,21843],{},[29095,37909,37910],{"scriptlevel":1049,"displaystyle":9960},[21845,37911,37912,37916],{},[30893,37913,37914],{},[10856,37915,1157],{},[10856,37917,1140],{},[9958,37919,37920],{},"≈",[9958,37922,21843],{},[10856,37924,37925],{},"0.3660254",[9958,37927,2464],{"separator":1089},[10348,37929],{"width":29941},[9458,37931,37932,37934,37936],{},[9461,37933,31279],{},[9461,37935,13480],{},[9958,37937,21836],{},[9958,37939,554],{},[29095,37941,37942],{"scriptlevel":1049,"displaystyle":9960},[21845,37943,37944,37946],{},[10856,37945,1052],{},[10856,37947,1140],{},[9958,37949,6350],{},[29095,37951,37952],{"scriptlevel":1049,"displaystyle":9960},[21845,37953,37954,37958],{},[30893,37955,37956],{},[10856,37957,1157],{},[10856,37959,1140],{},[9958,37961,37920],{},[10856,37963,37964],{},"1.3660254.",[9473,37966,37967],{"encoding":9475},"W_{\\min}=\\tfrac{1}{2}-\\tfrac{\\sqrt{3}}{2}\\approx -0.3660254,\\qquad\nW_{\\max}=\\tfrac{1}{2}+\\tfrac{\\sqrt{3}}{2}\\approx 1.3660254.",[533,37969,37971,38038,38121,38248,38330,38413,38540],{"className":37970,"ariaHidden":1089},[9480],[533,37972,37974,37977,38029,38032,38035],{"className":37973},[9484],[533,37975],{"className":37976,"style":9595},[9488],[533,37978,37980,37983],{"className":37979},[9493],[533,37981,31279],{"className":37982,"style":26405},[9493,9497],[533,37984,37986],{"className":37985},[9502],[533,37987,37989,38021],{"className":37988},[9506,9507],[533,37990,37992,38018],{"className":37991},[9511],[533,37993,37995],{"className":37994,"style":32241},[9515],[533,37996,37997,38000],{"style":31397},[533,37998],{"className":37999,"style":9524},[9523],[533,38001,38003],{"className":38002},[9528,9529,9530,9531],[533,38004,38006],{"className":38005},[9493,9531],[533,38007,38009,38012,38015],{"className":38008},[21970,9531],[533,38010,31980],{"className":38011},[9531],[533,38013,2556],{"className":38014},[9531],[533,38016,30647],{"className":38017},[9531],[533,38019,1090],{"className":38020},[9546],[533,38022,38024],{"className":38023},[9511],[533,38025,38027],{"className":38026,"style":9553},[9515],[533,38028],{},[533,38030],{"className":38031,"style":21908},[10348],[533,38033,554],{"className":38034},[21912],[533,38036],{"className":38037,"style":21908},[10348],[533,38039,38041,38044,38112,38115,38118],{"className":38040},[9484],[533,38042],{"className":38043,"style":31517},[9488],[533,38045,38047,38050,38109],{"className":38046},[9493],[533,38048],{"className":38049},[10002,21997],[533,38051,38053],{"className":38052},[21845],[533,38054,38056,38101],{"className":38055},[9506,9507],[533,38057,38059,38098],{"className":38058},[9511],[533,38060,38062,38076,38084],{"className":38061,"style":30043},[9515],[533,38063,38064,38067],{"style":22013},[533,38065],{"className":38066,"style":22017},[9523],[533,38068,38070],{"className":38069},[9528,9529,9530,9531],[533,38071,38073],{"className":38072},[9493,9531],[533,38074,1140],{"className":38075},[9493,9531],[533,38077,38078,38081],{"style":22063},[533,38079],{"className":38080,"style":22017},[9523],[533,38082],{"className":38083,"style":22071},[22070],[533,38085,38086,38089],{"style":23904},[533,38087],{"className":38088,"style":22017},[9523],[533,38090,38092],{"className":38091},[9528,9529,9530,9531],[533,38093,38095],{"className":38094},[9493,9531],[533,38096,1052],{"className":38097},[9493,9531],[533,38099,1090],{"className":38100},[9546],[533,38102,38104],{"className":38103},[9511],[533,38105,38107],{"className":38106,"style":22177},[9515],[533,38108],{},[533,38110],{"className":38111},[10101,21997],[533,38113],{"className":38114,"style":22903},[10348],[533,38116,21843],{"className":38117},[22093],[533,38119],{"className":38120,"style":22903},[10348],[533,38122,38124,38127,38239,38242,38245],{"className":38123},[9484],[533,38125],{"className":38126,"style":32096},[9488],[533,38128,38130,38133,38236],{"className":38129},[9493],[533,38131],{"className":38132},[10002,21997],[533,38134,38136],{"className":38135},[21845],[533,38137,38139,38228],{"className":38138},[9506,9507],[533,38140,38142,38225],{"className":38141},[9511],[533,38143,38145,38159,38167],{"className":38144,"style":32115},[9515],[533,38146,38147,38150],{"style":22013},[533,38148],{"className":38149,"style":22017},[9523],[533,38151,38153],{"className":38152},[9528,9529,9530,9531],[533,38154,38156],{"className":38155},[9493,9531],[533,38157,1140],{"className":38158},[9493,9531],[533,38160,38161,38164],{"style":22063},[533,38162],{"className":38163,"style":22017},[9523],[533,38165],{"className":38166,"style":22071},[22070],[533,38168,38169,38172],{"style":32140},[533,38170],{"className":38171,"style":22017},[9523],[533,38173,38175],{"className":38174},[9528,9529,9530,9531],[533,38176,38178],{"className":38177},[9493,9531],[533,38179,38181],{"className":38180},[9493,2262,9531],[533,38182,38184,38217],{"className":38183},[9506,9507],[533,38185,38187,38214],{"className":38186},[9511],[533,38188,38190,38202],{"className":38189,"style":32162},[9515],[533,38191,38193,38196],{"className":38192,"style":31077},[31076],[533,38194],{"className":38195,"style":22017},[9523],[533,38197,38199],{"className":38198,"style":31084},[9493,9531],[533,38200,1157],{"className":38201},[9493,9531],[533,38203,38204,38207],{"style":32177},[533,38205],{"className":38206,"style":22017},[9523],[533,38208,38210],{"className":38209,"style":31098},[31097,9531],[31100,38211,38212],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,38213],{"d":31110},[533,38215,1090],{"className":38216},[9546],[533,38218,38220],{"className":38219},[9511],[533,38221,38223],{"className":38222,"style":32197},[9515],[533,38224],{},[533,38226,1090],{"className":38227},[9546],[533,38229,38231],{"className":38230},[9511],[533,38232,38234],{"className":38233,"style":22177},[9515],[533,38235],{},[533,38237],{"className":38238},[10101,21997],[533,38240],{"className":38241,"style":21908},[10348],[533,38243,37920],{"className":38244},[21912],[533,38246],{"className":38247,"style":21908},[10348],[533,38249,38251,38254,38257,38260,38263,38266,38269,38321,38324,38327],{"className":38250},[9484],[533,38252],{"className":38253,"style":35987},[9488],[533,38255,21843],{"className":38256},[9493],[533,38258,37925],{"className":38259},[9493],[533,38261,2464],{"className":38262},[10344],[533,38264],{"className":38265,"style":30160},[10348],[533,38267],{"className":38268,"style":10349},[10348],[533,38270,38272,38275],{"className":38271},[9493],[533,38273,31279],{"className":38274,"style":26405},[9493,9497],[533,38276,38278],{"className":38277},[9502],[533,38279,38281,38313],{"className":38280},[9506,9507],[533,38282,38284,38310],{"className":38283},[9511],[533,38285,38287],{"className":38286,"style":22873},[9515],[533,38288,38289,38292],{"style":31397},[533,38290],{"className":38291,"style":9524},[9523],[533,38293,38295],{"className":38294},[9528,9529,9530,9531],[533,38296,38298],{"className":38297},[9493,9531],[533,38299,38301,38304,38307],{"className":38300},[21970,9531],[533,38302,31980],{"className":38303},[9531],[533,38305,19],{"className":38306},[9531],[533,38308,29076],{"className":38309},[9531],[533,38311,1090],{"className":38312},[9546],[533,38314,38316],{"className":38315},[9511],[533,38317,38319],{"className":38318,"style":9553},[9515],[533,38320],{},[533,38322],{"className":38323,"style":21908},[10348],[533,38325,554],{"className":38326},[21912],[533,38328],{"className":38329,"style":21908},[10348],[533,38331,38333,38336,38404,38407,38410],{"className":38332},[9484],[533,38334],{"className":38335,"style":31517},[9488],[533,38337,38339,38342,38401],{"className":38338},[9493],[533,38340],{"className":38341},[10002,21997],[533,38343,38345],{"className":38344},[21845],[533,38346,38348,38393],{"className":38347},[9506,9507],[533,38349,38351,38390],{"className":38350},[9511],[533,38352,38354,38368,38376],{"className":38353,"style":30043},[9515],[533,38355,38356,38359],{"style":22013},[533,38357],{"className":38358,"style":22017},[9523],[533,38360,38362],{"className":38361},[9528,9529,9530,9531],[533,38363,38365],{"className":38364},[9493,9531],[533,38366,1140],{"className":38367},[9493,9531],[533,38369,38370,38373],{"style":22063},[533,38371],{"className":38372,"style":22017},[9523],[533,38374],{"className":38375,"style":22071},[22070],[533,38377,38378,38381],{"style":23904},[533,38379],{"className":38380,"style":22017},[9523],[533,38382,38384],{"className":38383},[9528,9529,9530,9531],[533,38385,38387],{"className":38386},[9493,9531],[533,38388,1052],{"className":38389},[9493,9531],[533,38391,1090],{"className":38392},[9546],[533,38394,38396],{"className":38395},[9511],[533,38397,38399],{"className":38398,"style":22177},[9515],[533,38400],{},[533,38402],{"className":38403},[10101,21997],[533,38405],{"className":38406,"style":22903},[10348],[533,38408,6350],{"className":38409},[22093],[533,38411],{"className":38412,"style":22903},[10348],[533,38414,38416,38419,38531,38534,38537],{"className":38415},[9484],[533,38417],{"className":38418,"style":32096},[9488],[533,38420,38422,38425,38528],{"className":38421},[9493],[533,38423],{"className":38424},[10002,21997],[533,38426,38428],{"className":38427},[21845],[533,38429,38431,38520],{"className":38430},[9506,9507],[533,38432,38434,38517],{"className":38433},[9511],[533,38435,38437,38451,38459],{"className":38436,"style":32115},[9515],[533,38438,38439,38442],{"style":22013},[533,38440],{"className":38441,"style":22017},[9523],[533,38443,38445],{"className":38444},[9528,9529,9530,9531],[533,38446,38448],{"className":38447},[9493,9531],[533,38449,1140],{"className":38450},[9493,9531],[533,38452,38453,38456],{"style":22063},[533,38454],{"className":38455,"style":22017},[9523],[533,38457],{"className":38458,"style":22071},[22070],[533,38460,38461,38464],{"style":32140},[533,38462],{"className":38463,"style":22017},[9523],[533,38465,38467],{"className":38466},[9528,9529,9530,9531],[533,38468,38470],{"className":38469},[9493,9531],[533,38471,38473],{"className":38472},[9493,2262,9531],[533,38474,38476,38509],{"className":38475},[9506,9507],[533,38477,38479,38506],{"className":38478},[9511],[533,38480,38482,38494],{"className":38481,"style":32162},[9515],[533,38483,38485,38488],{"className":38484,"style":31077},[31076],[533,38486],{"className":38487,"style":22017},[9523],[533,38489,38491],{"className":38490,"style":31084},[9493,9531],[533,38492,1157],{"className":38493},[9493,9531],[533,38495,38496,38499],{"style":32177},[533,38497],{"className":38498,"style":22017},[9523],[533,38500,38502],{"className":38501,"style":31098},[31097,9531],[31100,38503,38504],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,38505],{"d":31110},[533,38507,1090],{"className":38508},[9546],[533,38510,38512],{"className":38511},[9511],[533,38513,38515],{"className":38514,"style":32197},[9515],[533,38516],{},[533,38518,1090],{"className":38519},[9546],[533,38521,38523],{"className":38522},[9511],[533,38524,38526],{"className":38525,"style":22177},[9515],[533,38527],{},[533,38529],{"className":38530},[10101,21997],[533,38532],{"className":38533,"style":21908},[10348],[533,38535,37920],{"className":38536},[21912],[533,38538],{"className":38539,"style":21908},[10348],[533,38541,38543,38546],{"className":38542},[9484],[533,38544],{"className":38545,"style":30480},[9488],[533,38547,37964],{"className":38548},[9493],[12,38550,38551],{},"These constants are useful for fixing a consistent color scale across frames.",[10993,38553],{},[25,38555,38557],{"id":38556},"_8-acronymnotation-glossary","8. Acronym\u002FNotation Glossary",[753,38559,38560,38566,38572,38578,38584,38702],{},[756,38561,38562,38565],{},[974,38563,38564],{},"SW"," — Stratonovich–Weyl (kernel\u002Fcorrespondence).",[756,38567,38568,38571],{},[974,38569,38570],{},"SU(2)"," — Special Unitary group of degree two (spin‑(1\u002F2) rotations).",[756,38573,38574,38577],{},[974,38575,38576],{},"SO(3)"," — Special Orthogonal group in 3D (real rotation matrices).",[756,38579,38580,38583],{},[974,38581,38582],{},"WF"," — Wigner function.",[756,38585,38586,38627,38628,38669,38670,38701],{},[974,38587,615,38588,2632],{},[533,38589,38591,38609],{"className":38590},[9443],[533,38592,38594],{"className":38593},[9447],[9174,38595,38596],{"xmlns":9450},[9452,38597,38598,38606],{},[9455,38599,38600,38602,38604],{},[9958,38601,9961],{"stretchy":9960},[9461,38603,30362],{},[9958,38605,10860],{"stretchy":9960},[9473,38607,38608],{"encoding":9475},"\\lvert\\psi\\rangle",[533,38610,38612],{"className":38611,"ariaHidden":1089},[9480],[533,38613,38615,38618,38621,38624],{"className":38614},[9484],[533,38616],{"className":38617,"style":9998},[9488],[533,38619,9961],{"className":38620},[10002],[533,38622,30362],{"className":38623,"style":9498},[9493,9497],[533,38625,10860],{"className":38626},[10101]," — State vector (ket); ",[974,38629,615,38630,2632],{},[533,38631,38633,38651],{"className":38632},[9443],[533,38634,38636],{"className":38635},[9447],[9174,38637,38638],{"xmlns":9450},[9452,38639,38640,38648],{},[9455,38641,38642,38644,38646],{},[9958,38643,30367],{"stretchy":9960},[9461,38645,30362],{},[9958,38647,9961],{"stretchy":9960},[9473,38649,38650],{"encoding":9475},"\\langle\\psi\\rvert",[533,38652,38654],{"className":38653,"ariaHidden":1089},[9480],[533,38655,38657,38660,38663,38666],{"className":38656},[9484],[533,38658],{"className":38659,"style":9998},[9488],[533,38661,30367],{"className":38662},[10002],[533,38664,30362],{"className":38665,"style":9498},[9493,9497],[533,38667,9961],{"className":38668},[10101]," — bra; ",[974,38671,615,38672,2632],{},[533,38673,38675,38689],{"className":38674},[9443],[533,38676,38678],{"className":38677},[9447],[9174,38679,38680],{"xmlns":9450},[9452,38681,38682,38686],{},[9455,38683,38684],{},[9461,38685,29909],{},[9473,38687,38688],{"encoding":9475},"\\rho",[533,38690,38692],{"className":38691,"ariaHidden":1089},[9480],[533,38693,38695,38698],{"className":38694},[9484],[533,38696],{"className":38697,"style":30005},[9488],[533,38699,29909],{"className":38700},[9493,9497]," — density operator.",[756,38703,38704,38707,38708,38827,38828,1205],{},[974,38705,38706],{},"Adjoint map"," — Conjugation action (",[533,38709,38711,38743],{"className":38710},[9443],[533,38712,38714],{"className":38713},[9447],[9174,38715,38716],{"xmlns":9450},[9452,38717,38718,38740],{},[9455,38719,38720,38722,38725,38727,38730,38732,38734],{},[9461,38721,32526],{},[9958,38723,38724],{},":",[9461,38726,29909],{},[9958,38728,38729],{},"↦",[9461,38731,32526],{},[9461,38733,29909],{},[21862,38735,38736,38738],{},[9461,38737,32526],{},[9958,38739,32536],{"lspace":32535,"rspace":32535},[9473,38741,38742],{"encoding":9475},"U: \\rho\\mapsto U\\rho U^{\\dagger}",[533,38744,38746,38764,38782],{"className":38745,"ariaHidden":1089},[9480],[533,38747,38749,38752,38755,38758,38761],{"className":38748},[9484],[533,38750],{"className":38751,"style":9672},[9488],[533,38753,32526],{"className":38754,"style":26398},[9493,9497],[533,38756],{"className":38757,"style":21908},[10348],[533,38759,38724],{"className":38760},[21912],[533,38762],{"className":38763,"style":21908},[10348],[533,38765,38767,38770,38773,38776,38779],{"className":38766},[9484],[533,38768],{"className":38769,"style":34596},[9488],[533,38771,29909],{"className":38772},[9493,9497],[533,38774],{"className":38775,"style":21908},[10348],[533,38777,38729],{"className":38778},[21912],[533,38780],{"className":38781,"style":21908},[10348],[533,38783,38785,38789,38792,38795],{"className":38784},[9484],[533,38786],{"className":38787,"style":38788},[9488],"height:1.0435em;vertical-align:-0.1944em;",[533,38790,32526],{"className":38791,"style":26398},[9493,9497],[533,38793,29909],{"className":38794},[9493,9497],[533,38796,38798,38801],{"className":38797},[9493],[533,38799,32526],{"className":38800,"style":26398},[9493,9497],[533,38802,38804],{"className":38803},[9502],[533,38805,38807],{"className":38806},[9506],[533,38808,38810],{"className":38809},[9511],[533,38811,38813],{"className":38812,"style":24191},[9515],[533,38814,38815,38818],{"style":24194},[533,38816],{"className":38817,"style":9524},[9523],[533,38819,38821],{"className":38820},[9528,9529,9530,9531],[533,38822,38824],{"className":38823},[9493,9531],[533,38825,32536],{"className":38826},[9493,9531],") inducing (",[533,38829,38831,38851],{"className":38830},[9443],[533,38832,38834],{"className":38833},[9447],[9174,38835,38836],{"xmlns":9450},[9452,38837,38838,38848],{},[9455,38839,38840,38842,38844,38846],{},[9461,38841,13035],{"mathvariant":29816},[9958,38843,38729],{},[9461,38845,29825],{},[9461,38847,13035],{"mathvariant":29816},[9473,38849,38850],{"encoding":9475},"\\mathbf r\\mapsto R\\mathbf r",[533,38852,38854,38873],{"className":38853,"ariaHidden":1089},[9480],[533,38855,38857,38861,38864,38867,38870],{"className":38856},[9484],[533,38858],{"className":38859,"style":38860},[9488],"height:0.522em;vertical-align:-0.011em;",[533,38862,13035],{"className":38863},[9493,29844],[533,38865],{"className":38866,"style":21908},[10348],[533,38868,38729],{"className":38869},[21912],[533,38871],{"className":38872,"style":21908},[10348],[533,38874,38876,38879,38882],{"className":38875},[9484],[533,38877],{"className":38878,"style":9672},[9488],[533,38880,29825],{"className":38881,"style":32780},[9493,9497],[533,38883,13035],{"className":38884},[9493,29844],[10993,38886],{},[25,38888,38890],{"id":38889},"_9-mindmap","9. Mind‑Map",[12,38892,38893],{},"Wigner for Qubits",[524,38895,38899],{"className":38896,"code":38898,"language":31773},[38897],"language-text","Wigner (spin, S^2)\n├─ SW kernel Δ(θ,φ) → W(θ,φ) = Tr[ρΔ]\n│  └─ Explicit: ½ + (√3\u002F2) r·n(θ,φ)\n├─ State ρ ↔ Bloch vector r\n├─ Gates U = exp[-i(α\u002F2) u·σ]\n│  ├─ Pauli X\u002FY\u002FZ: α = π, axes x\u002Fy\u002Fz\n│  └─ Custom axis–angle (Rodrigues)\n└─ Covariance: W → W∘R^{-1}\n",[57,38900,38898],{"__ignoreMap":529},[10993,38902],{},[25,38904,38906],{"id":38905},"_10-minimal-substitutions-if-variations-are-needed","10. Minimal Substitutions (if variations are needed)",[753,38908,38909,38971],{},[756,38910,38911,38912,38941,38942,38970],{},"If a different SW kernel normalization is chosen, the prefactors in (",[533,38913,38915,38929],{"className":38914},[9443],[533,38916,38918],{"className":38917},[9447],[9174,38919,38920],{"xmlns":9450},[9452,38921,38922,38926],{},[9455,38923,38924],{},[9461,38925,9574],{"mathvariant":9573},[9473,38927,38928],{"encoding":9475},"\\Delta",[533,38930,38932],{"className":38931,"ariaHidden":1089},[9480],[533,38933,38935,38938],{"className":38934},[9484],[533,38936],{"className":38937,"style":9672},[9488],[533,38939,9574],{"className":38940},[9493],") and hence (",[533,38943,38945,38958],{"className":38944},[9443],[533,38946,38948],{"className":38947},[9447],[9174,38949,38950],{"xmlns":9450},[9452,38951,38952,38956],{},[9455,38953,38954],{},[9461,38955,31279],{},[9473,38957,31279],{"encoding":9475},[533,38959,38961],{"className":38960,"ariaHidden":1089},[9480],[533,38962,38964,38967],{"className":38963},[9484],[533,38965],{"className":38966,"style":9672},[9488],[533,38968,31279],{"className":38969,"style":26405},[9493,9497],") adjust accordingly, while covariance and linearity remain.",[756,38972,38973,38974,39035,39036,39075],{},"Mixed states use the same formulas with (",[533,38975,38977,38999],{"className":38976},[9443],[533,38978,38980],{"className":38979},[9447],[9174,38981,38982],{"xmlns":9450},[9452,38983,38984,38996],{},[9455,38985,38986,38988,38990,38992,38994],{},[9958,38987,30435],{"stretchy":9960},[9461,38989,13035],{"mathvariant":29816},[9958,38991,30435],{"stretchy":9960},[9958,38993,2600],{},[10856,38995,1052],{},[9473,38997,38998],{"encoding":9475},"\\lVert\\mathbf r\\rVert\u003C1",[533,39000,39002,39026],{"className":39001,"ariaHidden":1089},[9480],[533,39003,39005,39008,39011,39014,39017,39020,39023],{"className":39004},[9484],[533,39006],{"className":39007,"style":9998},[9488],[533,39009,30435],{"className":39010},[10002],[533,39012,13035],{"className":39013},[9493,29844],[533,39015,30435],{"className":39016},[10101],[533,39018],{"className":39019,"style":21908},[10348],[533,39021,2600],{"className":39022},[21912],[533,39024],{"className":39025,"style":21908},[10348],[533,39027,39029,39032],{"className":39028},[9484],[533,39030],{"className":39031,"style":30480},[9488],[533,39033,1052],{"className":39034},[9493],") (the extrema shrink linearly with (",[533,39037,39039,39057],{"className":39038},[9443],[533,39040,39042],{"className":39041},[9447],[9174,39043,39044],{"xmlns":9450},[9452,39045,39046,39054],{},[9455,39047,39048,39050,39052],{},[9958,39049,30435],{"stretchy":9960},[9461,39051,13035],{"mathvariant":29816},[9958,39053,30435],{"stretchy":9960},[9473,39055,39056],{"encoding":9475},"\\lVert\\mathbf r\\rVert",[533,39058,39060],{"className":39059,"ariaHidden":1089},[9480],[533,39061,39063,39066,39069,39072],{"className":39062},[9484],[533,39064],{"className":39065,"style":9998},[9488],[533,39067,30435],{"className":39068},[10002],[533,39070,13035],{"className":39071},[9493,29844],[533,39073,30435],{"className":39074},[10101],")).",[524,39077,39079],{"className":526,"code":39078,"language":528,"meta":529,"style":529},"# @title Cell 1 — Imports & global plotting config (DPI=200)\n\"\"\"\nSpin (SU(2)) Wigner-function animations for single-qubit gates.\n\nThis notebook renders the qubit Wigner function\n    W(θ, φ) = 1\u002F2 + (√3\u002F2) * r · n(θ, φ)\nand animates its rigid rotation under Pauli and custom axis–angle gates.\n\nAll titles and dynamic text are drawn *inside* the plotted region so they\nnever clip in the saved GIFs. Use Cells 3 and 4 to generate animations.\n\"\"\"\n\nfrom __future__ import annotations\n\nimport numpy as np\nimport matplotlib as mpl\nimport matplotlib.pyplot as plt\n\n# Global Matplotlib configuration: DPI = 200 everywhere\nmpl.rcParams.update({\n    \"figure.dpi\": 200,       # on-screen DPI\n    \"savefig.dpi\": 200,      # saved file DPI\n    \"figure.figsize\": (6.4, 3.6),  # 1280×720 at DPI=200\n    \"axes.grid\": False,\n})\n",[57,39080,39081,39086,39091,39096,39100,39105,39110,39115,39119,39124,39129,39133,39137,39150,39154,39164,39176,39186,39190,39195,39206,39222,39237,39259,39270],{"__ignoreMap":529},[533,39082,39083],{"class":535,"line":536},[533,39084,39085],{"class":593},"# @title Cell 1 — Imports & global plotting config (DPI=200)\n",[533,39087,39088],{"class":535,"line":547},[533,39089,39090],{"class":621},"\"\"\"\n",[533,39092,39093],{"class":535,"line":575},[533,39094,39095],{"class":621},"Spin (SU(2)) Wigner-function animations for single-qubit gates.\n",[533,39097,39098],{"class":535,"line":590},[533,39099,891],{"emptyLinePlaceholder":790},[533,39101,39102],{"class":535,"line":597},[533,39103,39104],{"class":621},"This notebook renders the qubit Wigner function\n",[533,39106,39107],{"class":535,"line":603},[533,39108,39109],{"class":621},"    W(θ, φ) = 1\u002F2 + (√3\u002F2) * r · n(θ, φ)\n",[533,39111,39112],{"class":535,"line":609},[533,39113,39114],{"class":621},"and animates its rigid rotation under Pauli and custom axis–angle gates.\n",[533,39116,39117],{"class":535,"line":640},[533,39118,891],{"emptyLinePlaceholder":790},[533,39120,39121],{"class":535,"line":646},[533,39122,39123],{"class":621},"All titles and dynamic text are drawn *inside* the plotted region so they\n",[533,39125,39126],{"class":535,"line":658},[533,39127,39128],{"class":621},"never clip in the saved GIFs. Use Cells 3 and 4 to generate animations.\n",[533,39130,39131],{"class":535,"line":680},[533,39132,39090],{"class":621},[533,39134,39135],{"class":535,"line":1536},[533,39136,891],{"emptyLinePlaceholder":790},[533,39138,39139,39141,39144,39147],{"class":535,"line":1552},[533,39140,877],{"class":539},[533,39142,39143],{"class":2387}," __future__",[533,39145,39146],{"class":539}," import",[533,39148,39149],{"class":543}," annotations\n",[533,39151,39152],{"class":535,"line":1911},[533,39153,891],{"emptyLinePlaceholder":790},[533,39155,39156,39158,39160,39162],{"class":535,"line":1940},[533,39157,883],{"class":539},[533,39159,11128],{"class":543},[533,39161,584],{"class":539},[533,39163,11133],{"class":543},[533,39165,39166,39168,39171,39173],{"class":535,"line":1968},[533,39167,883],{"class":539},[533,39169,39170],{"class":543}," matplotlib ",[533,39172,584],{"class":539},[533,39174,39175],{"class":543}," mpl\n",[533,39177,39178,39180,39182,39184],{"class":535,"line":1995},[533,39179,883],{"class":539},[533,39181,11140],{"class":543},[533,39183,584],{"class":539},[533,39185,11145],{"class":543},[533,39187,39188],{"class":535,"line":4164},[533,39189,891],{"emptyLinePlaceholder":790},[533,39191,39192],{"class":535,"line":4199},[533,39193,39194],{"class":593},"# Global Matplotlib configuration: DPI = 200 everywhere\n",[533,39196,39197,39200,39203],{"class":535,"line":4206},[533,39198,39199],{"class":543},"mpl.rcParams.",[533,39201,39202],{"class":560},"update",[533,39204,39205],{"class":543},"({\n",[533,39207,39208,39211,39213,39216,39219],{"class":535,"line":4214},[533,39209,39210],{"class":621},"    \"figure.dpi\"",[533,39212,1389],{"class":543},[533,39214,39215],{"class":625},"200",[533,39217,39218],{"class":543},",       ",[533,39220,39221],{"class":593},"# on-screen DPI\n",[533,39223,39224,39227,39229,39231,39234],{"class":535,"line":11296},[533,39225,39226],{"class":621},"    \"savefig.dpi\"",[533,39228,1389],{"class":543},[533,39230,39215],{"class":625},[533,39232,39233],{"class":543},",      ",[533,39235,39236],{"class":593},"# saved file DPI\n",[533,39238,39239,39242,39245,39248,39250,39253,39256],{"class":535,"line":11302},[533,39240,39241],{"class":621},"    \"figure.figsize\"",[533,39243,39244],{"class":543},": (",[533,39246,39247],{"class":625},"6.4",[533,39249,1133],{"class":543},[533,39251,39252],{"class":625},"3.6",[533,39254,39255],{"class":543},"),  ",[533,39257,39258],{"class":593},"# 1280×720 at DPI=200\n",[533,39260,39261,39264,39266,39268],{"class":535,"line":11332},[533,39262,39263],{"class":621},"    \"axes.grid\"",[533,39265,1389],{"class":543},[533,39267,1930],{"class":625},[533,39269,1549],{"class":543},[533,39271,39272],{"class":535,"line":11345},[533,39273,39274],{"class":543},"})\n",[524,39276,39278],{"className":526,"code":39277,"language":528,"meta":529,"style":529},"# @title Cell 2 — Math & utilities (PEP 8 \u002F PEP 257)\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Tuple, Iterable\nimport textwrap\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom matplotlib.animation import FuncAnimation, PillowWriter\nfrom IPython.display import Image, display\n\n\n@dataclass\nclass Knobs:\n    \"\"\"User controls for Wigner animations.\n\n    Attributes:\n        gate_axes: Pauli axes to animate, each in {\"x\", \"y\", \"z\"}.\n        initial_state: Starting Bloch eigenstate, or \"custom\".\n        custom_r: Custom Bloch vector if initial_state == \"custom\".\n        frames: Number of frames (≥ 2).\n        n_theta: Polar samples (θ ∈ [0, π]).\n        n_phi: Azimuth samples (φ ∈ [0, 2π]).\n        fps: GIF framerate.\n        out_dir: Output directory (e.g., \"\u002Fcontent\" in Colab).\n        figsize: Figure size in inches (DPI set globally).\n        info_loc: In-axes anchor (\"ul\", \"ur\", \"ll\", \"lr\").\n        info_fontsize: Font size for in-axes info text.\n        wrap_chars: Manual wrap width for info text.\n    \"\"\"\n    gate_axes: Tuple[str, ...] = (\"x\", \"y\", \"z\")\n    initial_state: str = \"+z\"\n    custom_r: Tuple[float, float, float] = (0.0, 0.0, 1.0)\n    frames: int = 24\n    n_theta: int = 80\n    n_phi: int = 160\n    fps: int = 20\n    out_dir: str = \"\u002Fcontent\"\n    figsize: Tuple[float, float] = (6.4, 3.6)\n    info_loc: str = \"ul\"\n    info_fontsize: int = 9\n    wrap_chars: int = 42\n\n\n# ------------------------------ Bloch helpers ---------------------------------\ndef bloch_vector(initial_state: str,\n                 custom_r: Tuple[float, float, float]) -> np.ndarray:\n    \"\"\"Return a unit Bloch vector for a named eigenstate or custom input.\"\"\"\n    mapping = {\n        \"+z\": (0.0, 0.0, 1.0), \"-z\": (0.0, 0.0, -1.0),\n        \"+x\": (1.0, 0.0, 0.0), \"-x\": (-1.0, 0.0, 0.0),\n        \"+y\": (0.0, 1.0, 0.0), \"-y\": (0.0, -1.0, 0.0),\n    }\n    r = np.asarray(mapping.get(initial_state.lower(), custom_r), float)\n    nrm = np.linalg.norm(r)\n    return np.array([0.0, 0.0, 1.0]) if nrm == 0 else r \u002F nrm\n\n\n# ---------------------------- Axis–angle rotations ----------------------------\ndef rotation_matrix(axis: str, angle: float) -> np.ndarray:\n    \"\"\"Rodrigues rotation matrix for axis in {'x','y','z'} and angle (radians).\"\"\"\n    c, s = np.cos(angle), np.sin(angle)\n    if axis == \"x\":\n        return np.array([[1, 0, 0], [0, c, -s], [0, s, c]], float)\n    if axis == \"y\":\n        return np.array([[c, 0, s], [0, 1, 0], [-s, 0, c]], float)\n    if axis == \"z\":\n        return np.array([[c, -s, 0], [s, c, 0], [0, 0, 1]], float)\n    raise ValueError(\"axis must be one of {'x','y','z'}\")\n\n\ndef rotation_matrix_axis(axis_vec: Tuple[float, float, float],\n                         angle: float) -> np.ndarray:\n    \"\"\"Rodrigues matrix for arbitrary axis vector and angle (radians).\"\"\"\n    v = np.asarray(axis_vec, float)\n    nrm = np.linalg.norm(v)\n    if nrm == 0:\n        raise ValueError(\"axis_vec must be nonzero\")\n    k = v \u002F nrm\n    K = np.array([[0.0, -k[2], k[1]], [k[2], 0.0, -k[0]], [-k[1], k[0], 0.0]], float)\n    I = np.eye(3)\n    c, s = np.cos(angle), np.sin(angle)\n    return c * I + (1 - c) * np.outer(k, k) + s * K\n\n\n# ------------------------------ Wigner on S^2 ---------------------------------\ndef n_grid(n_theta: int, n_phi: int) -> np.ndarray:\n    \"\"\"Return unit-vector grid n(θ,φ) stacked as (3, n_theta, n_phi).\"\"\"\n    theta = np.linspace(0.0, np.pi, n_theta)\n    phi = np.linspace(0.0, 2.0 * np.pi, n_phi)\n    th, ph = np.meshgrid(theta, phi, indexing=\"ij\")\n    nx = np.sin(th) * np.cos(ph)\n    ny = np.sin(th) * np.sin(ph)\n    nz = np.cos(th)\n    return np.stack((nx, ny, nz), axis=0)\n\n\ndef spin_wigner_qubit(r_vec: np.ndarray, ngrid: np.ndarray) -> np.ndarray:\n    \"\"\"Spin SW Wigner for a qubit: W = 1\u002F2 + (√3\u002F2) * r·n on the (θ,φ) grid.\"\"\"\n    return 0.5 + (np.sqrt(3.0) \u002F 2.0) * (r_vec.reshape(3, 1, 1) * ngrid).sum(axis=0)\n\n\n# ----------------------- In-axes title & info placement -----------------------\ndef _info_xy(loc: str) -> Tuple[float, float, dict]:\n    \"\"\"Map location code to (x, y, kwargs) in axes-fraction coordinates.\"\"\"\n    loc = loc.lower()\n    if loc == \"ul\":\n        return 0.015, 0.985, dict(ha=\"left\", va=\"top\")\n    if loc == \"ur\":\n        return 0.985, 0.985, dict(ha=\"right\", va=\"top\")\n    if loc == \"ll\":\n        return 0.015, 0.015, dict(ha=\"left\", va=\"bottom\")\n    if loc == \"lr\":\n        return 0.985, 0.015, dict(ha=\"right\", va=\"bottom\")\n    return 0.015, 0.985, dict(ha=\"left\", va=\"top\")\n\n\ndef add_info_box(ax: plt.Axes,\n                 text: str,\n                 loc: str = \"ul\",\n                 fontsize: int = 9,\n                 wrap: int = 42) -> plt.Text:\n    \"\"\"Create a wrapped, padded text box inside the axes (never clips).\"\"\"\n    x, y, kw = _info_xy(loc)\n    return ax.text(\n        x, y, textwrap.fill(text, wrap),\n        transform=ax.transAxes, fontsize=fontsize, zorder=5,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        **kw,\n    )\n\n\ndef add_title_inside(ax: plt.Axes, text: str) -> plt.Text:\n    \"\"\"Draw a title inside the Axes at the very top center (never clips).\"\"\"\n    return ax.text(\n        0.5, 0.985, text,\n        transform=ax.transAxes, ha=\"center\", va=\"top\",\n        fontsize=11,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        zorder=6,\n    )\n",[57,39279,39280,39285,39295,39307,39318,39325,39329,39339,39349,39361,39373,39377,39381,39385,39394,39399,39403,39408,39413,39418,39423,39428,39433,39438,39443,39448,39453,39458,39463,39468,39473,39507,39519,39552,39564,39576,39588,39600,39612,39637,39649,39661,39673,39677,39681,39686,39704,39725,39730,39740,39778,39816,39854,39859,39888,39903,39945,39949,39953,39958,39986,39991,40010,40024,40065,40078,40120,40133,40173,40186,40190,40194,40220,40231,40236,40254,40267,40279,40291,40305,40374,40391,40407,40449,40453,40457,40462,40489,40494,40512,40536,40561,40584,40605,40619,40639,40643,40647,40666,40671,40735,40739,40743,40748,40779,40784,40798,40812,40850,40863,40897,40910,40944,40957,40989,41021,41025,41029,41043,41054,41069,41085,41101,41106,41118,41129,41140,41167,41216,41221,41225,41229,41233,41255,41260,41270,41282,41307,41318,41358,41369],{"__ignoreMap":529},[533,39281,39282],{"class":535,"line":536},[533,39283,39284],{"class":593},"# @title Cell 2 — Math & utilities (PEP 8 \u002F PEP 257)\n",[533,39286,39287,39289,39291,39293],{"class":535,"line":547},[533,39288,877],{"class":539},[533,39290,11097],{"class":543},[533,39292,883],{"class":539},[533,39294,11102],{"class":543},[533,39296,39297,39299,39302,39304],{"class":535,"line":575},[533,39298,877],{"class":539},[533,39300,39301],{"class":543}," pathlib ",[533,39303,883],{"class":539},[533,39305,39306],{"class":543}," Path\n",[533,39308,39309,39311,39313,39315],{"class":535,"line":590},[533,39310,877],{"class":539},[533,39312,11109],{"class":543},[533,39314,883],{"class":539},[533,39316,39317],{"class":543}," Tuple, Iterable\n",[533,39319,39320,39322],{"class":535,"line":597},[533,39321,883],{"class":539},[533,39323,39324],{"class":543}," textwrap\n",[533,39326,39327],{"class":535,"line":603},[533,39328,891],{"emptyLinePlaceholder":790},[533,39330,39331,39333,39335,39337],{"class":535,"line":609},[533,39332,883],{"class":539},[533,39334,11128],{"class":543},[533,39336,584],{"class":539},[533,39338,11133],{"class":543},[533,39340,39341,39343,39345,39347],{"class":535,"line":640},[533,39342,883],{"class":539},[533,39344,11140],{"class":543},[533,39346,584],{"class":539},[533,39348,11145],{"class":543},[533,39350,39351,39353,39356,39358],{"class":535,"line":646},[533,39352,877],{"class":539},[533,39354,39355],{"class":543}," matplotlib.animation ",[533,39357,883],{"class":539},[533,39359,39360],{"class":543}," FuncAnimation, PillowWriter\n",[533,39362,39363,39365,39368,39370],{"class":535,"line":658},[533,39364,877],{"class":539},[533,39366,39367],{"class":543}," IPython.display ",[533,39369,883],{"class":539},[533,39371,39372],{"class":543}," Image, display\n",[533,39374,39375],{"class":535,"line":680},[533,39376,891],{"emptyLinePlaceholder":790},[533,39378,39379],{"class":535,"line":1536},[533,39380,891],{"emptyLinePlaceholder":790},[533,39382,39383],{"class":535,"line":1552},[533,39384,11168],{"class":560},[533,39386,39387,39389,39392],{"class":535,"line":1911},[533,39388,11173],{"class":539},[533,39390,39391],{"class":2393}," Knobs",[533,39393,544],{"class":543},[533,39395,39396],{"class":535,"line":1940},[533,39397,39398],{"class":621},"    \"\"\"User controls for Wigner animations.\n",[533,39400,39401],{"class":535,"line":1968},[533,39402,891],{"emptyLinePlaceholder":790},[533,39404,39405],{"class":535,"line":1995},[533,39406,39407],{"class":621},"    Attributes:\n",[533,39409,39410],{"class":535,"line":4164},[533,39411,39412],{"class":621},"        gate_axes: Pauli axes to animate, each in {\"x\", \"y\", \"z\"}.\n",[533,39414,39415],{"class":535,"line":4199},[533,39416,39417],{"class":621},"        initial_state: Starting Bloch eigenstate, or \"custom\".\n",[533,39419,39420],{"class":535,"line":4206},[533,39421,39422],{"class":621},"        custom_r: Custom Bloch vector if initial_state == \"custom\".\n",[533,39424,39425],{"class":535,"line":4214},[533,39426,39427],{"class":621},"        frames: Number of frames (≥ 2).\n",[533,39429,39430],{"class":535,"line":11296},[533,39431,39432],{"class":621},"        n_theta: Polar samples (θ ∈ [0, π]).\n",[533,39434,39435],{"class":535,"line":11302},[533,39436,39437],{"class":621},"        n_phi: Azimuth samples (φ ∈ [0, 2π]).\n",[533,39439,39440],{"class":535,"line":11332},[533,39441,39442],{"class":621},"        fps: GIF framerate.\n",[533,39444,39445],{"class":535,"line":11345},[533,39446,39447],{"class":621},"        out_dir: Output directory (e.g., \"\u002Fcontent\" in Colab).\n",[533,39449,39450],{"class":535,"line":11372},[533,39451,39452],{"class":621},"        figsize: Figure size in inches (DPI set globally).\n",[533,39454,39455],{"class":535,"line":11385},[533,39456,39457],{"class":621},"        info_loc: In-axes anchor (\"ul\", \"ur\", \"ll\", \"lr\").\n",[533,39459,39460],{"class":535,"line":11390},[533,39461,39462],{"class":621},"        info_fontsize: Font size for in-axes info text.\n",[533,39464,39465],{"class":535,"line":11402},[533,39466,39467],{"class":621},"        wrap_chars: Manual wrap width for info text.\n",[533,39469,39470],{"class":535,"line":11407},[533,39471,39472],{"class":621},"    \"\"\"\n",[533,39474,39475,39478,39481,39483,39486,39488,39490,39492,39495,39497,39500,39502,39505],{"class":535,"line":11412},[533,39476,39477],{"class":543},"    gate_axes: Tuple[",[533,39479,39480],{"class":553},"str",[533,39482,1133],{"class":543},[533,39484,39485],{"class":625},"...",[533,39487,11314],{"class":543},[533,39489,554],{"class":553},[533,39491,5037],{"class":543},[533,39493,39494],{"class":621},"\"x\"",[533,39496,1133],{"class":543},[533,39498,39499],{"class":621},"\"y\"",[533,39501,1133],{"class":543},[533,39503,39504],{"class":621},"\"z\"",[533,39506,637],{"class":543},[533,39508,39509,39512,39514,39516],{"class":535,"line":11418},[533,39510,39511],{"class":543},"    initial_state: ",[533,39513,39480],{"class":553},[533,39515,4899],{"class":553},[533,39517,39518],{"class":621}," \"+z\"\n",[533,39520,39521,39524,39526,39528,39530,39532,39534,39536,39538,39540,39542,39544,39546,39548,39550],{"class":535,"line":11423},[533,39522,39523],{"class":543},"    custom_r: Tuple[",[533,39525,11186],{"class":553},[533,39527,1133],{"class":543},[533,39529,11186],{"class":553},[533,39531,1133],{"class":543},[533,39533,11186],{"class":553},[533,39535,11314],{"class":543},[533,39537,554],{"class":553},[533,39539,5037],{"class":543},[533,39541,2229],{"class":625},[533,39543,1133],{"class":543},[533,39545,2229],{"class":625},[533,39547,1133],{"class":543},[533,39549,2239],{"class":625},[533,39551,637],{"class":543},[533,39553,39554,39557,39559,39561],{"class":535,"line":11467},[533,39555,39556],{"class":543},"    frames: ",[533,39558,4175],{"class":553},[533,39560,4899],{"class":553},[533,39562,39563],{"class":625}," 24\n",[533,39565,39566,39569,39571,39573],{"class":535,"line":11473},[533,39567,39568],{"class":543},"    n_theta: ",[533,39570,4175],{"class":553},[533,39572,4899],{"class":553},[533,39574,39575],{"class":625}," 80\n",[533,39577,39578,39581,39583,39585],{"class":535,"line":11488},[533,39579,39580],{"class":543},"    n_phi: ",[533,39582,4175],{"class":553},[533,39584,4899],{"class":553},[533,39586,39587],{"class":625}," 160\n",[533,39589,39590,39593,39595,39597],{"class":535,"line":11505},[533,39591,39592],{"class":543},"    fps: ",[533,39594,4175],{"class":553},[533,39596,4899],{"class":553},[533,39598,39599],{"class":625}," 20\n",[533,39601,39602,39605,39607,39609],{"class":535,"line":11518},[533,39603,39604],{"class":543},"    out_dir: ",[533,39606,39480],{"class":553},[533,39608,4899],{"class":553},[533,39610,39611],{"class":621}," \"\u002Fcontent\"\n",[533,39613,39614,39617,39619,39621,39623,39625,39627,39629,39631,39633,39635],{"class":535,"line":11523},[533,39615,39616],{"class":543},"    figsize: Tuple[",[533,39618,11186],{"class":553},[533,39620,1133],{"class":543},[533,39622,11186],{"class":553},[533,39624,11314],{"class":543},[533,39626,554],{"class":553},[533,39628,5037],{"class":543},[533,39630,39247],{"class":625},[533,39632,1133],{"class":543},[533,39634,39252],{"class":625},[533,39636,637],{"class":543},[533,39638,39639,39642,39644,39646],{"class":535,"line":11555},[533,39640,39641],{"class":543},"    info_loc: ",[533,39643,39480],{"class":553},[533,39645,4899],{"class":553},[533,39647,39648],{"class":621}," \"ul\"\n",[533,39650,39651,39654,39656,39658],{"class":535,"line":11561},[533,39652,39653],{"class":543},"    info_fontsize: ",[533,39655,4175],{"class":553},[533,39657,4899],{"class":553},[533,39659,39660],{"class":625}," 9\n",[533,39662,39663,39666,39668,39670],{"class":535,"line":11577},[533,39664,39665],{"class":543},"    wrap_chars: ",[533,39667,4175],{"class":553},[533,39669,4899],{"class":553},[533,39671,39672],{"class":625}," 42\n",[533,39674,39675],{"class":535,"line":11600},[533,39676,891],{"emptyLinePlaceholder":790},[533,39678,39679],{"class":535,"line":11621},[533,39680,891],{"emptyLinePlaceholder":790},[533,39682,39683],{"class":535,"line":11637},[533,39684,39685],{"class":593},"# ------------------------------ Bloch helpers ---------------------------------\n",[533,39687,39688,39690,39693,39695,39698,39700,39702],{"class":535,"line":11672},[533,39689,1754],{"class":539},[533,39691,39692],{"class":560}," bloch_vector",[533,39694,615],{"class":543},[533,39696,39697],{"class":1762},"initial_state",[533,39699,1389],{"class":543},[533,39701,39480],{"class":553},[533,39703,1549],{"class":543},[533,39705,39706,39709,39712,39714,39716,39718,39720,39722],{"class":535,"line":11689},[533,39707,39708],{"class":1762},"                 custom_r",[533,39710,39711],{"class":543},": Tuple[",[533,39713,11186],{"class":553},[533,39715,1133],{"class":543},[533,39717,11186],{"class":553},[533,39719,1133],{"class":543},[533,39721,11186],{"class":553},[533,39723,39724],{"class":543},"]) -> np.ndarray:\n",[533,39726,39727],{"class":535,"line":11697},[533,39728,39729],{"class":621},"    \"\"\"Return a unit Bloch vector for a named eigenstate or custom input.\"\"\"\n",[533,39731,39732,39735,39737],{"class":535,"line":11734},[533,39733,39734],{"class":543},"    mapping ",[533,39736,554],{"class":553},[533,39738,39739],{"class":543}," {\n",[533,39741,39742,39745,39747,39749,39751,39753,39755,39757,39759,39762,39764,39766,39768,39770,39772,39774,39776],{"class":535,"line":11766},[533,39743,39744],{"class":621},"        \"+z\"",[533,39746,39244],{"class":543},[533,39748,2229],{"class":625},[533,39750,1133],{"class":543},[533,39752,2229],{"class":625},[533,39754,1133],{"class":543},[533,39756,2239],{"class":625},[533,39758,3945],{"class":543},[533,39760,39761],{"class":621},"\"-z\"",[533,39763,39244],{"class":543},[533,39765,2229],{"class":625},[533,39767,1133],{"class":543},[533,39769,2229],{"class":625},[533,39771,1133],{"class":543},[533,39773,2514],{"class":553},[533,39775,2239],{"class":625},[533,39777,19687],{"class":543},[533,39779,39780,39783,39785,39787,39789,39791,39793,39795,39797,39800,39802,39804,39806,39808,39810,39812,39814],{"class":535,"line":11806},[533,39781,39782],{"class":621},"        \"+x\"",[533,39784,39244],{"class":543},[533,39786,2239],{"class":625},[533,39788,1133],{"class":543},[533,39790,2229],{"class":625},[533,39792,1133],{"class":543},[533,39794,2229],{"class":625},[533,39796,3945],{"class":543},[533,39798,39799],{"class":621},"\"-x\"",[533,39801,39244],{"class":543},[533,39803,2514],{"class":553},[533,39805,2239],{"class":625},[533,39807,1133],{"class":543},[533,39809,2229],{"class":625},[533,39811,1133],{"class":543},[533,39813,2229],{"class":625},[533,39815,19687],{"class":543},[533,39817,39818,39821,39823,39825,39827,39829,39831,39833,39835,39838,39840,39842,39844,39846,39848,39850,39852],{"class":535,"line":11826},[533,39819,39820],{"class":621},"        \"+y\"",[533,39822,39244],{"class":543},[533,39824,2229],{"class":625},[533,39826,1133],{"class":543},[533,39828,2239],{"class":625},[533,39830,1133],{"class":543},[533,39832,2229],{"class":625},[533,39834,3945],{"class":543},[533,39836,39837],{"class":621},"\"-y\"",[533,39839,39244],{"class":543},[533,39841,2229],{"class":625},[533,39843,1133],{"class":543},[533,39845,2514],{"class":553},[533,39847,2239],{"class":625},[533,39849,1133],{"class":543},[533,39851,2229],{"class":625},[533,39853,19687],{"class":543},[533,39855,39856],{"class":535,"line":11831},[533,39857,39858],{"class":543},"    }\n",[533,39860,39861,39863,39865,39867,39870,39873,39875,39878,39881,39884,39886],{"class":535,"line":11867},[533,39862,11564],{"class":543},[533,39864,554],{"class":553},[533,39866,2911],{"class":543},[533,39868,39869],{"class":560},"asarray",[533,39871,39872],{"class":543},"(mapping.",[533,39874,3871],{"class":560},[533,39876,39877],{"class":543},"(initial_state.",[533,39879,39880],{"class":560},"lower",[533,39882,39883],{"class":543},"(), custom_r), ",[533,39885,11186],{"class":553},[533,39887,637],{"class":543},[533,39889,39890,39893,39895,39897,39900],{"class":535,"line":11873},[533,39891,39892],{"class":543},"    nrm ",[533,39894,554],{"class":553},[533,39896,16156],{"class":543},[533,39898,39899],{"class":560},"norm",[533,39901,39902],{"class":543},"(r)\n",[533,39904,39905,39907,39909,39911,39913,39915,39917,39919,39921,39923,39926,39928,39931,39933,39935,39937,39940,39942],{"class":535,"line":11886},[533,39906,1880],{"class":539},[533,39908,2911],{"class":543},[533,39910,2914],{"class":560},[533,39912,3230],{"class":543},[533,39914,2229],{"class":625},[533,39916,1133],{"class":543},[533,39918,2229],{"class":625},[533,39920,1133],{"class":543},[533,39922,2239],{"class":625},[533,39924,39925],{"class":543},"]) ",[533,39927,5724],{"class":539},[533,39929,39930],{"class":543}," nrm ",[533,39932,2768],{"class":553},[533,39934,26839],{"class":625},[533,39936,13803],{"class":539},[533,39938,39939],{"class":543}," r ",[533,39941,2941],{"class":553},[533,39943,39944],{"class":543}," nrm\n",[533,39946,39947],{"class":535,"line":11943},[533,39948,891],{"emptyLinePlaceholder":790},[533,39950,39951],{"class":535,"line":12001},[533,39952,891],{"emptyLinePlaceholder":790},[533,39954,39955],{"class":535,"line":12009},[533,39956,39957],{"class":593},"# ---------------------------- Axis–angle rotations ----------------------------\n",[533,39959,39960,39962,39965,39967,39970,39972,39974,39976,39979,39981,39983],{"class":535,"line":12014},[533,39961,1754],{"class":539},[533,39963,39964],{"class":560}," rotation_matrix",[533,39966,615],{"class":543},[533,39968,39969],{"class":1762},"axis",[533,39971,1389],{"class":543},[533,39973,39480],{"class":553},[533,39975,1133],{"class":543},[533,39977,39978],{"class":1762},"angle",[533,39980,1389],{"class":543},[533,39982,11186],{"class":553},[533,39984,39985],{"class":543},") -> np.ndarray:\n",[533,39987,39988],{"class":535,"line":12033},[533,39989,39990],{"class":621},"    \"\"\"Rodrigues rotation matrix for axis in {'x','y','z'} and angle (radians).\"\"\"\n",[533,39992,39993,39996,39998,40000,40002,40005,40007],{"class":535,"line":12039},[533,39994,39995],{"class":543},"    c, s ",[533,39997,554],{"class":553},[533,39999,2911],{"class":543},[533,40001,14318],{"class":560},[533,40003,40004],{"class":543},"(angle), np.",[533,40006,14336],{"class":560},[533,40008,40009],{"class":543},"(angle)\n",[533,40011,40012,40014,40017,40019,40022],{"class":535,"line":12062},[533,40013,1814],{"class":539},[533,40015,40016],{"class":543}," axis ",[533,40018,2768],{"class":553},[533,40020,40021],{"class":621}," \"x\"",[533,40023,544],{"class":543},[533,40025,40026,40028,40030,40032,40034,40036,40038,40040,40042,40044,40046,40048,40051,40053,40056,40058,40061,40063],{"class":535,"line":12067},[533,40027,4169],{"class":539},[533,40029,2911],{"class":543},[533,40031,2914],{"class":560},[533,40033,15804],{"class":543},[533,40035,1052],{"class":625},[533,40037,1133],{"class":543},[533,40039,1049],{"class":625},[533,40041,1133],{"class":543},[533,40043,1049],{"class":625},[533,40045,3251],{"class":543},[533,40047,1049],{"class":625},[533,40049,40050],{"class":543},", c, ",[533,40052,2514],{"class":553},[533,40054,40055],{"class":543},"s], [",[533,40057,1049],{"class":625},[533,40059,40060],{"class":543},", s, c]], ",[533,40062,11186],{"class":553},[533,40064,637],{"class":543},[533,40066,40067,40069,40071,40073,40076],{"class":535,"line":12075},[533,40068,1814],{"class":539},[533,40070,40016],{"class":543},[533,40072,2768],{"class":553},[533,40074,40075],{"class":621}," \"y\"",[533,40077,544],{"class":543},[533,40079,40080,40082,40084,40086,40089,40091,40094,40096,40098,40100,40102,40104,40106,40108,40111,40113,40116,40118],{"class":535,"line":12088},[533,40081,4169],{"class":539},[533,40083,2911],{"class":543},[533,40085,2914],{"class":560},[533,40087,40088],{"class":543},"([[c, ",[533,40090,1049],{"class":625},[533,40092,40093],{"class":543},", s], [",[533,40095,1049],{"class":625},[533,40097,1133],{"class":543},[533,40099,1052],{"class":625},[533,40101,1133],{"class":543},[533,40103,1049],{"class":625},[533,40105,3251],{"class":543},[533,40107,2514],{"class":553},[533,40109,40110],{"class":543},"s, ",[533,40112,1049],{"class":625},[533,40114,40115],{"class":543},", c]], ",[533,40117,11186],{"class":553},[533,40119,637],{"class":543},[533,40121,40122,40124,40126,40128,40131],{"class":535,"line":12101},[533,40123,1814],{"class":539},[533,40125,40016],{"class":543},[533,40127,2768],{"class":553},[533,40129,40130],{"class":621}," \"z\"",[533,40132,544],{"class":543},[533,40134,40135,40137,40139,40141,40143,40145,40147,40149,40152,40154,40156,40158,40160,40162,40164,40166,40169,40171],{"class":535,"line":12108},[533,40136,4169],{"class":539},[533,40138,2911],{"class":543},[533,40140,2914],{"class":560},[533,40142,40088],{"class":543},[533,40144,2514],{"class":553},[533,40146,40110],{"class":543},[533,40148,1049],{"class":625},[533,40150,40151],{"class":543},"], [s, c, ",[533,40153,1049],{"class":625},[533,40155,3251],{"class":543},[533,40157,1049],{"class":625},[533,40159,1133],{"class":543},[533,40161,1049],{"class":625},[533,40163,1133],{"class":543},[533,40165,1052],{"class":625},[533,40167,40168],{"class":543},"]], ",[533,40170,11186],{"class":553},[533,40172,637],{"class":543},[533,40174,40175,40178,40181,40184],{"class":535,"line":12119},[533,40176,40177],{"class":539},"    raise",[533,40179,40180],{"class":543}," ValueError(",[533,40182,40183],{"class":621},"\"axis must be one of {'x','y','z'}\"",[533,40185,637],{"class":543},[533,40187,40188],{"class":535,"line":12130},[533,40189,891],{"emptyLinePlaceholder":790},[533,40191,40192],{"class":535,"line":12135},[533,40193,891],{"emptyLinePlaceholder":790},[533,40195,40196,40198,40201,40203,40206,40208,40210,40212,40214,40216,40218],{"class":535,"line":12140},[533,40197,1754],{"class":539},[533,40199,40200],{"class":560}," rotation_matrix_axis",[533,40202,615],{"class":543},[533,40204,40205],{"class":1762},"axis_vec",[533,40207,39711],{"class":543},[533,40209,11186],{"class":553},[533,40211,1133],{"class":543},[533,40213,11186],{"class":553},[533,40215,1133],{"class":543},[533,40217,11186],{"class":553},[533,40219,1533],{"class":543},[533,40221,40222,40225,40227,40229],{"class":535,"line":12146},[533,40223,40224],{"class":1762},"                         angle",[533,40226,1389],{"class":543},[533,40228,11186],{"class":553},[533,40230,39985],{"class":543},[533,40232,40233],{"class":535,"line":12151},[533,40234,40235],{"class":621},"    \"\"\"Rodrigues matrix for arbitrary axis vector and angle (radians).\"\"\"\n",[533,40237,40238,40241,40243,40245,40247,40250,40252],{"class":535,"line":12201},[533,40239,40240],{"class":543},"    v ",[533,40242,554],{"class":553},[533,40244,2911],{"class":543},[533,40246,39869],{"class":560},[533,40248,40249],{"class":543},"(axis_vec, ",[533,40251,11186],{"class":553},[533,40253,637],{"class":543},[533,40255,40256,40258,40260,40262,40264],{"class":535,"line":12210},[533,40257,39892],{"class":543},[533,40259,554],{"class":553},[533,40261,16156],{"class":543},[533,40263,39899],{"class":560},[533,40265,40266],{"class":543},"(v)\n",[533,40268,40269,40271,40273,40275,40277],{"class":535,"line":12256},[533,40270,1814],{"class":539},[533,40272,39930],{"class":543},[533,40274,2768],{"class":553},[533,40276,26839],{"class":625},[533,40278,544],{"class":543},[533,40280,40281,40284,40286,40289],{"class":535,"line":12285},[533,40282,40283],{"class":539},"        raise",[533,40285,40180],{"class":543},[533,40287,40288],{"class":621},"\"axis_vec must be nonzero\"",[533,40290,637],{"class":543},[533,40292,40293,40296,40298,40301,40303],{"class":535,"line":12337},[533,40294,40295],{"class":543},"    k ",[533,40297,554],{"class":553},[533,40299,40300],{"class":543}," v ",[533,40302,2941],{"class":553},[533,40304,39944],{"class":543},[533,40306,40307,40310,40312,40314,40316,40318,40320,40322,40324,40327,40329,40332,40334,40337,40339,40341,40343,40345,40347,40349,40351,40354,40356,40358,40360,40362,40364,40366,40368,40370,40372],{"class":535,"line":12343},[533,40308,40309],{"class":543},"    K ",[533,40311,554],{"class":553},[533,40313,2911],{"class":543},[533,40315,2914],{"class":560},[533,40317,15804],{"class":543},[533,40319,2229],{"class":625},[533,40321,1133],{"class":543},[533,40323,2514],{"class":553},[533,40325,40326],{"class":543},"k[",[533,40328,1140],{"class":625},[533,40330,40331],{"class":543},"], k[",[533,40333,1052],{"class":625},[533,40335,40336],{"class":543},"]], [k[",[533,40338,1140],{"class":625},[533,40340,16316],{"class":543},[533,40342,2229],{"class":625},[533,40344,1133],{"class":543},[533,40346,2514],{"class":553},[533,40348,40326],{"class":543},[533,40350,1049],{"class":625},[533,40352,40353],{"class":543},"]], [",[533,40355,2514],{"class":553},[533,40357,40326],{"class":543},[533,40359,1052],{"class":625},[533,40361,40331],{"class":543},[533,40363,1049],{"class":625},[533,40365,16316],{"class":543},[533,40367,2229],{"class":625},[533,40369,40168],{"class":543},[533,40371,11186],{"class":553},[533,40373,637],{"class":543},[533,40375,40376,40379,40381,40383,40385,40387,40389],{"class":535,"line":12360},[533,40377,40378],{"class":543},"    I ",[533,40380,554],{"class":553},[533,40382,2911],{"class":543},[533,40384,5922],{"class":560},[533,40386,615],{"class":543},[533,40388,1157],{"class":625},[533,40390,637],{"class":543},[533,40392,40393,40395,40397,40399,40401,40403,40405],{"class":535,"line":12365},[533,40394,39995],{"class":543},[533,40396,554],{"class":553},[533,40398,2911],{"class":543},[533,40400,14318],{"class":560},[533,40402,40004],{"class":543},[533,40404,14336],{"class":560},[533,40406,40009],{"class":543},[533,40408,40409,40411,40414,40416,40419,40421,40423,40425,40427,40430,40432,40434,40437,40440,40442,40444,40446],{"class":535,"line":12412},[533,40410,1880],{"class":539},[533,40412,40413],{"class":543}," c ",[533,40415,2469],{"class":553},[533,40417,40418],{"class":543}," I ",[533,40420,6350],{"class":553},[533,40422,5037],{"class":543},[533,40424,1052],{"class":625},[533,40426,11221],{"class":553},[533,40428,40429],{"class":543}," c) ",[533,40431,2469],{"class":553},[533,40433,2911],{"class":543},[533,40435,40436],{"class":560},"outer",[533,40438,40439],{"class":543},"(k, k) ",[533,40441,6350],{"class":553},[533,40443,5934],{"class":543},[533,40445,2469],{"class":553},[533,40447,40448],{"class":543}," K\n",[533,40450,40451],{"class":535,"line":12420},[533,40452,891],{"emptyLinePlaceholder":790},[533,40454,40455],{"class":535,"line":12468},[533,40456,891],{"emptyLinePlaceholder":790},[533,40458,40459],{"class":535,"line":12491},[533,40460,40461],{"class":593},"# ------------------------------ Wigner on S^2 ---------------------------------\n",[533,40463,40464,40466,40469,40471,40474,40476,40478,40480,40483,40485,40487],{"class":535,"line":12531},[533,40465,1754],{"class":539},[533,40467,40468],{"class":560}," n_grid",[533,40470,615],{"class":543},[533,40472,40473],{"class":1762},"n_theta",[533,40475,1389],{"class":543},[533,40477,4175],{"class":553},[533,40479,1133],{"class":543},[533,40481,40482],{"class":1762},"n_phi",[533,40484,1389],{"class":543},[533,40486,4175],{"class":553},[533,40488,39985],{"class":543},[533,40490,40491],{"class":535,"line":12569},[533,40492,40493],{"class":621},"    \"\"\"Return unit-vector grid n(θ,φ) stacked as (3, n_theta, n_phi).\"\"\"\n",[533,40495,40496,40499,40501,40503,40505,40507,40509],{"class":535,"line":12574},[533,40497,40498],{"class":543},"    theta ",[533,40500,554],{"class":553},[533,40502,2911],{"class":543},[533,40504,12734],{"class":560},[533,40506,615],{"class":543},[533,40508,2229],{"class":625},[533,40510,40511],{"class":543},", np.pi, n_theta)\n",[533,40513,40514,40517,40519,40521,40523,40525,40527,40529,40531,40533],{"class":535,"line":12589},[533,40515,40516],{"class":543},"    phi ",[533,40518,554],{"class":553},[533,40520,2911],{"class":543},[533,40522,12734],{"class":560},[533,40524,615],{"class":543},[533,40526,2229],{"class":625},[533,40528,1133],{"class":543},[533,40530,11726],{"class":625},[533,40532,2254],{"class":553},[533,40534,40535],{"class":543}," np.pi, n_phi)\n",[533,40537,40538,40541,40543,40545,40548,40551,40554,40556,40559],{"class":535,"line":12594},[533,40539,40540],{"class":543},"    th, ph ",[533,40542,554],{"class":553},[533,40544,2911],{"class":543},[533,40546,40547],{"class":560},"meshgrid",[533,40549,40550],{"class":543},"(theta, phi, ",[533,40552,40553],{"class":567},"indexing",[533,40555,554],{"class":553},[533,40557,40558],{"class":621},"\"ij\"",[533,40560,637],{"class":543},[533,40562,40563,40566,40568,40570,40572,40575,40577,40579,40581],{"class":535,"line":12600},[533,40564,40565],{"class":543},"    nx ",[533,40567,554],{"class":553},[533,40569,2911],{"class":543},[533,40571,14336],{"class":560},[533,40573,40574],{"class":543},"(th) ",[533,40576,2469],{"class":553},[533,40578,2911],{"class":543},[533,40580,14318],{"class":560},[533,40582,40583],{"class":543},"(ph)\n",[533,40585,40586,40589,40591,40593,40595,40597,40599,40601,40603],{"class":535,"line":12641},[533,40587,40588],{"class":543},"    ny ",[533,40590,554],{"class":553},[533,40592,2911],{"class":543},[533,40594,14336],{"class":560},[533,40596,40574],{"class":543},[533,40598,2469],{"class":553},[533,40600,2911],{"class":543},[533,40602,14336],{"class":560},[533,40604,40583],{"class":543},[533,40606,40607,40610,40612,40614,40616],{"class":535,"line":12656},[533,40608,40609],{"class":543},"    nz ",[533,40611,554],{"class":553},[533,40613,2911],{"class":543},[533,40615,14318],{"class":560},[533,40617,40618],{"class":543},"(th)\n",[533,40620,40621,40623,40625,40628,40631,40633,40635,40637],{"class":535,"line":12672},[533,40622,1880],{"class":539},[533,40624,2911],{"class":543},[533,40626,40627],{"class":560},"stack",[533,40629,40630],{"class":543},"((nx, ny, nz), ",[533,40632,39969],{"class":567},[533,40634,554],{"class":553},[533,40636,1049],{"class":625},[533,40638,637],{"class":543},[533,40640,40641],{"class":535,"line":12703},[533,40642,891],{"emptyLinePlaceholder":790},[533,40644,40645],{"class":535,"line":12708},[533,40646,891],{"emptyLinePlaceholder":790},[533,40648,40649,40651,40654,40656,40659,40661,40664],{"class":535,"line":12713},[533,40650,1754],{"class":539},[533,40652,40653],{"class":560}," spin_wigner_qubit",[533,40655,615],{"class":543},[533,40657,40658],{"class":1762},"r_vec",[533,40660,16135],{"class":543},[533,40662,40663],{"class":1762},"ngrid",[533,40665,16146],{"class":543},[533,40667,40668],{"class":535,"line":12719},[533,40669,40670],{"class":621},"    \"\"\"Spin SW Wigner for a qubit: W = 1\u002F2 + (√3\u002F2) * r·n on the (θ,φ) grid.\"\"\"\n",[533,40672,40673,40675,40677,40679,40681,40683,40685,40688,40690,40692,40694,40696,40698,40701,40704,40706,40708,40710,40712,40714,40716,40718,40720,40723,40725,40727,40729,40731,40733],{"class":535,"line":12724},[533,40674,1880],{"class":539},[533,40676,12264],{"class":625},[533,40678,14257],{"class":553},[533,40680,16244],{"class":543},[533,40682,2262],{"class":560},[533,40684,615],{"class":543},[533,40686,40687],{"class":625},"3.0",[533,40689,7047],{"class":543},[533,40691,2941],{"class":553},[533,40693,2251],{"class":625},[533,40695,7047],{"class":543},[533,40697,2469],{"class":553},[533,40699,40700],{"class":543}," (r_vec.",[533,40702,40703],{"class":560},"reshape",[533,40705,615],{"class":543},[533,40707,1157],{"class":625},[533,40709,1133],{"class":543},[533,40711,1052],{"class":625},[533,40713,1133],{"class":543},[533,40715,1052],{"class":625},[533,40717,7047],{"class":543},[533,40719,2469],{"class":553},[533,40721,40722],{"class":543}," ngrid).",[533,40724,2946],{"class":560},[533,40726,615],{"class":543},[533,40728,39969],{"class":567},[533,40730,554],{"class":553},[533,40732,1049],{"class":625},[533,40734,637],{"class":543},[533,40736,40737],{"class":535,"line":12750},[533,40738,891],{"emptyLinePlaceholder":790},[533,40740,40741],{"class":535,"line":12775},[533,40742,891],{"emptyLinePlaceholder":790},[533,40744,40745],{"class":535,"line":12780},[533,40746,40747],{"class":593},"# ----------------------- In-axes title & info placement -----------------------\n",[533,40749,40750,40752,40755,40757,40760,40762,40764,40766,40768,40770,40772,40774,40777],{"class":535,"line":12812},[533,40751,1754],{"class":539},[533,40753,40754],{"class":560}," _info_xy",[533,40756,615],{"class":543},[533,40758,40759],{"class":1762},"loc",[533,40761,1389],{"class":543},[533,40763,39480],{"class":553},[533,40765,11855],{"class":543},[533,40767,11186],{"class":553},[533,40769,1133],{"class":543},[533,40771,11186],{"class":553},[533,40773,1133],{"class":543},[533,40775,40776],{"class":553},"dict",[533,40778,11864],{"class":543},[533,40780,40781],{"class":535,"line":12842},[533,40782,40783],{"class":621},"    \"\"\"Map location code to (x, y, kwargs) in axes-fraction coordinates.\"\"\"\n",[533,40785,40786,40789,40791,40794,40796],{"class":535,"line":12879},[533,40787,40788],{"class":543},"    loc ",[533,40790,554],{"class":553},[533,40792,40793],{"class":543}," loc.",[533,40795,39880],{"class":560},[533,40797,1217],{"class":543},[533,40799,40800,40802,40805,40807,40810],{"class":535,"line":12884},[533,40801,1814],{"class":539},[533,40803,40804],{"class":543}," loc ",[533,40806,2768],{"class":553},[533,40808,40809],{"class":621}," \"ul\"",[533,40811,544],{"class":543},[533,40813,40814,40816,40819,40821,40824,40826,40828,40830,40833,40835,40838,40840,40843,40845,40848],{"class":535,"line":12890},[533,40815,4169],{"class":539},[533,40817,40818],{"class":625}," 0.015",[533,40820,1133],{"class":543},[533,40822,40823],{"class":625},"0.985",[533,40825,1133],{"class":543},[533,40827,40776],{"class":553},[533,40829,615],{"class":543},[533,40831,40832],{"class":567},"ha",[533,40834,554],{"class":553},[533,40836,40837],{"class":621},"\"left\"",[533,40839,1133],{"class":543},[533,40841,40842],{"class":567},"va",[533,40844,554],{"class":553},[533,40846,40847],{"class":621},"\"top\"",[533,40849,637],{"class":543},[533,40851,40852,40854,40856,40858,40861],{"class":535,"line":12927},[533,40853,1814],{"class":539},[533,40855,40804],{"class":543},[533,40857,2768],{"class":553},[533,40859,40860],{"class":621}," \"ur\"",[533,40862,544],{"class":543},[533,40864,40865,40867,40870,40872,40874,40876,40878,40880,40882,40884,40887,40889,40891,40893,40895],{"class":535,"line":12988},[533,40866,4169],{"class":539},[533,40868,40869],{"class":625}," 0.985",[533,40871,1133],{"class":543},[533,40873,40823],{"class":625},[533,40875,1133],{"class":543},[533,40877,40776],{"class":553},[533,40879,615],{"class":543},[533,40881,40832],{"class":567},[533,40883,554],{"class":553},[533,40885,40886],{"class":621},"\"right\"",[533,40888,1133],{"class":543},[533,40890,40842],{"class":567},[533,40892,554],{"class":553},[533,40894,40847],{"class":621},[533,40896,637],{"class":543},[533,40898,40899,40901,40903,40905,40908],{"class":535,"line":13011},[533,40900,1814],{"class":539},[533,40902,40804],{"class":543},[533,40904,2768],{"class":553},[533,40906,40907],{"class":621}," \"ll\"",[533,40909,544],{"class":543},[533,40911,40912,40914,40916,40918,40921,40923,40925,40927,40929,40931,40933,40935,40937,40939,40942],{"class":535,"line":13025},[533,40913,4169],{"class":539},[533,40915,40818],{"class":625},[533,40917,1133],{"class":543},[533,40919,40920],{"class":625},"0.015",[533,40922,1133],{"class":543},[533,40924,40776],{"class":553},[533,40926,615],{"class":543},[533,40928,40832],{"class":567},[533,40930,554],{"class":553},[533,40932,40837],{"class":621},[533,40934,1133],{"class":543},[533,40936,40842],{"class":567},[533,40938,554],{"class":553},[533,40940,40941],{"class":621},"\"bottom\"",[533,40943,637],{"class":543},[533,40945,40946,40948,40950,40952,40955],{"class":535,"line":13053},[533,40947,1814],{"class":539},[533,40949,40804],{"class":543},[533,40951,2768],{"class":553},[533,40953,40954],{"class":621}," \"lr\"",[533,40956,544],{"class":543},[533,40958,40959,40961,40963,40965,40967,40969,40971,40973,40975,40977,40979,40981,40983,40985,40987],{"class":535,"line":13084},[533,40960,4169],{"class":539},[533,40962,40869],{"class":625},[533,40964,1133],{"class":543},[533,40966,40920],{"class":625},[533,40968,1133],{"class":543},[533,40970,40776],{"class":553},[533,40972,615],{"class":543},[533,40974,40832],{"class":567},[533,40976,554],{"class":553},[533,40978,40886],{"class":621},[533,40980,1133],{"class":543},[533,40982,40842],{"class":567},[533,40984,554],{"class":553},[533,40986,40941],{"class":621},[533,40988,637],{"class":543},[533,40990,40991,40993,40995,40997,40999,41001,41003,41005,41007,41009,41011,41013,41015,41017,41019],{"class":535,"line":13105},[533,40992,1880],{"class":539},[533,40994,40818],{"class":625},[533,40996,1133],{"class":543},[533,40998,40823],{"class":625},[533,41000,1133],{"class":543},[533,41002,40776],{"class":553},[533,41004,615],{"class":543},[533,41006,40832],{"class":567},[533,41008,554],{"class":553},[533,41010,40837],{"class":621},[533,41012,1133],{"class":543},[533,41014,40842],{"class":567},[533,41016,554],{"class":553},[533,41018,40847],{"class":621},[533,41020,637],{"class":543},[533,41022,41023],{"class":535,"line":13115},[533,41024,891],{"emptyLinePlaceholder":790},[533,41026,41027],{"class":535,"line":13125},[533,41028,891],{"emptyLinePlaceholder":790},[533,41030,41031,41033,41036,41038,41040],{"class":535,"line":13130},[533,41032,1754],{"class":539},[533,41034,41035],{"class":560}," add_info_box",[533,41037,615],{"class":543},[533,41039,12651],{"class":1762},[533,41041,41042],{"class":543},": plt.Axes,\n",[533,41044,41045,41048,41050,41052],{"class":535,"line":13136},[533,41046,41047],{"class":1762},"                 text",[533,41049,1389],{"class":543},[533,41051,39480],{"class":553},[533,41053,1549],{"class":543},[533,41055,41056,41059,41061,41063,41065,41067],{"class":535,"line":13167},[533,41057,41058],{"class":1762},"                 loc",[533,41060,1389],{"class":543},[533,41062,39480],{"class":553},[533,41064,4899],{"class":553},[533,41066,40809],{"class":621},[533,41068,1549],{"class":543},[533,41070,41071,41074,41076,41078,41080,41083],{"class":535,"line":13213},[533,41072,41073],{"class":1762},"                 fontsize",[533,41075,1389],{"class":543},[533,41077,4175],{"class":553},[533,41079,4899],{"class":553},[533,41081,41082],{"class":625}," 9",[533,41084,1549],{"class":543},[533,41086,41087,41090,41092,41094,41096,41098],{"class":535,"line":13234},[533,41088,41089],{"class":1762},"                 wrap",[533,41091,1389],{"class":543},[533,41093,4175],{"class":553},[533,41095,4899],{"class":553},[533,41097,3130],{"class":625},[533,41099,41100],{"class":543},") -> plt.Text:\n",[533,41102,41103],{"class":535,"line":13245},[533,41104,41105],{"class":621},"    \"\"\"Create a wrapped, padded text box inside the axes (never clips).\"\"\"\n",[533,41107,41108,41111,41113,41115],{"class":535,"line":13268},[533,41109,41110],{"class":543},"    x, y, kw ",[533,41112,554],{"class":553},[533,41114,40754],{"class":560},[533,41116,41117],{"class":543},"(loc)\n",[533,41119,41120,41122,41125,41127],{"class":535,"line":13295},[533,41121,1880],{"class":539},[533,41123,41124],{"class":543}," ax.",[533,41126,31773],{"class":560},[533,41128,1503],{"class":543},[533,41130,41131,41134,41137],{"class":535,"line":13316},[533,41132,41133],{"class":543},"        x, y, textwrap.",[533,41135,41136],{"class":560},"fill",[533,41138,41139],{"class":543},"(text, wrap),\n",[533,41141,41142,41145,41147,41150,41153,41155,41158,41161,41163,41165],{"class":535,"line":13325},[533,41143,41144],{"class":567},"        transform",[533,41146,554],{"class":553},[533,41148,41149],{"class":543},"ax.transAxes, ",[533,41151,41152],{"class":567},"fontsize",[533,41154,554],{"class":553},[533,41156,41157],{"class":543},"fontsize, ",[533,41159,41160],{"class":567},"zorder",[533,41162,554],{"class":553},[533,41164,1220],{"class":625},[533,41166,1549],{"class":543},[533,41168,41169,41172,41175,41177,41180,41182,41185,41187,41190,41192,41195,41197,41199,41201,41204,41206,41209,41211,41214],{"class":535,"line":13334},[533,41170,41171],{"class":567},"        bbox",[533,41173,41174],{"class":553},"=dict",[533,41176,615],{"class":543},[533,41178,41179],{"class":567},"boxstyle",[533,41181,554],{"class":553},[533,41183,41184],{"class":621},"\"round,pad=0.3\"",[533,41186,1133],{"class":543},[533,41188,41189],{"class":567},"fc",[533,41191,554],{"class":553},[533,41193,41194],{"class":621},"\"white\"",[533,41196,1133],{"class":543},[533,41198,19638],{"class":567},[533,41200,554],{"class":553},[533,41202,41203],{"class":625},"0.75",[533,41205,1133],{"class":543},[533,41207,41208],{"class":567},"ec",[533,41210,554],{"class":553},[533,41212,41213],{"class":621},"\"none\"",[533,41215,19687],{"class":543},[533,41217,41218],{"class":535,"line":13339},[533,41219,41220],{"class":543},"        **kw,\n",[533,41222,41223],{"class":535,"line":13345},[533,41224,12340],{"class":543},[533,41226,41227],{"class":535,"line":13370},[533,41228,891],{"emptyLinePlaceholder":790},[533,41230,41231],{"class":535,"line":13389},[533,41232,891],{"emptyLinePlaceholder":790},[533,41234,41235,41237,41240,41242,41244,41247,41249,41251,41253],{"class":535,"line":13407},[533,41236,1754],{"class":539},[533,41238,41239],{"class":560}," add_title_inside",[533,41241,615],{"class":543},[533,41243,12651],{"class":1762},[533,41245,41246],{"class":543},": plt.Axes, ",[533,41248,31773],{"class":1762},[533,41250,1389],{"class":543},[533,41252,39480],{"class":553},[533,41254,41100],{"class":543},[533,41256,41257],{"class":535,"line":13420},[533,41258,41259],{"class":621},"    \"\"\"Draw a title inside the Axes at the very top center (never clips).\"\"\"\n",[533,41261,41262,41264,41266,41268],{"class":535,"line":13425},[533,41263,1880],{"class":539},[533,41265,41124],{"class":543},[533,41267,31773],{"class":560},[533,41269,1503],{"class":543},[533,41271,41272,41275,41277,41279],{"class":535,"line":13456},[533,41273,41274],{"class":625},"        0.5",[533,41276,1133],{"class":543},[533,41278,40823],{"class":625},[533,41280,41281],{"class":543},", text,\n",[533,41283,41284,41286,41288,41290,41292,41294,41297,41299,41301,41303,41305],{"class":535,"line":13502},[533,41285,41144],{"class":567},[533,41287,554],{"class":553},[533,41289,41149],{"class":543},[533,41291,40832],{"class":567},[533,41293,554],{"class":553},[533,41295,41296],{"class":621},"\"center\"",[533,41298,1133],{"class":543},[533,41300,40842],{"class":567},[533,41302,554],{"class":553},[533,41304,40847],{"class":621},[533,41306,1549],{"class":543},[533,41308,41309,41312,41314,41316],{"class":535,"line":13551},[533,41310,41311],{"class":567},"        fontsize",[533,41313,554],{"class":553},[533,41315,1596],{"class":625},[533,41317,1549],{"class":543},[533,41319,41320,41322,41324,41326,41328,41330,41332,41334,41336,41338,41340,41342,41344,41346,41348,41350,41352,41354,41356],{"class":535,"line":13583},[533,41321,41171],{"class":567},[533,41323,41174],{"class":553},[533,41325,615],{"class":543},[533,41327,41179],{"class":567},[533,41329,554],{"class":553},[533,41331,41184],{"class":621},[533,41333,1133],{"class":543},[533,41335,41189],{"class":567},[533,41337,554],{"class":553},[533,41339,41194],{"class":621},[533,41341,1133],{"class":543},[533,41343,19638],{"class":567},[533,41345,554],{"class":553},[533,41347,41203],{"class":625},[533,41349,1133],{"class":543},[533,41351,41208],{"class":567},[533,41353,554],{"class":553},[533,41355,41213],{"class":621},[533,41357,19687],{"class":543},[533,41359,41360,41363,41365,41367],{"class":535,"line":13612},[533,41361,41362],{"class":567},"        zorder",[533,41364,554],{"class":553},[533,41366,1967],{"class":625},[533,41368,1549],{"class":543},[533,41370,41371],{"class":535,"line":13635},[533,41372,12340],{"class":543},[524,41374,41376],{"className":526,"code":41375,"language":528,"meta":529,"style":529},"# @title Cell 3 — Pauli X\u002FY\u002FZ Wigner animations (titles *inside* the plot)\nfrom pathlib import Path\n\ndef animate_wigner_pauli(axis: str,\n                         r0: np.ndarray,\n                         frames: int,\n                         n_theta: int,\n                         n_phi: int,\n                         fps: int,\n                         figsize: Tuple[float, float],\n                         info_loc: str,\n                         info_fontsize: int,\n                         wrap_chars: int,\n                         out_path: Path) -> Path:\n    \"\"\"Animate Wigner under a Pauli rotation U = exp(-i σ_axis * π * t \u002F 2).\"\"\"\n    assert frames >= 2, \"frames must be ≥ 2\"\n    ngrid = n_grid(n_theta, n_phi)\n    w_min = 0.5 - (np.sqrt(3.0) \u002F 2.0)\n    w_max = 0.5 + (np.sqrt(3.0) \u002F 2.0)\n    extent = (0.0, 2.0 * np.pi, 0.0, np.pi)\n\n    fig, ax = plt.subplots(figsize=figsize, constrained_layout=True)\n    im = ax.imshow(np.zeros((n_theta, n_phi)), origin=\"lower\", extent=extent,\n                   vmin=w_min, vmax=w_max, aspect=\"auto\")\n    cbar = fig.colorbar(im, ax=ax, fraction=0.046, pad=0.04)\n    cbar.set_label(\"Wigner value\")\n\n    ax.set_xlabel(\"φ (radians)\")\n    ax.set_ylabel(\"θ (radians)\")\n    add_title_inside(ax, f\"Wigner — {axis.upper()} rotation\")\n\n    info = add_info_box(ax, \"\", loc=info_loc, fontsize=info_fontsize,\n                        wrap=wrap_chars)\n\n    def update(k: int):\n        ang = (k \u002F (frames - 1)) * np.pi  # 0 → π\n        r = rotation_matrix(axis.lower(), ang) @ r0\n        im.set_data(spin_wigner_qubit(r, ngrid))\n        info.set_text(f\"θ = {ang:.3f} rad\\nframe {k+1}\u002F{frames}\")\n        return (im, info)\n\n    anim = FuncAnimation(fig, update, frames=frames, interval=60, blit=False)\n    out_path.parent.mkdir(parents=True, exist_ok=True)\n    anim.save(out_path.as_posix(), writer=PillowWriter(fps=fps),\n              savefig_kwargs=dict(facecolor=\"white\"))\n    plt.close(fig)\n    return out_path\n\n\n# ---------------------------- Run X, Y, Z animations --------------------------\nknobs = Knobs(  # tweak if desired\n    gate_axes=(\"x\", \"y\", \"z\"),\n    initial_state=\"+z\",\n    frames=24,                # raise to 48 for smoother motion\n    n_theta=80, n_phi=160,    # raise to 120×240 for more detail\n    fps=20,\n    out_dir=\"\u002Fcontent\",\n    figsize=(6.4, 3.6),\n    info_loc=\"ul\", info_fontsize=9, wrap_chars=42,\n)\n\nr0 = bloch_vector(knobs.initial_state, knobs.custom_r)\nouts = []\nfor axname in knobs.gate_axes:\n    path = Path(knobs.out_dir) \u002F f\"wigner_pauli_{axname}.gif\"\n    outs.append(\n        animate_wigner_pauli(axname, r0, knobs.frames,\n                             knobs.n_theta, knobs.n_phi, knobs.fps,\n                             knobs.figsize, knobs.info_loc,\n                             knobs.info_fontsize, knobs.wrap_chars,\n                             path)\n    )\n\n# Display inline\nfor p in outs:\n    display(Image(filename=str(p)))\n    print(\"Saved:\", p)\n",[57,41377,41378,41383,41393,41397,41414,41422,41433,41444,41455,41466,41481,41492,41503,41514,41522,41527,41544,41556,41583,41610,41635,41639,41667,41701,41727,41769,41784,41788,41801,41814,41845,41849,41879,41889,41893,41912,41941,41963,41979,42034,42041,42045,42084,42112,42146,42164,42175,42182,42186,42190,42195,42210,42231,42243,42258,42283,42294,42306,42323,42354,42358,42362,42374,42384,42396,42427,42436,42444,42449,42454,42459,42464,42468,42472,42477,42489,42509],{"__ignoreMap":529},[533,41379,41380],{"class":535,"line":536},[533,41381,41382],{"class":593},"# @title Cell 3 — Pauli X\u002FY\u002FZ Wigner animations (titles *inside* the plot)\n",[533,41384,41385,41387,41389,41391],{"class":535,"line":547},[533,41386,877],{"class":539},[533,41388,39301],{"class":543},[533,41390,883],{"class":539},[533,41392,39306],{"class":543},[533,41394,41395],{"class":535,"line":575},[533,41396,891],{"emptyLinePlaceholder":790},[533,41398,41399,41401,41404,41406,41408,41410,41412],{"class":535,"line":590},[533,41400,1754],{"class":539},[533,41402,41403],{"class":560}," animate_wigner_pauli",[533,41405,615],{"class":543},[533,41407,39969],{"class":1762},[533,41409,1389],{"class":543},[533,41411,39480],{"class":553},[533,41413,1549],{"class":543},[533,41415,41416,41419],{"class":535,"line":597},[533,41417,41418],{"class":1762},"                         r0",[533,41420,41421],{"class":543},": np.ndarray,\n",[533,41423,41424,41427,41429,41431],{"class":535,"line":603},[533,41425,41426],{"class":1762},"                         frames",[533,41428,1389],{"class":543},[533,41430,4175],{"class":553},[533,41432,1549],{"class":543},[533,41434,41435,41438,41440,41442],{"class":535,"line":609},[533,41436,41437],{"class":1762},"                         n_theta",[533,41439,1389],{"class":543},[533,41441,4175],{"class":553},[533,41443,1549],{"class":543},[533,41445,41446,41449,41451,41453],{"class":535,"line":640},[533,41447,41448],{"class":1762},"                         n_phi",[533,41450,1389],{"class":543},[533,41452,4175],{"class":553},[533,41454,1549],{"class":543},[533,41456,41457,41460,41462,41464],{"class":535,"line":646},[533,41458,41459],{"class":1762},"                         fps",[533,41461,1389],{"class":543},[533,41463,4175],{"class":553},[533,41465,1549],{"class":543},[533,41467,41468,41471,41473,41475,41477,41479],{"class":535,"line":658},[533,41469,41470],{"class":1762},"                         figsize",[533,41472,39711],{"class":543},[533,41474,11186],{"class":553},[533,41476,1133],{"class":543},[533,41478,11186],{"class":553},[533,41480,1533],{"class":543},[533,41482,41483,41486,41488,41490],{"class":535,"line":680},[533,41484,41485],{"class":1762},"                         info_loc",[533,41487,1389],{"class":543},[533,41489,39480],{"class":553},[533,41491,1549],{"class":543},[533,41493,41494,41497,41499,41501],{"class":535,"line":1536},[533,41495,41496],{"class":1762},"                         info_fontsize",[533,41498,1389],{"class":543},[533,41500,4175],{"class":553},[533,41502,1549],{"class":543},[533,41504,41505,41508,41510,41512],{"class":535,"line":1552},[533,41506,41507],{"class":1762},"                         wrap_chars",[533,41509,1389],{"class":543},[533,41511,4175],{"class":553},[533,41513,1549],{"class":543},[533,41515,41516,41519],{"class":535,"line":1911},[533,41517,41518],{"class":1762},"                         out_path",[533,41520,41521],{"class":543},": Path) -> Path:\n",[533,41523,41524],{"class":535,"line":1940},[533,41525,41526],{"class":621},"    \"\"\"Animate Wigner under a Pauli rotation U = exp(-i σ_axis * π * t \u002F 2).\"\"\"\n",[533,41528,41529,41532,41535,41537,41539,41541],{"class":535,"line":1968},[533,41530,41531],{"class":539},"    assert",[533,41533,41534],{"class":543}," frames ",[533,41536,15427],{"class":553},[533,41538,11938],{"class":625},[533,41540,1133],{"class":543},[533,41542,41543],{"class":621},"\"frames must be ≥ 2\"\n",[533,41545,41546,41549,41551,41553],{"class":535,"line":1995},[533,41547,41548],{"class":543},"    ngrid ",[533,41550,554],{"class":553},[533,41552,40468],{"class":560},[533,41554,41555],{"class":543},"(n_theta, n_phi)\n",[533,41557,41558,41561,41563,41565,41567,41569,41571,41573,41575,41577,41579,41581],{"class":535,"line":4164},[533,41559,41560],{"class":543},"    w_min ",[533,41562,554],{"class":553},[533,41564,12264],{"class":625},[533,41566,11221],{"class":553},[533,41568,16244],{"class":543},[533,41570,2262],{"class":560},[533,41572,615],{"class":543},[533,41574,40687],{"class":625},[533,41576,7047],{"class":543},[533,41578,2941],{"class":553},[533,41580,2251],{"class":625},[533,41582,637],{"class":543},[533,41584,41585,41588,41590,41592,41594,41596,41598,41600,41602,41604,41606,41608],{"class":535,"line":4199},[533,41586,41587],{"class":543},"    w_max ",[533,41589,554],{"class":553},[533,41591,12264],{"class":625},[533,41593,14257],{"class":553},[533,41595,16244],{"class":543},[533,41597,2262],{"class":560},[533,41599,615],{"class":543},[533,41601,40687],{"class":625},[533,41603,7047],{"class":543},[533,41605,2941],{"class":553},[533,41607,2251],{"class":625},[533,41609,637],{"class":543},[533,41611,41612,41615,41617,41619,41621,41623,41625,41627,41630,41632],{"class":535,"line":4206},[533,41613,41614],{"class":543},"    extent ",[533,41616,554],{"class":553},[533,41618,5037],{"class":543},[533,41620,2229],{"class":625},[533,41622,1133],{"class":543},[533,41624,11726],{"class":625},[533,41626,2254],{"class":553},[533,41628,41629],{"class":543}," np.pi, ",[533,41631,2229],{"class":625},[533,41633,41634],{"class":543},", np.pi)\n",[533,41636,41637],{"class":535,"line":4214},[533,41638,891],{"emptyLinePlaceholder":790},[533,41640,41641,41644,41646,41648,41650,41652,41654,41656,41659,41661,41663,41665],{"class":535,"line":11296},[533,41642,41643],{"class":543},"    fig, ax ",[533,41645,554],{"class":553},[533,41647,19777],{"class":543},[533,41649,19780],{"class":560},[533,41651,615],{"class":543},[533,41653,12901],{"class":567},[533,41655,554],{"class":553},[533,41657,41658],{"class":543},"figsize, ",[533,41660,27085],{"class":567},[533,41662,554],{"class":553},[533,41664,1958],{"class":625},[533,41666,637],{"class":543},[533,41668,41669,41672,41674,41676,41678,41680,41683,41686,41688,41690,41692,41694,41696,41698],{"class":535,"line":11302},[533,41670,41671],{"class":543},"    im ",[533,41673,554],{"class":553},[533,41675,41124],{"class":543},[533,41677,13507],{"class":560},[533,41679,5967],{"class":543},[533,41681,41682],{"class":560},"zeros",[533,41684,41685],{"class":543},"((n_theta, n_phi)), ",[533,41687,13513],{"class":567},[533,41689,554],{"class":553},[533,41691,13518],{"class":621},[533,41693,1133],{"class":543},[533,41695,13533],{"class":567},[533,41697,554],{"class":553},[533,41699,41700],{"class":543},"extent,\n",[533,41702,41703,41706,41708,41711,41714,41716,41719,41721,41723,41725],{"class":535,"line":11332},[533,41704,41705],{"class":567},"                   vmin",[533,41707,554],{"class":553},[533,41709,41710],{"class":543},"w_min, ",[533,41712,41713],{"class":567},"vmax",[533,41715,554],{"class":553},[533,41717,41718],{"class":543},"w_max, ",[533,41720,13523],{"class":567},[533,41722,554],{"class":553},[533,41724,13528],{"class":621},[533,41726,637],{"class":543},[533,41728,41729,41732,41734,41737,41739,41742,41744,41746,41749,41752,41754,41757,41759,41762,41764,41767],{"class":535,"line":11345},[533,41730,41731],{"class":543},"    cbar ",[533,41733,554],{"class":553},[533,41735,41736],{"class":543}," fig.",[533,41738,13556],{"class":560},[533,41740,41741],{"class":543},"(im, ",[533,41743,12651],{"class":567},[533,41745,554],{"class":553},[533,41747,41748],{"class":543},"ax, ",[533,41750,41751],{"class":567},"fraction",[533,41753,554],{"class":553},[533,41755,41756],{"class":625},"0.046",[533,41758,1133],{"class":543},[533,41760,41761],{"class":567},"pad",[533,41763,554],{"class":553},[533,41765,41766],{"class":625},"0.04",[533,41768,637],{"class":543},[533,41770,41771,41774,41777,41779,41782],{"class":535,"line":11372},[533,41772,41773],{"class":543},"    cbar.",[533,41775,41776],{"class":560},"set_label",[533,41778,615],{"class":543},[533,41780,41781],{"class":621},"\"Wigner value\"",[533,41783,637],{"class":543},[533,41785,41786],{"class":535,"line":11385},[533,41787,891],{"emptyLinePlaceholder":790},[533,41789,41790,41792,41794,41796,41799],{"class":535,"line":11390},[533,41791,27134],{"class":543},[533,41793,19871],{"class":560},[533,41795,615],{"class":543},[533,41797,41798],{"class":621},"\"φ (radians)\"",[533,41800,637],{"class":543},[533,41802,41803,41805,41807,41809,41812],{"class":535,"line":11402},[533,41804,27134],{"class":543},[533,41806,19885],{"class":560},[533,41808,615],{"class":543},[533,41810,41811],{"class":621},"\"θ (radians)\"",[533,41813,637],{"class":543},[533,41815,41816,41819,41822,41824,41827,41829,41832,41835,41838,41840,41843],{"class":535,"line":11407},[533,41817,41818],{"class":560},"    add_title_inside",[533,41820,41821],{"class":543},"(ax, ",[533,41823,618],{"class":539},[533,41825,41826],{"class":621},"\"Wigner — ",[533,41828,626],{"class":625},[533,41830,41831],{"class":543},"axis.",[533,41833,41834],{"class":560},"upper",[533,41836,41837],{"class":543},"()",[533,41839,632],{"class":625},[533,41841,41842],{"class":621}," rotation\"",[533,41844,637],{"class":543},[533,41846,41847],{"class":535,"line":11412},[533,41848,891],{"emptyLinePlaceholder":790},[533,41850,41851,41854,41856,41858,41860,41863,41865,41867,41869,41872,41874,41876],{"class":535,"line":11418},[533,41852,41853],{"class":543},"    info ",[533,41855,554],{"class":553},[533,41857,41035],{"class":560},[533,41859,41821],{"class":543},[533,41861,41862],{"class":621},"\"\"",[533,41864,1133],{"class":543},[533,41866,40759],{"class":567},[533,41868,554],{"class":553},[533,41870,41871],{"class":543},"info_loc, ",[533,41873,41152],{"class":567},[533,41875,554],{"class":553},[533,41877,41878],{"class":543},"info_fontsize,\n",[533,41880,41881,41884,41886],{"class":535,"line":11423},[533,41882,41883],{"class":567},"                        wrap",[533,41885,554],{"class":553},[533,41887,41888],{"class":543},"wrap_chars)\n",[533,41890,41891],{"class":535,"line":11467},[533,41892,891],{"emptyLinePlaceholder":790},[533,41894,41895,41898,41901,41903,41906,41908,41910],{"class":535,"line":11473},[533,41896,41897],{"class":539},"    def",[533,41899,41900],{"class":560}," update",[533,41902,615],{"class":543},[533,41904,41905],{"class":1762},"k",[533,41907,1389],{"class":543},[533,41909,4175],{"class":553},[533,41911,1771],{"class":543},[533,41913,41914,41917,41919,41922,41924,41927,41929,41931,41933,41935,41938],{"class":535,"line":11488},[533,41915,41916],{"class":543},"        ang ",[533,41918,554],{"class":553},[533,41920,41921],{"class":543}," (k ",[533,41923,2941],{"class":553},[533,41925,41926],{"class":543}," (frames ",[533,41928,2514],{"class":553},[533,41930,6353],{"class":625},[533,41932,11986],{"class":543},[533,41934,2469],{"class":553},[533,41936,41937],{"class":543}," np.pi  ",[533,41939,41940],{"class":593},"# 0 → π\n",[533,41942,41943,41946,41948,41950,41953,41955,41958,41960],{"class":535,"line":11505},[533,41944,41945],{"class":543},"        r ",[533,41947,554],{"class":553},[533,41949,39964],{"class":560},[533,41951,41952],{"class":543},"(axis.",[533,41954,39880],{"class":560},[533,41956,41957],{"class":543},"(), ang) ",[533,41959,5911],{"class":553},[533,41961,41962],{"class":543}," r0\n",[533,41964,41965,41968,41971,41973,41976],{"class":535,"line":11518},[533,41966,41967],{"class":543},"        im.",[533,41969,41970],{"class":560},"set_data",[533,41972,615],{"class":543},[533,41974,41975],{"class":560},"spin_wigner_qubit",[533,41977,41978],{"class":543},"(r, ngrid))\n",[533,41980,41981,41984,41987,41989,41991,41994,41996,41999,42002,42004,42007,42009,42012,42014,42016,42018,42021,42023,42025,42028,42030,42032],{"class":535,"line":11523},[533,41982,41983],{"class":543},"        info.",[533,41985,41986],{"class":560},"set_text",[533,41988,615],{"class":543},[533,41990,618],{"class":539},[533,41992,41993],{"class":621},"\"θ = ",[533,41995,626],{"class":625},[533,41997,41998],{"class":543},"ang",[533,42000,42001],{"class":539},":.3f",[533,42003,632],{"class":625},[533,42005,42006],{"class":621}," rad",[533,42008,7117],{"class":553},[533,42010,42011],{"class":621},"frame ",[533,42013,626],{"class":625},[533,42015,41905],{"class":543},[533,42017,6350],{"class":553},[533,42019,42020],{"class":625},"1}",[533,42022,2941],{"class":621},[533,42024,626],{"class":625},[533,42026,42027],{"class":543},"frames",[533,42029,632],{"class":625},[533,42031,439],{"class":621},[533,42033,637],{"class":543},[533,42035,42036,42038],{"class":535,"line":11555},[533,42037,4169],{"class":539},[533,42039,42040],{"class":543}," (im, info)\n",[533,42042,42043],{"class":535,"line":11561},[533,42044,891],{"emptyLinePlaceholder":790},[533,42046,42047,42050,42052,42055,42058,42060,42062,42065,42068,42070,42073,42075,42078,42080,42082],{"class":535,"line":11577},[533,42048,42049],{"class":543},"    anim ",[533,42051,554],{"class":553},[533,42053,42054],{"class":560}," FuncAnimation",[533,42056,42057],{"class":543},"(fig, update, ",[533,42059,42027],{"class":567},[533,42061,554],{"class":553},[533,42063,42064],{"class":543},"frames, ",[533,42066,42067],{"class":567},"interval",[533,42069,554],{"class":553},[533,42071,42072],{"class":625},"60",[533,42074,1133],{"class":543},[533,42076,42077],{"class":567},"blit",[533,42079,554],{"class":553},[533,42081,1930],{"class":625},[533,42083,637],{"class":543},[533,42085,42086,42089,42092,42094,42097,42099,42101,42103,42106,42108,42110],{"class":535,"line":11600},[533,42087,42088],{"class":543},"    out_path.parent.",[533,42090,42091],{"class":560},"mkdir",[533,42093,615],{"class":543},[533,42095,42096],{"class":567},"parents",[533,42098,554],{"class":553},[533,42100,1958],{"class":625},[533,42102,1133],{"class":543},[533,42104,42105],{"class":567},"exist_ok",[533,42107,554],{"class":553},[533,42109,1958],{"class":625},[533,42111,637],{"class":543},[533,42113,42114,42117,42120,42123,42126,42128,42131,42133,42136,42138,42141,42143],{"class":535,"line":11621},[533,42115,42116],{"class":543},"    anim.",[533,42118,42119],{"class":560},"save",[533,42121,42122],{"class":543},"(out_path.",[533,42124,42125],{"class":560},"as_posix",[533,42127,13473],{"class":543},[533,42129,42130],{"class":567},"writer",[533,42132,554],{"class":553},[533,42134,42135],{"class":560},"PillowWriter",[533,42137,615],{"class":543},[533,42139,42140],{"class":567},"fps",[533,42142,554],{"class":553},[533,42144,42145],{"class":543},"fps),\n",[533,42147,42148,42151,42153,42155,42158,42160,42162],{"class":535,"line":11637},[533,42149,42150],{"class":567},"              savefig_kwargs",[533,42152,41174],{"class":553},[533,42154,615],{"class":543},[533,42156,42157],{"class":567},"facecolor",[533,42159,554],{"class":553},[533,42161,41194],{"class":621},[533,42163,1937],{"class":543},[533,42165,42166,42169,42172],{"class":535,"line":11672},[533,42167,42168],{"class":543},"    plt.",[533,42170,42171],{"class":560},"close",[533,42173,42174],{"class":543},"(fig)\n",[533,42176,42177,42179],{"class":535,"line":11689},[533,42178,1880],{"class":539},[533,42180,42181],{"class":543}," out_path\n",[533,42183,42184],{"class":535,"line":11697},[533,42185,891],{"emptyLinePlaceholder":790},[533,42187,42188],{"class":535,"line":11734},[533,42189,891],{"emptyLinePlaceholder":790},[533,42191,42192],{"class":535,"line":11766},[533,42193,42194],{"class":593},"# ---------------------------- Run X, Y, Z animations --------------------------\n",[533,42196,42197,42200,42202,42204,42207],{"class":535,"line":11806},[533,42198,42199],{"class":543},"knobs ",[533,42201,554],{"class":553},[533,42203,39391],{"class":560},[533,42205,42206],{"class":543},"(  ",[533,42208,42209],{"class":593},"# tweak if desired\n",[533,42211,42212,42215,42217,42219,42221,42223,42225,42227,42229],{"class":535,"line":11826},[533,42213,42214],{"class":567},"    gate_axes",[533,42216,554],{"class":553},[533,42218,615],{"class":543},[533,42220,39494],{"class":621},[533,42222,1133],{"class":543},[533,42224,39499],{"class":621},[533,42226,1133],{"class":543},[533,42228,39504],{"class":621},[533,42230,19687],{"class":543},[533,42232,42233,42236,42238,42241],{"class":535,"line":11831},[533,42234,42235],{"class":567},"    initial_state",[533,42237,554],{"class":553},[533,42239,42240],{"class":621},"\"+z\"",[533,42242,1549],{"class":543},[533,42244,42245,42248,42250,42252,42255],{"class":535,"line":11867},[533,42246,42247],{"class":567},"    frames",[533,42249,554],{"class":553},[533,42251,7549],{"class":625},[533,42253,42254],{"class":543},",                ",[533,42256,42257],{"class":593},"# raise to 48 for smoother motion\n",[533,42259,42260,42263,42265,42268,42270,42272,42274,42277,42280],{"class":535,"line":11873},[533,42261,42262],{"class":567},"    n_theta",[533,42264,554],{"class":553},[533,42266,42267],{"class":625},"80",[533,42269,1133],{"class":543},[533,42271,40482],{"class":567},[533,42273,554],{"class":553},[533,42275,42276],{"class":625},"160",[533,42278,42279],{"class":543},",    ",[533,42281,42282],{"class":593},"# raise to 120×240 for more detail\n",[533,42284,42285,42288,42290,42292],{"class":535,"line":11886},[533,42286,42287],{"class":567},"    fps",[533,42289,554],{"class":553},[533,42291,17468],{"class":625},[533,42293,1549],{"class":543},[533,42295,42296,42299,42301,42304],{"class":535,"line":11943},[533,42297,42298],{"class":567},"    out_dir",[533,42300,554],{"class":553},[533,42302,42303],{"class":621},"\"\u002Fcontent\"",[533,42305,1549],{"class":543},[533,42307,42308,42311,42313,42315,42317,42319,42321],{"class":535,"line":12001},[533,42309,42310],{"class":567},"    figsize",[533,42312,554],{"class":553},[533,42314,615],{"class":543},[533,42316,39247],{"class":625},[533,42318,1133],{"class":543},[533,42320,39252],{"class":625},[533,42322,19687],{"class":543},[533,42324,42325,42328,42330,42333,42335,42338,42340,42342,42344,42347,42349,42352],{"class":535,"line":12009},[533,42326,42327],{"class":567},"    info_loc",[533,42329,554],{"class":553},[533,42331,42332],{"class":621},"\"ul\"",[533,42334,1133],{"class":543},[533,42336,42337],{"class":567},"info_fontsize",[533,42339,554],{"class":553},[533,42341,19804],{"class":625},[533,42343,1133],{"class":543},[533,42345,42346],{"class":567},"wrap_chars",[533,42348,554],{"class":553},[533,42350,42351],{"class":625},"42",[533,42353,1549],{"class":543},[533,42355,42356],{"class":535,"line":12014},[533,42357,637],{"class":543},[533,42359,42360],{"class":535,"line":12033},[533,42361,891],{"emptyLinePlaceholder":790},[533,42363,42364,42367,42369,42371],{"class":535,"line":12039},[533,42365,42366],{"class":543},"r0 ",[533,42368,554],{"class":553},[533,42370,39692],{"class":560},[533,42372,42373],{"class":543},"(knobs.initial_state, knobs.custom_r)\n",[533,42375,42376,42379,42381],{"class":535,"line":12062},[533,42377,42378],{"class":543},"outs ",[533,42380,554],{"class":553},[533,42382,42383],{"class":543}," []\n",[533,42385,42386,42388,42391,42393],{"class":535,"line":12067},[533,42387,3180],{"class":539},[533,42389,42390],{"class":543}," axname ",[533,42392,2786],{"class":539},[533,42394,42395],{"class":543}," knobs.gate_axes:\n",[533,42397,42398,42401,42403,42406,42409,42411,42414,42417,42419,42422,42424],{"class":535,"line":12075},[533,42399,42400],{"class":543},"    path ",[533,42402,554],{"class":553},[533,42404,42405],{"class":560}," Path",[533,42407,42408],{"class":543},"(knobs.out_dir) ",[533,42410,2941],{"class":553},[533,42412,42413],{"class":539}," f",[533,42415,42416],{"class":621},"\"wigner_pauli_",[533,42418,626],{"class":625},[533,42420,42421],{"class":543},"axname",[533,42423,632],{"class":625},[533,42425,42426],{"class":621},".gif\"\n",[533,42428,42429,42432,42434],{"class":535,"line":12088},[533,42430,42431],{"class":543},"    outs.",[533,42433,6216],{"class":560},[533,42435,1503],{"class":543},[533,42437,42438,42441],{"class":535,"line":12101},[533,42439,42440],{"class":560},"        animate_wigner_pauli",[533,42442,42443],{"class":543},"(axname, r0, knobs.frames,\n",[533,42445,42446],{"class":535,"line":12108},[533,42447,42448],{"class":543},"                             knobs.n_theta, knobs.n_phi, knobs.fps,\n",[533,42450,42451],{"class":535,"line":12119},[533,42452,42453],{"class":543},"                             knobs.figsize, knobs.info_loc,\n",[533,42455,42456],{"class":535,"line":12130},[533,42457,42458],{"class":543},"                             knobs.info_fontsize, knobs.wrap_chars,\n",[533,42460,42461],{"class":535,"line":12135},[533,42462,42463],{"class":543},"                             path)\n",[533,42465,42466],{"class":535,"line":12140},[533,42467,12340],{"class":543},[533,42469,42470],{"class":535,"line":12146},[533,42471,891],{"emptyLinePlaceholder":790},[533,42473,42474],{"class":535,"line":12151},[533,42475,42476],{"class":593},"# Display inline\n",[533,42478,42479,42481,42484,42486],{"class":535,"line":12201},[533,42480,3180],{"class":539},[533,42482,42483],{"class":543}," p ",[533,42485,2786],{"class":539},[533,42487,42488],{"class":543}," outs:\n",[533,42490,42491,42494,42496,42499,42501,42503,42506],{"class":535,"line":12210},[533,42492,42493],{"class":560},"    display",[533,42495,615],{"class":543},[533,42497,42498],{"class":560},"Image",[533,42500,615],{"class":543},[533,42502,1418],{"class":567},[533,42504,42505],{"class":553},"=str",[533,42507,42508],{"class":543},"(p)))\n",[533,42510,42511,42513,42515,42518],{"class":535,"line":12256},[533,42512,612],{"class":553},[533,42514,615],{"class":543},[533,42516,42517],{"class":621},"\"Saved:\"",[533,42519,42520],{"class":543},", p)\n",[524,42522,42525],{"className":42523,"code":42524,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner_pauli_x.gif\n",[57,42526,42524],{"__ignoreMap":529},[524,42528,42531],{"className":42529,"code":42530,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner_pauli_y.gif\n",[57,42532,42530],{"__ignoreMap":529},[524,42534,42537],{"className":42535,"code":42536,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner_pauli_z.gif\n",[57,42538,42536],{"__ignoreMap":529},[2175,42540],{"alt":14066,"src":42541},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-01.webp",[2175,42543],{"alt":14070,"src":42544},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-02.webp",[2175,42546],{"alt":14074,"src":42547},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-03.webp",[524,42549,42551],{"className":526,"code":42550,"language":528,"meta":529,"style":529},"# @title Cell 4 — Custom axis–angle gate (example: 45° about y)\nfrom pathlib import Path\n\ndef animate_wigner_custom(axis_vec: Tuple[float, float, float],\n                          angle_deg: float,\n                          r0: np.ndarray,\n                          frames: int,\n                          n_theta: int,\n                          n_phi: int,\n                          fps: int,\n                          figsize: Tuple[float, float],\n                          info_loc: str,\n                          info_fontsize: int,\n                          wrap_chars: int,\n                          out_path: Path) -> Path:\n    \"\"\"Animate Wigner under an arbitrary axis–angle rotation 0 → angle_deg.\"\"\"\n    assert frames >= 2, \"frames must be ≥ 2\"\n    ngrid = n_grid(n_theta, n_phi)\n    w_min = 0.5 - (np.sqrt(3.0) \u002F 2.0)\n    w_max = 0.5 + (np.sqrt(3.0) \u002F 2.0)\n    extent = (0.0, 2.0 * np.pi, 0.0, np.pi)\n\n    fig, ax = plt.subplots(figsize=figsize, constrained_layout=True)\n    im = ax.imshow(np.zeros((n_theta, n_phi)), origin=\"lower\", extent=extent,\n                   vmin=w_min, vmax=w_max, aspect=\"auto\")\n    cbar = fig.colorbar(im, ax=ax, fraction=0.046, pad=0.04)\n    cbar.set_label(\"Wigner value\")\n\n    ax.set_xlabel(\"φ (radians)\")\n    ax.set_ylabel(\"θ (radians)\")\n    add_title_inside(ax, \"Custom rotation\")\n\n    info = add_info_box(ax, \"\", loc=info_loc, fontsize=info_fontsize,\n                        wrap=wrap_chars)\n\n    def update(k: int):\n        ang = (k \u002F (frames - 1)) * np.deg2rad(angle_deg)\n        R = rotation_matrix_axis(axis_vec, ang)\n        r = R @ r0\n        im.set_data(spin_wigner_qubit(r, ngrid))\n        info.set_text(\n            f\"axis = ({axis_vec[0]:.2f}, {axis_vec[1]:.2f}, {axis_vec[2]:.2f})\\n\"\n            f\"θ = {np.rad2deg(ang):.1f}° \u002F {angle_deg:.1f}°\"\n        )\n        return (im, info)\n\n    anim = FuncAnimation(fig, update, frames=frames, interval=60, blit=False)\n    out_path.parent.mkdir(parents=True, exist_ok=True)\n    anim.save(out_path.as_posix(), writer=PillowWriter(fps=fps),\n              savefig_kwargs=dict(facecolor=\"white\"))\n    plt.close(fig)\n    return out_path\n\n\n# Example: 45° about the y-axis, starting from |+z⟩\ncustom_out = Path(knobs.out_dir) \u002F \"wigner_custom_y45.gif\"\nanimate_wigner_custom(\n    axis_vec=(0.0, 1.0, 0.0),\n    angle_deg=45.0,\n    r0=r0,\n    frames=24,                 # raise to 48 if you prefer\n    n_theta=80, n_phi=160,\n    fps=20,\n    figsize=knobs.figsize,\n    info_loc=knobs.info_loc, info_fontsize=knobs.info_fontsize,\n    wrap_chars=knobs.wrap_chars,\n    out_path=custom_out,\n)\n\ndisplay(Image(filename=str(custom_out)))\nprint(\"Saved:\", custom_out)\n",[57,42552,42553,42558,42568,42572,42597,42608,42615,42626,42637,42648,42659,42674,42685,42696,42707,42714,42719,42733,42743,42769,42795,42817,42821,42847,42877,42899,42933,42945,42949,42961,42973,42984,42988,43014,43022,43026,43042,43070,43082,43095,43107,43115,43172,43208,43213,43219,43223,43255,43279,43305,43321,43329,43335,43339,43343,43348,43364,43371,43392,43404,43414,43428,43446,43456,43465,43481,43491,43501,43505,43509,43527],{"__ignoreMap":529},[533,42554,42555],{"class":535,"line":536},[533,42556,42557],{"class":593},"# @title Cell 4 — Custom axis–angle gate (example: 45° about y)\n",[533,42559,42560,42562,42564,42566],{"class":535,"line":547},[533,42561,877],{"class":539},[533,42563,39301],{"class":543},[533,42565,883],{"class":539},[533,42567,39306],{"class":543},[533,42569,42570],{"class":535,"line":575},[533,42571,891],{"emptyLinePlaceholder":790},[533,42573,42574,42576,42579,42581,42583,42585,42587,42589,42591,42593,42595],{"class":535,"line":590},[533,42575,1754],{"class":539},[533,42577,42578],{"class":560}," animate_wigner_custom",[533,42580,615],{"class":543},[533,42582,40205],{"class":1762},[533,42584,39711],{"class":543},[533,42586,11186],{"class":553},[533,42588,1133],{"class":543},[533,42590,11186],{"class":553},[533,42592,1133],{"class":543},[533,42594,11186],{"class":553},[533,42596,1533],{"class":543},[533,42598,42599,42602,42604,42606],{"class":535,"line":597},[533,42600,42601],{"class":1762},"                          angle_deg",[533,42603,1389],{"class":543},[533,42605,11186],{"class":553},[533,42607,1549],{"class":543},[533,42609,42610,42613],{"class":535,"line":603},[533,42611,42612],{"class":1762},"                          r0",[533,42614,41421],{"class":543},[533,42616,42617,42620,42622,42624],{"class":535,"line":609},[533,42618,42619],{"class":1762},"                          frames",[533,42621,1389],{"class":543},[533,42623,4175],{"class":553},[533,42625,1549],{"class":543},[533,42627,42628,42631,42633,42635],{"class":535,"line":640},[533,42629,42630],{"class":1762},"                          n_theta",[533,42632,1389],{"class":543},[533,42634,4175],{"class":553},[533,42636,1549],{"class":543},[533,42638,42639,42642,42644,42646],{"class":535,"line":646},[533,42640,42641],{"class":1762},"                          n_phi",[533,42643,1389],{"class":543},[533,42645,4175],{"class":553},[533,42647,1549],{"class":543},[533,42649,42650,42653,42655,42657],{"class":535,"line":658},[533,42651,42652],{"class":1762},"                          fps",[533,42654,1389],{"class":543},[533,42656,4175],{"class":553},[533,42658,1549],{"class":543},[533,42660,42661,42664,42666,42668,42670,42672],{"class":535,"line":680},[533,42662,42663],{"class":1762},"                          figsize",[533,42665,39711],{"class":543},[533,42667,11186],{"class":553},[533,42669,1133],{"class":543},[533,42671,11186],{"class":553},[533,42673,1533],{"class":543},[533,42675,42676,42679,42681,42683],{"class":535,"line":1536},[533,42677,42678],{"class":1762},"                          info_loc",[533,42680,1389],{"class":543},[533,42682,39480],{"class":553},[533,42684,1549],{"class":543},[533,42686,42687,42690,42692,42694],{"class":535,"line":1552},[533,42688,42689],{"class":1762},"                          info_fontsize",[533,42691,1389],{"class":543},[533,42693,4175],{"class":553},[533,42695,1549],{"class":543},[533,42697,42698,42701,42703,42705],{"class":535,"line":1911},[533,42699,42700],{"class":1762},"                          wrap_chars",[533,42702,1389],{"class":543},[533,42704,4175],{"class":553},[533,42706,1549],{"class":543},[533,42708,42709,42712],{"class":535,"line":1940},[533,42710,42711],{"class":1762},"                          out_path",[533,42713,41521],{"class":543},[533,42715,42716],{"class":535,"line":1968},[533,42717,42718],{"class":621},"    \"\"\"Animate Wigner under an arbitrary axis–angle rotation 0 → angle_deg.\"\"\"\n",[533,42720,42721,42723,42725,42727,42729,42731],{"class":535,"line":1995},[533,42722,41531],{"class":539},[533,42724,41534],{"class":543},[533,42726,15427],{"class":553},[533,42728,11938],{"class":625},[533,42730,1133],{"class":543},[533,42732,41543],{"class":621},[533,42734,42735,42737,42739,42741],{"class":535,"line":4164},[533,42736,41548],{"class":543},[533,42738,554],{"class":553},[533,42740,40468],{"class":560},[533,42742,41555],{"class":543},[533,42744,42745,42747,42749,42751,42753,42755,42757,42759,42761,42763,42765,42767],{"class":535,"line":4199},[533,42746,41560],{"class":543},[533,42748,554],{"class":553},[533,42750,12264],{"class":625},[533,42752,11221],{"class":553},[533,42754,16244],{"class":543},[533,42756,2262],{"class":560},[533,42758,615],{"class":543},[533,42760,40687],{"class":625},[533,42762,7047],{"class":543},[533,42764,2941],{"class":553},[533,42766,2251],{"class":625},[533,42768,637],{"class":543},[533,42770,42771,42773,42775,42777,42779,42781,42783,42785,42787,42789,42791,42793],{"class":535,"line":4206},[533,42772,41587],{"class":543},[533,42774,554],{"class":553},[533,42776,12264],{"class":625},[533,42778,14257],{"class":553},[533,42780,16244],{"class":543},[533,42782,2262],{"class":560},[533,42784,615],{"class":543},[533,42786,40687],{"class":625},[533,42788,7047],{"class":543},[533,42790,2941],{"class":553},[533,42792,2251],{"class":625},[533,42794,637],{"class":543},[533,42796,42797,42799,42801,42803,42805,42807,42809,42811,42813,42815],{"class":535,"line":4214},[533,42798,41614],{"class":543},[533,42800,554],{"class":553},[533,42802,5037],{"class":543},[533,42804,2229],{"class":625},[533,42806,1133],{"class":543},[533,42808,11726],{"class":625},[533,42810,2254],{"class":553},[533,42812,41629],{"class":543},[533,42814,2229],{"class":625},[533,42816,41634],{"class":543},[533,42818,42819],{"class":535,"line":11296},[533,42820,891],{"emptyLinePlaceholder":790},[533,42822,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845],{"class":535,"line":11302},[533,42824,41643],{"class":543},[533,42826,554],{"class":553},[533,42828,19777],{"class":543},[533,42830,19780],{"class":560},[533,42832,615],{"class":543},[533,42834,12901],{"class":567},[533,42836,554],{"class":553},[533,42838,41658],{"class":543},[533,42840,27085],{"class":567},[533,42842,554],{"class":553},[533,42844,1958],{"class":625},[533,42846,637],{"class":543},[533,42848,42849,42851,42853,42855,42857,42859,42861,42863,42865,42867,42869,42871,42873,42875],{"class":535,"line":11332},[533,42850,41671],{"class":543},[533,42852,554],{"class":553},[533,42854,41124],{"class":543},[533,42856,13507],{"class":560},[533,42858,5967],{"class":543},[533,42860,41682],{"class":560},[533,42862,41685],{"class":543},[533,42864,13513],{"class":567},[533,42866,554],{"class":553},[533,42868,13518],{"class":621},[533,42870,1133],{"class":543},[533,42872,13533],{"class":567},[533,42874,554],{"class":553},[533,42876,41700],{"class":543},[533,42878,42879,42881,42883,42885,42887,42889,42891,42893,42895,42897],{"class":535,"line":11345},[533,42880,41705],{"class":567},[533,42882,554],{"class":553},[533,42884,41710],{"class":543},[533,42886,41713],{"class":567},[533,42888,554],{"class":553},[533,42890,41718],{"class":543},[533,42892,13523],{"class":567},[533,42894,554],{"class":553},[533,42896,13528],{"class":621},[533,42898,637],{"class":543},[533,42900,42901,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42923,42925,42927,42929,42931],{"class":535,"line":11372},[533,42902,41731],{"class":543},[533,42904,554],{"class":553},[533,42906,41736],{"class":543},[533,42908,13556],{"class":560},[533,42910,41741],{"class":543},[533,42912,12651],{"class":567},[533,42914,554],{"class":553},[533,42916,41748],{"class":543},[533,42918,41751],{"class":567},[533,42920,554],{"class":553},[533,42922,41756],{"class":625},[533,42924,1133],{"class":543},[533,42926,41761],{"class":567},[533,42928,554],{"class":553},[533,42930,41766],{"class":625},[533,42932,637],{"class":543},[533,42934,42935,42937,42939,42941,42943],{"class":535,"line":11385},[533,42936,41773],{"class":543},[533,42938,41776],{"class":560},[533,42940,615],{"class":543},[533,42942,41781],{"class":621},[533,42944,637],{"class":543},[533,42946,42947],{"class":535,"line":11390},[533,42948,891],{"emptyLinePlaceholder":790},[533,42950,42951,42953,42955,42957,42959],{"class":535,"line":11402},[533,42952,27134],{"class":543},[533,42954,19871],{"class":560},[533,42956,615],{"class":543},[533,42958,41798],{"class":621},[533,42960,637],{"class":543},[533,42962,42963,42965,42967,42969,42971],{"class":535,"line":11407},[533,42964,27134],{"class":543},[533,42966,19885],{"class":560},[533,42968,615],{"class":543},[533,42970,41811],{"class":621},[533,42972,637],{"class":543},[533,42974,42975,42977,42979,42982],{"class":535,"line":11412},[533,42976,41818],{"class":560},[533,42978,41821],{"class":543},[533,42980,42981],{"class":621},"\"Custom rotation\"",[533,42983,637],{"class":543},[533,42985,42986],{"class":535,"line":11418},[533,42987,891],{"emptyLinePlaceholder":790},[533,42989,42990,42992,42994,42996,42998,43000,43002,43004,43006,43008,43010,43012],{"class":535,"line":11423},[533,42991,41853],{"class":543},[533,42993,554],{"class":553},[533,42995,41035],{"class":560},[533,42997,41821],{"class":543},[533,42999,41862],{"class":621},[533,43001,1133],{"class":543},[533,43003,40759],{"class":567},[533,43005,554],{"class":553},[533,43007,41871],{"class":543},[533,43009,41152],{"class":567},[533,43011,554],{"class":553},[533,43013,41878],{"class":543},[533,43015,43016,43018,43020],{"class":535,"line":11467},[533,43017,41883],{"class":567},[533,43019,554],{"class":553},[533,43021,41888],{"class":543},[533,43023,43024],{"class":535,"line":11473},[533,43025,891],{"emptyLinePlaceholder":790},[533,43027,43028,43030,43032,43034,43036,43038,43040],{"class":535,"line":11488},[533,43029,41897],{"class":539},[533,43031,41900],{"class":560},[533,43033,615],{"class":543},[533,43035,41905],{"class":1762},[533,43037,1389],{"class":543},[533,43039,4175],{"class":553},[533,43041,1771],{"class":543},[533,43043,43044,43046,43048,43050,43052,43054,43056,43058,43060,43062,43064,43067],{"class":535,"line":11505},[533,43045,41916],{"class":543},[533,43047,554],{"class":553},[533,43049,41921],{"class":543},[533,43051,2941],{"class":553},[533,43053,41926],{"class":543},[533,43055,2514],{"class":553},[533,43057,6353],{"class":625},[533,43059,11986],{"class":543},[533,43061,2469],{"class":553},[533,43063,2911],{"class":543},[533,43065,43066],{"class":560},"deg2rad",[533,43068,43069],{"class":543},"(angle_deg)\n",[533,43071,43072,43075,43077,43079],{"class":535,"line":11518},[533,43073,43074],{"class":543},"        R ",[533,43076,554],{"class":553},[533,43078,40200],{"class":560},[533,43080,43081],{"class":543},"(axis_vec, ang)\n",[533,43083,43084,43086,43088,43091,43093],{"class":535,"line":11523},[533,43085,41945],{"class":543},[533,43087,554],{"class":553},[533,43089,43090],{"class":543}," R ",[533,43092,5911],{"class":553},[533,43094,41962],{"class":543},[533,43096,43097,43099,43101,43103,43105],{"class":535,"line":11555},[533,43098,41967],{"class":543},[533,43100,41970],{"class":560},[533,43102,615],{"class":543},[533,43104,41975],{"class":560},[533,43106,41978],{"class":543},[533,43108,43109,43111,43113],{"class":535,"line":11561},[533,43110,41983],{"class":543},[533,43112,41986],{"class":560},[533,43114,1503],{"class":543},[533,43116,43117,43120,43123,43125,43128,43130,43132,43135,43137,43139,43141,43143,43145,43147,43149,43151,43153,43155,43157,43159,43161,43163,43165,43167,43169],{"class":535,"line":11577},[533,43118,43119],{"class":539},"            f",[533,43121,43122],{"class":621},"\"axis = (",[533,43124,626],{"class":625},[533,43126,43127],{"class":543},"axis_vec[",[533,43129,1049],{"class":625},[533,43131,30516],{"class":543},[533,43133,43134],{"class":539},":.2f",[533,43136,632],{"class":625},[533,43138,1133],{"class":621},[533,43140,626],{"class":625},[533,43142,43127],{"class":543},[533,43144,1052],{"class":625},[533,43146,30516],{"class":543},[533,43148,43134],{"class":539},[533,43150,632],{"class":625},[533,43152,1133],{"class":621},[533,43154,626],{"class":625},[533,43156,43127],{"class":543},[533,43158,1140],{"class":625},[533,43160,30516],{"class":543},[533,43162,43134],{"class":539},[533,43164,632],{"class":625},[533,43166,2632],{"class":621},[533,43168,7117],{"class":553},[533,43170,43171],{"class":621},"\"\n",[533,43173,43174,43176,43178,43180,43183,43186,43189,43191,43193,43196,43198,43201,43203,43205],{"class":535,"line":11600},[533,43175,43119],{"class":539},[533,43177,41993],{"class":621},[533,43179,626],{"class":625},[533,43181,43182],{"class":543},"np.",[533,43184,43185],{"class":560},"rad2deg",[533,43187,43188],{"class":543},"(ang)",[533,43190,7135],{"class":539},[533,43192,632],{"class":625},[533,43194,43195],{"class":621},"° \u002F ",[533,43197,626],{"class":625},[533,43199,43200],{"class":543},"angle_deg",[533,43202,7135],{"class":539},[533,43204,632],{"class":625},[533,43206,43207],{"class":621},"°\"\n",[533,43209,43210],{"class":535,"line":11621},[533,43211,43212],{"class":543},"        )\n",[533,43214,43215,43217],{"class":535,"line":11637},[533,43216,4169],{"class":539},[533,43218,42040],{"class":543},[533,43220,43221],{"class":535,"line":11672},[533,43222,891],{"emptyLinePlaceholder":790},[533,43224,43225,43227,43229,43231,43233,43235,43237,43239,43241,43243,43245,43247,43249,43251,43253],{"class":535,"line":11689},[533,43226,42049],{"class":543},[533,43228,554],{"class":553},[533,43230,42054],{"class":560},[533,43232,42057],{"class":543},[533,43234,42027],{"class":567},[533,43236,554],{"class":553},[533,43238,42064],{"class":543},[533,43240,42067],{"class":567},[533,43242,554],{"class":553},[533,43244,42072],{"class":625},[533,43246,1133],{"class":543},[533,43248,42077],{"class":567},[533,43250,554],{"class":553},[533,43252,1930],{"class":625},[533,43254,637],{"class":543},[533,43256,43257,43259,43261,43263,43265,43267,43269,43271,43273,43275,43277],{"class":535,"line":11697},[533,43258,42088],{"class":543},[533,43260,42091],{"class":560},[533,43262,615],{"class":543},[533,43264,42096],{"class":567},[533,43266,554],{"class":553},[533,43268,1958],{"class":625},[533,43270,1133],{"class":543},[533,43272,42105],{"class":567},[533,43274,554],{"class":553},[533,43276,1958],{"class":625},[533,43278,637],{"class":543},[533,43280,43281,43283,43285,43287,43289,43291,43293,43295,43297,43299,43301,43303],{"class":535,"line":11734},[533,43282,42116],{"class":543},[533,43284,42119],{"class":560},[533,43286,42122],{"class":543},[533,43288,42125],{"class":560},[533,43290,13473],{"class":543},[533,43292,42130],{"class":567},[533,43294,554],{"class":553},[533,43296,42135],{"class":560},[533,43298,615],{"class":543},[533,43300,42140],{"class":567},[533,43302,554],{"class":553},[533,43304,42145],{"class":543},[533,43306,43307,43309,43311,43313,43315,43317,43319],{"class":535,"line":11766},[533,43308,42150],{"class":567},[533,43310,41174],{"class":553},[533,43312,615],{"class":543},[533,43314,42157],{"class":567},[533,43316,554],{"class":553},[533,43318,41194],{"class":621},[533,43320,1937],{"class":543},[533,43322,43323,43325,43327],{"class":535,"line":11806},[533,43324,42168],{"class":543},[533,43326,42171],{"class":560},[533,43328,42174],{"class":543},[533,43330,43331,43333],{"class":535,"line":11826},[533,43332,1880],{"class":539},[533,43334,42181],{"class":543},[533,43336,43337],{"class":535,"line":11831},[533,43338,891],{"emptyLinePlaceholder":790},[533,43340,43341],{"class":535,"line":11867},[533,43342,891],{"emptyLinePlaceholder":790},[533,43344,43345],{"class":535,"line":11873},[533,43346,43347],{"class":593},"# Example: 45° about the y-axis, starting from |+z⟩\n",[533,43349,43350,43353,43355,43357,43359,43361],{"class":535,"line":11886},[533,43351,43352],{"class":543},"custom_out ",[533,43354,554],{"class":553},[533,43356,42405],{"class":560},[533,43358,42408],{"class":543},[533,43360,2941],{"class":553},[533,43362,43363],{"class":621}," \"wigner_custom_y45.gif\"\n",[533,43365,43366,43369],{"class":535,"line":11943},[533,43367,43368],{"class":560},"animate_wigner_custom",[533,43370,1503],{"class":543},[533,43372,43373,43376,43378,43380,43382,43384,43386,43388,43390],{"class":535,"line":12001},[533,43374,43375],{"class":567},"    axis_vec",[533,43377,554],{"class":553},[533,43379,615],{"class":543},[533,43381,2229],{"class":625},[533,43383,1133],{"class":543},[533,43385,2239],{"class":625},[533,43387,1133],{"class":543},[533,43389,2229],{"class":625},[533,43391,19687],{"class":543},[533,43393,43394,43397,43399,43402],{"class":535,"line":12009},[533,43395,43396],{"class":567},"    angle_deg",[533,43398,554],{"class":553},[533,43400,43401],{"class":625},"45.0",[533,43403,1549],{"class":543},[533,43405,43406,43409,43411],{"class":535,"line":12014},[533,43407,43408],{"class":567},"    r0",[533,43410,554],{"class":553},[533,43412,43413],{"class":543},"r0,\n",[533,43415,43416,43418,43420,43422,43425],{"class":535,"line":12033},[533,43417,42247],{"class":567},[533,43419,554],{"class":553},[533,43421,7549],{"class":625},[533,43423,43424],{"class":543},",                 ",[533,43426,43427],{"class":593},"# raise to 48 if you prefer\n",[533,43429,43430,43432,43434,43436,43438,43440,43442,43444],{"class":535,"line":12039},[533,43431,42262],{"class":567},[533,43433,554],{"class":553},[533,43435,42267],{"class":625},[533,43437,1133],{"class":543},[533,43439,40482],{"class":567},[533,43441,554],{"class":553},[533,43443,42276],{"class":625},[533,43445,1549],{"class":543},[533,43447,43448,43450,43452,43454],{"class":535,"line":12062},[533,43449,42287],{"class":567},[533,43451,554],{"class":553},[533,43453,17468],{"class":625},[533,43455,1549],{"class":543},[533,43457,43458,43460,43462],{"class":535,"line":12067},[533,43459,42310],{"class":567},[533,43461,554],{"class":553},[533,43463,43464],{"class":543},"knobs.figsize,\n",[533,43466,43467,43469,43471,43474,43476,43478],{"class":535,"line":12075},[533,43468,42327],{"class":567},[533,43470,554],{"class":553},[533,43472,43473],{"class":543},"knobs.info_loc, ",[533,43475,42337],{"class":567},[533,43477,554],{"class":553},[533,43479,43480],{"class":543},"knobs.info_fontsize,\n",[533,43482,43483,43486,43488],{"class":535,"line":12088},[533,43484,43485],{"class":567},"    wrap_chars",[533,43487,554],{"class":553},[533,43489,43490],{"class":543},"knobs.wrap_chars,\n",[533,43492,43493,43496,43498],{"class":535,"line":12101},[533,43494,43495],{"class":567},"    out_path",[533,43497,554],{"class":553},[533,43499,43500],{"class":543},"custom_out,\n",[533,43502,43503],{"class":535,"line":12108},[533,43504,637],{"class":543},[533,43506,43507],{"class":535,"line":12119},[533,43508,891],{"emptyLinePlaceholder":790},[533,43510,43511,43514,43516,43518,43520,43522,43524],{"class":535,"line":12130},[533,43512,43513],{"class":560},"display",[533,43515,615],{"class":543},[533,43517,42498],{"class":560},[533,43519,615],{"class":543},[533,43521,1418],{"class":567},[533,43523,42505],{"class":553},[533,43525,43526],{"class":543},"(custom_out)))\n",[533,43528,43529,43531,43533,43535],{"class":535,"line":12135},[533,43530,917],{"class":553},[533,43532,615],{"class":543},[533,43534,42517],{"class":621},[533,43536,43537],{"class":543},", custom_out)\n",[524,43539,43542],{"className":43540,"code":43541,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner_custom_y45.gif\n",[57,43543,43541],{"__ignoreMap":529},[2175,43545],{"alt":14078,"src":43546},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-04.webp",[12,43548,43549],{},"The next following scripts are for the 3D Wigner plots.",[524,43551,43553],{"className":526,"code":43552,"language":528,"meta":529,"style":529},"# @title Cell 5 — 3D Wigner animations for ALL Pauli gates (X, Y, Z)\n# PEP 8\u002F257 compliant. Stable: updates facecolors in place; no deleting artists.\n\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Tuple, Iterable\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom matplotlib.animation import FuncAnimation, PillowWriter\nfrom matplotlib.colors import Normalize\nfrom matplotlib.cm import ScalarMappable\nfrom IPython.display import Image, display\n\n\n@dataclass\nclass Knobs3D:\n    \"\"\"User controls for 3D Pauli-gate Wigner animations on a colored sphere.\n\n    Attributes:\n        initial_state: Starting Bloch eigenstate label or \"custom\".\n        custom_r: Custom Bloch vector if initial_state == \"custom\".\n        frames: Number of frames (≥ 2) for 0 → π rotation.\n        n_theta: Polar grid size for the sphere.\n        n_phi: Azimuth grid size for the sphere.\n        fps: GIF framerate.\n        elev: Camera elevation in degrees.\n        azim: Camera azimuth in degrees.\n        out_dir: Output directory (e.g., \"\u002Fcontent\" on Colab).\n        figsize: Figure size in inches (DPI set globally by rcParams).\n        info_fontsize: In-axes info text font size.\n    \"\"\"\n    initial_state: str = \"+z\"\n    custom_r: Tuple[float, float, float] = (0.0, 0.0, 1.0)\n    frames: int = 24\n    n_theta: int = 64\n    n_phi: int = 128\n    fps: int = 20\n    elev: float = 25.0\n    azim: float = -60.0\n    out_dir: str = \"\u002Fcontent\"\n    figsize: Tuple[float, float] = (6.4, 4.8)\n    info_fontsize: int = 9\n\n\n# ----------------------------- Helpers (self-contained) -----------------------------\ndef _bloch_vector(label: str, custom=(0.0, 0.0, 1.0)) -> np.ndarray:\n    mapping = {\n        \"+z\": (0.0, 0.0, 1.0), \"-z\": (0.0, 0.0, -1.0),\n        \"+x\": (1.0, 0.0, 0.0), \"-x\": (-1.0, 0.0, 0.0),\n        \"+y\": (0.0, 1.0, 0.0), \"-y\": (0.0, -1.0, 0.0),\n    }\n    r = np.asarray(mapping.get(label.lower(), custom), float)\n    nrm = np.linalg.norm(r) or 1.0\n    return r \u002F nrm\n\n\ndef _rotation_matrix(axis: str, angle: float) -> np.ndarray:\n    c, s = np.cos(angle), np.sin(angle)\n    if axis == \"x\":\n        return np.array([[1, 0, 0], [0, c, -s], [0, s, c]], float)\n    if axis == \"y\":\n        return np.array([[c, 0, s], [0, 1, 0], [-s, 0, c]], float)\n    if axis == \"z\":\n        return np.array([[c, -s, 0], [s, c, 0], [0, 0, 1]], float)\n    raise ValueError(\"axis must be 'x', 'y', or 'z'\")\n\n\ndef _n_grid(n_theta: int, n_phi: int):\n    \"\"\"Return (θ, φ, n) with n stacked as (3, n_theta, n_phi).\"\"\"\n    theta = np.linspace(0.0, np.pi, n_theta)\n    phi = np.linspace(0.0, 2.0 * np.pi, n_phi)\n    th, ph = np.meshgrid(theta, phi, indexing=\"ij\")\n    nx = np.sin(th) * np.cos(ph)\n    ny = np.sin(th) * np.sin(ph)\n    nz = np.cos(th)\n    n = np.stack((nx, ny, nz), axis=0)\n    return th, ph, n\n\n\ndef _wigner_qubit(r_vec: np.ndarray, n: np.ndarray) -> np.ndarray:\n    \"\"\"W(θ, φ) = 1\u002F2 + (√3\u002F2) * r·n on the (θ, φ) grid.\"\"\"\n    return 0.5 + (np.sqrt(3.0) \u002F 2.0) * (r_vec.reshape(3, 1, 1) * n).sum(axis=0)\n\n\ndef _animate_one_pauli(axis: str, k: Knobs3D) -> Path:\n    \"\"\"Render one 3D Wigner animation for a chosen Pauli axis; return output path.\"\"\"\n    r0 = _bloch_vector(k.initial_state, k.custom_r)\n    th, ph, n = _n_grid(k.n_theta, k.n_phi)\n\n    # Unit sphere geometry\n    X = np.sin(th) * np.cos(ph)\n    Y = np.sin(th) * np.sin(ph)\n    Z = np.cos(th)\n\n    # Fixed normalization (pure-state bounds) for constant color scale\n    w_min = 0.5 - (np.sqrt(3.0) \u002F 2.0)\n    w_max = 0.5 + (np.sqrt(3.0) \u002F 2.0)\n    norm = Normalize(vmin=w_min, vmax=w_max)\n    cmap = plt.get_cmap()\n    sm = ScalarMappable(norm=norm, cmap=cmap)\n    sm.set_array([])  # required for colorbar from a ScalarMappable\n\n    fig = plt.figure(figsize=k.figsize, constrained_layout=True)\n    ax = fig.add_subplot(111, projection=\"3d\")\n    ax.view_init(elev=k.elev, azim=k.azim)\n    if hasattr(ax, \"set_box_aspect\"):\n        ax.set_box_aspect((1, 1, 1))\n\n    # Initial facecolors (use cell-centered (M-1, N-1) colors for quads)\n    W0 = _wigner_qubit(_rotation_matrix(axis, 0.0) @ r0, n)\n    FC0 = cmap(norm(W0[:-1, :-1]))  # shape: (n_theta-1, n_phi-1, 4)\n\n    surf = ax.plot_surface(\n        X, Y, Z,\n        facecolors=FC0,\n        rstride=1, cstride=1,\n        antialiased=False, linewidth=0,\n        shade=False,  # use given facecolors directly\n    )\n\n    # Colorbar (bound to ScalarMappable using same norm+cmap)\n    cbar = fig.colorbar(sm, ax=ax, fraction=0.046, pad=0.04)\n    cbar.set_label(\"Wigner value\")\n\n    # Labels and in-axes title and info\n    ax.set_xlabel(\"x\")\n    ax.set_ylabel(\"y\")\n    ax.set_zlabel(\"z\")\n    title_txt = ax.text2D(\n        0.5, 0.98, f\"Wigner — {axis.upper()} rotation (3D sphere)\",\n        transform=ax.transAxes, ha=\"center\", va=\"top\", fontsize=11,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        zorder=6,\n    )\n    info_txt = ax.text2D(\n        0.02, 0.96, \"\", transform=ax.transAxes, ha=\"left\", va=\"top\",\n        fontsize=k.info_fontsize,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        zorder=6,\n    )\n\n    def update(frame: int):\n        angle = (frame \u002F (k.frames - 1)) * np.pi  # 0 → π\n        r_now = _rotation_matrix(axis, angle) @ r0\n        W_now = _wigner_qubit(r_now, n)\n        FC_now = cmap(norm(W_now[:-1, :-1]))        # (M-1, N-1, 4)\n        surf.set_facecolors(FC_now.reshape(-1, 4))  # update in place\n        info_txt.set_text(f\"θ = {angle:.3f} rad\\nframe {frame+1}\u002F{k.frames}\")\n        return (surf, info_txt, title_txt)\n\n    anim = FuncAnimation(fig, update, frames=k.frames, interval=60, blit=False)\n    out = Path(k.out_dir) \u002F f\"wigner3d_pauli_{axis}.gif\"\n    out.parent.mkdir(parents=True, exist_ok=True)\n    anim.save(out.as_posix(), writer=PillowWriter(fps=k.fps),\n              savefig_kwargs=dict(facecolor=\"white\"))\n    plt.close(fig)\n    return out\n\n\ndef animate_all_paulis_3d(k: Knobs3D,\n                          axes: Tuple[str, ...] = (\"x\", \"y\", \"z\")) -> Iterable[Path]:\n    \"\"\"Generate and display GIFs for all requested Pauli axes; yield file paths.\"\"\"\n    for axname in axes:\n        path = _animate_one_pauli(axname.lower(), k)\n        display(Image(filename=str(path)))\n        print(f\"Saved: {path}\")\n        yield path\n\n\n# ------------------------------ Run all three gates ------------------------------\nK3D = Knobs3D(  # adjust as desired\n    initial_state=\"+z\",\n    frames=24, n_theta=64, n_phi=128, fps=20,\n    elev=25.0, azim=-60.0,\n    out_dir=\"\u002Fcontent\",\n    figsize=(6.4, 4.8),\n    info_fontsize=9,\n)\n\nlist(animate_all_paulis_3d(K3D, axes=(\"x\", \"y\", \"z\")))\n",[57,43554,43555,43560,43565,43569,43579,43583,43593,43603,43613,43617,43627,43637,43647,43659,43671,43681,43685,43689,43693,43702,43707,43711,43715,43720,43724,43729,43734,43739,43743,43748,43753,43758,43763,43768,43772,43782,43814,43824,43835,43846,43856,43868,43882,43892,43916,43926,43930,43934,43939,43975,43983,44019,44055,44091,44095,44121,44140,44150,44154,44158,44183,44199,44211,44249,44261,44299,44311,44349,44360,44364,44368,44393,44398,44414,44436,44456,44476,44496,44508,44529,44536,44540,44544,44561,44566,44627,44631,44635,44657,44662,44674,44686,44690,44695,44716,44737,44750,44754,44759,44785,44811,44837,44851,44877,44891,44895,44923,44951,44976,44990,45011,45015,45020,45046,45080,45084,45098,45103,45115,45135,45154,45169,45173,45177,45182,45217,45229,45233,45238,45250,45262,45275,45289,45319,45351,45391,45401,45405,45418,45457,45466,45506,45516,45520,45524,45541,45568,45584,45596,45628,45661,45709,45716,45720,45753,45779,45804,45832,45848,45856,45862,45866,45871,45886,45919,45925,45937,45955,45974,45997,46006,46011,46016,46022,46037,46048,46085,46107,46118,46135,46147,46152,46157],{"__ignoreMap":529},[533,43556,43557],{"class":535,"line":536},[533,43558,43559],{"class":593},"# @title Cell 5 — 3D Wigner animations for ALL Pauli gates (X, Y, Z)\n",[533,43561,43562],{"class":535,"line":547},[533,43563,43564],{"class":593},"# PEP 8\u002F257 compliant. Stable: updates facecolors in place; no deleting artists.\n",[533,43566,43567],{"class":535,"line":575},[533,43568,891],{"emptyLinePlaceholder":790},[533,43570,43571,43573,43575,43577],{"class":535,"line":590},[533,43572,877],{"class":539},[533,43574,39143],{"class":2387},[533,43576,39146],{"class":539},[533,43578,39149],{"class":543},[533,43580,43581],{"class":535,"line":597},[533,43582,891],{"emptyLinePlaceholder":790},[533,43584,43585,43587,43589,43591],{"class":535,"line":603},[533,43586,877],{"class":539},[533,43588,11097],{"class":543},[533,43590,883],{"class":539},[533,43592,11102],{"class":543},[533,43594,43595,43597,43599,43601],{"class":535,"line":609},[533,43596,877],{"class":539},[533,43598,39301],{"class":543},[533,43600,883],{"class":539},[533,43602,39306],{"class":543},[533,43604,43605,43607,43609,43611],{"class":535,"line":640},[533,43606,877],{"class":539},[533,43608,11109],{"class":543},[533,43610,883],{"class":539},[533,43612,39317],{"class":543},[533,43614,43615],{"class":535,"line":646},[533,43616,891],{"emptyLinePlaceholder":790},[533,43618,43619,43621,43623,43625],{"class":535,"line":658},[533,43620,883],{"class":539},[533,43622,11128],{"class":543},[533,43624,584],{"class":539},[533,43626,11133],{"class":543},[533,43628,43629,43631,43633,43635],{"class":535,"line":680},[533,43630,883],{"class":539},[533,43632,11140],{"class":543},[533,43634,584],{"class":539},[533,43636,11145],{"class":543},[533,43638,43639,43641,43643,43645],{"class":535,"line":1536},[533,43640,877],{"class":539},[533,43642,39355],{"class":543},[533,43644,883],{"class":539},[533,43646,39360],{"class":543},[533,43648,43649,43651,43654,43656],{"class":535,"line":1552},[533,43650,877],{"class":539},[533,43652,43653],{"class":543}," matplotlib.colors ",[533,43655,883],{"class":539},[533,43657,43658],{"class":543}," Normalize\n",[533,43660,43661,43663,43666,43668],{"class":535,"line":1911},[533,43662,877],{"class":539},[533,43664,43665],{"class":543}," matplotlib.cm ",[533,43667,883],{"class":539},[533,43669,43670],{"class":543}," ScalarMappable\n",[533,43672,43673,43675,43677,43679],{"class":535,"line":1940},[533,43674,877],{"class":539},[533,43676,39367],{"class":543},[533,43678,883],{"class":539},[533,43680,39372],{"class":543},[533,43682,43683],{"class":535,"line":1968},[533,43684,891],{"emptyLinePlaceholder":790},[533,43686,43687],{"class":535,"line":1995},[533,43688,891],{"emptyLinePlaceholder":790},[533,43690,43691],{"class":535,"line":4164},[533,43692,11168],{"class":560},[533,43694,43695,43697,43700],{"class":535,"line":4199},[533,43696,11173],{"class":539},[533,43698,43699],{"class":2393}," Knobs3D",[533,43701,544],{"class":543},[533,43703,43704],{"class":535,"line":4206},[533,43705,43706],{"class":621},"    \"\"\"User controls for 3D Pauli-gate Wigner animations on a colored sphere.\n",[533,43708,43709],{"class":535,"line":4214},[533,43710,891],{"emptyLinePlaceholder":790},[533,43712,43713],{"class":535,"line":11296},[533,43714,39407],{"class":621},[533,43716,43717],{"class":535,"line":11302},[533,43718,43719],{"class":621},"        initial_state: Starting Bloch eigenstate label or \"custom\".\n",[533,43721,43722],{"class":535,"line":11332},[533,43723,39422],{"class":621},[533,43725,43726],{"class":535,"line":11345},[533,43727,43728],{"class":621},"        frames: Number of frames (≥ 2) for 0 → π rotation.\n",[533,43730,43731],{"class":535,"line":11372},[533,43732,43733],{"class":621},"        n_theta: Polar grid size for the sphere.\n",[533,43735,43736],{"class":535,"line":11385},[533,43737,43738],{"class":621},"        n_phi: Azimuth grid size for the sphere.\n",[533,43740,43741],{"class":535,"line":11390},[533,43742,39442],{"class":621},[533,43744,43745],{"class":535,"line":11402},[533,43746,43747],{"class":621},"        elev: Camera elevation in degrees.\n",[533,43749,43750],{"class":535,"line":11407},[533,43751,43752],{"class":621},"        azim: Camera azimuth in degrees.\n",[533,43754,43755],{"class":535,"line":11412},[533,43756,43757],{"class":621},"        out_dir: Output directory (e.g., \"\u002Fcontent\" on Colab).\n",[533,43759,43760],{"class":535,"line":11418},[533,43761,43762],{"class":621},"        figsize: Figure size in inches (DPI set globally by rcParams).\n",[533,43764,43765],{"class":535,"line":11423},[533,43766,43767],{"class":621},"        info_fontsize: In-axes info text font size.\n",[533,43769,43770],{"class":535,"line":11467},[533,43771,39472],{"class":621},[533,43773,43774,43776,43778,43780],{"class":535,"line":11473},[533,43775,39511],{"class":543},[533,43777,39480],{"class":553},[533,43779,4899],{"class":553},[533,43781,39518],{"class":621},[533,43783,43784,43786,43788,43790,43792,43794,43796,43798,43800,43802,43804,43806,43808,43810,43812],{"class":535,"line":11488},[533,43785,39523],{"class":543},[533,43787,11186],{"class":553},[533,43789,1133],{"class":543},[533,43791,11186],{"class":553},[533,43793,1133],{"class":543},[533,43795,11186],{"class":553},[533,43797,11314],{"class":543},[533,43799,554],{"class":553},[533,43801,5037],{"class":543},[533,43803,2229],{"class":625},[533,43805,1133],{"class":543},[533,43807,2229],{"class":625},[533,43809,1133],{"class":543},[533,43811,2239],{"class":625},[533,43813,637],{"class":543},[533,43815,43816,43818,43820,43822],{"class":535,"line":11505},[533,43817,39556],{"class":543},[533,43819,4175],{"class":553},[533,43821,4899],{"class":553},[533,43823,39563],{"class":625},[533,43825,43826,43828,43830,43832],{"class":535,"line":11518},[533,43827,39568],{"class":543},[533,43829,4175],{"class":553},[533,43831,4899],{"class":553},[533,43833,43834],{"class":625}," 64\n",[533,43836,43837,43839,43841,43843],{"class":535,"line":11523},[533,43838,39580],{"class":543},[533,43840,4175],{"class":553},[533,43842,4899],{"class":553},[533,43844,43845],{"class":625}," 128\n",[533,43847,43848,43850,43852,43854],{"class":535,"line":11555},[533,43849,39592],{"class":543},[533,43851,4175],{"class":553},[533,43853,4899],{"class":553},[533,43855,39599],{"class":625},[533,43857,43858,43861,43863,43865],{"class":535,"line":11561},[533,43859,43860],{"class":543},"    elev: ",[533,43862,11186],{"class":553},[533,43864,4899],{"class":553},[533,43866,43867],{"class":625}," 25.0\n",[533,43869,43870,43873,43875,43877,43879],{"class":535,"line":11577},[533,43871,43872],{"class":543},"    azim: ",[533,43874,11186],{"class":553},[533,43876,4899],{"class":553},[533,43878,11221],{"class":553},[533,43880,43881],{"class":625},"60.0\n",[533,43883,43884,43886,43888,43890],{"class":535,"line":11600},[533,43885,39604],{"class":543},[533,43887,39480],{"class":553},[533,43889,4899],{"class":553},[533,43891,39611],{"class":621},[533,43893,43894,43896,43898,43900,43902,43904,43906,43908,43910,43912,43914],{"class":535,"line":11621},[533,43895,39616],{"class":543},[533,43897,11186],{"class":553},[533,43899,1133],{"class":543},[533,43901,11186],{"class":553},[533,43903,11314],{"class":543},[533,43905,554],{"class":553},[533,43907,5037],{"class":543},[533,43909,39247],{"class":625},[533,43911,1133],{"class":543},[533,43913,14900],{"class":625},[533,43915,637],{"class":543},[533,43917,43918,43920,43922,43924],{"class":535,"line":11637},[533,43919,39653],{"class":543},[533,43921,4175],{"class":553},[533,43923,4899],{"class":553},[533,43925,39660],{"class":625},[533,43927,43928],{"class":535,"line":11672},[533,43929,891],{"emptyLinePlaceholder":790},[533,43931,43932],{"class":535,"line":11689},[533,43933,891],{"emptyLinePlaceholder":790},[533,43935,43936],{"class":535,"line":11697},[533,43937,43938],{"class":593},"# ----------------------------- Helpers (self-contained) -----------------------------\n",[533,43940,43941,43943,43946,43948,43950,43952,43954,43956,43959,43962,43964,43966,43968,43970,43972],{"class":535,"line":11734},[533,43942,1754],{"class":539},[533,43944,43945],{"class":560}," _bloch_vector",[533,43947,615],{"class":543},[533,43949,12942],{"class":1762},[533,43951,1389],{"class":543},[533,43953,39480],{"class":553},[533,43955,1133],{"class":543},[533,43957,43958],{"class":1762},"custom",[533,43960,43961],{"class":543},"=(",[533,43963,2229],{"class":625},[533,43965,1133],{"class":543},[533,43967,2229],{"class":625},[533,43969,1133],{"class":543},[533,43971,2239],{"class":625},[533,43973,43974],{"class":543},")) -> np.ndarray:\n",[533,43976,43977,43979,43981],{"class":535,"line":11766},[533,43978,39734],{"class":543},[533,43980,554],{"class":553},[533,43982,39739],{"class":543},[533,43984,43985,43987,43989,43991,43993,43995,43997,43999,44001,44003,44005,44007,44009,44011,44013,44015,44017],{"class":535,"line":11806},[533,43986,39744],{"class":621},[533,43988,39244],{"class":543},[533,43990,2229],{"class":625},[533,43992,1133],{"class":543},[533,43994,2229],{"class":625},[533,43996,1133],{"class":543},[533,43998,2239],{"class":625},[533,44000,3945],{"class":543},[533,44002,39761],{"class":621},[533,44004,39244],{"class":543},[533,44006,2229],{"class":625},[533,44008,1133],{"class":543},[533,44010,2229],{"class":625},[533,44012,1133],{"class":543},[533,44014,2514],{"class":553},[533,44016,2239],{"class":625},[533,44018,19687],{"class":543},[533,44020,44021,44023,44025,44027,44029,44031,44033,44035,44037,44039,44041,44043,44045,44047,44049,44051,44053],{"class":535,"line":11826},[533,44022,39782],{"class":621},[533,44024,39244],{"class":543},[533,44026,2239],{"class":625},[533,44028,1133],{"class":543},[533,44030,2229],{"class":625},[533,44032,1133],{"class":543},[533,44034,2229],{"class":625},[533,44036,3945],{"class":543},[533,44038,39799],{"class":621},[533,44040,39244],{"class":543},[533,44042,2514],{"class":553},[533,44044,2239],{"class":625},[533,44046,1133],{"class":543},[533,44048,2229],{"class":625},[533,44050,1133],{"class":543},[533,44052,2229],{"class":625},[533,44054,19687],{"class":543},[533,44056,44057,44059,44061,44063,44065,44067,44069,44071,44073,44075,44077,44079,44081,44083,44085,44087,44089],{"class":535,"line":11831},[533,44058,39820],{"class":621},[533,44060,39244],{"class":543},[533,44062,2229],{"class":625},[533,44064,1133],{"class":543},[533,44066,2239],{"class":625},[533,44068,1133],{"class":543},[533,44070,2229],{"class":625},[533,44072,3945],{"class":543},[533,44074,39837],{"class":621},[533,44076,39244],{"class":543},[533,44078,2229],{"class":625},[533,44080,1133],{"class":543},[533,44082,2514],{"class":553},[533,44084,2239],{"class":625},[533,44086,1133],{"class":543},[533,44088,2229],{"class":625},[533,44090,19687],{"class":543},[533,44092,44093],{"class":535,"line":11867},[533,44094,39858],{"class":543},[533,44096,44097,44099,44101,44103,44105,44107,44109,44112,44114,44117,44119],{"class":535,"line":11873},[533,44098,11564],{"class":543},[533,44100,554],{"class":553},[533,44102,2911],{"class":543},[533,44104,39869],{"class":560},[533,44106,39872],{"class":543},[533,44108,3871],{"class":560},[533,44110,44111],{"class":543},"(label.",[533,44113,39880],{"class":560},[533,44115,44116],{"class":543},"(), custom), ",[533,44118,11186],{"class":553},[533,44120,637],{"class":543},[533,44122,44123,44125,44127,44129,44131,44134,44137],{"class":535,"line":11886},[533,44124,39892],{"class":543},[533,44126,554],{"class":553},[533,44128,16156],{"class":543},[533,44130,39899],{"class":560},[533,44132,44133],{"class":543},"(r) ",[533,44135,44136],{"class":539},"or",[533,44138,44139],{"class":625}," 1.0\n",[533,44141,44142,44144,44146,44148],{"class":535,"line":11943},[533,44143,1880],{"class":539},[533,44145,39939],{"class":543},[533,44147,2941],{"class":553},[533,44149,39944],{"class":543},[533,44151,44152],{"class":535,"line":12001},[533,44153,891],{"emptyLinePlaceholder":790},[533,44155,44156],{"class":535,"line":12009},[533,44157,891],{"emptyLinePlaceholder":790},[533,44159,44160,44162,44165,44167,44169,44171,44173,44175,44177,44179,44181],{"class":535,"line":12014},[533,44161,1754],{"class":539},[533,44163,44164],{"class":560}," _rotation_matrix",[533,44166,615],{"class":543},[533,44168,39969],{"class":1762},[533,44170,1389],{"class":543},[533,44172,39480],{"class":553},[533,44174,1133],{"class":543},[533,44176,39978],{"class":1762},[533,44178,1389],{"class":543},[533,44180,11186],{"class":553},[533,44182,39985],{"class":543},[533,44184,44185,44187,44189,44191,44193,44195,44197],{"class":535,"line":12033},[533,44186,39995],{"class":543},[533,44188,554],{"class":553},[533,44190,2911],{"class":543},[533,44192,14318],{"class":560},[533,44194,40004],{"class":543},[533,44196,14336],{"class":560},[533,44198,40009],{"class":543},[533,44200,44201,44203,44205,44207,44209],{"class":535,"line":12039},[533,44202,1814],{"class":539},[533,44204,40016],{"class":543},[533,44206,2768],{"class":553},[533,44208,40021],{"class":621},[533,44210,544],{"class":543},[533,44212,44213,44215,44217,44219,44221,44223,44225,44227,44229,44231,44233,44235,44237,44239,44241,44243,44245,44247],{"class":535,"line":12062},[533,44214,4169],{"class":539},[533,44216,2911],{"class":543},[533,44218,2914],{"class":560},[533,44220,15804],{"class":543},[533,44222,1052],{"class":625},[533,44224,1133],{"class":543},[533,44226,1049],{"class":625},[533,44228,1133],{"class":543},[533,44230,1049],{"class":625},[533,44232,3251],{"class":543},[533,44234,1049],{"class":625},[533,44236,40050],{"class":543},[533,44238,2514],{"class":553},[533,44240,40055],{"class":543},[533,44242,1049],{"class":625},[533,44244,40060],{"class":543},[533,44246,11186],{"class":553},[533,44248,637],{"class":543},[533,44250,44251,44253,44255,44257,44259],{"class":535,"line":12067},[533,44252,1814],{"class":539},[533,44254,40016],{"class":543},[533,44256,2768],{"class":553},[533,44258,40075],{"class":621},[533,44260,544],{"class":543},[533,44262,44263,44265,44267,44269,44271,44273,44275,44277,44279,44281,44283,44285,44287,44289,44291,44293,44295,44297],{"class":535,"line":12075},[533,44264,4169],{"class":539},[533,44266,2911],{"class":543},[533,44268,2914],{"class":560},[533,44270,40088],{"class":543},[533,44272,1049],{"class":625},[533,44274,40093],{"class":543},[533,44276,1049],{"class":625},[533,44278,1133],{"class":543},[533,44280,1052],{"class":625},[533,44282,1133],{"class":543},[533,44284,1049],{"class":625},[533,44286,3251],{"class":543},[533,44288,2514],{"class":553},[533,44290,40110],{"class":543},[533,44292,1049],{"class":625},[533,44294,40115],{"class":543},[533,44296,11186],{"class":553},[533,44298,637],{"class":543},[533,44300,44301,44303,44305,44307,44309],{"class":535,"line":12088},[533,44302,1814],{"class":539},[533,44304,40016],{"class":543},[533,44306,2768],{"class":553},[533,44308,40130],{"class":621},[533,44310,544],{"class":543},[533,44312,44313,44315,44317,44319,44321,44323,44325,44327,44329,44331,44333,44335,44337,44339,44341,44343,44345,44347],{"class":535,"line":12101},[533,44314,4169],{"class":539},[533,44316,2911],{"class":543},[533,44318,2914],{"class":560},[533,44320,40088],{"class":543},[533,44322,2514],{"class":553},[533,44324,40110],{"class":543},[533,44326,1049],{"class":625},[533,44328,40151],{"class":543},[533,44330,1049],{"class":625},[533,44332,3251],{"class":543},[533,44334,1049],{"class":625},[533,44336,1133],{"class":543},[533,44338,1049],{"class":625},[533,44340,1133],{"class":543},[533,44342,1052],{"class":625},[533,44344,40168],{"class":543},[533,44346,11186],{"class":553},[533,44348,637],{"class":543},[533,44350,44351,44353,44355,44358],{"class":535,"line":12108},[533,44352,40177],{"class":539},[533,44354,40180],{"class":543},[533,44356,44357],{"class":621},"\"axis must be 'x', 'y', or 'z'\"",[533,44359,637],{"class":543},[533,44361,44362],{"class":535,"line":12119},[533,44363,891],{"emptyLinePlaceholder":790},[533,44365,44366],{"class":535,"line":12130},[533,44367,891],{"emptyLinePlaceholder":790},[533,44369,44370,44372,44375,44377,44379,44381,44383,44385,44387,44389,44391],{"class":535,"line":12135},[533,44371,1754],{"class":539},[533,44373,44374],{"class":560}," _n_grid",[533,44376,615],{"class":543},[533,44378,40473],{"class":1762},[533,44380,1389],{"class":543},[533,44382,4175],{"class":553},[533,44384,1133],{"class":543},[533,44386,40482],{"class":1762},[533,44388,1389],{"class":543},[533,44390,4175],{"class":553},[533,44392,1771],{"class":543},[533,44394,44395],{"class":535,"line":12140},[533,44396,44397],{"class":621},"    \"\"\"Return (θ, φ, n) with n stacked as (3, n_theta, n_phi).\"\"\"\n",[533,44399,44400,44402,44404,44406,44408,44410,44412],{"class":535,"line":12146},[533,44401,40498],{"class":543},[533,44403,554],{"class":553},[533,44405,2911],{"class":543},[533,44407,12734],{"class":560},[533,44409,615],{"class":543},[533,44411,2229],{"class":625},[533,44413,40511],{"class":543},[533,44415,44416,44418,44420,44422,44424,44426,44428,44430,44432,44434],{"class":535,"line":12151},[533,44417,40516],{"class":543},[533,44419,554],{"class":553},[533,44421,2911],{"class":543},[533,44423,12734],{"class":560},[533,44425,615],{"class":543},[533,44427,2229],{"class":625},[533,44429,1133],{"class":543},[533,44431,11726],{"class":625},[533,44433,2254],{"class":553},[533,44435,40535],{"class":543},[533,44437,44438,44440,44442,44444,44446,44448,44450,44452,44454],{"class":535,"line":12201},[533,44439,40540],{"class":543},[533,44441,554],{"class":553},[533,44443,2911],{"class":543},[533,44445,40547],{"class":560},[533,44447,40550],{"class":543},[533,44449,40553],{"class":567},[533,44451,554],{"class":553},[533,44453,40558],{"class":621},[533,44455,637],{"class":543},[533,44457,44458,44460,44462,44464,44466,44468,44470,44472,44474],{"class":535,"line":12210},[533,44459,40565],{"class":543},[533,44461,554],{"class":553},[533,44463,2911],{"class":543},[533,44465,14336],{"class":560},[533,44467,40574],{"class":543},[533,44469,2469],{"class":553},[533,44471,2911],{"class":543},[533,44473,14318],{"class":560},[533,44475,40583],{"class":543},[533,44477,44478,44480,44482,44484,44486,44488,44490,44492,44494],{"class":535,"line":12256},[533,44479,40588],{"class":543},[533,44481,554],{"class":553},[533,44483,2911],{"class":543},[533,44485,14336],{"class":560},[533,44487,40574],{"class":543},[533,44489,2469],{"class":553},[533,44491,2911],{"class":543},[533,44493,14336],{"class":560},[533,44495,40583],{"class":543},[533,44497,44498,44500,44502,44504,44506],{"class":535,"line":12285},[533,44499,40609],{"class":543},[533,44501,554],{"class":553},[533,44503,2911],{"class":543},[533,44505,14318],{"class":560},[533,44507,40618],{"class":543},[533,44509,44510,44513,44515,44517,44519,44521,44523,44525,44527],{"class":535,"line":12337},[533,44511,44512],{"class":543},"    n ",[533,44514,554],{"class":553},[533,44516,2911],{"class":543},[533,44518,40627],{"class":560},[533,44520,40630],{"class":543},[533,44522,39969],{"class":567},[533,44524,554],{"class":553},[533,44526,1049],{"class":625},[533,44528,637],{"class":543},[533,44530,44531,44533],{"class":535,"line":12343},[533,44532,1880],{"class":539},[533,44534,44535],{"class":543}," th, ph, n\n",[533,44537,44538],{"class":535,"line":12360},[533,44539,891],{"emptyLinePlaceholder":790},[533,44541,44542],{"class":535,"line":12365},[533,44543,891],{"emptyLinePlaceholder":790},[533,44545,44546,44548,44551,44553,44555,44557,44559],{"class":535,"line":12412},[533,44547,1754],{"class":539},[533,44549,44550],{"class":560}," _wigner_qubit",[533,44552,615],{"class":543},[533,44554,40658],{"class":1762},[533,44556,16135],{"class":543},[533,44558,30647],{"class":1762},[533,44560,16146],{"class":543},[533,44562,44563],{"class":535,"line":12420},[533,44564,44565],{"class":621},"    \"\"\"W(θ, φ) = 1\u002F2 + (√3\u002F2) * r·n on the (θ, φ) grid.\"\"\"\n",[533,44567,44568,44570,44572,44574,44576,44578,44580,44582,44584,44586,44588,44590,44592,44594,44596,44598,44600,44602,44604,44606,44608,44610,44612,44615,44617,44619,44621,44623,44625],{"class":535,"line":12468},[533,44569,1880],{"class":539},[533,44571,12264],{"class":625},[533,44573,14257],{"class":553},[533,44575,16244],{"class":543},[533,44577,2262],{"class":560},[533,44579,615],{"class":543},[533,44581,40687],{"class":625},[533,44583,7047],{"class":543},[533,44585,2941],{"class":553},[533,44587,2251],{"class":625},[533,44589,7047],{"class":543},[533,44591,2469],{"class":553},[533,44593,40700],{"class":543},[533,44595,40703],{"class":560},[533,44597,615],{"class":543},[533,44599,1157],{"class":625},[533,44601,1133],{"class":543},[533,44603,1052],{"class":625},[533,44605,1133],{"class":543},[533,44607,1052],{"class":625},[533,44609,7047],{"class":543},[533,44611,2469],{"class":553},[533,44613,44614],{"class":543}," n).",[533,44616,2946],{"class":560},[533,44618,615],{"class":543},[533,44620,39969],{"class":567},[533,44622,554],{"class":553},[533,44624,1049],{"class":625},[533,44626,637],{"class":543},[533,44628,44629],{"class":535,"line":12491},[533,44630,891],{"emptyLinePlaceholder":790},[533,44632,44633],{"class":535,"line":12531},[533,44634,891],{"emptyLinePlaceholder":790},[533,44636,44637,44639,44642,44644,44646,44648,44650,44652,44654],{"class":535,"line":12569},[533,44638,1754],{"class":539},[533,44640,44641],{"class":560}," _animate_one_pauli",[533,44643,615],{"class":543},[533,44645,39969],{"class":1762},[533,44647,1389],{"class":543},[533,44649,39480],{"class":553},[533,44651,1133],{"class":543},[533,44653,41905],{"class":1762},[533,44655,44656],{"class":543},": Knobs3D) -> Path:\n",[533,44658,44659],{"class":535,"line":12574},[533,44660,44661],{"class":621},"    \"\"\"Render one 3D Wigner animation for a chosen Pauli axis; return output path.\"\"\"\n",[533,44663,44664,44667,44669,44671],{"class":535,"line":12589},[533,44665,44666],{"class":543},"    r0 ",[533,44668,554],{"class":553},[533,44670,43945],{"class":560},[533,44672,44673],{"class":543},"(k.initial_state, k.custom_r)\n",[533,44675,44676,44679,44681,44683],{"class":535,"line":12594},[533,44677,44678],{"class":543},"    th, ph, n ",[533,44680,554],{"class":553},[533,44682,44374],{"class":560},[533,44684,44685],{"class":543},"(k.n_theta, k.n_phi)\n",[533,44687,44688],{"class":535,"line":12600},[533,44689,891],{"emptyLinePlaceholder":790},[533,44691,44692],{"class":535,"line":12641},[533,44693,44694],{"class":593},"    # Unit sphere geometry\n",[533,44696,44697,44700,44702,44704,44706,44708,44710,44712,44714],{"class":535,"line":12656},[533,44698,44699],{"class":543},"    X ",[533,44701,554],{"class":553},[533,44703,2911],{"class":543},[533,44705,14336],{"class":560},[533,44707,40574],{"class":543},[533,44709,2469],{"class":553},[533,44711,2911],{"class":543},[533,44713,14318],{"class":560},[533,44715,40583],{"class":543},[533,44717,44718,44721,44723,44725,44727,44729,44731,44733,44735],{"class":535,"line":12672},[533,44719,44720],{"class":543},"    Y ",[533,44722,554],{"class":553},[533,44724,2911],{"class":543},[533,44726,14336],{"class":560},[533,44728,40574],{"class":543},[533,44730,2469],{"class":553},[533,44732,2911],{"class":543},[533,44734,14336],{"class":560},[533,44736,40583],{"class":543},[533,44738,44739,44742,44744,44746,44748],{"class":535,"line":12703},[533,44740,44741],{"class":543},"    Z ",[533,44743,554],{"class":553},[533,44745,2911],{"class":543},[533,44747,14318],{"class":560},[533,44749,40618],{"class":543},[533,44751,44752],{"class":535,"line":12708},[533,44753,891],{"emptyLinePlaceholder":790},[533,44755,44756],{"class":535,"line":12713},[533,44757,44758],{"class":593},"    # Fixed normalization (pure-state bounds) for constant color scale\n",[533,44760,44761,44763,44765,44767,44769,44771,44773,44775,44777,44779,44781,44783],{"class":535,"line":12719},[533,44762,41560],{"class":543},[533,44764,554],{"class":553},[533,44766,12264],{"class":625},[533,44768,11221],{"class":553},[533,44770,16244],{"class":543},[533,44772,2262],{"class":560},[533,44774,615],{"class":543},[533,44776,40687],{"class":625},[533,44778,7047],{"class":543},[533,44780,2941],{"class":553},[533,44782,2251],{"class":625},[533,44784,637],{"class":543},[533,44786,44787,44789,44791,44793,44795,44797,44799,44801,44803,44805,44807,44809],{"class":535,"line":12724},[533,44788,41587],{"class":543},[533,44790,554],{"class":553},[533,44792,12264],{"class":625},[533,44794,14257],{"class":553},[533,44796,16244],{"class":543},[533,44798,2262],{"class":560},[533,44800,615],{"class":543},[533,44802,40687],{"class":625},[533,44804,7047],{"class":543},[533,44806,2941],{"class":553},[533,44808,2251],{"class":625},[533,44810,637],{"class":543},[533,44812,44813,44816,44818,44821,44823,44826,44828,44830,44832,44834],{"class":535,"line":12750},[533,44814,44815],{"class":543},"    norm ",[533,44817,554],{"class":553},[533,44819,44820],{"class":560}," Normalize",[533,44822,615],{"class":543},[533,44824,44825],{"class":567},"vmin",[533,44827,554],{"class":553},[533,44829,41710],{"class":543},[533,44831,41713],{"class":567},[533,44833,554],{"class":553},[533,44835,44836],{"class":543},"w_max)\n",[533,44838,44839,44842,44844,44846,44849],{"class":535,"line":12775},[533,44840,44841],{"class":543},"    cmap ",[533,44843,554],{"class":553},[533,44845,19777],{"class":543},[533,44847,44848],{"class":560},"get_cmap",[533,44850,1217],{"class":543},[533,44852,44853,44856,44858,44861,44863,44865,44867,44870,44872,44874],{"class":535,"line":12780},[533,44854,44855],{"class":543},"    sm ",[533,44857,554],{"class":553},[533,44859,44860],{"class":560}," ScalarMappable",[533,44862,615],{"class":543},[533,44864,39899],{"class":567},[533,44866,554],{"class":553},[533,44868,44869],{"class":543},"norm, ",[533,44871,13541],{"class":567},[533,44873,554],{"class":553},[533,44875,44876],{"class":543},"cmap)\n",[533,44878,44879,44882,44885,44888],{"class":535,"line":12812},[533,44880,44881],{"class":543},"    sm.",[533,44883,44884],{"class":560},"set_array",[533,44886,44887],{"class":543},"([])  ",[533,44889,44890],{"class":593},"# required for colorbar from a ScalarMappable\n",[533,44892,44893],{"class":535,"line":12842},[533,44894,891],{"emptyLinePlaceholder":790},[533,44896,44897,44900,44902,44904,44906,44908,44910,44912,44915,44917,44919,44921],{"class":535,"line":12879},[533,44898,44899],{"class":543},"    fig ",[533,44901,554],{"class":553},[533,44903,19777],{"class":543},[533,44905,12896],{"class":560},[533,44907,615],{"class":543},[533,44909,12901],{"class":567},[533,44911,554],{"class":553},[533,44913,44914],{"class":543},"k.figsize, ",[533,44916,27085],{"class":567},[533,44918,554],{"class":553},[533,44920,1958],{"class":625},[533,44922,637],{"class":543},[533,44924,44925,44928,44930,44932,44935,44937,44939,44941,44944,44946,44949],{"class":535,"line":12884},[533,44926,44927],{"class":543},"    ax ",[533,44929,554],{"class":553},[533,44931,41736],{"class":543},[533,44933,44934],{"class":560},"add_subplot",[533,44936,615],{"class":543},[533,44938,3543],{"class":625},[533,44940,1133],{"class":543},[533,44942,44943],{"class":567},"projection",[533,44945,554],{"class":553},[533,44947,44948],{"class":621},"\"3d\"",[533,44950,637],{"class":543},[533,44952,44953,44955,44958,44960,44963,44965,44968,44971,44973],{"class":535,"line":12890},[533,44954,27134],{"class":543},[533,44956,44957],{"class":560},"view_init",[533,44959,615],{"class":543},[533,44961,44962],{"class":567},"elev",[533,44964,554],{"class":553},[533,44966,44967],{"class":543},"k.elev, ",[533,44969,44970],{"class":567},"azim",[533,44972,554],{"class":553},[533,44974,44975],{"class":543},"k.azim)\n",[533,44977,44978,44980,44983,44985,44988],{"class":535,"line":12927},[533,44979,1814],{"class":539},[533,44981,44982],{"class":553}," hasattr",[533,44984,41821],{"class":543},[533,44986,44987],{"class":621},"\"set_box_aspect\"",[533,44989,1771],{"class":543},[533,44991,44992,44994,44997,44999,45001,45003,45005,45007,45009],{"class":535,"line":12988},[533,44993,12675],{"class":543},[533,44995,44996],{"class":560},"set_box_aspect",[533,44998,6219],{"class":543},[533,45000,1052],{"class":625},[533,45002,1133],{"class":543},[533,45004,1052],{"class":625},[533,45006,1133],{"class":543},[533,45008,1052],{"class":625},[533,45010,1937],{"class":543},[533,45012,45013],{"class":535,"line":13011},[533,45014,891],{"emptyLinePlaceholder":790},[533,45016,45017],{"class":535,"line":13025},[533,45018,45019],{"class":593},"    # Initial facecolors (use cell-centered (M-1, N-1) colors for quads)\n",[533,45021,45022,45025,45027,45029,45031,45034,45037,45039,45041,45043],{"class":535,"line":13053},[533,45023,45024],{"class":543},"    W0 ",[533,45026,554],{"class":553},[533,45028,44550],{"class":560},[533,45030,615],{"class":543},[533,45032,45033],{"class":560},"_rotation_matrix",[533,45035,45036],{"class":543},"(axis, ",[533,45038,2229],{"class":625},[533,45040,7047],{"class":543},[533,45042,5911],{"class":553},[533,45044,45045],{"class":543}," r0, n)\n",[533,45047,45048,45051,45053,45056,45058,45060,45063,45065,45067,45070,45072,45074,45077],{"class":535,"line":13084},[533,45049,45050],{"class":625},"    FC0",[533,45052,4899],{"class":553},[533,45054,45055],{"class":560}," cmap",[533,45057,615],{"class":543},[533,45059,39899],{"class":560},[533,45061,45062],{"class":543},"(W0[:",[533,45064,2514],{"class":553},[533,45066,1052],{"class":625},[533,45068,45069],{"class":543},", :",[533,45071,2514],{"class":553},[533,45073,1052],{"class":625},[533,45075,45076],{"class":543},"]))  ",[533,45078,45079],{"class":593},"# shape: (n_theta-1, n_phi-1, 4)\n",[533,45081,45082],{"class":535,"line":13105},[533,45083,891],{"emptyLinePlaceholder":790},[533,45085,45086,45089,45091,45093,45096],{"class":535,"line":13115},[533,45087,45088],{"class":543},"    surf ",[533,45090,554],{"class":553},[533,45092,41124],{"class":543},[533,45094,45095],{"class":560},"plot_surface",[533,45097,1503],{"class":543},[533,45099,45100],{"class":535,"line":13125},[533,45101,45102],{"class":543},"        X, Y, Z,\n",[533,45104,45105,45108,45110,45113],{"class":535,"line":13130},[533,45106,45107],{"class":567},"        facecolors",[533,45109,554],{"class":553},[533,45111,45112],{"class":625},"FC0",[533,45114,1549],{"class":543},[533,45116,45117,45120,45122,45124,45126,45129,45131,45133],{"class":535,"line":13136},[533,45118,45119],{"class":567},"        rstride",[533,45121,554],{"class":553},[533,45123,1052],{"class":625},[533,45125,1133],{"class":543},[533,45127,45128],{"class":567},"cstride",[533,45130,554],{"class":553},[533,45132,1052],{"class":625},[533,45134,1549],{"class":543},[533,45136,45137,45140,45142,45144,45146,45148,45150,45152],{"class":535,"line":13167},[533,45138,45139],{"class":567},"        antialiased",[533,45141,554],{"class":553},[533,45143,1930],{"class":625},[533,45145,1133],{"class":543},[533,45147,12694],{"class":567},[533,45149,554],{"class":553},[533,45151,1049],{"class":625},[533,45153,1549],{"class":543},[533,45155,45156,45159,45161,45163,45166],{"class":535,"line":13213},[533,45157,45158],{"class":567},"        shade",[533,45160,554],{"class":553},[533,45162,1930],{"class":625},[533,45164,45165],{"class":543},",  ",[533,45167,45168],{"class":593},"# use given facecolors directly\n",[533,45170,45171],{"class":535,"line":13234},[533,45172,12340],{"class":543},[533,45174,45175],{"class":535,"line":13245},[533,45176,891],{"emptyLinePlaceholder":790},[533,45178,45179],{"class":535,"line":13268},[533,45180,45181],{"class":593},"    # Colorbar (bound to ScalarMappable using same norm+cmap)\n",[533,45183,45184,45186,45188,45190,45192,45195,45197,45199,45201,45203,45205,45207,45209,45211,45213,45215],{"class":535,"line":13295},[533,45185,41731],{"class":543},[533,45187,554],{"class":553},[533,45189,41736],{"class":543},[533,45191,13556],{"class":560},[533,45193,45194],{"class":543},"(sm, ",[533,45196,12651],{"class":567},[533,45198,554],{"class":553},[533,45200,41748],{"class":543},[533,45202,41751],{"class":567},[533,45204,554],{"class":553},[533,45206,41756],{"class":625},[533,45208,1133],{"class":543},[533,45210,41761],{"class":567},[533,45212,554],{"class":553},[533,45214,41766],{"class":625},[533,45216,637],{"class":543},[533,45218,45219,45221,45223,45225,45227],{"class":535,"line":13316},[533,45220,41773],{"class":543},[533,45222,41776],{"class":560},[533,45224,615],{"class":543},[533,45226,41781],{"class":621},[533,45228,637],{"class":543},[533,45230,45231],{"class":535,"line":13325},[533,45232,891],{"emptyLinePlaceholder":790},[533,45234,45235],{"class":535,"line":13334},[533,45236,45237],{"class":593},"    # Labels and in-axes title and info\n",[533,45239,45240,45242,45244,45246,45248],{"class":535,"line":13339},[533,45241,27134],{"class":543},[533,45243,19871],{"class":560},[533,45245,615],{"class":543},[533,45247,39494],{"class":621},[533,45249,637],{"class":543},[533,45251,45252,45254,45256,45258,45260],{"class":535,"line":13345},[533,45253,27134],{"class":543},[533,45255,19885],{"class":560},[533,45257,615],{"class":543},[533,45259,39499],{"class":621},[533,45261,637],{"class":543},[533,45263,45264,45266,45269,45271,45273],{"class":535,"line":13370},[533,45265,27134],{"class":543},[533,45267,45268],{"class":560},"set_zlabel",[533,45270,615],{"class":543},[533,45272,39504],{"class":621},[533,45274,637],{"class":543},[533,45276,45277,45280,45282,45284,45287],{"class":535,"line":13389},[533,45278,45279],{"class":543},"    title_txt ",[533,45281,554],{"class":553},[533,45283,41124],{"class":543},[533,45285,45286],{"class":560},"text2D",[533,45288,1503],{"class":543},[533,45290,45291,45293,45295,45298,45300,45302,45304,45306,45308,45310,45312,45314,45317],{"class":535,"line":13407},[533,45292,41274],{"class":625},[533,45294,1133],{"class":543},[533,45296,45297],{"class":625},"0.98",[533,45299,1133],{"class":543},[533,45301,618],{"class":539},[533,45303,41826],{"class":621},[533,45305,626],{"class":625},[533,45307,41831],{"class":543},[533,45309,41834],{"class":560},[533,45311,41837],{"class":543},[533,45313,632],{"class":625},[533,45315,45316],{"class":621}," rotation (3D sphere)\"",[533,45318,1549],{"class":543},[533,45320,45321,45323,45325,45327,45329,45331,45333,45335,45337,45339,45341,45343,45345,45347,45349],{"class":535,"line":13420},[533,45322,41144],{"class":567},[533,45324,554],{"class":553},[533,45326,41149],{"class":543},[533,45328,40832],{"class":567},[533,45330,554],{"class":553},[533,45332,41296],{"class":621},[533,45334,1133],{"class":543},[533,45336,40842],{"class":567},[533,45338,554],{"class":553},[533,45340,40847],{"class":621},[533,45342,1133],{"class":543},[533,45344,41152],{"class":567},[533,45346,554],{"class":553},[533,45348,1596],{"class":625},[533,45350,1549],{"class":543},[533,45352,45353,45355,45357,45359,45361,45363,45365,45367,45369,45371,45373,45375,45377,45379,45381,45383,45385,45387,45389],{"class":535,"line":13425},[533,45354,41171],{"class":567},[533,45356,41174],{"class":553},[533,45358,615],{"class":543},[533,45360,41179],{"class":567},[533,45362,554],{"class":553},[533,45364,41184],{"class":621},[533,45366,1133],{"class":543},[533,45368,41189],{"class":567},[533,45370,554],{"class":553},[533,45372,41194],{"class":621},[533,45374,1133],{"class":543},[533,45376,19638],{"class":567},[533,45378,554],{"class":553},[533,45380,41203],{"class":625},[533,45382,1133],{"class":543},[533,45384,41208],{"class":567},[533,45386,554],{"class":553},[533,45388,41213],{"class":621},[533,45390,19687],{"class":543},[533,45392,45393,45395,45397,45399],{"class":535,"line":13456},[533,45394,41362],{"class":567},[533,45396,554],{"class":553},[533,45398,1967],{"class":625},[533,45400,1549],{"class":543},[533,45402,45403],{"class":535,"line":13502},[533,45404,12340],{"class":543},[533,45406,45407,45410,45412,45414,45416],{"class":535,"line":13551},[533,45408,45409],{"class":543},"    info_txt ",[533,45411,554],{"class":553},[533,45413,41124],{"class":543},[533,45415,45286],{"class":560},[533,45417,1503],{"class":543},[533,45419,45420,45423,45425,45428,45430,45432,45434,45437,45439,45441,45443,45445,45447,45449,45451,45453,45455],{"class":535,"line":13583},[533,45421,45422],{"class":625},"        0.02",[533,45424,1133],{"class":543},[533,45426,45427],{"class":625},"0.96",[533,45429,1133],{"class":543},[533,45431,41862],{"class":621},[533,45433,1133],{"class":543},[533,45435,45436],{"class":567},"transform",[533,45438,554],{"class":553},[533,45440,41149],{"class":543},[533,45442,40832],{"class":567},[533,45444,554],{"class":553},[533,45446,40837],{"class":621},[533,45448,1133],{"class":543},[533,45450,40842],{"class":567},[533,45452,554],{"class":553},[533,45454,40847],{"class":621},[533,45456,1549],{"class":543},[533,45458,45459,45461,45463],{"class":535,"line":13612},[533,45460,41311],{"class":567},[533,45462,554],{"class":553},[533,45464,45465],{"class":543},"k.info_fontsize,\n",[533,45467,45468,45470,45472,45474,45476,45478,45480,45482,45484,45486,45488,45490,45492,45494,45496,45498,45500,45502,45504],{"class":535,"line":13635},[533,45469,41171],{"class":567},[533,45471,41174],{"class":553},[533,45473,615],{"class":543},[533,45475,41179],{"class":567},[533,45477,554],{"class":553},[533,45479,41184],{"class":621},[533,45481,1133],{"class":543},[533,45483,41189],{"class":567},[533,45485,554],{"class":553},[533,45487,41194],{"class":621},[533,45489,1133],{"class":543},[533,45491,19638],{"class":567},[533,45493,554],{"class":553},[533,45495,41203],{"class":625},[533,45497,1133],{"class":543},[533,45499,41208],{"class":567},[533,45501,554],{"class":553},[533,45503,41213],{"class":621},[533,45505,19687],{"class":543},[533,45507,45508,45510,45512,45514],{"class":535,"line":13679},[533,45509,41362],{"class":567},[533,45511,554],{"class":553},[533,45513,1967],{"class":625},[533,45515,1549],{"class":543},[533,45517,45518],{"class":535,"line":13688},[533,45519,12340],{"class":543},[533,45521,45522],{"class":535,"line":13693},[533,45523,891],{"emptyLinePlaceholder":790},[533,45525,45526,45528,45530,45532,45535,45537,45539],{"class":535,"line":13699},[533,45527,41897],{"class":539},[533,45529,41900],{"class":560},[533,45531,615],{"class":543},[533,45533,45534],{"class":1762},"frame",[533,45536,1389],{"class":543},[533,45538,4175],{"class":553},[533,45540,1771],{"class":543},[533,45542,45543,45546,45548,45551,45553,45556,45558,45560,45562,45564,45566],{"class":535,"line":13715},[533,45544,45545],{"class":543},"        angle ",[533,45547,554],{"class":553},[533,45549,45550],{"class":543}," (frame ",[533,45552,2941],{"class":553},[533,45554,45555],{"class":543}," (k.frames ",[533,45557,2514],{"class":553},[533,45559,6353],{"class":625},[533,45561,11986],{"class":543},[533,45563,2469],{"class":553},[533,45565,41937],{"class":543},[533,45567,41940],{"class":593},[533,45569,45570,45573,45575,45577,45580,45582],{"class":535,"line":13732},[533,45571,45572],{"class":543},"        r_now ",[533,45574,554],{"class":553},[533,45576,44164],{"class":560},[533,45578,45579],{"class":543},"(axis, angle) ",[533,45581,5911],{"class":553},[533,45583,41962],{"class":543},[533,45585,45586,45589,45591,45593],{"class":535,"line":13745},[533,45587,45588],{"class":543},"        W_now ",[533,45590,554],{"class":553},[533,45592,44550],{"class":560},[533,45594,45595],{"class":543},"(r_now, n)\n",[533,45597,45598,45601,45603,45605,45607,45609,45612,45614,45616,45618,45620,45622,45625],{"class":535,"line":13762},[533,45599,45600],{"class":625},"        FC_now",[533,45602,4899],{"class":553},[533,45604,45055],{"class":560},[533,45606,615],{"class":543},[533,45608,39899],{"class":560},[533,45610,45611],{"class":543},"(W_now[:",[533,45613,2514],{"class":553},[533,45615,1052],{"class":625},[533,45617,45069],{"class":543},[533,45619,2514],{"class":553},[533,45621,1052],{"class":625},[533,45623,45624],{"class":543},"]))        ",[533,45626,45627],{"class":593},"# (M-1, N-1, 4)\n",[533,45629,45630,45633,45636,45638,45641,45643,45645,45647,45649,45651,45653,45655,45658],{"class":535,"line":13774},[533,45631,45632],{"class":543},"        surf.",[533,45634,45635],{"class":560},"set_facecolors",[533,45637,615],{"class":543},[533,45639,45640],{"class":625},"FC_now",[533,45642,114],{"class":543},[533,45644,40703],{"class":560},[533,45646,615],{"class":543},[533,45648,2514],{"class":553},[533,45650,1052],{"class":625},[533,45652,1133],{"class":543},[533,45654,1183],{"class":625},[533,45656,45657],{"class":543},"))  ",[533,45659,45660],{"class":593},"# update in place\n",[533,45662,45663,45666,45668,45670,45672,45674,45676,45678,45680,45682,45684,45686,45688,45690,45692,45694,45696,45698,45700,45703,45705,45707],{"class":535,"line":13809},[533,45664,45665],{"class":543},"        info_txt.",[533,45667,41986],{"class":560},[533,45669,615],{"class":543},[533,45671,618],{"class":539},[533,45673,41993],{"class":621},[533,45675,626],{"class":625},[533,45677,39978],{"class":543},[533,45679,42001],{"class":539},[533,45681,632],{"class":625},[533,45683,42006],{"class":621},[533,45685,7117],{"class":553},[533,45687,42011],{"class":621},[533,45689,626],{"class":625},[533,45691,45534],{"class":543},[533,45693,6350],{"class":553},[533,45695,42020],{"class":625},[533,45697,2941],{"class":621},[533,45699,626],{"class":625},[533,45701,45702],{"class":543},"k.frames",[533,45704,632],{"class":625},[533,45706,439],{"class":621},[533,45708,637],{"class":543},[533,45710,45711,45713],{"class":535,"line":13814},[533,45712,4169],{"class":539},[533,45714,45715],{"class":543}," (surf, info_txt, title_txt)\n",[533,45717,45718],{"class":535,"line":13840},[533,45719,891],{"emptyLinePlaceholder":790},[533,45721,45722,45724,45726,45728,45730,45732,45734,45737,45739,45741,45743,45745,45747,45749,45751],{"class":535,"line":13861},[533,45723,42049],{"class":543},[533,45725,554],{"class":553},[533,45727,42054],{"class":560},[533,45729,42057],{"class":543},[533,45731,42027],{"class":567},[533,45733,554],{"class":553},[533,45735,45736],{"class":543},"k.frames, ",[533,45738,42067],{"class":567},[533,45740,554],{"class":553},[533,45742,42072],{"class":625},[533,45744,1133],{"class":543},[533,45746,42077],{"class":567},[533,45748,554],{"class":553},[533,45750,1930],{"class":625},[533,45752,637],{"class":543},[533,45754,45755,45757,45759,45761,45764,45766,45768,45771,45773,45775,45777],{"class":535,"line":13866},[533,45756,16198],{"class":543},[533,45758,554],{"class":553},[533,45760,42405],{"class":560},[533,45762,45763],{"class":543},"(k.out_dir) ",[533,45765,2941],{"class":553},[533,45767,42413],{"class":539},[533,45769,45770],{"class":621},"\"wigner3d_pauli_",[533,45772,626],{"class":625},[533,45774,39969],{"class":543},[533,45776,632],{"class":625},[533,45778,42426],{"class":621},[533,45780,45781,45784,45786,45788,45790,45792,45794,45796,45798,45800,45802],{"class":535,"line":13897},[533,45782,45783],{"class":543},"    out.parent.",[533,45785,42091],{"class":560},[533,45787,615],{"class":543},[533,45789,42096],{"class":567},[533,45791,554],{"class":553},[533,45793,1958],{"class":625},[533,45795,1133],{"class":543},[533,45797,42105],{"class":567},[533,45799,554],{"class":553},[533,45801,1958],{"class":625},[533,45803,637],{"class":543},[533,45805,45806,45808,45810,45813,45815,45817,45819,45821,45823,45825,45827,45829],{"class":535,"line":13930},[533,45807,42116],{"class":543},[533,45809,42119],{"class":560},[533,45811,45812],{"class":543},"(out.",[533,45814,42125],{"class":560},[533,45816,13473],{"class":543},[533,45818,42130],{"class":567},[533,45820,554],{"class":553},[533,45822,42135],{"class":560},[533,45824,615],{"class":543},[533,45826,42140],{"class":567},[533,45828,554],{"class":553},[533,45830,45831],{"class":543},"k.fps),\n",[533,45833,45834,45836,45838,45840,45842,45844,45846],{"class":535,"line":13967},[533,45835,42150],{"class":567},[533,45837,41174],{"class":553},[533,45839,615],{"class":543},[533,45841,42157],{"class":567},[533,45843,554],{"class":553},[533,45845,41194],{"class":621},[533,45847,1937],{"class":543},[533,45849,45850,45852,45854],{"class":535,"line":13994},[533,45851,42168],{"class":543},[533,45853,42171],{"class":560},[533,45855,42174],{"class":543},[533,45857,45858,45860],{"class":535,"line":14017},[533,45859,1880],{"class":539},[533,45861,16277],{"class":543},[533,45863,45864],{"class":535,"line":14057},[533,45865,891],{"emptyLinePlaceholder":790},[533,45867,45869],{"class":535,"line":45868},162,[533,45870,891],{"emptyLinePlaceholder":790},[533,45872,45874,45876,45879,45881,45883],{"class":535,"line":45873},163,[533,45875,1754],{"class":539},[533,45877,45878],{"class":560}," animate_all_paulis_3d",[533,45880,615],{"class":543},[533,45882,41905],{"class":1762},[533,45884,45885],{"class":543},": Knobs3D,\n",[533,45887,45889,45892,45894,45896,45898,45900,45902,45904,45906,45908,45910,45912,45914,45916],{"class":535,"line":45888},164,[533,45890,45891],{"class":1762},"                          axes",[533,45893,39711],{"class":543},[533,45895,39480],{"class":553},[533,45897,1133],{"class":543},[533,45899,39485],{"class":625},[533,45901,11314],{"class":543},[533,45903,554],{"class":553},[533,45905,5037],{"class":543},[533,45907,39494],{"class":621},[533,45909,1133],{"class":543},[533,45911,39499],{"class":621},[533,45913,1133],{"class":543},[533,45915,39504],{"class":621},[533,45917,45918],{"class":543},")) -> Iterable[Path]:\n",[533,45920,45922],{"class":535,"line":45921},165,[533,45923,45924],{"class":621},"    \"\"\"Generate and display GIFs for all requested Pauli axes; yield file paths.\"\"\"\n",[533,45926,45928,45930,45932,45934],{"class":535,"line":45927},166,[533,45929,12659],{"class":539},[533,45931,42390],{"class":543},[533,45933,2786],{"class":539},[533,45935,45936],{"class":543}," axes:\n",[533,45938,45940,45943,45945,45947,45950,45952],{"class":535,"line":45939},167,[533,45941,45942],{"class":543},"        path ",[533,45944,554],{"class":553},[533,45946,44641],{"class":560},[533,45948,45949],{"class":543},"(axname.",[533,45951,39880],{"class":560},[533,45953,45954],{"class":543},"(), k)\n",[533,45956,45958,45961,45963,45965,45967,45969,45971],{"class":535,"line":45957},168,[533,45959,45960],{"class":560},"        display",[533,45962,615],{"class":543},[533,45964,42498],{"class":560},[533,45966,615],{"class":543},[533,45968,1418],{"class":567},[533,45970,42505],{"class":553},[533,45972,45973],{"class":543},"(path)))\n",[533,45975,45977,45980,45982,45984,45987,45989,45991,45993,45995],{"class":535,"line":45976},169,[533,45978,45979],{"class":553},"        print",[533,45981,615],{"class":543},[533,45983,618],{"class":539},[533,45985,45986],{"class":621},"\"Saved: ",[533,45988,626],{"class":625},[533,45990,31108],{"class":543},[533,45992,632],{"class":625},[533,45994,439],{"class":621},[533,45996,637],{"class":543},[533,45998,46000,46003],{"class":535,"line":45999},170,[533,46001,46002],{"class":539},"        yield",[533,46004,46005],{"class":543}," path\n",[533,46007,46009],{"class":535,"line":46008},171,[533,46010,891],{"emptyLinePlaceholder":790},[533,46012,46014],{"class":535,"line":46013},172,[533,46015,891],{"emptyLinePlaceholder":790},[533,46017,46019],{"class":535,"line":46018},173,[533,46020,46021],{"class":593},"# ------------------------------ Run all three gates ------------------------------\n",[533,46023,46025,46028,46030,46032,46034],{"class":535,"line":46024},174,[533,46026,46027],{"class":625},"K3D",[533,46029,4899],{"class":553},[533,46031,43699],{"class":560},[533,46033,42206],{"class":543},[533,46035,46036],{"class":593},"# adjust as desired\n",[533,46038,46040,46042,46044,46046],{"class":535,"line":46039},175,[533,46041,42235],{"class":567},[533,46043,554],{"class":553},[533,46045,42240],{"class":621},[533,46047,1549],{"class":543},[533,46049,46051,46053,46055,46057,46059,46061,46063,46066,46068,46070,46072,46075,46077,46079,46081,46083],{"class":535,"line":46050},176,[533,46052,42247],{"class":567},[533,46054,554],{"class":553},[533,46056,7549],{"class":625},[533,46058,1133],{"class":543},[533,46060,40473],{"class":567},[533,46062,554],{"class":553},[533,46064,46065],{"class":625},"64",[533,46067,1133],{"class":543},[533,46069,40482],{"class":567},[533,46071,554],{"class":553},[533,46073,46074],{"class":625},"128",[533,46076,1133],{"class":543},[533,46078,42140],{"class":567},[533,46080,554],{"class":553},[533,46082,17468],{"class":625},[533,46084,1549],{"class":543},[533,46086,46088,46091,46093,46096,46098,46100,46103,46105],{"class":535,"line":46087},177,[533,46089,46090],{"class":567},"    elev",[533,46092,554],{"class":553},[533,46094,46095],{"class":625},"25.0",[533,46097,1133],{"class":543},[533,46099,44970],{"class":567},[533,46101,46102],{"class":553},"=-",[533,46104,11367],{"class":625},[533,46106,1549],{"class":543},[533,46108,46110,46112,46114,46116],{"class":535,"line":46109},178,[533,46111,42298],{"class":567},[533,46113,554],{"class":553},[533,46115,42303],{"class":621},[533,46117,1549],{"class":543},[533,46119,46121,46123,46125,46127,46129,46131,46133],{"class":535,"line":46120},179,[533,46122,42310],{"class":567},[533,46124,554],{"class":553},[533,46126,615],{"class":543},[533,46128,39247],{"class":625},[533,46130,1133],{"class":543},[533,46132,14900],{"class":625},[533,46134,19687],{"class":543},[533,46136,46138,46141,46143,46145],{"class":535,"line":46137},180,[533,46139,46140],{"class":567},"    info_fontsize",[533,46142,554],{"class":553},[533,46144,19804],{"class":625},[533,46146,1549],{"class":543},[533,46148,46150],{"class":535,"line":46149},181,[533,46151,637],{"class":543},[533,46153,46155],{"class":535,"line":46154},182,[533,46156,891],{"emptyLinePlaceholder":790},[533,46158,46160,46162,46164,46167,46169,46171,46173,46176,46178,46180,46182,46184,46186,46188,46190],{"class":535,"line":46159},183,[533,46161,2919],{"class":553},[533,46163,615],{"class":543},[533,46165,46166],{"class":560},"animate_all_paulis_3d",[533,46168,615],{"class":543},[533,46170,46027],{"class":625},[533,46172,1133],{"class":543},[533,46174,46175],{"class":567},"axes",[533,46177,554],{"class":553},[533,46179,615],{"class":543},[533,46181,39494],{"class":621},[533,46183,1133],{"class":543},[533,46185,39499],{"class":621},[533,46187,1133],{"class":543},[533,46189,39504],{"class":621},[533,46191,46192],{"class":543},")))\n",[524,46194,46197],{"className":46195,"code":46196,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner3d_pauli_x.gif\n",[57,46198,46196],{"__ignoreMap":529},[524,46200,46203],{"className":46201,"code":46202,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner3d_pauli_y.gif\n",[57,46204,46202],{"__ignoreMap":529},[524,46206,46209],{"className":46207,"code":46208,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner3d_pauli_z.gif\n",[57,46210,46208],{"__ignoreMap":529},[2175,46212],{"alt":15066,"src":46213},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-05.webp",[2175,46215],{"alt":16771,"src":46216},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-06.webp",[2175,46218],{"alt":18975,"src":46219},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-07.webp",[524,46221,46223],{"className":526,"code":46222,"language":528,"meta":529,"style":529},"# @title Cell 6 — 3D Wigner animation (custom axis–angle; colors-only, no geometry edits)\n# PEP 8\u002F257 compliant. Rotates Bloch vector about an arbitrary axis by a target angle.\n\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom pathlib import Path\nfrom typing import Tuple\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom matplotlib.animation import FuncAnimation, PillowWriter\nfrom matplotlib.colors import Normalize\nfrom matplotlib.cm import ScalarMappable\nfrom IPython.display import Image, display\n\n\n@dataclass\nclass Knobs3DCustom:\n    \"\"\"User controls for 3D custom axis–angle Wigner animation.\"\"\"\n    axis_vec: Tuple[float, float, float] = (0.0, 1.0, 0.0)  # default: y-axis\n    angle_deg: float = 45.0\n    initial_state: str = \"+z\"\n    custom_r: Tuple[float, float, float] = (0.0, 0.0, 1.0)\n    frames: int = 24\n    n_theta: int = 64\n    n_phi: int = 128\n    fps: int = 20\n    elev: float = 25.0\n    azim: float = -60.0\n    out_path: str = \"\u002Fcontent\u002Fwigner3d_custom_y45.gif\"\n    figsize: Tuple[float, float] = (6.4, 4.8)\n    info_fontsize: int = 9\n\n\n# ------------- helpers (self-contained; safe for this cell alone) -------------\ndef _bloch_vector(label: str, custom=(0.0, 0.0, 1.0)) -> np.ndarray:\n    mapping = {\n        \"+z\": (0.0, 0.0, 1.0), \"-z\": (0.0, 0.0, -1.0),\n        \"+x\": (1.0, 0.0, 0.0), \"-x\": (-1.0, 0.0, 0.0),\n        \"+y\": (0.0, 1.0, 0.0), \"-y\": (0.0, -1.0, 0.0),\n    }\n    r = np.asarray(mapping.get(label.lower(), custom), float)\n    nrm = np.linalg.norm(r) or 1.0\n    return r \u002F nrm\n\n\ndef _rotation_matrix_axis(axis_vec: Tuple[float, float, float], angle: float) -> np.ndarray:\n    v = np.asarray(axis_vec, float)\n    nrm = np.linalg.norm(v)\n    if nrm == 0:\n        raise ValueError(\"axis_vec must be nonzero\")\n    k = v \u002F nrm\n    K = np.array([[0.0, -k[2], k[1]], [k[2], 0.0, -k[0]], [-k[1], k[0], 0.0]], float)\n    I = np.eye(3)\n    c, s = np.cos(angle), np.sin(angle)\n    return c * I + (1 - c) * np.outer(k, k) + s * K\n\n\ndef _n_grid(n_theta: int, n_phi: int):\n    theta = np.linspace(0.0, np.pi, n_theta)\n    phi = np.linspace(0.0, 2.0 * np.pi, n_phi)\n    th, ph = np.meshgrid(theta, phi, indexing=\"ij\")\n    nx = np.sin(th) * np.cos(ph)\n    ny = np.sin(th) * np.sin(ph)\n    nz = np.cos(th)\n    n = np.stack((nx, ny, nz), axis=0)\n    return th, ph, n\n\n\ndef _wigner_qubit(r_vec: np.ndarray, n: np.ndarray) -> np.ndarray:\n    return 0.5 + (np.sqrt(3.0) \u002F 2.0) * (r_vec.reshape(3, 1, 1) * n).sum(axis=0)\n\n\ndef animate_wigner_custom_3d(k: Knobs3DCustom) -> Path:\n    \"\"\"Animate a 3D sphere with colors driven by Wigner under axis–angle rotation.\"\"\"\n    r0 = _bloch_vector(k.initial_state, k.custom_r)\n    th, ph, n = _n_grid(k.n_theta, k.n_phi)\n\n    X = np.sin(th) * np.cos(ph)\n    Y = np.sin(th) * np.sin(ph)\n    Z = np.cos(th)\n\n    w_min = 0.5 - (np.sqrt(3.0) \u002F 2.0)\n    w_max = 0.5 + (np.sqrt(3.0) \u002F 2.0)\n    norm = Normalize(vmin=w_min, vmax=w_max)\n    cmap = plt.get_cmap()\n    sm = ScalarMappable(norm=norm, cmap=cmap)\n    sm.set_array([])\n\n    fig = plt.figure(figsize=k.figsize, constrained_layout=True)\n    ax = fig.add_subplot(111, projection=\"3d\")\n    ax.view_init(elev=k.elev, azim=k.azim)\n    if hasattr(ax, \"set_box_aspect\"):\n        ax.set_box_aspect((1, 1, 1))\n\n    # Initial facecolors\n    angle0 = 0.0\n    r_init = _rotation_matrix_axis(k.axis_vec, angle0) @ r0\n    W0 = _wigner_qubit(r_init, n)\n    FC0 = cmap(norm(W0[:-1, :-1]))  # (M-1,N-1,4)\n\n    surf = ax.plot_surface(\n        X, Y, Z,\n        facecolors=FC0,\n        rstride=1, cstride=1,\n        antialiased=False, linewidth=0,\n        shade=False,\n    )\n\n    cbar = fig.colorbar(sm, ax=ax, fraction=0.046, pad=0.04)\n    cbar.set_label(\"Wigner value\")\n\n    ax.set_xlabel(\"x\")\n    ax.set_ylabel(\"y\")\n    ax.set_zlabel(\"z\")\n    title_txt = ax.text2D(\n        0.5, 0.98, \"Wigner - custom angle\",\n        transform=ax.transAxes, ha=\"center\", va=\"top\", fontsize=11,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        zorder=6,\n    )\n    info_txt = ax.text2D(\n        0.02, 0.96, \"\", transform=ax.transAxes, ha=\"left\", va=\"top\",\n        fontsize=k.info_fontsize,\n        bbox=dict(boxstyle=\"round,pad=0.3\", fc=\"white\", alpha=0.75, ec=\"none\"),\n        zorder=6,\n    )\n\n    def update(frame: int):\n        ang = (frame \u002F (k.frames - 1)) * np.deg2rad(k.angle_deg)\n        r_now = _rotation_matrix_axis(k.axis_vec, ang) @ r0\n        W_now = _wigner_qubit(r_now, n)\n        FC_now = cmap(norm(W_now[:-1, :-1]))          # (M-1,N-1,4)\n        surf.set_facecolors(FC_now.reshape(-1, 4))    # in-place update\n        info_txt.set_text(\n            f\"axis = ({k.axis_vec[0]:.2f}, {k.axis_vec[1]:.2f}, {k.axis_vec[2]:.2f})\\n\"\n            f\"θ = {np.rad2deg(ang):.1f}° \u002F {k.angle_deg:.1f}°\"\n        )\n        return (surf, info_txt, title_txt)\n\n    anim = FuncAnimation(fig, update, frames=k.frames, interval=60, blit=False)\n    out = Path(k.out_path)\n    out.parent.mkdir(parents=True, exist_ok=True)\n    anim.save(out.as_posix(), writer=PillowWriter(fps=k.fps),\n              savefig_kwargs=dict(facecolor=\"white\"))\n    plt.close(fig)\n    return out\n\n\n# ----------------------------- Example run ------------------------------------\nK3C = Knobs3DCustom(\n    axis_vec=(0.0, 1.0, 0.0), angle_deg=45.0,\n    initial_state=\"+z\", out_path=\"\u002Fcontent\u002Fwigner3d_custom_y45.gif\",\n)\nsaved_custom = animate_wigner_custom_3d(K3C)\ndisplay(Image(filename=saved_custom.as_posix()))\nprint(\"Saved:\", saved_custom)\n",[57,46224,46225,46230,46235,46239,46249,46253,46263,46273,46283,46287,46297,46307,46317,46327,46337,46347,46351,46355,46359,46368,46373,46409,46421,46431,46463,46473,46483,46493,46503,46513,46525,46537,46561,46571,46575,46579,46584,46616,46624,46660,46696,46732,46736,46760,46776,46786,46790,46794,46827,46843,46855,46867,46877,46889,46953,46969,46985,47021,47025,47029,47053,47069,47091,47111,47131,47151,47163,47183,47189,47193,47197,47213,47273,47277,47281,47295,47300,47310,47320,47324,47344,47364,47376,47380,47406,47432,47454,47466,47488,47497,47501,47527,47551,47571,47583,47603,47607,47612,47622,47638,47649,47678,47682,47694,47698,47708,47726,47744,47754,47758,47762,47796,47808,47812,47824,47836,47848,47860,47875,47907,47947,47957,47961,47973,48009,48017,48057,48067,48071,48075,48091,48118,48133,48143,48172,48202,48210,48263,48294,48298,48304,48308,48340,48351,48375,48401,48417,48425,48431,48435,48439,48444,48455,48483,48503,48507,48522,48543],{"__ignoreMap":529},[533,46226,46227],{"class":535,"line":536},[533,46228,46229],{"class":593},"# @title Cell 6 — 3D Wigner animation (custom axis–angle; colors-only, no geometry edits)\n",[533,46231,46232],{"class":535,"line":547},[533,46233,46234],{"class":593},"# PEP 8\u002F257 compliant. Rotates Bloch vector about an arbitrary axis by a target angle.\n",[533,46236,46237],{"class":535,"line":575},[533,46238,891],{"emptyLinePlaceholder":790},[533,46240,46241,46243,46245,46247],{"class":535,"line":590},[533,46242,877],{"class":539},[533,46244,39143],{"class":2387},[533,46246,39146],{"class":539},[533,46248,39149],{"class":543},[533,46250,46251],{"class":535,"line":597},[533,46252,891],{"emptyLinePlaceholder":790},[533,46254,46255,46257,46259,46261],{"class":535,"line":603},[533,46256,877],{"class":539},[533,46258,11097],{"class":543},[533,46260,883],{"class":539},[533,46262,11102],{"class":543},[533,46264,46265,46267,46269,46271],{"class":535,"line":609},[533,46266,877],{"class":539},[533,46268,39301],{"class":543},[533,46270,883],{"class":539},[533,46272,39306],{"class":543},[533,46274,46275,46277,46279,46281],{"class":535,"line":640},[533,46276,877],{"class":539},[533,46278,11109],{"class":543},[533,46280,883],{"class":539},[533,46282,11114],{"class":543},[533,46284,46285],{"class":535,"line":646},[533,46286,891],{"emptyLinePlaceholder":790},[533,46288,46289,46291,46293,46295],{"class":535,"line":658},[533,46290,883],{"class":539},[533,46292,11128],{"class":543},[533,46294,584],{"class":539},[533,46296,11133],{"class":543},[533,46298,46299,46301,46303,46305],{"class":535,"line":680},[533,46300,883],{"class":539},[533,46302,11140],{"class":543},[533,46304,584],{"class":539},[533,46306,11145],{"class":543},[533,46308,46309,46311,46313,46315],{"class":535,"line":1536},[533,46310,877],{"class":539},[533,46312,39355],{"class":543},[533,46314,883],{"class":539},[533,46316,39360],{"class":543},[533,46318,46319,46321,46323,46325],{"class":535,"line":1552},[533,46320,877],{"class":539},[533,46322,43653],{"class":543},[533,46324,883],{"class":539},[533,46326,43658],{"class":543},[533,46328,46329,46331,46333,46335],{"class":535,"line":1911},[533,46330,877],{"class":539},[533,46332,43665],{"class":543},[533,46334,883],{"class":539},[533,46336,43670],{"class":543},[533,46338,46339,46341,46343,46345],{"class":535,"line":1940},[533,46340,877],{"class":539},[533,46342,39367],{"class":543},[533,46344,883],{"class":539},[533,46346,39372],{"class":543},[533,46348,46349],{"class":535,"line":1968},[533,46350,891],{"emptyLinePlaceholder":790},[533,46352,46353],{"class":535,"line":1995},[533,46354,891],{"emptyLinePlaceholder":790},[533,46356,46357],{"class":535,"line":4164},[533,46358,11168],{"class":560},[533,46360,46361,46363,46366],{"class":535,"line":4199},[533,46362,11173],{"class":539},[533,46364,46365],{"class":2393}," Knobs3DCustom",[533,46367,544],{"class":543},[533,46369,46370],{"class":535,"line":4206},[533,46371,46372],{"class":621},"    \"\"\"User controls for 3D custom axis–angle Wigner animation.\"\"\"\n",[533,46374,46375,46378,46380,46382,46384,46386,46388,46390,46392,46394,46396,46398,46400,46402,46404,46406],{"class":535,"line":4214},[533,46376,46377],{"class":543},"    axis_vec: Tuple[",[533,46379,11186],{"class":553},[533,46381,1133],{"class":543},[533,46383,11186],{"class":553},[533,46385,1133],{"class":543},[533,46387,11186],{"class":553},[533,46389,11314],{"class":543},[533,46391,554],{"class":553},[533,46393,5037],{"class":543},[533,46395,2229],{"class":625},[533,46397,1133],{"class":543},[533,46399,2239],{"class":625},[533,46401,1133],{"class":543},[533,46403,2229],{"class":625},[533,46405,16970],{"class":543},[533,46407,46408],{"class":593},"# default: y-axis\n",[533,46410,46411,46414,46416,46418],{"class":535,"line":11296},[533,46412,46413],{"class":543},"    angle_deg: ",[533,46415,11186],{"class":553},[533,46417,4899],{"class":553},[533,46419,46420],{"class":625}," 45.0\n",[533,46422,46423,46425,46427,46429],{"class":535,"line":11302},[533,46424,39511],{"class":543},[533,46426,39480],{"class":553},[533,46428,4899],{"class":553},[533,46430,39518],{"class":621},[533,46432,46433,46435,46437,46439,46441,46443,46445,46447,46449,46451,46453,46455,46457,46459,46461],{"class":535,"line":11332},[533,46434,39523],{"class":543},[533,46436,11186],{"class":553},[533,46438,1133],{"class":543},[533,46440,11186],{"class":553},[533,46442,1133],{"class":543},[533,46444,11186],{"class":553},[533,46446,11314],{"class":543},[533,46448,554],{"class":553},[533,46450,5037],{"class":543},[533,46452,2229],{"class":625},[533,46454,1133],{"class":543},[533,46456,2229],{"class":625},[533,46458,1133],{"class":543},[533,46460,2239],{"class":625},[533,46462,637],{"class":543},[533,46464,46465,46467,46469,46471],{"class":535,"line":11345},[533,46466,39556],{"class":543},[533,46468,4175],{"class":553},[533,46470,4899],{"class":553},[533,46472,39563],{"class":625},[533,46474,46475,46477,46479,46481],{"class":535,"line":11372},[533,46476,39568],{"class":543},[533,46478,4175],{"class":553},[533,46480,4899],{"class":553},[533,46482,43834],{"class":625},[533,46484,46485,46487,46489,46491],{"class":535,"line":11385},[533,46486,39580],{"class":543},[533,46488,4175],{"class":553},[533,46490,4899],{"class":553},[533,46492,43845],{"class":625},[533,46494,46495,46497,46499,46501],{"class":535,"line":11390},[533,46496,39592],{"class":543},[533,46498,4175],{"class":553},[533,46500,4899],{"class":553},[533,46502,39599],{"class":625},[533,46504,46505,46507,46509,46511],{"class":535,"line":11402},[533,46506,43860],{"class":543},[533,46508,11186],{"class":553},[533,46510,4899],{"class":553},[533,46512,43867],{"class":625},[533,46514,46515,46517,46519,46521,46523],{"class":535,"line":11407},[533,46516,43872],{"class":543},[533,46518,11186],{"class":553},[533,46520,4899],{"class":553},[533,46522,11221],{"class":553},[533,46524,43881],{"class":625},[533,46526,46527,46530,46532,46534],{"class":535,"line":11412},[533,46528,46529],{"class":543},"    out_path: ",[533,46531,39480],{"class":553},[533,46533,4899],{"class":553},[533,46535,46536],{"class":621}," \"\u002Fcontent\u002Fwigner3d_custom_y45.gif\"\n",[533,46538,46539,46541,46543,46545,46547,46549,46551,46553,46555,46557,46559],{"class":535,"line":11418},[533,46540,39616],{"class":543},[533,46542,11186],{"class":553},[533,46544,1133],{"class":543},[533,46546,11186],{"class":553},[533,46548,11314],{"class":543},[533,46550,554],{"class":553},[533,46552,5037],{"class":543},[533,46554,39247],{"class":625},[533,46556,1133],{"class":543},[533,46558,14900],{"class":625},[533,46560,637],{"class":543},[533,46562,46563,46565,46567,46569],{"class":535,"line":11423},[533,46564,39653],{"class":543},[533,46566,4175],{"class":553},[533,46568,4899],{"class":553},[533,46570,39660],{"class":625},[533,46572,46573],{"class":535,"line":11467},[533,46574,891],{"emptyLinePlaceholder":790},[533,46576,46577],{"class":535,"line":11473},[533,46578,891],{"emptyLinePlaceholder":790},[533,46580,46581],{"class":535,"line":11488},[533,46582,46583],{"class":593},"# ------------- helpers (self-contained; safe for this cell alone) -------------\n",[533,46585,46586,46588,46590,46592,46594,46596,46598,46600,46602,46604,46606,46608,46610,46612,46614],{"class":535,"line":11505},[533,46587,1754],{"class":539},[533,46589,43945],{"class":560},[533,46591,615],{"class":543},[533,46593,12942],{"class":1762},[533,46595,1389],{"class":543},[533,46597,39480],{"class":553},[533,46599,1133],{"class":543},[533,46601,43958],{"class":1762},[533,46603,43961],{"class":543},[533,46605,2229],{"class":625},[533,46607,1133],{"class":543},[533,46609,2229],{"class":625},[533,46611,1133],{"class":543},[533,46613,2239],{"class":625},[533,46615,43974],{"class":543},[533,46617,46618,46620,46622],{"class":535,"line":11518},[533,46619,39734],{"class":543},[533,46621,554],{"class":553},[533,46623,39739],{"class":543},[533,46625,46626,46628,46630,46632,46634,46636,46638,46640,46642,46644,46646,46648,46650,46652,46654,46656,46658],{"class":535,"line":11523},[533,46627,39744],{"class":621},[533,46629,39244],{"class":543},[533,46631,2229],{"class":625},[533,46633,1133],{"class":543},[533,46635,2229],{"class":625},[533,46637,1133],{"class":543},[533,46639,2239],{"class":625},[533,46641,3945],{"class":543},[533,46643,39761],{"class":621},[533,46645,39244],{"class":543},[533,46647,2229],{"class":625},[533,46649,1133],{"class":543},[533,46651,2229],{"class":625},[533,46653,1133],{"class":543},[533,46655,2514],{"class":553},[533,46657,2239],{"class":625},[533,46659,19687],{"class":543},[533,46661,46662,46664,46666,46668,46670,46672,46674,46676,46678,46680,46682,46684,46686,46688,46690,46692,46694],{"class":535,"line":11555},[533,46663,39782],{"class":621},[533,46665,39244],{"class":543},[533,46667,2239],{"class":625},[533,46669,1133],{"class":543},[533,46671,2229],{"class":625},[533,46673,1133],{"class":543},[533,46675,2229],{"class":625},[533,46677,3945],{"class":543},[533,46679,39799],{"class":621},[533,46681,39244],{"class":543},[533,46683,2514],{"class":553},[533,46685,2239],{"class":625},[533,46687,1133],{"class":543},[533,46689,2229],{"class":625},[533,46691,1133],{"class":543},[533,46693,2229],{"class":625},[533,46695,19687],{"class":543},[533,46697,46698,46700,46702,46704,46706,46708,46710,46712,46714,46716,46718,46720,46722,46724,46726,46728,46730],{"class":535,"line":11561},[533,46699,39820],{"class":621},[533,46701,39244],{"class":543},[533,46703,2229],{"class":625},[533,46705,1133],{"class":543},[533,46707,2239],{"class":625},[533,46709,1133],{"class":543},[533,46711,2229],{"class":625},[533,46713,3945],{"class":543},[533,46715,39837],{"class":621},[533,46717,39244],{"class":543},[533,46719,2229],{"class":625},[533,46721,1133],{"class":543},[533,46723,2514],{"class":553},[533,46725,2239],{"class":625},[533,46727,1133],{"class":543},[533,46729,2229],{"class":625},[533,46731,19687],{"class":543},[533,46733,46734],{"class":535,"line":11577},[533,46735,39858],{"class":543},[533,46737,46738,46740,46742,46744,46746,46748,46750,46752,46754,46756,46758],{"class":535,"line":11600},[533,46739,11564],{"class":543},[533,46741,554],{"class":553},[533,46743,2911],{"class":543},[533,46745,39869],{"class":560},[533,46747,39872],{"class":543},[533,46749,3871],{"class":560},[533,46751,44111],{"class":543},[533,46753,39880],{"class":560},[533,46755,44116],{"class":543},[533,46757,11186],{"class":553},[533,46759,637],{"class":543},[533,46761,46762,46764,46766,46768,46770,46772,46774],{"class":535,"line":11621},[533,46763,39892],{"class":543},[533,46765,554],{"class":553},[533,46767,16156],{"class":543},[533,46769,39899],{"class":560},[533,46771,44133],{"class":543},[533,46773,44136],{"class":539},[533,46775,44139],{"class":625},[533,46777,46778,46780,46782,46784],{"class":535,"line":11637},[533,46779,1880],{"class":539},[533,46781,39939],{"class":543},[533,46783,2941],{"class":553},[533,46785,39944],{"class":543},[533,46787,46788],{"class":535,"line":11672},[533,46789,891],{"emptyLinePlaceholder":790},[533,46791,46792],{"class":535,"line":11689},[533,46793,891],{"emptyLinePlaceholder":790},[533,46795,46796,46798,46801,46803,46805,46807,46809,46811,46813,46815,46817,46819,46821,46823,46825],{"class":535,"line":11697},[533,46797,1754],{"class":539},[533,46799,46800],{"class":560}," _rotation_matrix_axis",[533,46802,615],{"class":543},[533,46804,40205],{"class":1762},[533,46806,39711],{"class":543},[533,46808,11186],{"class":553},[533,46810,1133],{"class":543},[533,46812,11186],{"class":553},[533,46814,1133],{"class":543},[533,46816,11186],{"class":553},[533,46818,16316],{"class":543},[533,46820,39978],{"class":1762},[533,46822,1389],{"class":543},[533,46824,11186],{"class":553},[533,46826,39985],{"class":543},[533,46828,46829,46831,46833,46835,46837,46839,46841],{"class":535,"line":11734},[533,46830,40240],{"class":543},[533,46832,554],{"class":553},[533,46834,2911],{"class":543},[533,46836,39869],{"class":560},[533,46838,40249],{"class":543},[533,46840,11186],{"class":553},[533,46842,637],{"class":543},[533,46844,46845,46847,46849,46851,46853],{"class":535,"line":11766},[533,46846,39892],{"class":543},[533,46848,554],{"class":553},[533,46850,16156],{"class":543},[533,46852,39899],{"class":560},[533,46854,40266],{"class":543},[533,46856,46857,46859,46861,46863,46865],{"class":535,"line":11806},[533,46858,1814],{"class":539},[533,46860,39930],{"class":543},[533,46862,2768],{"class":553},[533,46864,26839],{"class":625},[533,46866,544],{"class":543},[533,46868,46869,46871,46873,46875],{"class":535,"line":11826},[533,46870,40283],{"class":539},[533,46872,40180],{"class":543},[533,46874,40288],{"class":621},[533,46876,637],{"class":543},[533,46878,46879,46881,46883,46885,46887],{"class":535,"line":11831},[533,46880,40295],{"class":543},[533,46882,554],{"class":553},[533,46884,40300],{"class":543},[533,46886,2941],{"class":553},[533,46888,39944],{"class":543},[533,46890,46891,46893,46895,46897,46899,46901,46903,46905,46907,46909,46911,46913,46915,46917,46919,46921,46923,46925,46927,46929,46931,46933,46935,46937,46939,46941,46943,46945,46947,46949,46951],{"class":535,"line":11867},[533,46892,40309],{"class":543},[533,46894,554],{"class":553},[533,46896,2911],{"class":543},[533,46898,2914],{"class":560},[533,46900,15804],{"class":543},[533,46902,2229],{"class":625},[533,46904,1133],{"class":543},[533,46906,2514],{"class":553},[533,46908,40326],{"class":543},[533,46910,1140],{"class":625},[533,46912,40331],{"class":543},[533,46914,1052],{"class":625},[533,46916,40336],{"class":543},[533,46918,1140],{"class":625},[533,46920,16316],{"class":543},[533,46922,2229],{"class":625},[533,46924,1133],{"class":543},[533,46926,2514],{"class":553},[533,46928,40326],{"class":543},[533,46930,1049],{"class":625},[533,46932,40353],{"class":543},[533,46934,2514],{"class":553},[533,46936,40326],{"class":543},[533,46938,1052],{"class":625},[533,46940,40331],{"class":543},[533,46942,1049],{"class":625},[533,46944,16316],{"class":543},[533,46946,2229],{"class":625},[533,46948,40168],{"class":543},[533,46950,11186],{"class":553},[533,46952,637],{"class":543},[533,46954,46955,46957,46959,46961,46963,46965,46967],{"class":535,"line":11873},[533,46956,40378],{"class":543},[533,46958,554],{"class":553},[533,46960,2911],{"class":543},[533,46962,5922],{"class":560},[533,46964,615],{"class":543},[533,46966,1157],{"class":625},[533,46968,637],{"class":543},[533,46970,46971,46973,46975,46977,46979,46981,46983],{"class":535,"line":11886},[533,46972,39995],{"class":543},[533,46974,554],{"class":553},[533,46976,2911],{"class":543},[533,46978,14318],{"class":560},[533,46980,40004],{"class":543},[533,46982,14336],{"class":560},[533,46984,40009],{"class":543},[533,46986,46987,46989,46991,46993,46995,46997,46999,47001,47003,47005,47007,47009,47011,47013,47015,47017,47019],{"class":535,"line":11943},[533,46988,1880],{"class":539},[533,46990,40413],{"class":543},[533,46992,2469],{"class":553},[533,46994,40418],{"class":543},[533,46996,6350],{"class":553},[533,46998,5037],{"class":543},[533,47000,1052],{"class":625},[533,47002,11221],{"class":553},[533,47004,40429],{"class":543},[533,47006,2469],{"class":553},[533,47008,2911],{"class":543},[533,47010,40436],{"class":560},[533,47012,40439],{"class":543},[533,47014,6350],{"class":553},[533,47016,5934],{"class":543},[533,47018,2469],{"class":553},[533,47020,40448],{"class":543},[533,47022,47023],{"class":535,"line":12001},[533,47024,891],{"emptyLinePlaceholder":790},[533,47026,47027],{"class":535,"line":12009},[533,47028,891],{"emptyLinePlaceholder":790},[533,47030,47031,47033,47035,47037,47039,47041,47043,47045,47047,47049,47051],{"class":535,"line":12014},[533,47032,1754],{"class":539},[533,47034,44374],{"class":560},[533,47036,615],{"class":543},[533,47038,40473],{"class":1762},[533,47040,1389],{"class":543},[533,47042,4175],{"class":553},[533,47044,1133],{"class":543},[533,47046,40482],{"class":1762},[533,47048,1389],{"class":543},[533,47050,4175],{"class":553},[533,47052,1771],{"class":543},[533,47054,47055,47057,47059,47061,47063,47065,47067],{"class":535,"line":12033},[533,47056,40498],{"class":543},[533,47058,554],{"class":553},[533,47060,2911],{"class":543},[533,47062,12734],{"class":560},[533,47064,615],{"class":543},[533,47066,2229],{"class":625},[533,47068,40511],{"class":543},[533,47070,47071,47073,47075,47077,47079,47081,47083,47085,47087,47089],{"class":535,"line":12039},[533,47072,40516],{"class":543},[533,47074,554],{"class":553},[533,47076,2911],{"class":543},[533,47078,12734],{"class":560},[533,47080,615],{"class":543},[533,47082,2229],{"class":625},[533,47084,1133],{"class":543},[533,47086,11726],{"class":625},[533,47088,2254],{"class":553},[533,47090,40535],{"class":543},[533,47092,47093,47095,47097,47099,47101,47103,47105,47107,47109],{"class":535,"line":12062},[533,47094,40540],{"class":543},[533,47096,554],{"class":553},[533,47098,2911],{"class":543},[533,47100,40547],{"class":560},[533,47102,40550],{"class":543},[533,47104,40553],{"class":567},[533,47106,554],{"class":553},[533,47108,40558],{"class":621},[533,47110,637],{"class":543},[533,47112,47113,47115,47117,47119,47121,47123,47125,47127,47129],{"class":535,"line":12067},[533,47114,40565],{"class":543},[533,47116,554],{"class":553},[533,47118,2911],{"class":543},[533,47120,14336],{"class":560},[533,47122,40574],{"class":543},[533,47124,2469],{"class":553},[533,47126,2911],{"class":543},[533,47128,14318],{"class":560},[533,47130,40583],{"class":543},[533,47132,47133,47135,47137,47139,47141,47143,47145,47147,47149],{"class":535,"line":12075},[533,47134,40588],{"class":543},[533,47136,554],{"class":553},[533,47138,2911],{"class":543},[533,47140,14336],{"class":560},[533,47142,40574],{"class":543},[533,47144,2469],{"class":553},[533,47146,2911],{"class":543},[533,47148,14336],{"class":560},[533,47150,40583],{"class":543},[533,47152,47153,47155,47157,47159,47161],{"class":535,"line":12088},[533,47154,40609],{"class":543},[533,47156,554],{"class":553},[533,47158,2911],{"class":543},[533,47160,14318],{"class":560},[533,47162,40618],{"class":543},[533,47164,47165,47167,47169,47171,47173,47175,47177,47179,47181],{"class":535,"line":12101},[533,47166,44512],{"class":543},[533,47168,554],{"class":553},[533,47170,2911],{"class":543},[533,47172,40627],{"class":560},[533,47174,40630],{"class":543},[533,47176,39969],{"class":567},[533,47178,554],{"class":553},[533,47180,1049],{"class":625},[533,47182,637],{"class":543},[533,47184,47185,47187],{"class":535,"line":12108},[533,47186,1880],{"class":539},[533,47188,44535],{"class":543},[533,47190,47191],{"class":535,"line":12119},[533,47192,891],{"emptyLinePlaceholder":790},[533,47194,47195],{"class":535,"line":12130},[533,47196,891],{"emptyLinePlaceholder":790},[533,47198,47199,47201,47203,47205,47207,47209,47211],{"class":535,"line":12135},[533,47200,1754],{"class":539},[533,47202,44550],{"class":560},[533,47204,615],{"class":543},[533,47206,40658],{"class":1762},[533,47208,16135],{"class":543},[533,47210,30647],{"class":1762},[533,47212,16146],{"class":543},[533,47214,47215,47217,47219,47221,47223,47225,47227,47229,47231,47233,47235,47237,47239,47241,47243,47245,47247,47249,47251,47253,47255,47257,47259,47261,47263,47265,47267,47269,47271],{"class":535,"line":12140},[533,47216,1880],{"class":539},[533,47218,12264],{"class":625},[533,47220,14257],{"class":553},[533,47222,16244],{"class":543},[533,47224,2262],{"class":560},[533,47226,615],{"class":543},[533,47228,40687],{"class":625},[533,47230,7047],{"class":543},[533,47232,2941],{"class":553},[533,47234,2251],{"class":625},[533,47236,7047],{"class":543},[533,47238,2469],{"class":553},[533,47240,40700],{"class":543},[533,47242,40703],{"class":560},[533,47244,615],{"class":543},[533,47246,1157],{"class":625},[533,47248,1133],{"class":543},[533,47250,1052],{"class":625},[533,47252,1133],{"class":543},[533,47254,1052],{"class":625},[533,47256,7047],{"class":543},[533,47258,2469],{"class":553},[533,47260,44614],{"class":543},[533,47262,2946],{"class":560},[533,47264,615],{"class":543},[533,47266,39969],{"class":567},[533,47268,554],{"class":553},[533,47270,1049],{"class":625},[533,47272,637],{"class":543},[533,47274,47275],{"class":535,"line":12146},[533,47276,891],{"emptyLinePlaceholder":790},[533,47278,47279],{"class":535,"line":12151},[533,47280,891],{"emptyLinePlaceholder":790},[533,47282,47283,47285,47288,47290,47292],{"class":535,"line":12201},[533,47284,1754],{"class":539},[533,47286,47287],{"class":560}," animate_wigner_custom_3d",[533,47289,615],{"class":543},[533,47291,41905],{"class":1762},[533,47293,47294],{"class":543},": Knobs3DCustom) -> Path:\n",[533,47296,47297],{"class":535,"line":12210},[533,47298,47299],{"class":621},"    \"\"\"Animate a 3D sphere with colors driven by Wigner under axis–angle rotation.\"\"\"\n",[533,47301,47302,47304,47306,47308],{"class":535,"line":12256},[533,47303,44666],{"class":543},[533,47305,554],{"class":553},[533,47307,43945],{"class":560},[533,47309,44673],{"class":543},[533,47311,47312,47314,47316,47318],{"class":535,"line":12285},[533,47313,44678],{"class":543},[533,47315,554],{"class":553},[533,47317,44374],{"class":560},[533,47319,44685],{"class":543},[533,47321,47322],{"class":535,"line":12337},[533,47323,891],{"emptyLinePlaceholder":790},[533,47325,47326,47328,47330,47332,47334,47336,47338,47340,47342],{"class":535,"line":12343},[533,47327,44699],{"class":543},[533,47329,554],{"class":553},[533,47331,2911],{"class":543},[533,47333,14336],{"class":560},[533,47335,40574],{"class":543},[533,47337,2469],{"class":553},[533,47339,2911],{"class":543},[533,47341,14318],{"class":560},[533,47343,40583],{"class":543},[533,47345,47346,47348,47350,47352,47354,47356,47358,47360,47362],{"class":535,"line":12360},[533,47347,44720],{"class":543},[533,47349,554],{"class":553},[533,47351,2911],{"class":543},[533,47353,14336],{"class":560},[533,47355,40574],{"class":543},[533,47357,2469],{"class":553},[533,47359,2911],{"class":543},[533,47361,14336],{"class":560},[533,47363,40583],{"class":543},[533,47365,47366,47368,47370,47372,47374],{"class":535,"line":12365},[533,47367,44741],{"class":543},[533,47369,554],{"class":553},[533,47371,2911],{"class":543},[533,47373,14318],{"class":560},[533,47375,40618],{"class":543},[533,47377,47378],{"class":535,"line":12412},[533,47379,891],{"emptyLinePlaceholder":790},[533,47381,47382,47384,47386,47388,47390,47392,47394,47396,47398,47400,47402,47404],{"class":535,"line":12420},[533,47383,41560],{"class":543},[533,47385,554],{"class":553},[533,47387,12264],{"class":625},[533,47389,11221],{"class":553},[533,47391,16244],{"class":543},[533,47393,2262],{"class":560},[533,47395,615],{"class":543},[533,47397,40687],{"class":625},[533,47399,7047],{"class":543},[533,47401,2941],{"class":553},[533,47403,2251],{"class":625},[533,47405,637],{"class":543},[533,47407,47408,47410,47412,47414,47416,47418,47420,47422,47424,47426,47428,47430],{"class":535,"line":12468},[533,47409,41587],{"class":543},[533,47411,554],{"class":553},[533,47413,12264],{"class":625},[533,47415,14257],{"class":553},[533,47417,16244],{"class":543},[533,47419,2262],{"class":560},[533,47421,615],{"class":543},[533,47423,40687],{"class":625},[533,47425,7047],{"class":543},[533,47427,2941],{"class":553},[533,47429,2251],{"class":625},[533,47431,637],{"class":543},[533,47433,47434,47436,47438,47440,47442,47444,47446,47448,47450,47452],{"class":535,"line":12491},[533,47435,44815],{"class":543},[533,47437,554],{"class":553},[533,47439,44820],{"class":560},[533,47441,615],{"class":543},[533,47443,44825],{"class":567},[533,47445,554],{"class":553},[533,47447,41710],{"class":543},[533,47449,41713],{"class":567},[533,47451,554],{"class":553},[533,47453,44836],{"class":543},[533,47455,47456,47458,47460,47462,47464],{"class":535,"line":12531},[533,47457,44841],{"class":543},[533,47459,554],{"class":553},[533,47461,19777],{"class":543},[533,47463,44848],{"class":560},[533,47465,1217],{"class":543},[533,47467,47468,47470,47472,47474,47476,47478,47480,47482,47484,47486],{"class":535,"line":12569},[533,47469,44855],{"class":543},[533,47471,554],{"class":553},[533,47473,44860],{"class":560},[533,47475,615],{"class":543},[533,47477,39899],{"class":567},[533,47479,554],{"class":553},[533,47481,44869],{"class":543},[533,47483,13541],{"class":567},[533,47485,554],{"class":553},[533,47487,44876],{"class":543},[533,47489,47490,47492,47494],{"class":535,"line":12574},[533,47491,44881],{"class":543},[533,47493,44884],{"class":560},[533,47495,47496],{"class":543},"([])\n",[533,47498,47499],{"class":535,"line":12589},[533,47500,891],{"emptyLinePlaceholder":790},[533,47502,47503,47505,47507,47509,47511,47513,47515,47517,47519,47521,47523,47525],{"class":535,"line":12594},[533,47504,44899],{"class":543},[533,47506,554],{"class":553},[533,47508,19777],{"class":543},[533,47510,12896],{"class":560},[533,47512,615],{"class":543},[533,47514,12901],{"class":567},[533,47516,554],{"class":553},[533,47518,44914],{"class":543},[533,47520,27085],{"class":567},[533,47522,554],{"class":553},[533,47524,1958],{"class":625},[533,47526,637],{"class":543},[533,47528,47529,47531,47533,47535,47537,47539,47541,47543,47545,47547,47549],{"class":535,"line":12600},[533,47530,44927],{"class":543},[533,47532,554],{"class":553},[533,47534,41736],{"class":543},[533,47536,44934],{"class":560},[533,47538,615],{"class":543},[533,47540,3543],{"class":625},[533,47542,1133],{"class":543},[533,47544,44943],{"class":567},[533,47546,554],{"class":553},[533,47548,44948],{"class":621},[533,47550,637],{"class":543},[533,47552,47553,47555,47557,47559,47561,47563,47565,47567,47569],{"class":535,"line":12641},[533,47554,27134],{"class":543},[533,47556,44957],{"class":560},[533,47558,615],{"class":543},[533,47560,44962],{"class":567},[533,47562,554],{"class":553},[533,47564,44967],{"class":543},[533,47566,44970],{"class":567},[533,47568,554],{"class":553},[533,47570,44975],{"class":543},[533,47572,47573,47575,47577,47579,47581],{"class":535,"line":12656},[533,47574,1814],{"class":539},[533,47576,44982],{"class":553},[533,47578,41821],{"class":543},[533,47580,44987],{"class":621},[533,47582,1771],{"class":543},[533,47584,47585,47587,47589,47591,47593,47595,47597,47599,47601],{"class":535,"line":12672},[533,47586,12675],{"class":543},[533,47588,44996],{"class":560},[533,47590,6219],{"class":543},[533,47592,1052],{"class":625},[533,47594,1133],{"class":543},[533,47596,1052],{"class":625},[533,47598,1133],{"class":543},[533,47600,1052],{"class":625},[533,47602,1937],{"class":543},[533,47604,47605],{"class":535,"line":12703},[533,47606,891],{"emptyLinePlaceholder":790},[533,47608,47609],{"class":535,"line":12708},[533,47610,47611],{"class":593},"    # Initial facecolors\n",[533,47613,47614,47617,47619],{"class":535,"line":12713},[533,47615,47616],{"class":543},"    angle0 ",[533,47618,554],{"class":553},[533,47620,47621],{"class":625}," 0.0\n",[533,47623,47624,47627,47629,47631,47634,47636],{"class":535,"line":12719},[533,47625,47626],{"class":543},"    r_init ",[533,47628,554],{"class":553},[533,47630,46800],{"class":560},[533,47632,47633],{"class":543},"(k.axis_vec, angle0) ",[533,47635,5911],{"class":553},[533,47637,41962],{"class":543},[533,47639,47640,47642,47644,47646],{"class":535,"line":12724},[533,47641,45024],{"class":543},[533,47643,554],{"class":553},[533,47645,44550],{"class":560},[533,47647,47648],{"class":543},"(r_init, n)\n",[533,47650,47651,47653,47655,47657,47659,47661,47663,47665,47667,47669,47671,47673,47675],{"class":535,"line":12750},[533,47652,45050],{"class":625},[533,47654,4899],{"class":553},[533,47656,45055],{"class":560},[533,47658,615],{"class":543},[533,47660,39899],{"class":560},[533,47662,45062],{"class":543},[533,47664,2514],{"class":553},[533,47666,1052],{"class":625},[533,47668,45069],{"class":543},[533,47670,2514],{"class":553},[533,47672,1052],{"class":625},[533,47674,45076],{"class":543},[533,47676,47677],{"class":593},"# (M-1,N-1,4)\n",[533,47679,47680],{"class":535,"line":12775},[533,47681,891],{"emptyLinePlaceholder":790},[533,47683,47684,47686,47688,47690,47692],{"class":535,"line":12780},[533,47685,45088],{"class":543},[533,47687,554],{"class":553},[533,47689,41124],{"class":543},[533,47691,45095],{"class":560},[533,47693,1503],{"class":543},[533,47695,47696],{"class":535,"line":12812},[533,47697,45102],{"class":543},[533,47699,47700,47702,47704,47706],{"class":535,"line":12842},[533,47701,45107],{"class":567},[533,47703,554],{"class":553},[533,47705,45112],{"class":625},[533,47707,1549],{"class":543},[533,47709,47710,47712,47714,47716,47718,47720,47722,47724],{"class":535,"line":12879},[533,47711,45119],{"class":567},[533,47713,554],{"class":553},[533,47715,1052],{"class":625},[533,47717,1133],{"class":543},[533,47719,45128],{"class":567},[533,47721,554],{"class":553},[533,47723,1052],{"class":625},[533,47725,1549],{"class":543},[533,47727,47728,47730,47732,47734,47736,47738,47740,47742],{"class":535,"line":12884},[533,47729,45139],{"class":567},[533,47731,554],{"class":553},[533,47733,1930],{"class":625},[533,47735,1133],{"class":543},[533,47737,12694],{"class":567},[533,47739,554],{"class":553},[533,47741,1049],{"class":625},[533,47743,1549],{"class":543},[533,47745,47746,47748,47750,47752],{"class":535,"line":12890},[533,47747,45158],{"class":567},[533,47749,554],{"class":553},[533,47751,1930],{"class":625},[533,47753,1549],{"class":543},[533,47755,47756],{"class":535,"line":12927},[533,47757,12340],{"class":543},[533,47759,47760],{"class":535,"line":12988},[533,47761,891],{"emptyLinePlaceholder":790},[533,47763,47764,47766,47768,47770,47772,47774,47776,47778,47780,47782,47784,47786,47788,47790,47792,47794],{"class":535,"line":13011},[533,47765,41731],{"class":543},[533,47767,554],{"class":553},[533,47769,41736],{"class":543},[533,47771,13556],{"class":560},[533,47773,45194],{"class":543},[533,47775,12651],{"class":567},[533,47777,554],{"class":553},[533,47779,41748],{"class":543},[533,47781,41751],{"class":567},[533,47783,554],{"class":553},[533,47785,41756],{"class":625},[533,47787,1133],{"class":543},[533,47789,41761],{"class":567},[533,47791,554],{"class":553},[533,47793,41766],{"class":625},[533,47795,637],{"class":543},[533,47797,47798,47800,47802,47804,47806],{"class":535,"line":13025},[533,47799,41773],{"class":543},[533,47801,41776],{"class":560},[533,47803,615],{"class":543},[533,47805,41781],{"class":621},[533,47807,637],{"class":543},[533,47809,47810],{"class":535,"line":13053},[533,47811,891],{"emptyLinePlaceholder":790},[533,47813,47814,47816,47818,47820,47822],{"class":535,"line":13084},[533,47815,27134],{"class":543},[533,47817,19871],{"class":560},[533,47819,615],{"class":543},[533,47821,39494],{"class":621},[533,47823,637],{"class":543},[533,47825,47826,47828,47830,47832,47834],{"class":535,"line":13105},[533,47827,27134],{"class":543},[533,47829,19885],{"class":560},[533,47831,615],{"class":543},[533,47833,39499],{"class":621},[533,47835,637],{"class":543},[533,47837,47838,47840,47842,47844,47846],{"class":535,"line":13115},[533,47839,27134],{"class":543},[533,47841,45268],{"class":560},[533,47843,615],{"class":543},[533,47845,39504],{"class":621},[533,47847,637],{"class":543},[533,47849,47850,47852,47854,47856,47858],{"class":535,"line":13125},[533,47851,45279],{"class":543},[533,47853,554],{"class":553},[533,47855,41124],{"class":543},[533,47857,45286],{"class":560},[533,47859,1503],{"class":543},[533,47861,47862,47864,47866,47868,47870,47873],{"class":535,"line":13130},[533,47863,41274],{"class":625},[533,47865,1133],{"class":543},[533,47867,45297],{"class":625},[533,47869,1133],{"class":543},[533,47871,47872],{"class":621},"\"Wigner - custom angle\"",[533,47874,1549],{"class":543},[533,47876,47877,47879,47881,47883,47885,47887,47889,47891,47893,47895,47897,47899,47901,47903,47905],{"class":535,"line":13136},[533,47878,41144],{"class":567},[533,47880,554],{"class":553},[533,47882,41149],{"class":543},[533,47884,40832],{"class":567},[533,47886,554],{"class":553},[533,47888,41296],{"class":621},[533,47890,1133],{"class":543},[533,47892,40842],{"class":567},[533,47894,554],{"class":553},[533,47896,40847],{"class":621},[533,47898,1133],{"class":543},[533,47900,41152],{"class":567},[533,47902,554],{"class":553},[533,47904,1596],{"class":625},[533,47906,1549],{"class":543},[533,47908,47909,47911,47913,47915,47917,47919,47921,47923,47925,47927,47929,47931,47933,47935,47937,47939,47941,47943,47945],{"class":535,"line":13167},[533,47910,41171],{"class":567},[533,47912,41174],{"class":553},[533,47914,615],{"class":543},[533,47916,41179],{"class":567},[533,47918,554],{"class":553},[533,47920,41184],{"class":621},[533,47922,1133],{"class":543},[533,47924,41189],{"class":567},[533,47926,554],{"class":553},[533,47928,41194],{"class":621},[533,47930,1133],{"class":543},[533,47932,19638],{"class":567},[533,47934,554],{"class":553},[533,47936,41203],{"class":625},[533,47938,1133],{"class":543},[533,47940,41208],{"class":567},[533,47942,554],{"class":553},[533,47944,41213],{"class":621},[533,47946,19687],{"class":543},[533,47948,47949,47951,47953,47955],{"class":535,"line":13213},[533,47950,41362],{"class":567},[533,47952,554],{"class":553},[533,47954,1967],{"class":625},[533,47956,1549],{"class":543},[533,47958,47959],{"class":535,"line":13234},[533,47960,12340],{"class":543},[533,47962,47963,47965,47967,47969,47971],{"class":535,"line":13245},[533,47964,45409],{"class":543},[533,47966,554],{"class":553},[533,47968,41124],{"class":543},[533,47970,45286],{"class":560},[533,47972,1503],{"class":543},[533,47974,47975,47977,47979,47981,47983,47985,47987,47989,47991,47993,47995,47997,47999,48001,48003,48005,48007],{"class":535,"line":13268},[533,47976,45422],{"class":625},[533,47978,1133],{"class":543},[533,47980,45427],{"class":625},[533,47982,1133],{"class":543},[533,47984,41862],{"class":621},[533,47986,1133],{"class":543},[533,47988,45436],{"class":567},[533,47990,554],{"class":553},[533,47992,41149],{"class":543},[533,47994,40832],{"class":567},[533,47996,554],{"class":553},[533,47998,40837],{"class":621},[533,48000,1133],{"class":543},[533,48002,40842],{"class":567},[533,48004,554],{"class":553},[533,48006,40847],{"class":621},[533,48008,1549],{"class":543},[533,48010,48011,48013,48015],{"class":535,"line":13295},[533,48012,41311],{"class":567},[533,48014,554],{"class":553},[533,48016,45465],{"class":543},[533,48018,48019,48021,48023,48025,48027,48029,48031,48033,48035,48037,48039,48041,48043,48045,48047,48049,48051,48053,48055],{"class":535,"line":13316},[533,48020,41171],{"class":567},[533,48022,41174],{"class":553},[533,48024,615],{"class":543},[533,48026,41179],{"class":567},[533,48028,554],{"class":553},[533,48030,41184],{"class":621},[533,48032,1133],{"class":543},[533,48034,41189],{"class":567},[533,48036,554],{"class":553},[533,48038,41194],{"class":621},[533,48040,1133],{"class":543},[533,48042,19638],{"class":567},[533,48044,554],{"class":553},[533,48046,41203],{"class":625},[533,48048,1133],{"class":543},[533,48050,41208],{"class":567},[533,48052,554],{"class":553},[533,48054,41213],{"class":621},[533,48056,19687],{"class":543},[533,48058,48059,48061,48063,48065],{"class":535,"line":13325},[533,48060,41362],{"class":567},[533,48062,554],{"class":553},[533,48064,1967],{"class":625},[533,48066,1549],{"class":543},[533,48068,48069],{"class":535,"line":13334},[533,48070,12340],{"class":543},[533,48072,48073],{"class":535,"line":13339},[533,48074,891],{"emptyLinePlaceholder":790},[533,48076,48077,48079,48081,48083,48085,48087,48089],{"class":535,"line":13345},[533,48078,41897],{"class":539},[533,48080,41900],{"class":560},[533,48082,615],{"class":543},[533,48084,45534],{"class":1762},[533,48086,1389],{"class":543},[533,48088,4175],{"class":553},[533,48090,1771],{"class":543},[533,48092,48093,48095,48097,48099,48101,48103,48105,48107,48109,48111,48113,48115],{"class":535,"line":13370},[533,48094,41916],{"class":543},[533,48096,554],{"class":553},[533,48098,45550],{"class":543},[533,48100,2941],{"class":553},[533,48102,45555],{"class":543},[533,48104,2514],{"class":553},[533,48106,6353],{"class":625},[533,48108,11986],{"class":543},[533,48110,2469],{"class":553},[533,48112,2911],{"class":543},[533,48114,43066],{"class":560},[533,48116,48117],{"class":543},"(k.angle_deg)\n",[533,48119,48120,48122,48124,48126,48129,48131],{"class":535,"line":13389},[533,48121,45572],{"class":543},[533,48123,554],{"class":553},[533,48125,46800],{"class":560},[533,48127,48128],{"class":543},"(k.axis_vec, ang) ",[533,48130,5911],{"class":553},[533,48132,41962],{"class":543},[533,48134,48135,48137,48139,48141],{"class":535,"line":13407},[533,48136,45588],{"class":543},[533,48138,554],{"class":553},[533,48140,44550],{"class":560},[533,48142,45595],{"class":543},[533,48144,48145,48147,48149,48151,48153,48155,48157,48159,48161,48163,48165,48167,48170],{"class":535,"line":13420},[533,48146,45600],{"class":625},[533,48148,4899],{"class":553},[533,48150,45055],{"class":560},[533,48152,615],{"class":543},[533,48154,39899],{"class":560},[533,48156,45611],{"class":543},[533,48158,2514],{"class":553},[533,48160,1052],{"class":625},[533,48162,45069],{"class":543},[533,48164,2514],{"class":553},[533,48166,1052],{"class":625},[533,48168,48169],{"class":543},"]))          ",[533,48171,47677],{"class":593},[533,48173,48174,48176,48178,48180,48182,48184,48186,48188,48190,48192,48194,48196,48199],{"class":535,"line":13425},[533,48175,45632],{"class":543},[533,48177,45635],{"class":560},[533,48179,615],{"class":543},[533,48181,45640],{"class":625},[533,48183,114],{"class":543},[533,48185,40703],{"class":560},[533,48187,615],{"class":543},[533,48189,2514],{"class":553},[533,48191,1052],{"class":625},[533,48193,1133],{"class":543},[533,48195,1183],{"class":625},[533,48197,48198],{"class":543},"))    ",[533,48200,48201],{"class":593},"# in-place update\n",[533,48203,48204,48206,48208],{"class":535,"line":13456},[533,48205,45665],{"class":543},[533,48207,41986],{"class":560},[533,48209,1503],{"class":543},[533,48211,48212,48214,48216,48218,48221,48223,48225,48227,48229,48231,48233,48235,48237,48239,48241,48243,48245,48247,48249,48251,48253,48255,48257,48259,48261],{"class":535,"line":13502},[533,48213,43119],{"class":539},[533,48215,43122],{"class":621},[533,48217,626],{"class":625},[533,48219,48220],{"class":543},"k.axis_vec[",[533,48222,1049],{"class":625},[533,48224,30516],{"class":543},[533,48226,43134],{"class":539},[533,48228,632],{"class":625},[533,48230,1133],{"class":621},[533,48232,626],{"class":625},[533,48234,48220],{"class":543},[533,48236,1052],{"class":625},[533,48238,30516],{"class":543},[533,48240,43134],{"class":539},[533,48242,632],{"class":625},[533,48244,1133],{"class":621},[533,48246,626],{"class":625},[533,48248,48220],{"class":543},[533,48250,1140],{"class":625},[533,48252,30516],{"class":543},[533,48254,43134],{"class":539},[533,48256,632],{"class":625},[533,48258,2632],{"class":621},[533,48260,7117],{"class":553},[533,48262,43171],{"class":621},[533,48264,48265,48267,48269,48271,48273,48275,48277,48279,48281,48283,48285,48288,48290,48292],{"class":535,"line":13551},[533,48266,43119],{"class":539},[533,48268,41993],{"class":621},[533,48270,626],{"class":625},[533,48272,43182],{"class":543},[533,48274,43185],{"class":560},[533,48276,43188],{"class":543},[533,48278,7135],{"class":539},[533,48280,632],{"class":625},[533,48282,43195],{"class":621},[533,48284,626],{"class":625},[533,48286,48287],{"class":543},"k.angle_deg",[533,48289,7135],{"class":539},[533,48291,632],{"class":625},[533,48293,43207],{"class":621},[533,48295,48296],{"class":535,"line":13583},[533,48297,43212],{"class":543},[533,48299,48300,48302],{"class":535,"line":13612},[533,48301,4169],{"class":539},[533,48303,45715],{"class":543},[533,48305,48306],{"class":535,"line":13635},[533,48307,891],{"emptyLinePlaceholder":790},[533,48309,48310,48312,48314,48316,48318,48320,48322,48324,48326,48328,48330,48332,48334,48336,48338],{"class":535,"line":13679},[533,48311,42049],{"class":543},[533,48313,554],{"class":553},[533,48315,42054],{"class":560},[533,48317,42057],{"class":543},[533,48319,42027],{"class":567},[533,48321,554],{"class":553},[533,48323,45736],{"class":543},[533,48325,42067],{"class":567},[533,48327,554],{"class":553},[533,48329,42072],{"class":625},[533,48331,1133],{"class":543},[533,48333,42077],{"class":567},[533,48335,554],{"class":553},[533,48337,1930],{"class":625},[533,48339,637],{"class":543},[533,48341,48342,48344,48346,48348],{"class":535,"line":13688},[533,48343,16198],{"class":543},[533,48345,554],{"class":553},[533,48347,42405],{"class":560},[533,48349,48350],{"class":543},"(k.out_path)\n",[533,48352,48353,48355,48357,48359,48361,48363,48365,48367,48369,48371,48373],{"class":535,"line":13693},[533,48354,45783],{"class":543},[533,48356,42091],{"class":560},[533,48358,615],{"class":543},[533,48360,42096],{"class":567},[533,48362,554],{"class":553},[533,48364,1958],{"class":625},[533,48366,1133],{"class":543},[533,48368,42105],{"class":567},[533,48370,554],{"class":553},[533,48372,1958],{"class":625},[533,48374,637],{"class":543},[533,48376,48377,48379,48381,48383,48385,48387,48389,48391,48393,48395,48397,48399],{"class":535,"line":13699},[533,48378,42116],{"class":543},[533,48380,42119],{"class":560},[533,48382,45812],{"class":543},[533,48384,42125],{"class":560},[533,48386,13473],{"class":543},[533,48388,42130],{"class":567},[533,48390,554],{"class":553},[533,48392,42135],{"class":560},[533,48394,615],{"class":543},[533,48396,42140],{"class":567},[533,48398,554],{"class":553},[533,48400,45831],{"class":543},[533,48402,48403,48405,48407,48409,48411,48413,48415],{"class":535,"line":13715},[533,48404,42150],{"class":567},[533,48406,41174],{"class":553},[533,48408,615],{"class":543},[533,48410,42157],{"class":567},[533,48412,554],{"class":553},[533,48414,41194],{"class":621},[533,48416,1937],{"class":543},[533,48418,48419,48421,48423],{"class":535,"line":13732},[533,48420,42168],{"class":543},[533,48422,42171],{"class":560},[533,48424,42174],{"class":543},[533,48426,48427,48429],{"class":535,"line":13745},[533,48428,1880],{"class":539},[533,48430,16277],{"class":543},[533,48432,48433],{"class":535,"line":13762},[533,48434,891],{"emptyLinePlaceholder":790},[533,48436,48437],{"class":535,"line":13774},[533,48438,891],{"emptyLinePlaceholder":790},[533,48440,48441],{"class":535,"line":13809},[533,48442,48443],{"class":593},"# ----------------------------- Example run ------------------------------------\n",[533,48445,48446,48449,48451,48453],{"class":535,"line":13814},[533,48447,48448],{"class":625},"K3C",[533,48450,4899],{"class":553},[533,48452,46365],{"class":560},[533,48454,1503],{"class":543},[533,48456,48457,48459,48461,48463,48465,48467,48469,48471,48473,48475,48477,48479,48481],{"class":535,"line":13840},[533,48458,43375],{"class":567},[533,48460,554],{"class":553},[533,48462,615],{"class":543},[533,48464,2229],{"class":625},[533,48466,1133],{"class":543},[533,48468,2239],{"class":625},[533,48470,1133],{"class":543},[533,48472,2229],{"class":625},[533,48474,3945],{"class":543},[533,48476,43200],{"class":567},[533,48478,554],{"class":553},[533,48480,43401],{"class":625},[533,48482,1549],{"class":543},[533,48484,48485,48487,48489,48491,48493,48496,48498,48501],{"class":535,"line":13861},[533,48486,42235],{"class":567},[533,48488,554],{"class":553},[533,48490,42240],{"class":621},[533,48492,1133],{"class":543},[533,48494,48495],{"class":567},"out_path",[533,48497,554],{"class":553},[533,48499,48500],{"class":621},"\"\u002Fcontent\u002Fwigner3d_custom_y45.gif\"",[533,48502,1549],{"class":543},[533,48504,48505],{"class":535,"line":13866},[533,48506,637],{"class":543},[533,48508,48509,48512,48514,48516,48518,48520],{"class":535,"line":13897},[533,48510,48511],{"class":543},"saved_custom ",[533,48513,554],{"class":553},[533,48515,47287],{"class":560},[533,48517,615],{"class":543},[533,48519,48448],{"class":625},[533,48521,637],{"class":543},[533,48523,48524,48526,48528,48530,48532,48534,48536,48539,48541],{"class":535,"line":13930},[533,48525,43513],{"class":560},[533,48527,615],{"class":543},[533,48529,42498],{"class":560},[533,48531,615],{"class":543},[533,48533,1418],{"class":567},[533,48535,554],{"class":553},[533,48537,48538],{"class":543},"saved_custom.",[533,48540,42125],{"class":560},[533,48542,2927],{"class":543},[533,48544,48545,48547,48549,48551],{"class":535,"line":13967},[533,48546,917],{"class":553},[533,48548,615],{"class":543},[533,48550,42517],{"class":621},[533,48552,48553],{"class":543},", saved_custom)\n",[524,48555,48558],{"className":48556,"code":48557,"language":31773,"meta":529},[38897],"Saved: \u002Fcontent\u002Fwigner3d_custom_y45.gif\n",[57,48559,48557],{"__ignoreMap":529},[2175,48561],{"alt":19361,"src":48562},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-08.webp",[773,48564,48565],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}",{"title":529,"searchDepth":547,"depth":547,"links":48567},[48568,48569,48570,48572,48573,48575,48577,48578,48579,48580],{"id":28979,"depth":547,"text":28980},{"id":30843,"depth":547,"text":30844},{"id":32947,"depth":547,"text":48571},"3. Pauli Gates as (π\\piπ)-Rotations",{"id":33952,"depth":547,"text":33953},{"id":34758,"depth":547,"text":48574},"5. Rodrigues’ Formula (Axis–Angle (→\\to→) Rotation Matrix)",{"id":36897,"depth":547,"text":48576},"6. Optional: Discrete (2×22\\times22×2) (Finite‑State) Wigner",{"id":37808,"depth":547,"text":37809},{"id":38556,"depth":547,"text":38557},{"id":38889,"depth":547,"text":38890},{"id":38905,"depth":547,"text":38906},[4349,4637,16782,48582],"Wigner functions",[48584],{"username":6135,"name":6133,"role":16786,"bio":16787,"links":48585},[48586,48587],{"label":4363,"href":16790},{"label":16792,"href":28974},{"username":6135,"name":6133,"role":16794},"Pauli rotations rendered as Wigner functions, animated in two and three dimensions, with the density-operator and Bloch-vector groundwork.","Deep dive · Visualization",{},"\u002F_content\u002Fimages\u002Fwigner-functions-single-qubit-gates\u002Foutput-01.png","\u002Fblog\u002Fexpert-notes\u002Fwigner-functions-single-qubit-gates","17 min read",[],{"title":28964,"description":48589},"blog\u002Fexpert-notes\u002Fwigner-functions-single-qubit-gates",[16807,4383],"NyFqps8nZpXIgrj5NstVAVDuI0QNM6Arr8y4QevBbZI",{"id":48601,"title":8141,"authors":48602,"body":48603,"breadcrumb":48708,"builders":48710,"byline":7,"category":7,"categoryName":7,"challenge":48711,"courseAuthor":7,"courseLead":7,"dek":48717,"description":48718,"draft":786,"extension":787,"eyebrow":48719,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":48720,"heroImage":7,"homepageFeatured":786,"kind":9274,"lessonCount":7,"meta":48723,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":48724,"publishDate":48725,"readingTime":7,"related":48726,"relatedProjects":7,"seo":48727,"stem":48730,"tags":48731,"track":7,"trackName":7,"__hash__":48732},"blog\u002Fblog\u002Fprograms\u002Fcredits-grant.md",[1037],{"type":9,"value":48604,"toc":48701},[48605,48609,48612,48615,48619,48624,48628,48637,48641,48674,48680,48684,48691],[25,48606,48608],{"id":48607},"get-rewarded-for-helping-quantum-grow","Get rewarded for helping quantum grow",[12,48610,48611],{},"Whether collecting dust in GitHub repos hardly anyone visits, or published once in a paper and never touched again, the quantum ecosystem's best work is often scattered and hard to find. Qollab exists to change that: we're building the one place where the open-source community can learn about quantum as well as publish, fork, and run quantum code on real hardware.",[12,48613,48614],{},"To make progress on our mission, we need your help — and we are willing to reward you for it. Port your already published circuits and tutorials onto Qollab, fork and extend some of our existing open-source projects, or bring over new original work, and you'll be eligible for quantum compute credits you can use on any project of your choosing.",[25,48616,48618],{"id":48617},"what-the-credits-actually-are","What the credits actually are",[12,48620,48621,48622,114],{},"The dollar figures describe compute value, not a payment. Credits are IonQ hardware time, spent from inside Qollab and nowhere else: you use them by running your circuits on real quantum computers from the playground. There's nothing to invoice and nothing to cash out. Credits land on your Qollab account the moment your project is approved and published, and they expire three months later: plan to run experiments, not to bank a balance. The full mechanics are in the ",[19,48623,8146],{"href":8145},[25,48625,48627],{"id":48626},"how-you-can-earn-credits","How you can earn credits",[48629,48630],"benefit-grid",{"b1":48631,"b2":48632,"b3":48633,"t1":48634,"t2":48635,"t3":48636},"You've already developed notebooks, tutorials, algorithms and circuits. Clean them up, have them run natively on Qollab, and you could earn up to $10,000 in compute credits per project. Because the work already exists, review cycles are fast — free access to real quantum hardware in record time.","Take an existing open-source Qollab project and build on it: add new features, new circuits, or take it in a meaningfully different direction. If you are unsure about your approach, the original developers are usually a message away.","Have an itch you want to scratch? Build new-to-the-world tutorials, notebooks and circuit implementations, and earn up to $20,000 in compute credits for content that helps the community learn and grow.","Port existing work — up to $10,000 in compute credits","Fork and extend — up to $10,000 in compute credits","Publish original work — up to $20,000 in compute credits",[25,48638,48640],{"id":48639},"how-the-process-works","How the process works",[753,48642,48643,48650,48653,48656,48659,48662,48665,48668,48671],{},[756,48644,48645,48646,114],{},"You submit your proposal using ",[19,48647,48649],{"href":48648},"https:\u002F\u002Fairtable.com\u002FappMaDEaU08NjHUfu\u002Fpag7Fof6hQGzNpDtu\u002Fform","this form",[756,48651,48652],{},"Our team reviews every submission on a rolling basis.",[756,48654,48655],{},"We'll tell you where your submission lands before you commit to the work.",[756,48657,48658],{},"Projects need to be published on Qollab and run natively on the platform.",[756,48660,48661],{},"All work needs to be under the MIT license, so everyone can fork and build on it.",[756,48663,48664],{},"Once your project is live and runnable, credits land on your Qollab account.",[756,48666,48667],{},"You spend them from Qollab: running your circuits on real hardware draws down the balance. They're compute, not cash.",[756,48669,48670],{},"Credits expire three months after they land, to make sure they get used rather than banked.",[756,48672,48673],{},"Your work needs to stay on Qollab for at least a year from the day you published it.",[12,48675,48676,48677,114],{},"Full terms, including eligibility and how credits are issued and expire, are in the ",[19,48678,48679],{"href":8145},"Grant Program Terms & Conditions",[25,48681,48683],{"id":48682},"questions","Questions",[12,48685,48686,48687,114],{},"Reach out at ",[19,48688,48690],{"href":48689},"mailto:hello@qollab.xyz","hello@qollab.xyz",[48692,48693,48698],"cta-band",{"f1":48694,"f2":8145,"l1":48695,"l2":48696,"title":48697},"https:\u002F\u002Fairtable.com\u002FappMaDEaU08NjHUfu\u002FpagfidAqW1fppbUs4\u002Fform","Custom program interest form","Read the terms","Have a bigger idea?",[12,48699,48700],{},"Running a student club, a research lab, an open-source project, or any other community that wants real quantum hardware access for its members? We build custom versions of this programme for groups, not just individuals. Tell us about your community and what you have in mind.",{"title":529,"searchDepth":547,"depth":547,"links":48702},[48703,48704,48705,48706,48707],{"id":48607,"depth":547,"text":48608},{"id":48617,"depth":547,"text":48618},{"id":48626,"depth":547,"text":48627},{"id":48639,"depth":547,"text":48640},{"id":48682,"depth":547,"text":48683},[4349,48709,4695],"Programs",[],{"type":48712,"status":48713,"deadline":48714,"prize":48715,"terms":48716},"funding","open","Rolling — every submission reviewed as it arrives","Up to $20,000 in IonQ compute credits per project","MIT licensed, published and runnable on Qollab for one year","The quantum ecosystem's best work is scattered across repos nobody visits and papers nobody re-runs. Bring it to Qollab — port it, fork it, or build something new — and earn compute credits you can spend on real quantum hardware.","Port, fork, or publish open-source quantum work on Qollab and earn up to $20,000 in IonQ compute credits. Submissions reviewed on a rolling basis.","Open · rolling review",{"primaryHref":48648,"primaryLabel":48721,"secondaryHref":8145,"secondaryLabel":48696,"note":48722},"Submit a proposal →","Three ways to qualify, reviewed on a rolling basis. We tell you where your project lands before you commit to the work.",{},"\u002Fblog\u002Fprograms\u002Fcredits-grant","2026-07-30",[],{"title":48728,"description":48729},"Qollab Grant Program: earn quantum compute credits","Earn up to $20,000 in IonQ compute credits for porting, forking, or publishing open-source quantum work on Qollab. MIT licensed, runnable on real hardware.","blog\u002Fprograms\u002Fcredits-grant",[48712,9203,4383],"X1bjfXXVnAwDJNFQlZZ3_3-ccKOYD7dbGo4YFqTfNtE",{"id":48734,"title":48735,"authors":48736,"body":48737,"breadcrumb":49036,"builders":49038,"byline":7,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":49039,"description":49040,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":7,"lessonCount":7,"meta":49041,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":49042,"publishDate":48725,"readingTime":7,"related":49043,"relatedProjects":7,"seo":49044,"stem":49047,"tags":49048,"track":7,"trackName":7,"__hash__":49049},"blog\u002Fblog\u002Fprograms\u002Fcredits-terms.md","Grant Program: Terms & Conditions",[1037],{"type":9,"value":48738,"toc":49023},[48739,48745,48748,48752,48777,48781,48823,48827,48841,48845,48870,48874,48891,48895,48923,48927,48938,48942,48953,48957,48965,48969,48982,48986,49018],[12,48740,48741,48744],{},[974,48742,48743],{},"Last updated:"," July 30, 2026",[12,48746,48747],{},"These Terms & Conditions (\"Terms\") govern participation in the Qollab Grant Program (the \"Program\"), operated by fluxDev, Inc. By submitting work to the Program, you (\"Contributor,\" \"you\") agree to these Terms.",[25,48749,48751],{"id":48750},"_1-eligibility","1. Eligibility",[753,48753,48754,48757,48771,48774],{},[756,48755,48756],{},"You must be at least 18 years old, or the age of legal majority in your jurisdiction, to participate.",[756,48758,48759,48760],{},"The Program is not open to:\n",[753,48761,48762,48765,48768],{},[756,48763,48764],{},"Current employees, contractors, or advisors of Qollab",[756,48766,48767],{},"Immediate family members of the above",[756,48769,48770],{},"Residents of, or entities based in, jurisdictions subject to applicable export control or trade sanctions restrictions (see Section 9)",[756,48772,48773],{},"Qollab reserves the right to verify eligibility at any point before or after credits are awarded, and to disqualify a Contributor who does not meet these requirements, including retroactively.",[756,48775,48776],{},"There is no limit on the number of submissions a single Contributor may make.",[25,48778,48780],{"id":48779},"_2-submission-requirements","2. Submission requirements",[753,48782,48783,48803,48820],{},[756,48784,48785,48786],{},"To be eligible for credits, submitted work must:\n",[753,48787,48788,48791,48794,48797,48800],{},[756,48789,48790],{},"Be published natively and run on the Qollab platform (qollab.xyz)",[756,48792,48793],{},"Be fully runnable: one-click executable on the platform, not a static code listing",[756,48795,48796],{},"Be licensed under the MIT License at the time of publication",[756,48798,48799],{},"Fall into one of the three recognised categories on the Program page: Port Existing Work, Fork & Extend, or Publish Original Work",[756,48801,48802],{},"Remain published and runnable natively on Qollab for a minimum of one (1) year from the date of publication, except where removal is required as set out in Section 3, or as requested by Qollab",[756,48804,48805,48806],{},"By submitting work, you represent and warrant that:\n",[753,48807,48808,48811,48814,48817],{},[756,48809,48810],{},"You are the original author of the submitted work, or you hold all rights necessary to publish it under an MIT license and to grant the rights described in Section 3",[756,48812,48813],{},"The work does not infringe any third party's copyright, patent, trade secret, or other intellectual property rights",[756,48815,48816],{},"The work does not violate any applicable law or the rights of any third party",[756,48818,48819],{},"Where the work is a \"port\" of pre-existing material (for example, from a published paper, prior notebook, or other repository), you have the right to republish that material and, where the original author is someone other than you, you have secured their consent or the material is otherwise appropriately licensed for this use",[756,48821,48822],{},"Qollab may request evidence of authorship or rights of use before or after publication, and may remove any submission and revoke any associated award if such evidence is not provided or is found to be false.",[25,48824,48826],{"id":48825},"_3-intellectual-property-and-license-grant","3. Intellectual property and license grant",[753,48828,48829,48832,48835,48838],{},[756,48830,48831],{},"You retain ownership of the copyright in your submitted work. Nothing in these Terms transfers ownership of your work to Qollab.",[756,48833,48834],{},"By publishing work through the Program, you grant Qollab a non-exclusive, worldwide, royalty-free, sublicensable license to host, display, promote, format, and technically adapt (for example, for platform compatibility) your published work on and in connection with Qollab, for as long as the work remains published on the platform — minimum one year from the date of publication. Where a Contributor is required to remove published work prior to the one-year minimum due to a valid third-party legal claim (for example, a substantiated infringement claim) or a court order, such removal will not be treated as a breach of this Section, provided the Contributor promptly notifies Qollab of the removal and its cause.",[756,48836,48837],{},"The MIT license under which your work is published governs third-party use, including forking and extension by other developers. You cannot revoke or narrow this license retroactively for versions already forked or distributed by others.",[756,48839,48840],{},"You may request removal of your work from Qollab at any time after a calendar year. Removal does not affect the rights already granted to third parties under the MIT license for versions forked prior to removal, and Qollab reserves the right to claw back any associated unused credits per Section 5.",[25,48842,48844],{"id":48843},"_4-review-and-award-process","4. Review and award process",[753,48846,48847,48850,48864,48867],{},[756,48848,48849],{},"All submissions are reviewed by Qollab on a rolling basis.",[756,48851,48852,48853],{},"Qollab has sole discretion to:\n",[753,48854,48855,48858,48861],{},[756,48856,48857],{},"Accept, reject, or request revisions to any submission",[756,48859,48860],{},"Determine which category a submission qualifies for",[756,48862,48863],{},"Determine the credit amount awarded, up to the maximum published for that category on the Program page",[756,48865,48866],{},"Review decisions are final. There is no appeals process for the amount of credit awarded or for a decision not to accept a submission. This does not affect any separate disqualification process described in Section 6.",[756,48868,48869],{},"Qollab is not obligated to provide detailed reasoning for a rejection, though we will make reasonable efforts to give general feedback where useful to the Contributor.",[25,48871,48873],{"id":48872},"_5-credits-issuance-use-and-expiration","5. Credits: issuance, use, and expiration",[753,48875,48876,48879,48882,48885,48888],{},[756,48877,48878],{},"\"Compute credits\" refers to allocated usage credit redeemable for quantum hardware time on IonQ systems accessible through Qollab. Credits are denominated in USD value and applied toward compute usage; they are not cash and have no cash redemption value.",[756,48880,48881],{},"Credits are awarded to the Contributor's Qollab account upon publication approval and are non-transferable. They cannot be sold, gifted, pooled with another Contributor's credits, or redeemed for cash.",[756,48883,48884],{},"Credits expire three (3) months from the date of issuance. Unused credits are forfeited automatically upon expiration and cannot be reinstated, extended, or converted to any other benefit, except at Qollab's sole discretion.",[756,48886,48887],{},"Qollab does not guarantee the continuous availability of compute capacity within the 3-month usage window. In the event of a hardware or platform outage that materially prevents a Contributor from using awarded credits before expiration, Qollab will, at its discretion, extend the expiration window or reissue equivalent credits.",[756,48889,48890],{},"Credit amounts, categories, and award maximums described on the Program page are subject to change for future submissions at Qollab's discretion. Changes do not affect credits already awarded.",[25,48892,48894],{"id":48893},"_6-disqualification-and-clawback","6. Disqualification and clawback",[753,48896,48897,48917,48920],{},[756,48898,48899,48900],{},"Qollab may disqualify a submission and revoke associated credits, whether before or after issuance, if it determines that:\n",[753,48901,48902,48905,48908,48911,48914],{},[756,48903,48904],{},"The submission does not meet the requirements of Section 2",[756,48906,48907],{},"The Contributor made false representations under Section 2",[756,48909,48910],{},"The work is later found to infringe third-party rights",[756,48912,48913],{},"The Contributor violated these Terms in any other material way",[756,48915,48916],{},"The Contributor removes, unpublishes, or materially disables the submitted work from Qollab before the one-year minimum publication period in Section 2 has elapsed, other than as permitted under Section 3, or at Qollab's own request",[756,48918,48919],{},"If credits have already been used at the time of a confirmed disqualification, Qollab reserves the right to invoice the Contributor for the value of credits used, or to take other reasonable steps to recover that value, at Qollab's discretion.",[756,48921,48922],{},"Disqualification determinations under this Section are final and not subject to appeal regarding the underlying award amount, though a Contributor may request reconsideration solely on the question of whether a disqualifying condition in this Section was met.",[25,48924,48926],{"id":48925},"_7-taxes","7. Taxes",[753,48928,48929,48932,48935],{},[756,48930,48931],{},"Credits awarded under the Program may constitute taxable income to the Contributor under applicable law. Contributors are solely responsible for determining and meeting any tax obligations arising from participation in the Program.",[756,48933,48934],{},"Where required by applicable law (including for US-based Contributors receiving cumulative awards above applicable reporting thresholds), Qollab may request tax information (for example, a completed Form W-9 or W-8BEN) prior to issuing credits, and may issue applicable tax forms (for example, Form 1099) reflecting the value of credits awarded.",[756,48936,48937],{},"Failure to provide requested tax information may result in delayed or withheld issuance of credits.",[25,48939,48941],{"id":48940},"_8-program-changes-and-termination","8. Program changes and termination",[753,48943,48944,48947,48950],{},[756,48945,48946],{},"Qollab may modify, suspend, or terminate the Program, in whole or in part, at any time and without prior notice. This includes changes to eligible categories, credit amounts, review criteria, or expiration terms for future submissions.",[756,48948,48949],{},"If the Program is terminated, credits already issued and not yet expired remain valid and usable per Section 5, subject to compute availability under Section 5.",[756,48951,48952],{},"Submissions in the review queue at the time of Program suspension or termination will be handled at Qollab's discretion, which may include continued review, deferral, or closure without award.",[25,48954,48956],{"id":48955},"_9-compliance-and-export-controls","9. Compliance and export controls",[753,48958,48959,48962],{},[756,48960,48961],{},"Access to quantum hardware through the Program may be subject to U.S. export control laws and regulations, and comparable laws in other jurisdictions. Contributors are responsible for complying with all applicable export control and sanctions laws.",[756,48963,48964],{},"Qollab may deny or revoke participation for any Contributor located in, or affiliated with, a jurisdiction or entity subject to applicable trade restrictions.",[25,48966,48968],{"id":48967},"_10-privacy","10. Privacy",[753,48970,48971,48979],{},[756,48972,48973,48974,48978],{},"Information collected through the Program submission form (including name, contact information, and submission details) is handled in accordance with ",[19,48975,48977],{"href":48976},"\u002Fprivacy","Qollab's Privacy Policy",". The Program's submission forms are hosted on Airtable, so information you enter into them is collected through that service.",[756,48980,48981],{},"Published Contributor names and public profile information associated with submitted work will be visible to other users of the platform as part of normal platform functionality.",[25,48983,48985],{"id":48984},"_11-general","11. General",[753,48987,48988,48994,49000,49006,49012],{},[756,48989,48990,48993],{},[974,48991,48992],{},"No guarantee of future participation."," Acceptance of a past submission does not guarantee acceptance of future submissions.",[756,48995,48996,48999],{},[974,48997,48998],{},"Force majeure."," Qollab is not liable for any failure or delay in Program operation, credit issuance, or compute availability caused by circumstances beyond its reasonable control, including platform outages, hardware partner disruptions, or acts of God.",[756,49001,49002,49005],{},[974,49003,49004],{},"No warranty."," The Program and any associated compute access are provided \"as is,\" without warranty of any kind, to the extent permitted by applicable law.",[756,49007,49008,49011],{},[974,49009,49010],{},"Governing law."," These Terms are governed by the laws of California, without regard to conflict of law principles.",[756,49013,49014,49017],{},[974,49015,49016],{},"Changes to these Terms."," Qollab may update these Terms from time to time. Material changes will be reflected by an updated \"Last updated\" date above. Continued participation in the Program after changes take effect constitutes acceptance of the revised Terms.",[12,49019,49020,49021,114],{},"Questions about these Terms can be directed to ",[19,49022,48690],{"href":48689},{"title":529,"searchDepth":547,"depth":547,"links":49024},[49025,49026,49027,49028,49029,49030,49031,49032,49033,49034,49035],{"id":48750,"depth":547,"text":48751},{"id":48779,"depth":547,"text":48780},{"id":48825,"depth":547,"text":48826},{"id":48843,"depth":547,"text":48844},{"id":48872,"depth":547,"text":48873},{"id":48893,"depth":547,"text":48894},{"id":48925,"depth":547,"text":48926},{"id":48940,"depth":547,"text":48941},{"id":48955,"depth":547,"text":48956},{"id":48967,"depth":547,"text":48968},{"id":48984,"depth":547,"text":48985},[4349,48709,49037],"Grant Program Terms",[],"The terms governing participation in the Qollab Grant Program.","Terms and Conditions for the Qollab Grant Program — eligibility, submission requirements, licensing, review, and how compute credits are issued, used and expire.",{},"\u002Fblog\u002Fprograms\u002Fcredits-terms",[],{"title":49045,"description":49046},"Qollab Grant Program: Terms & Conditions","Eligibility, submission requirements, IP and licensing, review and award process, and credit issuance and expiry for the Qollab Grant Program.","blog\u002Fprograms\u002Fcredits-terms",[],"ThVB7twllKFWpubAmiA6savuKoMnlVNtPm_aY-_xUP0",{"id":49051,"title":49052,"authors":49053,"body":49054,"breadcrumb":74865,"builders":74867,"byline":74872,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":74873,"draft":786,"extension":787,"eyebrow":16796,"featured":790,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":74874,"navigation":790,"newsItems":7,"next":7,"ogImage":74875,"order":7,"outcomes":7,"path":74876,"publishDate":74877,"readingTime":74878,"related":74879,"relatedProjects":7,"seo":74880,"stem":74881,"tags":74882,"track":7,"trackName":7,"__hash__":74883},"blog\u002Fblog\u002Fexpert-notes\u002Frabi-oscillation-visualization.md","Rabi Oscillations: Visualizing Excited-State Probability",[6135],{"type":9,"value":49055,"toc":74848},[49056,49063,49066,49175,49238,49242,49245,50710,50714,50795,51007,51010,51161,51164,51287,51396,51496,51499,51503,51506,51627,51687,51845,51848,52070,52073,52802,52839,52843,52846,53180,53310,53620,53623,53850,53968,53972,54042,54512,54514,54746,54749,54928,54983,55184,55187,55190,55441,55473,55753,55756,55906,55938,56057,56060,56327,56330,56448,56452,56455,56821,56824,56958,56965,56969,56972,57114,57117,57659,57662,57888,58064,58068,58142,58413,58415,58480,58512,58679,58748,58973,58976,58979,59340,59342,59666,59669,59673,59676,59783,59815,59999,60042,60046,60177,60423,60426,60819,60822,61033,61036,61040,61513,61973,62092,62211,62214,62218,62319,62322,62421,62504,62689,62692,62892,62895,62996,63393,63397,63400,63884,63887,63891,63894,64151,64154,64367,64370,64472,64475,64505,64815,64821,65298,65389,65395,65571,65577,65730,65734,70547,70551,70557,71258,71262,71907,71911,71915,73068,73074,73274,73555,73559,74364,74368,74824,74828,74832,74836,74845],[12,49057,49058],{},[9404,49059,9406,49060,9411],{},[19,49061,9410],{"href":49062},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum\u002FQC-Hardware-How-To\u002Fblob\u002Fmain\u002FJupyter%20Notebook%20Scripts\u002FRabi_Oscillation_Visualization_for_Excited_State_Probability.ipynb",[12,49064,49065],{},"This notebook provides a primer on the quantum dynamics of a driven two-level system by visualizing the excited-state probability under the rotating-wave approximation (RWA). The model treats a qubit as an ideal two-state system driven by a classical microwave tone. This formulation maps the probability of measuring the excited state as a function of drive frequency and pulse duration. The central computational object is the probability surface",[533,49067,49069],{"className":49068},[29056],[533,49070,49072,49104],{"className":49071},[9443],[533,49073,49075],{"className":49074},[9447],[9174,49076,49077],{"xmlns":9450,"display":29065},[9452,49078,49079,49101],{},[9455,49080,49081,49088,49090,49092,49094,49097,49099],{},[9458,49082,49083,49086],{},[9461,49084,49085],{},"P",[9461,49087,629],{},[9958,49089,615],{"stretchy":9960},[9461,49091,618],{},[9958,49093,2464],{"separator":1089},[9461,49095,49096],{},"τ",[9958,49098,2632],{"stretchy":9960},[9958,49100,2464],{"separator":1089},[9473,49102,49103],{"encoding":9475},"P_e(f,\\tau),",[533,49105,49107],{"className":49106,"ariaHidden":1089},[9480],[533,49108,49110,49113,49153,49156,49159,49162,49165,49169,49172],{"className":49109},[9484],[533,49111],{"className":49112,"style":9998},[9488],[533,49114,49116,49119],{"className":49115},[9493],[533,49117,49085],{"className":49118,"style":26405},[9493,9497],[533,49120,49122],{"className":49121},[9502],[533,49123,49125,49145],{"className":49124},[9506,9507],[533,49126,49128,49142],{"className":49127},[9511],[533,49129,49131],{"className":49130,"style":22873},[9515],[533,49132,49133,49136],{"style":31397},[533,49134],{"className":49135,"style":9524},[9523],[533,49137,49139],{"className":49138},[9528,9529,9530,9531],[533,49140,629],{"className":49141},[9493,9497,9531],[533,49143,1090],{"className":49144},[9546],[533,49146,49148],{"className":49147},[9511],[533,49149,49151],{"className":49150,"style":9553},[9515],[533,49152],{},[533,49154,615],{"className":49155},[10002],[533,49157,618],{"className":49158,"style":22860},[9493,9497],[533,49160,2464],{"className":49161},[10344],[533,49163],{"className":49164,"style":10349},[10348],[533,49166,49096],{"className":49167,"style":49168},[9493,9497],"margin-right:0.1132em;",[533,49170,2632],{"className":49171},[10101],[533,49173,2464],{"className":49174},[10344],[12,49176,49177,49178,49207,49208,49237],{},"where ",[533,49179,49181,49194],{"className":49180},[9443],[533,49182,49184],{"className":49183},[9447],[9174,49185,49186],{"xmlns":9450},[9452,49187,49188,49192],{},[9455,49189,49190],{},[9461,49191,618],{},[9473,49193,618],{"encoding":9475},[533,49195,49197],{"className":49196,"ariaHidden":1089},[9480],[533,49198,49200,49204],{"className":49199},[9484],[533,49201],{"className":49202,"style":49203},[9488],"height:0.8889em;vertical-align:-0.1944em;",[533,49205,618],{"className":49206,"style":22860},[9493,9497]," denotes the applied drive frequency and ",[533,49209,49211,49225],{"className":49210},[9443],[533,49212,49214],{"className":49213},[9447],[9174,49215,49216],{"xmlns":9450},[9452,49217,49218,49222],{},[9455,49219,49220],{},[9461,49221,49096],{},[9473,49223,49224],{"encoding":9475},"\\tau",[533,49226,49228],{"className":49227,"ariaHidden":1089},[9480],[533,49229,49231,49234],{"className":49230},[9484],[533,49232],{"className":49233,"style":32975},[9488],[533,49235,49096],{"className":49236,"style":49168},[9493,9497]," denotes the microwave pulse duration. The notebook renders this probability surface with two-dimensional heatmaps, three-dimensional surfaces, one-dimensional cross sections, and Fast Fourier transform (FFT) spectrograms. Fourier analysis exposes the generalized Rabi frequency as a theoretical ridge in the frequency domain, which connects the time-domain quantum oscillation to its spectral structure.",[25,49239,49241],{"id":49240},"nomenclature-and-definitions","Nomenclature and Definitions",[12,49243,49244],{},"The following table defines the physical and mathematical quantities that recur throughout the visualization workflow.",[30,49246,49247,49257],{},[33,49248,49249],{},[36,49250,49251,49254],{},[39,49252,49253],{},"Symbol or Term",[39,49255,49256],{},"Meaning",[49,49258,49259,49306,49352,49398,49525,49602,49679,49714,49934,50031,50066,50112,50262,50339,50564,50599,50694,50702],{},[36,49260,49261,49303],{},[54,49262,49263],{},[533,49264,49266,49285],{"className":49265},[9443],[533,49267,49269],{"className":49268},[9447],[9174,49270,49271],{"xmlns":9450},[9452,49272,49273,49282],{},[9455,49274,49275,49277,49280],{},[9958,49276,9961],{"stretchy":9960},[9461,49278,49279],{},"g",[9958,49281,10860],{"stretchy":9960},[9473,49283,49284],{"encoding":9475},"\\lvert g\\rangle",[533,49286,49288],{"className":49287,"ariaHidden":1089},[9480],[533,49289,49291,49294,49297,49300],{"className":49290},[9484],[533,49292],{"className":49293,"style":9998},[9488],[533,49295,9961],{"className":49296},[10002],[533,49298,49279],{"className":49299,"style":9498},[9493,9497],[533,49301,10860],{"className":49302},[10101],[54,49304,49305],{},"Ground state of the qubit",[36,49307,49308,49349],{},[54,49309,49310],{},[533,49311,49313,49331],{"className":49312},[9443],[533,49314,49316],{"className":49315},[9447],[9174,49317,49318],{"xmlns":9450},[9452,49319,49320,49328],{},[9455,49321,49322,49324,49326],{},[9958,49323,9961],{"stretchy":9960},[9461,49325,629],{},[9958,49327,10860],{"stretchy":9960},[9473,49329,49330],{"encoding":9475},"\\lvert e\\rangle",[533,49332,49334],{"className":49333,"ariaHidden":1089},[9480],[533,49335,49337,49340,49343,49346],{"className":49336},[9484],[533,49338],{"className":49339,"style":9998},[9488],[533,49341,9961],{"className":49342},[10002],[533,49344,629],{"className":49345},[9493,9497],[533,49347,10860],{"className":49348},[10101],[54,49350,49351],{},"Excited state of the qubit",[36,49353,49354,49395],{},[54,49355,49356],{},[533,49357,49359,49377],{"className":49358},[9443],[533,49360,49362],{"className":49361},[9447],[9174,49363,49364],{"xmlns":9450},[9452,49365,49366,49374],{},[9455,49367,49368,49370,49372],{},[9958,49369,9961],{"stretchy":9960},[9461,49371,30362],{},[9958,49373,10860],{"stretchy":9960},[9473,49375,49376],{"encoding":9475},"\\lvert \\psi\\rangle",[533,49378,49380],{"className":49379,"ariaHidden":1089},[9480],[533,49381,49383,49386,49389,49392],{"className":49382},[9484],[533,49384],{"className":49385,"style":9998},[9488],[533,49387,9961],{"className":49388},[10002],[533,49390,30362],{"className":49391,"style":9498},[9493,9497],[533,49393,10860],{"className":49394},[10101],[54,49396,49397],{},"Quantum state vector in a two-dimensional Hilbert space",[36,49399,49400,49446],{},[54,49401,49402],{},[533,49403,49405,49424],{"className":49404},[9443],[533,49406,49408],{"className":49407},[9447],[9174,49409,49410],{"xmlns":9450},[9452,49411,49412,49421],{},[9455,49413,49414,49416,49418],{},[9461,49415,34041],{},[9958,49417,2464],{"separator":1089},[9461,49419,49420],{},"β",[9473,49422,49423],{"encoding":9475},"\\alpha,\\beta",[533,49425,49427],{"className":49426,"ariaHidden":1089},[9480],[533,49428,49430,49433,49436,49439,49442],{"className":49429},[9484],[533,49431],{"className":49432,"style":49203},[9488],[533,49434,34041],{"className":49435,"style":34057},[9493,9497],[533,49437,2464],{"className":49438},[10344],[533,49440],{"className":49441,"style":10349},[10348],[533,49443,49420],{"className":49444,"style":49445},[9493,9497],"margin-right:0.0528em;",[54,49447,49448,49449,1576,49487],{},"Complex probability amplitudes for ",[533,49450,49452,49469],{"className":49451},[9443],[533,49453,49455],{"className":49454},[9447],[9174,49456,49457],{"xmlns":9450},[9452,49458,49459,49467],{},[9455,49460,49461,49463,49465],{},[9958,49462,9961],{"stretchy":9960},[9461,49464,49279],{},[9958,49466,10860],{"stretchy":9960},[9473,49468,49284],{"encoding":9475},[533,49470,49472],{"className":49471,"ariaHidden":1089},[9480],[533,49473,49475,49478,49481,49484],{"className":49474},[9484],[533,49476],{"className":49477,"style":9998},[9488],[533,49479,9961],{"className":49480},[10002],[533,49482,49279],{"className":49483,"style":9498},[9493,9497],[533,49485,10860],{"className":49486},[10101],[533,49488,49490,49507],{"className":49489},[9443],[533,49491,49493],{"className":49492},[9447],[9174,49494,49495],{"xmlns":9450},[9452,49496,49497,49505],{},[9455,49498,49499,49501,49503],{},[9958,49500,9961],{"stretchy":9960},[9461,49502,629],{},[9958,49504,10860],{"stretchy":9960},[9473,49506,49330],{"encoding":9475},[533,49508,49510],{"className":49509,"ariaHidden":1089},[9480],[533,49511,49513,49516,49519,49522],{"className":49512},[9484],[533,49514],{"className":49515,"style":9998},[9488],[533,49517,9961],{"className":49518},[10002],[533,49520,629],{"className":49521},[9493,9497],[533,49523,10860],{"className":49524},[10101],[36,49526,49527,49599],{},[54,49528,49529],{},[533,49530,49532,49550],{"className":49531},[9443],[533,49533,49535],{"className":49534},[9447],[9174,49536,49537],{"xmlns":9450},[9452,49538,49539,49547],{},[9455,49540,49541],{},[9458,49542,49543,49545],{},[9461,49544,49085],{},[9461,49546,629],{},[9473,49548,49549],{"encoding":9475},"P_e",[533,49551,49553],{"className":49552,"ariaHidden":1089},[9480],[533,49554,49556,49559],{"className":49555},[9484],[533,49557],{"className":49558,"style":9595},[9488],[533,49560,49562,49565],{"className":49561},[9493],[533,49563,49085],{"className":49564,"style":26405},[9493,9497],[533,49566,49568],{"className":49567},[9502],[533,49569,49571,49591],{"className":49570},[9506,9507],[533,49572,49574,49588],{"className":49573},[9511],[533,49575,49577],{"className":49576,"style":22873},[9515],[533,49578,49579,49582],{"style":31397},[533,49580],{"className":49581,"style":9524},[9523],[533,49583,49585],{"className":49584},[9528,9529,9530,9531],[533,49586,629],{"className":49587},[9493,9497,9531],[533,49589,1090],{"className":49590},[9546],[533,49592,49594],{"className":49593},[9511],[533,49595,49597],{"className":49596,"style":9553},[9515],[533,49598],{},[54,49600,49601],{},"Probability of measuring the qubit in the excited state",[36,49603,49604,49676],{},[54,49605,49606],{},[533,49607,49609,49627],{"className":49608},[9443],[533,49610,49612],{"className":49611},[9447],[9174,49613,49614],{"xmlns":9450},[9452,49615,49616,49624],{},[9455,49617,49618],{},[9458,49619,49620,49622],{},[9461,49621,618],{},[10856,49623,1049],{},[9473,49625,49626],{"encoding":9475},"f_0",[533,49628,49630],{"className":49629,"ariaHidden":1089},[9480],[533,49631,49633,49636],{"className":49632},[9484],[533,49634],{"className":49635,"style":49203},[9488],[533,49637,49639,49642],{"className":49638},[9493],[533,49640,618],{"className":49641,"style":22860},[9493,9497],[533,49643,49645],{"className":49644},[9502],[533,49646,49648,49668],{"className":49647},[9506,9507],[533,49649,49651,49665],{"className":49650},[9511],[533,49652,49654],{"className":49653,"style":21941},[9515],[533,49655,49656,49659],{"style":22876},[533,49657],{"className":49658,"style":9524},[9523],[533,49660,49662],{"className":49661},[9528,9529,9530,9531],[533,49663,1049],{"className":49664},[9493,9531],[533,49666,1090],{"className":49667},[9546],[533,49669,49671],{"className":49670},[9511],[533,49672,49674],{"className":49673,"style":9553},[9515],[533,49675],{},[54,49677,49678],{},"Natural transition frequency of the qubit",[36,49680,49681,49711],{},[54,49682,49683],{},[533,49684,49686,49699],{"className":49685},[9443],[533,49687,49689],{"className":49688},[9447],[9174,49690,49691],{"xmlns":9450},[9452,49692,49693,49697],{},[9455,49694,49695],{},[9461,49696,618],{},[9473,49698,618],{"encoding":9475},[533,49700,49702],{"className":49701,"ariaHidden":1089},[9480],[533,49703,49705,49708],{"className":49704},[9484],[533,49706],{"className":49707,"style":49203},[9488],[533,49709,618],{"className":49710,"style":22860},[9493,9497],[54,49712,49713],{},"Applied drive frequency",[36,49715,49716,49788],{},[54,49717,49718],{},[533,49719,49721,49739],{"className":49720},[9443],[533,49722,49724],{"className":49723},[9447],[9174,49725,49726],{"xmlns":9450},[9452,49727,49728,49736],{},[9455,49729,49730],{},[9458,49731,49732,49734],{},[9461,49733,9463],{},[10856,49735,1049],{},[9473,49737,49738],{"encoding":9475},"\\omega_0",[533,49740,49742],{"className":49741,"ariaHidden":1089},[9480],[533,49743,49745,49748],{"className":49744},[9484],[533,49746],{"className":49747,"style":9489},[9488],[533,49749,49751,49754],{"className":49750},[9493],[533,49752,9463],{"className":49753,"style":9498},[9493,9497],[533,49755,49757],{"className":49756},[9502],[533,49758,49760,49780],{"className":49759},[9506,9507],[533,49761,49763,49777],{"className":49762},[9511],[533,49764,49766],{"className":49765,"style":21941},[9515],[533,49767,49768,49771],{"style":9519},[533,49769],{"className":49770,"style":9524},[9523],[533,49772,49774],{"className":49773},[9528,9529,9530,9531],[533,49775,1049],{"className":49776},[9493,9531],[533,49778,1090],{"className":49779},[9546],[533,49781,49783],{"className":49782},[9511],[533,49784,49786],{"className":49785,"style":9553},[9515],[533,49787],{},[54,49789,49790,49791],{},"Angular transition frequency, ",[533,49792,49794,49824],{"className":49793},[9443],[533,49795,49797],{"className":49796},[9447],[9174,49798,49799],{"xmlns":9450},[9452,49800,49801,49821],{},[9455,49802,49803,49809,49811,49813,49815],{},[9458,49804,49805,49807],{},[9461,49806,9463],{},[10856,49808,1049],{},[9958,49810,554],{},[10856,49812,1140],{},[9461,49814,22502],{},[9458,49816,49817,49819],{},[9461,49818,618],{},[10856,49820,1049],{},[9473,49822,49823],{"encoding":9475},"\\omega_0=2\\pi f_0",[533,49825,49827,49882],{"className":49826,"ariaHidden":1089},[9480],[533,49828,49830,49833,49873,49876,49879],{"className":49829},[9484],[533,49831],{"className":49832,"style":9489},[9488],[533,49834,49836,49839],{"className":49835},[9493],[533,49837,9463],{"className":49838,"style":9498},[9493,9497],[533,49840,49842],{"className":49841},[9502],[533,49843,49845,49865],{"className":49844},[9506,9507],[533,49846,49848,49862],{"className":49847},[9511],[533,49849,49851],{"className":49850,"style":21941},[9515],[533,49852,49853,49856],{"style":9519},[533,49854],{"className":49855,"style":9524},[9523],[533,49857,49859],{"className":49858},[9528,9529,9530,9531],[533,49860,1049],{"className":49861},[9493,9531],[533,49863,1090],{"className":49864},[9546],[533,49866,49868],{"className":49867},[9511],[533,49869,49871],{"className":49870,"style":9553},[9515],[533,49872],{},[533,49874],{"className":49875,"style":21908},[10348],[533,49877,554],{"className":49878},[21912],[533,49880],{"className":49881,"style":21908},[10348],[533,49883,49885,49888,49891,49894],{"className":49884},[9484],[533,49886],{"className":49887,"style":49203},[9488],[533,49889,1140],{"className":49890},[9493],[533,49892,22502],{"className":49893,"style":9498},[9493,9497],[533,49895,49897,49900],{"className":49896},[9493],[533,49898,618],{"className":49899,"style":22860},[9493,9497],[533,49901,49903],{"className":49902},[9502],[533,49904,49906,49926],{"className":49905},[9506,9507],[533,49907,49909,49923],{"className":49908},[9511],[533,49910,49912],{"className":49911,"style":21941},[9515],[533,49913,49914,49917],{"style":22876},[533,49915],{"className":49916,"style":9524},[9523],[533,49918,49920],{"className":49919},[9528,9529,9530,9531],[533,49921,1049],{"className":49922},[9493,9531],[533,49924,1090],{"className":49925},[9546],[533,49927,49929],{"className":49928},[9511],[533,49930,49932],{"className":49931,"style":9553},[9515],[533,49933],{},[36,49935,49936,49967],{},[54,49937,49938],{},[533,49939,49941,49955],{"className":49940},[9443],[533,49942,49944],{"className":49943},[9447],[9174,49945,49946],{"xmlns":9450},[9452,49947,49948,49952],{},[9455,49949,49950],{},[9461,49951,9463],{},[9473,49953,49954],{"encoding":9475},"\\omega",[533,49956,49958],{"className":49957,"ariaHidden":1089},[9480],[533,49959,49961,49964],{"className":49960},[9484],[533,49962],{"className":49963,"style":32975},[9488],[533,49965,9463],{"className":49966,"style":9498},[9493,9497],[54,49968,49969,49970],{},"Angular drive frequency, ",[533,49971,49973,49995],{"className":49972},[9443],[533,49974,49976],{"className":49975},[9447],[9174,49977,49978],{"xmlns":9450},[9452,49979,49980,49992],{},[9455,49981,49982,49984,49986,49988,49990],{},[9461,49983,9463],{},[9958,49985,554],{},[10856,49987,1140],{},[9461,49989,22502],{},[9461,49991,618],{},[9473,49993,49994],{"encoding":9475},"\\omega=2\\pi f",[533,49996,49998,50016],{"className":49997,"ariaHidden":1089},[9480],[533,49999,50001,50004,50007,50010,50013],{"className":50000},[9484],[533,50002],{"className":50003,"style":32975},[9488],[533,50005,9463],{"className":50006,"style":9498},[9493,9497],[533,50008],{"className":50009,"style":21908},[10348],[533,50011,554],{"className":50012},[21912],[533,50014],{"className":50015,"style":21908},[10348],[533,50017,50019,50022,50025,50028],{"className":50018},[9484],[533,50020],{"className":50021,"style":49203},[9488],[533,50023,1140],{"className":50024},[9493],[533,50026,22502],{"className":50027,"style":9498},[9493,9497],[533,50029,618],{"className":50030,"style":22860},[9493,9497],[36,50032,50033,50063],{},[54,50034,50035],{},[533,50036,50038,50051],{"className":50037},[9443],[533,50039,50041],{"className":50040},[9447],[9174,50042,50043],{"xmlns":9450},[9452,50044,50045,50049],{},[9455,50046,50047],{},[9461,50048,9659],{"mathvariant":9573},[9473,50050,9662],{"encoding":9475},[533,50052,50054],{"className":50053,"ariaHidden":1089},[9480],[533,50055,50057,50060],{"className":50056},[9484],[533,50058],{"className":50059,"style":9672},[9488],[533,50061,9659],{"className":50062},[9493],[54,50064,50065],{},"On-resonance Rabi angular frequency",[36,50067,50068,50109],{},[54,50069,50070],{},[533,50071,50073,50093],{"className":50072},[9443],[533,50074,50076],{"className":50075},[9447],[9174,50077,50078],{"xmlns":9450},[9452,50079,50080,50090],{},[9455,50081,50082,50084,50086,50088],{},[9461,50083,9659],{"mathvariant":9573},[9461,50085,2941],{"mathvariant":9573},[10856,50087,1140],{},[9461,50089,22502],{},[9473,50091,50092],{"encoding":9475},"\\Omega\u002F2\\pi",[533,50094,50096],{"className":50095,"ariaHidden":1089},[9480],[533,50097,50099,50102,50106],{"className":50098},[9484],[533,50100],{"className":50101,"style":9998},[9488],[533,50103,50105],{"className":50104},[9493],"Ω\u002F2",[533,50107,22502],{"className":50108,"style":9498},[9493,9497],[54,50110,50111],{},"On-resonance Rabi frequency in ordinary frequency units",[36,50113,50114,50144],{},[54,50115,50116],{},[533,50117,50119,50132],{"className":50118},[9443],[533,50120,50122],{"className":50121},[9447],[9174,50123,50124],{"xmlns":9450},[9452,50125,50126,50130],{},[9455,50127,50128],{},[9461,50129,9574],{"mathvariant":9573},[9473,50131,38928],{"encoding":9475},[533,50133,50135],{"className":50134,"ariaHidden":1089},[9480],[533,50136,50138,50141],{"className":50137},[9484],[533,50139],{"className":50140,"style":9672},[9488],[533,50142,9574],{"className":50143},[9493],[54,50145,50146,50147],{},"Drive detuning, ",[533,50148,50150,50176],{"className":50149},[9443],[533,50151,50153],{"className":50152},[9447],[9174,50154,50155],{"xmlns":9450},[9452,50156,50157,50173],{},[9455,50158,50159,50161,50163,50165,50167],{},[9461,50160,9574],{"mathvariant":9573},[9958,50162,554],{},[9461,50164,9463],{},[9958,50166,21843],{},[9458,50168,50169,50171],{},[9461,50170,9463],{},[10856,50172,1049],{},[9473,50174,50175],{"encoding":9475},"\\Delta=\\omega-\\omega_0",[533,50177,50179,50197,50216],{"className":50178,"ariaHidden":1089},[9480],[533,50180,50182,50185,50188,50191,50194],{"className":50181},[9484],[533,50183],{"className":50184,"style":9672},[9488],[533,50186,9574],{"className":50187},[9493],[533,50189],{"className":50190,"style":21908},[10348],[533,50192,554],{"className":50193},[21912],[533,50195],{"className":50196,"style":21908},[10348],[533,50198,50200,50204,50207,50210,50213],{"className":50199},[9484],[533,50201],{"className":50202,"style":50203},[9488],"height:0.6667em;vertical-align:-0.0833em;",[533,50205,9463],{"className":50206,"style":9498},[9493,9497],[533,50208],{"className":50209,"style":22903},[10348],[533,50211,21843],{"className":50212},[22093],[533,50214],{"className":50215,"style":22903},[10348],[533,50217,50219,50222],{"className":50218},[9484],[533,50220],{"className":50221,"style":9489},[9488],[533,50223,50225,50228],{"className":50224},[9493],[533,50226,9463],{"className":50227,"style":9498},[9493,9497],[533,50229,50231],{"className":50230},[9502],[533,50232,50234,50254],{"className":50233},[9506,9507],[533,50235,50237,50251],{"className":50236},[9511],[533,50238,50240],{"className":50239,"style":21941},[9515],[533,50241,50242,50245],{"style":9519},[533,50243],{"className":50244,"style":9524},[9523],[533,50246,50248],{"className":50247},[9528,9529,9530,9531],[533,50249,1049],{"className":50250},[9493,9531],[533,50252,1090],{"className":50253},[9546],[533,50255,50257],{"className":50256},[9511],[533,50258,50260],{"className":50259,"style":9553},[9515],[533,50261],{},[36,50263,50264,50336],{},[54,50265,50266],{},[533,50267,50269,50287],{"className":50268},[9443],[533,50270,50272],{"className":50271},[9447],[9174,50273,50274],{"xmlns":9450},[9452,50275,50276,50284],{},[9455,50277,50278],{},[9458,50279,50280,50282],{},[9461,50281,9659],{"mathvariant":9573},[9461,50283,29825],{},[9473,50285,50286],{"encoding":9475},"\\Omega_R",[533,50288,50290],{"className":50289,"ariaHidden":1089},[9480],[533,50291,50293,50296],{"className":50292},[9484],[533,50294],{"className":50295,"style":9595},[9488],[533,50297,50299,50302],{"className":50298},[9493],[533,50300,9659],{"className":50301},[9493],[533,50303,50305],{"className":50304},[9502],[533,50306,50308,50328],{"className":50307},[9506,9507],[533,50309,50311,50325],{"className":50310},[9511],[533,50312,50314],{"className":50313,"style":9516},[9515],[533,50315,50316,50319],{"style":9617},[533,50317],{"className":50318,"style":9524},[9523],[533,50320,50322],{"className":50321},[9528,9529,9530,9531],[533,50323,29825],{"className":50324,"style":32780},[9493,9497,9531],[533,50326,1090],{"className":50327},[9546],[533,50329,50331],{"className":50330},[9511],[533,50332,50334],{"className":50333,"style":9553},[9515],[533,50335],{},[54,50337,50338],{},"Generalized Rabi angular frequency",[36,50340,50341,50416],{},[54,50342,50343],{},[533,50344,50346,50365],{"className":50345},[9443],[533,50347,50349],{"className":50348},[9447],[9174,50350,50351],{"xmlns":9450},[9452,50352,50353,50362],{},[9455,50354,50355],{},[9458,50356,50357,50360],{},[9461,50358,50359],{},"ν",[9461,50361,29825],{},[9473,50363,50364],{"encoding":9475},"\\nu_R",[533,50366,50368],{"className":50367,"ariaHidden":1089},[9480],[533,50369,50371,50374],{"className":50370},[9484],[533,50372],{"className":50373,"style":9489},[9488],[533,50375,50377,50381],{"className":50376},[9493],[533,50378,50359],{"className":50379,"style":50380},[9493,9497],"margin-right:0.0637em;",[533,50382,50384],{"className":50383},[9502],[533,50385,50387,50408],{"className":50386},[9506,9507],[533,50388,50390,50405],{"className":50389},[9511],[533,50391,50393],{"className":50392,"style":9516},[9515],[533,50394,50396,50399],{"style":50395},"top:-2.55em;margin-left:-0.0637em;margin-right:0.05em;",[533,50397],{"className":50398,"style":9524},[9523],[533,50400,50402],{"className":50401},[9528,9529,9530,9531],[533,50403,29825],{"className":50404,"style":32780},[9493,9497,9531],[533,50406,1090],{"className":50407},[9546],[533,50409,50411],{"className":50410},[9511],[533,50412,50414],{"className":50413,"style":9553},[9515],[533,50415],{},[54,50417,50418,50419],{},"Generalized Rabi frequency, ",[533,50420,50422,50454],{"className":50421},[9443],[533,50423,50425],{"className":50424},[9447],[9174,50426,50427],{"xmlns":9450},[9452,50428,50429,50451],{},[9455,50430,50431,50437,50439,50445,50447,50449],{},[9458,50432,50433,50435],{},[9461,50434,50359],{},[9461,50436,29825],{},[9958,50438,554],{},[9458,50440,50441,50443],{},[9461,50442,9659],{"mathvariant":9573},[9461,50444,29825],{},[9461,50446,2941],{"mathvariant":9573},[10856,50448,1140],{},[9461,50450,22502],{},[9473,50452,50453],{"encoding":9475},"\\nu_R=\\Omega_R\u002F2\\pi",[533,50455,50457,50512],{"className":50456,"ariaHidden":1089},[9480],[533,50458,50460,50463,50503,50506,50509],{"className":50459},[9484],[533,50461],{"className":50462,"style":9489},[9488],[533,50464,50466,50469],{"className":50465},[9493],[533,50467,50359],{"className":50468,"style":50380},[9493,9497],[533,50470,50472],{"className":50471},[9502],[533,50473,50475,50495],{"className":50474},[9506,9507],[533,50476,50478,50492],{"className":50477},[9511],[533,50479,50481],{"className":50480,"style":9516},[9515],[533,50482,50483,50486],{"style":50395},[533,50484],{"className":50485,"style":9524},[9523],[533,50487,50489],{"className":50488},[9528,9529,9530,9531],[533,50490,29825],{"className":50491,"style":32780},[9493,9497,9531],[533,50493,1090],{"className":50494},[9546],[533,50496,50498],{"className":50497},[9511],[533,50499,50501],{"className":50500,"style":9553},[9515],[533,50502],{},[533,50504],{"className":50505,"style":21908},[10348],[533,50507,554],{"className":50508},[21912],[533,50510],{"className":50511,"style":21908},[10348],[533,50513,50515,50518,50558,50561],{"className":50514},[9484],[533,50516],{"className":50517,"style":9998},[9488],[533,50519,50521,50524],{"className":50520},[9493],[533,50522,9659],{"className":50523},[9493],[533,50525,50527],{"className":50526},[9502],[533,50528,50530,50550],{"className":50529},[9506,9507],[533,50531,50533,50547],{"className":50532},[9511],[533,50534,50536],{"className":50535,"style":9516},[9515],[533,50537,50538,50541],{"style":9617},[533,50539],{"className":50540,"style":9524},[9523],[533,50542,50544],{"className":50543},[9528,9529,9530,9531],[533,50545,29825],{"className":50546,"style":32780},[9493,9497,9531],[533,50548,1090],{"className":50549},[9546],[533,50551,50553],{"className":50552},[9511],[533,50554,50556],{"className":50555,"style":9553},[9515],[533,50557],{},[533,50559,23215],{"className":50560},[9493],[533,50562,22502],{"className":50563,"style":9498},[9493,9497],[36,50565,50566,50596],{},[54,50567,50568],{},[533,50569,50571,50584],{"className":50570},[9443],[533,50572,50574],{"className":50573},[9447],[9174,50575,50576],{"xmlns":9450},[9452,50577,50578,50582],{},[9455,50579,50580],{},[9461,50581,49096],{},[9473,50583,49224],{"encoding":9475},[533,50585,50587],{"className":50586,"ariaHidden":1089},[9480],[533,50588,50590,50593],{"className":50589},[9484],[533,50591],{"className":50592,"style":32975},[9488],[533,50594,49096],{"className":50595,"style":49168},[9493,9497],[54,50597,50598],{},"Pulse duration",[36,50600,50601,50691],{},[54,50602,50603],{},[533,50604,50606,50627],{"className":50605},[9443],[533,50607,50609],{"className":50608},[9447],[9174,50610,50611],{"xmlns":9450},[9452,50612,50613,50624],{},[9455,50614,50615],{},[37177,50616,50617,50619,50621],{},[9461,50618,6090],{},[10856,50620,1140],{},[9958,50622,50623],{},"∗",[9473,50625,50626],{"encoding":9475},"T_2^\\ast",[533,50628,50630],{"className":50629,"ariaHidden":1089},[9480],[533,50631,50633,50637],{"className":50632},[9484],[533,50634],{"className":50635,"style":50636},[9488],"height:0.9368em;vertical-align:-0.2481em;",[533,50638,50640,50643],{"className":50639},[9493],[533,50641,6090],{"className":50642,"style":26405},[9493,9497],[533,50644,50646],{"className":50645},[9502],[533,50647,50649,50682],{"className":50648},[9506,9507],[533,50650,50652,50679],{"className":50651},[9511],[533,50653,50656,50668],{"className":50654,"style":50655},[9515],"height:0.6887em;",[533,50657,50659,50662],{"style":50658},"top:-2.4519em;margin-left:-0.1389em;margin-right:0.05em;",[533,50660],{"className":50661,"style":9524},[9523],[533,50663,50665],{"className":50664},[9528,9529,9530,9531],[533,50666,1140],{"className":50667},[9493,9531],[533,50669,50670,50673],{"style":24194},[533,50671],{"className":50672,"style":9524},[9523],[533,50674,50676],{"className":50675},[9528,9529,9530,9531],[533,50677,50623],{"className":50678},[22093,9531],[533,50680,1090],{"className":50681},[9546],[533,50683,50685],{"className":50684},[9511],[533,50686,50689],{"className":50687,"style":50688},[9515],"height:0.2481em;",[533,50690],{},[54,50692,50693],{},"Phenomenological dephasing time used as an optional damping parameter",[36,50695,50696,50699],{},[54,50697,50698],{},"RWA",[54,50700,50701],{},"Rotating-wave approximation",[36,50703,50704,50707],{},[54,50705,50706],{},"FFT",[54,50708,50709],{},"Fast Fourier transform",[25,50711,50713],{"id":50712},"physical-model","Physical Model",[12,50715,50716,50717,50755,50756,50794],{},"A qubit can be modeled as a two-level quantum system with a ground state ",[533,50718,50720,50737],{"className":50719},[9443],[533,50721,50723],{"className":50722},[9447],[9174,50724,50725],{"xmlns":9450},[9452,50726,50727,50735],{},[9455,50728,50729,50731,50733],{},[9958,50730,9961],{"stretchy":9960},[9461,50732,49279],{},[9958,50734,10860],{"stretchy":9960},[9473,50736,49284],{"encoding":9475},[533,50738,50740],{"className":50739,"ariaHidden":1089},[9480],[533,50741,50743,50746,50749,50752],{"className":50742},[9484],[533,50744],{"className":50745,"style":9998},[9488],[533,50747,9961],{"className":50748},[10002],[533,50750,49279],{"className":50751,"style":9498},[9493,9497],[533,50753,10860],{"className":50754},[10101]," and an excited state ",[533,50757,50759,50776],{"className":50758},[9443],[533,50760,50762],{"className":50761},[9447],[9174,50763,50764],{"xmlns":9450},[9452,50765,50766,50774],{},[9455,50767,50768,50770,50772],{},[9958,50769,9961],{"stretchy":9960},[9461,50771,629],{},[9958,50773,10860],{"stretchy":9960},[9473,50775,49330],{"encoding":9475},[533,50777,50779],{"className":50778,"ariaHidden":1089},[9480],[533,50780,50782,50785,50788,50791],{"className":50781},[9484],[533,50783],{"className":50784,"style":9998},[9488],[533,50786,9961],{"className":50787},[10002],[533,50789,629],{"className":50790},[9493,9497],[533,50792,10860],{"className":50793},[10101],". In the absence of a microwave drive, the energy splitting is",[533,50796,50798],{"className":50797},[29056],[533,50799,50801,50840],{"className":50800},[9443],[533,50802,50804],{"className":50803},[9447],[9174,50805,50806],{"xmlns":9450,"display":29065},[9452,50807,50808,50837],{},[9455,50809,50810,50816,50818,50824,50826,50829,50835],{},[9458,50811,50812,50814],{},[9461,50813,22431],{},[9461,50815,629],{},[9958,50817,21843],{},[9458,50819,50820,50822],{},[9461,50821,22431],{},[9461,50823,49279],{},[9958,50825,554],{},[9461,50827,50828],{"mathvariant":9573},"ℏ",[9458,50830,50831,50833],{},[9461,50832,9463],{},[10856,50834,1049],{},[9958,50836,2464],{"separator":1089},[9473,50838,50839],{"encoding":9475},"E_e-E_g=\\hbar\\omega_0,",[533,50841,50843,50898,50954],{"className":50842,"ariaHidden":1089},[9480],[533,50844,50846,50849,50889,50892,50895],{"className":50845},[9484],[533,50847],{"className":50848,"style":9595},[9488],[533,50850,50852,50855],{"className":50851},[9493],[533,50853,22431],{"className":50854,"style":22540},[9493,9497],[533,50856,50858],{"className":50857},[9502],[533,50859,50861,50881],{"className":50860},[9506,9507],[533,50862,50864,50878],{"className":50863},[9511],[533,50865,50867],{"className":50866,"style":22873},[9515],[533,50868,50869,50872],{"style":22555},[533,50870],{"className":50871,"style":9524},[9523],[533,50873,50875],{"className":50874},[9528,9529,9530,9531],[533,50876,629],{"className":50877},[9493,9497,9531],[533,50879,1090],{"className":50880},[9546],[533,50882,50884],{"className":50883},[9511],[533,50885,50887],{"className":50886,"style":9553},[9515],[533,50888],{},[533,50890],{"className":50891,"style":22903},[10348],[533,50893,21843],{"className":50894},[22093],[533,50896],{"className":50897,"style":22903},[10348],[533,50899,50901,50905,50945,50948,50951],{"className":50900},[9484],[533,50902],{"className":50903,"style":50904},[9488],"height:0.9694em;vertical-align:-0.2861em;",[533,50906,50908,50911],{"className":50907},[9493],[533,50909,22431],{"className":50910,"style":22540},[9493,9497],[533,50912,50914],{"className":50913},[9502],[533,50915,50917,50937],{"className":50916},[9506,9507],[533,50918,50920,50934],{"className":50919},[9511],[533,50921,50923],{"className":50922,"style":22873},[9515],[533,50924,50925,50928],{"style":22555},[533,50926],{"className":50927,"style":9524},[9523],[533,50929,50931],{"className":50930},[9528,9529,9530,9531],[533,50932,49279],{"className":50933,"style":9498},[9493,9497,9531],[533,50935,1090],{"className":50936},[9546],[533,50938,50940],{"className":50939},[9511],[533,50941,50943],{"className":50942,"style":29468},[9515],[533,50944],{},[533,50946],{"className":50947,"style":21908},[10348],[533,50949,554],{"className":50950},[21912],[533,50952],{"className":50953,"style":21908},[10348],[533,50955,50957,50961,50964,51004],{"className":50956},[9484],[533,50958],{"className":50959,"style":50960},[9488],"height:0.8833em;vertical-align:-0.1944em;",[533,50962,50828],{"className":50963},[9493],[533,50965,50967,50970],{"className":50966},[9493],[533,50968,9463],{"className":50969,"style":9498},[9493,9497],[533,50971,50973],{"className":50972},[9502],[533,50974,50976,50996],{"className":50975},[9506,9507],[533,50977,50979,50993],{"className":50978},[9511],[533,50980,50982],{"className":50981,"style":21941},[9515],[533,50983,50984,50987],{"style":9519},[533,50985],{"className":50986,"style":9524},[9523],[533,50988,50990],{"className":50989},[9528,9529,9530,9531],[533,50991,1049],{"className":50992},[9493,9531],[533,50994,1090],{"className":50995},[9546],[533,50997,50999],{"className":50998},[9511],[533,51000,51002],{"className":51001,"style":9553},[9515],[533,51003],{},[533,51005,2464],{"className":51006},[10344],[12,51008,51009],{},"where the angular transition frequency is",[533,51011,51013],{"className":51012},[29056],[533,51014,51016,51048],{"className":51015},[9443],[533,51017,51019],{"className":51018},[9447],[9174,51020,51021],{"xmlns":9450,"display":29065},[9452,51022,51023,51045],{},[9455,51024,51025,51031,51033,51035,51037,51043],{},[9458,51026,51027,51029],{},[9461,51028,9463],{},[10856,51030,1049],{},[9958,51032,554],{},[10856,51034,1140],{},[9461,51036,22502],{},[9458,51038,51039,51041],{},[9461,51040,618],{},[10856,51042,1049],{},[9461,51044,114],{"mathvariant":9573},[9473,51046,51047],{"encoding":9475},"\\omega_0=2\\pi f_0.",[533,51049,51051,51106],{"className":51050,"ariaHidden":1089},[9480],[533,51052,51054,51057,51097,51100,51103],{"className":51053},[9484],[533,51055],{"className":51056,"style":9489},[9488],[533,51058,51060,51063],{"className":51059},[9493],[533,51061,9463],{"className":51062,"style":9498},[9493,9497],[533,51064,51066],{"className":51065},[9502],[533,51067,51069,51089],{"className":51068},[9506,9507],[533,51070,51072,51086],{"className":51071},[9511],[533,51073,51075],{"className":51074,"style":21941},[9515],[533,51076,51077,51080],{"style":9519},[533,51078],{"className":51079,"style":9524},[9523],[533,51081,51083],{"className":51082},[9528,9529,9530,9531],[533,51084,1049],{"className":51085},[9493,9531],[533,51087,1090],{"className":51088},[9546],[533,51090,51092],{"className":51091},[9511],[533,51093,51095],{"className":51094,"style":9553},[9515],[533,51096],{},[533,51098],{"className":51099,"style":21908},[10348],[533,51101,554],{"className":51102},[21912],[533,51104],{"className":51105,"style":21908},[10348],[533,51107,51109,51112,51115,51118,51158],{"className":51108},[9484],[533,51110],{"className":51111,"style":49203},[9488],[533,51113,1140],{"className":51114},[9493],[533,51116,22502],{"className":51117,"style":9498},[9493,9497],[533,51119,51121,51124],{"className":51120},[9493],[533,51122,618],{"className":51123,"style":22860},[9493,9497],[533,51125,51127],{"className":51126},[9502],[533,51128,51130,51150],{"className":51129},[9506,9507],[533,51131,51133,51147],{"className":51132},[9511],[533,51134,51136],{"className":51135,"style":21941},[9515],[533,51137,51138,51141],{"style":22876},[533,51139],{"className":51140,"style":9524},[9523],[533,51142,51144],{"className":51143},[9528,9529,9530,9531],[533,51145,1049],{"className":51146},[9493,9531],[533,51148,1090],{"className":51149},[9546],[533,51151,51153],{"className":51152},[9511],[533,51154,51156],{"className":51155,"style":9553},[9515],[533,51157],{},[533,51159,114],{"className":51160},[9493],[12,51162,51163],{},"The default configuration uses a transition frequency of",[533,51165,51167],{"className":51166},[29056],[533,51168,51170,51206],{"className":51169},[9443],[533,51171,51173],{"className":51172},[9447],[9174,51174,51175],{"xmlns":9450,"display":29065},[9452,51176,51177,51203],{},[9455,51178,51179,51185,51187,51190,51192,51201],{},[9458,51180,51181,51183],{},[9461,51182,618],{},[10856,51184,1049],{},[9958,51186,554],{},[10856,51188,51189],{},"5.000",[29972,51191,29974],{},[9455,51193,51194,51197,51199],{},[9461,51195,51196],{"mathvariant":9573},"G",[9461,51198,16132],{"mathvariant":9573},[9461,51200,1632],{"mathvariant":9573},[9461,51202,114],{"mathvariant":9573},[9473,51204,51205],{"encoding":9475},"f_0=5.000~\\mathrm{GHz}.",[533,51207,51209,51264],{"className":51208,"ariaHidden":1089},[9480],[533,51210,51212,51215,51255,51258,51261],{"className":51211},[9484],[533,51213],{"className":51214,"style":49203},[9488],[533,51216,51218,51221],{"className":51217},[9493],[533,51219,618],{"className":51220,"style":22860},[9493,9497],[533,51222,51224],{"className":51223},[9502],[533,51225,51227,51247],{"className":51226},[9506,9507],[533,51228,51230,51244],{"className":51229},[9511],[533,51231,51233],{"className":51232,"style":21941},[9515],[533,51234,51235,51238],{"style":22876},[533,51236],{"className":51237,"style":9524},[9523],[533,51239,51241],{"className":51240},[9528,9529,9530,9531],[533,51242,1049],{"className":51243},[9493,9531],[533,51245,1090],{"className":51246},[9546],[533,51248,51250],{"className":51249},[9511],[533,51251,51253],{"className":51252,"style":9553},[9515],[533,51254],{},[533,51256],{"className":51257,"style":21908},[10348],[533,51259,554],{"className":51260},[21912],[533,51262],{"className":51263,"style":21908},[10348],[533,51265,51267,51270,51273,51277,51284],{"className":51266},[9484],[533,51268],{"className":51269,"style":9672},[9488],[533,51271,51189],{"className":51272},[9493],[533,51274,29974],{"className":51275},[10348,51276],"nobreak",[533,51278,51280],{"className":51279},[9493],[533,51281,51283],{"className":51282},[9493,30229],"GHz",[533,51285,114],{"className":51286},[9493],[12,51288,51289,51290,51318,51319,1576,51357,51395],{},"Applying a microwave drive with frequency ",[533,51291,51293,51306],{"className":51292},[9443],[533,51294,51296],{"className":51295},[9447],[9174,51297,51298],{"xmlns":9450},[9452,51299,51300,51304],{},[9455,51301,51302],{},[9461,51303,618],{},[9473,51305,618],{"encoding":9475},[533,51307,51309],{"className":51308,"ariaHidden":1089},[9480],[533,51310,51312,51315],{"className":51311},[9484],[533,51313],{"className":51314,"style":49203},[9488],[533,51316,618],{"className":51317,"style":22860},[9493,9497]," induces coherent rotations between ",[533,51320,51322,51339],{"className":51321},[9443],[533,51323,51325],{"className":51324},[9447],[9174,51326,51327],{"xmlns":9450},[9452,51328,51329,51337],{},[9455,51330,51331,51333,51335],{},[9958,51332,9961],{"stretchy":9960},[9461,51334,49279],{},[9958,51336,10860],{"stretchy":9960},[9473,51338,49284],{"encoding":9475},[533,51340,51342],{"className":51341,"ariaHidden":1089},[9480],[533,51343,51345,51348,51351,51354],{"className":51344},[9484],[533,51346],{"className":51347,"style":9998},[9488],[533,51349,9961],{"className":51350},[10002],[533,51352,49279],{"className":51353,"style":9498},[9493,9497],[533,51355,10860],{"className":51356},[10101],[533,51358,51360,51377],{"className":51359},[9443],[533,51361,51363],{"className":51362},[9447],[9174,51364,51365],{"xmlns":9450},[9452,51366,51367,51375],{},[9455,51368,51369,51371,51373],{},[9958,51370,9961],{"stretchy":9960},[9461,51372,629],{},[9958,51374,10860],{"stretchy":9960},[9473,51376,49330],{"encoding":9475},[533,51378,51380],{"className":51379,"ariaHidden":1089},[9480],[533,51381,51383,51386,51389,51392],{"className":51382},[9484],[533,51384],{"className":51385,"style":9998},[9488],[533,51387,9961],{"className":51388},[10002],[533,51390,629],{"className":51391},[9493,9497],[533,51393,10860],{"className":51394},[10101],". Exact resonance occurs when",[533,51397,51399],{"className":51398},[29056],[533,51400,51402,51426],{"className":51401},[9443],[533,51403,51405],{"className":51404},[9447],[9174,51406,51407],{"xmlns":9450,"display":29065},[9452,51408,51409,51423],{},[9455,51410,51411,51413,51415,51421],{},[9461,51412,618],{},[9958,51414,554],{},[9458,51416,51417,51419],{},[9461,51418,618],{},[10856,51420,1049],{},[9461,51422,114],{"mathvariant":9573},[9473,51424,51425],{"encoding":9475},"f=f_0.",[533,51427,51429,51447],{"className":51428,"ariaHidden":1089},[9480],[533,51430,51432,51435,51438,51441,51444],{"className":51431},[9484],[533,51433],{"className":51434,"style":49203},[9488],[533,51436,618],{"className":51437,"style":22860},[9493,9497],[533,51439],{"className":51440,"style":21908},[10348],[533,51442,554],{"className":51443},[21912],[533,51445],{"className":51446,"style":21908},[10348],[533,51448,51450,51453,51493],{"className":51449},[9484],[533,51451],{"className":51452,"style":49203},[9488],[533,51454,51456,51459],{"className":51455},[9493],[533,51457,618],{"className":51458,"style":22860},[9493,9497],[533,51460,51462],{"className":51461},[9502],[533,51463,51465,51485],{"className":51464},[9506,9507],[533,51466,51468,51482],{"className":51467},[9511],[533,51469,51471],{"className":51470,"style":21941},[9515],[533,51472,51473,51476],{"style":22876},[533,51474],{"className":51475,"style":9524},[9523],[533,51477,51479],{"className":51478},[9528,9529,9530,9531],[533,51480,1049],{"className":51481},[9493,9531],[533,51483,1090],{"className":51484},[9546],[533,51486,51488],{"className":51487},[9511],[533,51489,51491],{"className":51490,"style":9553},[9515],[533,51492],{},[533,51494,114],{"className":51495},[9493],[12,51497,51498],{},"At resonance, the drive produces ideal Rabi oscillations. Away from resonance, detuning changes the oscillation frequency and reduces the maximum achievable excited-state probability. This same two-level control structure appears across superconducting qubits, spin qubits, trapped ions, neutral atoms, and nitrogen-vacancy centers whenever a selected transition can be treated as an effective qubit.",[25,51500,51502],{"id":51501},"mathematical-foundation","Mathematical Foundation",[12,51504,51505],{},"The quantum state is a normalized vector in a two-dimensional Hilbert space,",[533,51507,51509],{"className":51508},[29056],[533,51510,51512,51552],{"className":51511},[9443],[533,51513,51515],{"className":51514},[9447],[9174,51516,51517],{"xmlns":9450,"display":29065},[9452,51518,51519,51549],{},[9455,51520,51521,51523,51525,51527,51529,51531,51533,51535,51537,51539,51541,51543,51545,51547],{},[9958,51522,9961],{"stretchy":9960},[9461,51524,30362],{},[9958,51526,10860],{"stretchy":9960},[9958,51528,554],{},[9461,51530,34041],{},[9958,51532,9961],{"stretchy":9960},[9461,51534,49279],{},[9958,51536,10860],{"stretchy":9960},[9958,51538,6350],{},[9461,51540,49420],{},[9958,51542,9961],{"stretchy":9960},[9461,51544,629],{},[9958,51546,10860],{"stretchy":9960},[9958,51548,2464],{"separator":1089},[9473,51550,51551],{"encoding":9475},"\\lvert \\psi\\rangle=\\alpha\\lvert g\\rangle+\\beta\\lvert e\\rangle,",[533,51553,51555,51579,51606],{"className":51554,"ariaHidden":1089},[9480],[533,51556,51558,51561,51564,51567,51570,51573,51576],{"className":51557},[9484],[533,51559],{"className":51560,"style":9998},[9488],[533,51562,9961],{"className":51563},[10002],[533,51565,30362],{"className":51566,"style":9498},[9493,9497],[533,51568,10860],{"className":51569},[10101],[533,51571],{"className":51572,"style":21908},[10348],[533,51574,554],{"className":51575},[21912],[533,51577],{"className":51578,"style":21908},[10348],[533,51580,51582,51585,51588,51591,51594,51597,51600,51603],{"className":51581},[9484],[533,51583],{"className":51584,"style":9998},[9488],[533,51586,34041],{"className":51587,"style":34057},[9493,9497],[533,51589,9961],{"className":51590},[10002],[533,51592,49279],{"className":51593,"style":9498},[9493,9497],[533,51595,10860],{"className":51596},[10101],[533,51598],{"className":51599,"style":22903},[10348],[533,51601,6350],{"className":51602},[22093],[533,51604],{"className":51605,"style":22903},[10348],[533,51607,51609,51612,51615,51618,51621,51624],{"className":51608},[9484],[533,51610],{"className":51611,"style":9998},[9488],[533,51613,49420],{"className":51614,"style":49445},[9493,9497],[533,51616,9961],{"className":51617},[10002],[533,51619,629],{"className":51620},[9493,9497],[533,51622,10860],{"className":51623},[10101],[533,51625,2464],{"className":51626},[10344],[12,51628,49177,51629,1576,51657,51686],{},[533,51630,51632,51645],{"className":51631},[9443],[533,51633,51635],{"className":51634},[9447],[9174,51636,51637],{"xmlns":9450},[9452,51638,51639,51643],{},[9455,51640,51641],{},[9461,51642,34041],{},[9473,51644,34044],{"encoding":9475},[533,51646,51648],{"className":51647,"ariaHidden":1089},[9480],[533,51649,51651,51654],{"className":51650},[9484],[533,51652],{"className":51653,"style":32975},[9488],[533,51655,34041],{"className":51656,"style":34057},[9493,9497],[533,51658,51660,51674],{"className":51659},[9443],[533,51661,51663],{"className":51662},[9447],[9174,51664,51665],{"xmlns":9450},[9452,51666,51667,51671],{},[9455,51668,51669],{},[9461,51670,49420],{},[9473,51672,51673],{"encoding":9475},"\\beta",[533,51675,51677],{"className":51676,"ariaHidden":1089},[9480],[533,51678,51680,51683],{"className":51679},[9484],[533,51681],{"className":51682,"style":49203},[9488],[533,51684,49420],{"className":51685,"style":49445},[9493,9497]," are complex probability amplitudes. Normalization requires",[533,51688,51690],{"className":51689},[29056],[533,51691,51693,51732],{"className":51692},[9443],[533,51694,51696],{"className":51695},[9447],[9174,51697,51698],{"xmlns":9450,"display":29065},[9452,51699,51700,51729],{},[9455,51701,51702,51704,51706,51712,51714,51716,51718,51724,51726],{},[9461,51703,9961],{"mathvariant":9573},[9461,51705,34041],{},[21862,51707,51708,51710],{},[9461,51709,9961],{"mathvariant":9573},[10856,51711,1140],{},[9958,51713,6350],{},[9461,51715,9961],{"mathvariant":9573},[9461,51717,49420],{},[21862,51719,51720,51722],{},[9461,51721,9961],{"mathvariant":9573},[10856,51723,1140],{},[9958,51725,554],{},[10856,51727,51728],{},"1.",[9473,51730,51731],{"encoding":9475},"|\\alpha|^2+|\\beta|^2=1.",[533,51733,51735,51786,51836],{"className":51734,"ariaHidden":1089},[9480],[533,51736,51738,51742,51745,51748,51777,51780,51783],{"className":51737},[9484],[533,51739],{"className":51740,"style":51741},[9488],"height:1.1141em;vertical-align:-0.25em;",[533,51743,9961],{"className":51744},[9493],[533,51746,34041],{"className":51747,"style":34057},[9493,9497],[533,51749,51751,51754],{"className":51750},[9493],[533,51752,9961],{"className":51753},[9493],[533,51755,51757],{"className":51756},[9502],[533,51758,51760],{"className":51759},[9506],[533,51761,51763],{"className":51762},[9511],[533,51764,51766],{"className":51765,"style":32793},[9515],[533,51767,51768,51771],{"style":32796},[533,51769],{"className":51770,"style":9524},[9523],[533,51772,51774],{"className":51773},[9528,9529,9530,9531],[533,51775,1140],{"className":51776},[9493,9531],[533,51778],{"className":51779,"style":22903},[10348],[533,51781,6350],{"className":51782},[22093],[533,51784],{"className":51785,"style":22903},[10348],[533,51787,51789,51792,51795,51798,51827,51830,51833],{"className":51788},[9484],[533,51790],{"className":51791,"style":51741},[9488],[533,51793,9961],{"className":51794},[9493],[533,51796,49420],{"className":51797,"style":49445},[9493,9497],[533,51799,51801,51804],{"className":51800},[9493],[533,51802,9961],{"className":51803},[9493],[533,51805,51807],{"className":51806},[9502],[533,51808,51810],{"className":51809},[9506],[533,51811,51813],{"className":51812},[9511],[533,51814,51816],{"className":51815,"style":32793},[9515],[533,51817,51818,51821],{"style":32796},[533,51819],{"className":51820,"style":9524},[9523],[533,51822,51824],{"className":51823},[9528,9529,9530,9531],[533,51825,1140],{"className":51826},[9493,9531],[533,51828],{"className":51829,"style":21908},[10348],[533,51831,554],{"className":51832},[21912],[533,51834],{"className":51835,"style":21908},[10348],[533,51837,51839,51842],{"className":51838},[9484],[533,51840],{"className":51841,"style":30480},[9488],[533,51843,51728],{"className":51844},[9493],[12,51846,51847],{},"The Born rule gives the probability of measuring the excited state,",[533,51849,51851],{"className":51850},[29056],[533,51852,51854,51906],{"className":51853},[9443],[533,51855,51857],{"className":51856},[9447],[9174,51858,51859],{"xmlns":9450,"display":29065},[9452,51860,51861,51903],{},[9455,51862,51863,51869,51871,51873,51875,51877,51879,51881,51883,51889,51891,51893,51895,51901],{},[9458,51864,51865,51867],{},[9461,51866,49085],{},[9461,51868,629],{},[9958,51870,554],{},[9461,51872,9961],{"mathvariant":9573},[9958,51874,30367],{"stretchy":9960},[9461,51876,629],{},[9958,51878,9961],{"stretchy":9960},[9461,51880,30362],{},[9958,51882,10860],{"stretchy":9960},[21862,51884,51885,51887],{},[9461,51886,9961],{"mathvariant":9573},[10856,51888,1140],{},[9958,51890,554],{},[9461,51892,9961],{"mathvariant":9573},[9461,51894,49420],{},[21862,51896,51897,51899],{},[9461,51898,9961],{"mathvariant":9573},[10856,51900,1140],{},[9461,51902,114],{"mathvariant":9573},[9473,51904,51905],{"encoding":9475},"P_e=|\\langle e\\lvert\\psi\\rangle|^2=|\\beta|^2.",[533,51907,51909,51964,52026],{"className":51908,"ariaHidden":1089},[9480],[533,51910,51912,51915,51955,51958,51961],{"className":51911},[9484],[533,51913],{"className":51914,"style":9595},[9488],[533,51916,51918,51921],{"className":51917},[9493],[533,51919,49085],{"className":51920,"style":26405},[9493,9497],[533,51922,51924],{"className":51923},[9502],[533,51925,51927,51947],{"className":51926},[9506,9507],[533,51928,51930,51944],{"className":51929},[9511],[533,51931,51933],{"className":51932,"style":22873},[9515],[533,51934,51935,51938],{"style":31397},[533,51936],{"className":51937,"style":9524},[9523],[533,51939,51941],{"className":51940},[9528,9529,9530,9531],[533,51942,629],{"className":51943},[9493,9497,9531],[533,51945,1090],{"className":51946},[9546],[533,51948,51950],{"className":51949},[9511],[533,51951,51953],{"className":51952,"style":9553},[9515],[533,51954],{},[533,51956],{"className":51957,"style":21908},[10348],[533,51959,554],{"className":51960},[21912],[533,51962],{"className":51963,"style":21908},[10348],[533,51965,51967,51970,51973,51976,51979,51982,51985,51988,52017,52020,52023],{"className":51966},[9484],[533,51968],{"className":51969,"style":51741},[9488],[533,51971,9961],{"className":51972},[9493],[533,51974,30367],{"className":51975},[10002],[533,51977,629],{"className":51978},[9493,9497],[533,51980,9961],{"className":51981},[10002],[533,51983,30362],{"className":51984,"style":9498},[9493,9497],[533,51986,10860],{"className":51987},[10101],[533,51989,51991,51994],{"className":51990},[9493],[533,51992,9961],{"className":51993},[9493],[533,51995,51997],{"className":51996},[9502],[533,51998,52000],{"className":51999},[9506],[533,52001,52003],{"className":52002},[9511],[533,52004,52006],{"className":52005,"style":32793},[9515],[533,52007,52008,52011],{"style":32796},[533,52009],{"className":52010,"style":9524},[9523],[533,52012,52014],{"className":52013},[9528,9529,9530,9531],[533,52015,1140],{"className":52016},[9493,9531],[533,52018],{"className":52019,"style":21908},[10348],[533,52021,554],{"className":52022},[21912],[533,52024],{"className":52025,"style":21908},[10348],[533,52027,52029,52032,52035,52038,52067],{"className":52028},[9484],[533,52030],{"className":52031,"style":51741},[9488],[533,52033,9961],{"className":52034},[9493],[533,52036,49420],{"className":52037,"style":49445},[9493,9497],[533,52039,52041,52044],{"className":52040},[9493],[533,52042,9961],{"className":52043},[9493],[533,52045,52047],{"className":52046},[9502],[533,52048,52050],{"className":52049},[9506],[533,52051,52053],{"className":52052},[9511],[533,52054,52056],{"className":52055,"style":32793},[9515],[533,52057,52058,52061],{"style":32796},[533,52059],{"className":52060,"style":9524},[9523],[533,52062,52064],{"className":52063},[9528,9529,9530,9531],[533,52065,1140],{"className":52066},[9493,9531],[533,52068,114],{"className":52069},[9493],[12,52071,52072],{},"Pauli matrices then provide a natural operator basis for the two-level system,",[533,52074,52076],{"className":52075},[29056],[533,52077,52079,52241],{"className":52078},[9443],[533,52080,52082],{"className":52081},[9447],[9174,52083,52084],{"xmlns":9450,"display":29065},[9452,52085,52086,52238],{},[9455,52087,52088,52094,52096,52132,52134,52136,52142,52144,52184,52186,52188,52194,52196,52236],{},[9458,52089,52090,52092],{},[9461,52091,21876],{},[9461,52093,29076],{},[9958,52095,554],{},[9455,52097,52098,52100,52130],{},[9958,52099,1522],{"fence":1089},[29084,52101,52102,52116],{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},[29089,52103,52104,52110],{},[29092,52105,52106],{},[29095,52107,52108],{"scriptlevel":1049,"displaystyle":9960},[10856,52109,1049],{},[29092,52111,52112],{},[29095,52113,52114],{"scriptlevel":1049,"displaystyle":9960},[10856,52115,1052],{},[29089,52117,52118,52124],{},[29092,52119,52120],{},[29095,52121,52122],{"scriptlevel":1049,"displaystyle":9960},[10856,52123,1052],{},[29092,52125,52126],{},[29095,52127,52128],{"scriptlevel":1049,"displaystyle":9960},[10856,52129,1049],{},[9958,52131,30516],{"fence":1089},[9958,52133,2464],{"separator":1089},[10348,52135],{"width":29941},[9458,52137,52138,52140],{},[9461,52139,21876],{},[9461,52141,29131],{},[9958,52143,554],{},[9455,52145,52146,52148,52182],{},[9958,52147,1522],{"fence":1089},[29084,52149,52150,52168],{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},[29089,52151,52152,52158],{},[29092,52153,52154],{},[29095,52155,52156],{"scriptlevel":1049,"displaystyle":9960},[10856,52157,1049],{},[29092,52159,52160],{},[29095,52161,52162],{"scriptlevel":1049,"displaystyle":9960},[9455,52163,52164,52166],{},[9958,52165,21843],{},[9461,52167,2556],{},[29089,52169,52170,52176],{},[29092,52171,52172],{},[29095,52173,52174],{"scriptlevel":1049,"displaystyle":9960},[9461,52175,2556],{},[29092,52177,52178],{},[29095,52179,52180],{"scriptlevel":1049,"displaystyle":9960},[10856,52181,1049],{},[9958,52183,30516],{"fence":1089},[9958,52185,2464],{"separator":1089},[10348,52187],{"width":29941},[9458,52189,52190,52192],{},[9461,52191,21876],{},[9461,52193,1632],{},[9958,52195,554],{},[9455,52197,52198,52200,52234],{},[9958,52199,1522],{"fence":1089},[29084,52201,52202,52216],{"rowspacing":29086,"columnalign":29087,"columnspacing":24074},[29089,52203,52204,52210],{},[29092,52205,52206],{},[29095,52207,52208],{"scriptlevel":1049,"displaystyle":9960},[10856,52209,1052],{},[29092,52211,52212],{},[29095,52213,52214],{"scriptlevel":1049,"displaystyle":9960},[10856,52215,1049],{},[29089,52217,52218,52224],{},[29092,52219,52220],{},[29095,52221,52222],{"scriptlevel":1049,"displaystyle":9960},[10856,52223,1049],{},[29092,52225,52226],{},[29095,52227,52228],{"scriptlevel":1049,"displaystyle":9960},[9455,52229,52230,52232],{},[9958,52231,21843],{},[10856,52233,1052],{},[9958,52235,30516],{"fence":1089},[9461,52237,114],{"mathvariant":9573},[9473,52239,52240],{"encoding":9475},"\\sigma_x=\\begin{bmatrix}0 & 1 \\\\ 1 & 0\\end{bmatrix}, \\qquad\n\\sigma_y=\\begin{bmatrix}0 & -i \\\\ i & 0\\end{bmatrix}, \\qquad\n\\sigma_z=\\begin{bmatrix}1 & 0 \\\\ 0 & -1\\end{bmatrix}.",[533,52242,52244,52299,52483,52670],{"className":52243,"ariaHidden":1089},[9480],[533,52245,52247,52250,52290,52293,52296],{"className":52246},[9484],[533,52248],{"className":52249,"style":9489},[9488],[533,52251,52253,52256],{"className":52252},[9493],[533,52254,21876],{"className":52255,"style":9498},[9493,9497],[533,52257,52259],{"className":52258},[9502],[533,52260,52262,52282],{"className":52261},[9506,9507],[533,52263,52265,52279],{"className":52264},[9511],[533,52266,52268],{"className":52267,"style":22873},[9515],[533,52269,52270,52273],{"style":9519},[533,52271],{"className":52272,"style":9524},[9523],[533,52274,52276],{"className":52275},[9528,9529,9530,9531],[533,52277,29076],{"className":52278},[9493,9497,9531],[533,52280,1090],{"className":52281},[9546],[533,52283,52285],{"className":52284},[9511],[533,52286,52288],{"className":52287,"style":9553},[9515],[533,52289],{},[533,52291],{"className":52292,"style":21908},[10348],[533,52294,554],{"className":52295},[21912],[533,52297],{"className":52298,"style":21908},[10348],[533,52300,52302,52305,52422,52425,52428,52431,52434,52474,52477,52480],{"className":52301},[9484],[533,52303],{"className":52304,"style":29293},[9488],[533,52306,52308,52314,52416],{"className":52307},[21977],[533,52309,52311],{"className":52310,"style":21982},[10002,21981],[533,52312,1522],{"className":52313},[21986,9530],[533,52315,52317],{"className":52316},[9493],[533,52318,52320,52365,52368,52371],{"className":52319},[29084],[533,52321,52323],{"className":52322},[29312],[533,52324,52326,52357],{"className":52325},[9506,9507],[533,52327,52329,52354],{"className":52328},[9511],[533,52330,52332,52343],{"className":52331,"style":29322},[9515],[533,52333,52334,52337],{"style":29325},[533,52335],{"className":52336,"style":22017},[9523],[533,52338,52340],{"className":52339},[9493],[533,52341,1049],{"className":52342},[9493],[533,52344,52345,52348],{"style":29337},[533,52346],{"className":52347,"style":22017},[9523],[533,52349,52351],{"className":52350},[9493],[533,52352,1052],{"className":52353},[9493],[533,52355,1090],{"className":52356},[9546],[533,52358,52360],{"className":52359},[9511],[533,52361,52363],{"className":52362,"style":29356},[9515],[533,52364],{},[533,52366],{"className":52367,"style":29363},[29362],[533,52369],{"className":52370,"style":29363},[29362],[533,52372,52374],{"className":52373},[29312],[533,52375,52377,52408],{"className":52376},[9506,9507],[533,52378,52380,52405],{"className":52379},[9511],[533,52381,52383,52394],{"className":52382,"style":29322},[9515],[533,52384,52385,52388],{"style":29325},[533,52386],{"className":52387,"style":22017},[9523],[533,52389,52391],{"className":52390},[9493],[533,52392,1052],{"className":52393},[9493],[533,52395,52396,52399],{"style":29337},[533,52397],{"className":52398,"style":22017},[9523],[533,52400,52402],{"className":52401},[9493],[533,52403,1049],{"className":52404},[9493],[533,52406,1090],{"className":52407},[9546],[533,52409,52411],{"className":52410},[9511],[533,52412,52414],{"className":52413,"style":29356},[9515],[533,52415],{},[533,52417,52419],{"className":52418,"style":21982},[10101,21981],[533,52420,30516],{"className":52421},[21986,9530],[533,52423],{"className":52424,"style":10349},[10348],[533,52426,2464],{"className":52427},[10344],[533,52429],{"className":52430,"style":30160},[10348],[533,52432],{"className":52433,"style":10349},[10348],[533,52435,52437,52440],{"className":52436},[9493],[533,52438,21876],{"className":52439,"style":9498},[9493,9497],[533,52441,52443],{"className":52442},[9502],[533,52444,52446,52466],{"className":52445},[9506,9507],[533,52447,52449,52463],{"className":52448},[9511],[533,52450,52452],{"className":52451,"style":22873},[9515],[533,52453,52454,52457],{"style":9519},[533,52455],{"className":52456,"style":9524},[9523],[533,52458,52460],{"className":52459},[9528,9529,9530,9531],[533,52461,29131],{"className":52462,"style":9498},[9493,9497,9531],[533,52464,1090],{"className":52465},[9546],[533,52467,52469],{"className":52468},[9511],[533,52470,52472],{"className":52471,"style":29468},[9515],[533,52473],{},[533,52475],{"className":52476,"style":21908},[10348],[533,52478,554],{"className":52479},[21912],[533,52481],{"className":52482,"style":21908},[10348],[533,52484,52486,52489,52609,52612,52615,52618,52621,52661,52664,52667],{"className":52485},[9484],[533,52487],{"className":52488,"style":29293},[9488],[533,52490,52492,52498,52603],{"className":52491},[21977],[533,52493,52495],{"className":52494,"style":21982},[10002,21981],[533,52496,1522],{"className":52497},[21986,9530],[533,52499,52501],{"className":52500},[9493],[533,52502,52504,52549,52552,52555],{"className":52503},[29084],[533,52505,52507],{"className":52506},[29312],[533,52508,52510,52541],{"className":52509},[9506,9507],[533,52511,52513,52538],{"className":52512},[9511],[533,52514,52516,52527],{"className":52515,"style":29322},[9515],[533,52517,52518,52521],{"style":29325},[533,52519],{"className":52520,"style":22017},[9523],[533,52522,52524],{"className":52523},[9493],[533,52525,1049],{"className":52526},[9493],[533,52528,52529,52532],{"style":29337},[533,52530],{"className":52531,"style":22017},[9523],[533,52533,52535],{"className":52534},[9493],[533,52536,2556],{"className":52537},[9493,9497],[533,52539,1090],{"className":52540},[9546],[533,52542,52544],{"className":52543},[9511],[533,52545,52547],{"className":52546,"style":29356},[9515],[533,52548],{},[533,52550],{"className":52551,"style":29363},[29362],[533,52553],{"className":52554,"style":29363},[29362],[533,52556,52558],{"className":52557},[29312],[533,52559,52561,52595],{"className":52560},[9506,9507],[533,52562,52564,52592],{"className":52563},[9511],[533,52565,52567,52581],{"className":52566,"style":29322},[9515],[533,52568,52569,52572],{"style":29325},[533,52570],{"className":52571,"style":22017},[9523],[533,52573,52575,52578],{"className":52574},[9493],[533,52576,21843],{"className":52577},[9493],[533,52579,2556],{"className":52580},[9493,9497],[533,52582,52583,52586],{"style":29337},[533,52584],{"className":52585,"style":22017},[9523],[533,52587,52589],{"className":52588},[9493],[533,52590,1049],{"className":52591},[9493],[533,52593,1090],{"className":52594},[9546],[533,52596,52598],{"className":52597},[9511],[533,52599,52601],{"className":52600,"style":29356},[9515],[533,52602],{},[533,52604,52606],{"className":52605,"style":21982},[10101,21981],[533,52607,30516],{"className":52608},[21986,9530],[533,52610],{"className":52611,"style":10349},[10348],[533,52613,2464],{"className":52614},[10344],[533,52616],{"className":52617,"style":30160},[10348],[533,52619],{"className":52620,"style":10349},[10348],[533,52622,52624,52627],{"className":52623},[9493],[533,52625,21876],{"className":52626,"style":9498},[9493,9497],[533,52628,52630],{"className":52629},[9502],[533,52631,52633,52653],{"className":52632},[9506,9507],[533,52634,52636,52650],{"className":52635},[9511],[533,52637,52639],{"className":52638,"style":22873},[9515],[533,52640,52641,52644],{"style":9519},[533,52642],{"className":52643,"style":9524},[9523],[533,52645,52647],{"className":52646},[9528,9529,9530,9531],[533,52648,1632],{"className":52649,"style":29647},[9493,9497,9531],[533,52651,1090],{"className":52652},[9546],[533,52654,52656],{"className":52655},[9511],[533,52657,52659],{"className":52658,"style":9553},[9515],[533,52660],{},[533,52662],{"className":52663,"style":21908},[10348],[533,52665,554],{"className":52666},[21912],[533,52668],{"className":52669,"style":21908},[10348],[533,52671,52673,52676,52796,52799],{"className":52672},[9484],[533,52674],{"className":52675,"style":29293},[9488],[533,52677,52679,52685,52790],{"className":52678},[21977],[533,52680,52682],{"className":52681,"style":21982},[10002,21981],[533,52683,1522],{"className":52684},[21986,9530],[533,52686,52688],{"className":52687},[9493],[533,52689,52691,52736,52739,52742],{"className":52690},[29084],[533,52692,52694],{"className":52693},[29312],[533,52695,52697,52728],{"className":52696},[9506,9507],[533,52698,52700,52725],{"className":52699},[9511],[533,52701,52703,52714],{"className":52702,"style":29322},[9515],[533,52704,52705,52708],{"style":29325},[533,52706],{"className":52707,"style":22017},[9523],[533,52709,52711],{"className":52710},[9493],[533,52712,1052],{"className":52713},[9493],[533,52715,52716,52719],{"style":29337},[533,52717],{"className":52718,"style":22017},[9523],[533,52720,52722],{"className":52721},[9493],[533,52723,1049],{"className":52724},[9493],[533,52726,1090],{"className":52727},[9546],[533,52729,52731],{"className":52730},[9511],[533,52732,52734],{"className":52733,"style":29356},[9515],[533,52735],{},[533,52737],{"className":52738,"style":29363},[29362],[533,52740],{"className":52741,"style":29363},[29362],[533,52743,52745],{"className":52744},[29312],[533,52746,52748,52782],{"className":52747},[9506,9507],[533,52749,52751,52779],{"className":52750},[9511],[533,52752,52754,52765],{"className":52753,"style":29322},[9515],[533,52755,52756,52759],{"style":29325},[533,52757],{"className":52758,"style":22017},[9523],[533,52760,52762],{"className":52761},[9493],[533,52763,1049],{"className":52764},[9493],[533,52766,52767,52770],{"style":29337},[533,52768],{"className":52769,"style":22017},[9523],[533,52771,52773,52776],{"className":52772},[9493],[533,52774,21843],{"className":52775},[9493],[533,52777,1052],{"className":52778},[9493],[533,52780,1090],{"className":52781},[9546],[533,52783,52785],{"className":52784},[9511],[533,52786,52788],{"className":52787,"style":29356},[9515],[533,52789],{},[533,52791,52793],{"className":52792,"style":21982},[10101,21981],[533,52794,30516],{"className":52795},[21986,9530],[533,52797],{"className":52798,"style":10349},[10348],[533,52800,114],{"className":52801},[9493],[12,52803,52804,52805,52838],{},"Within this representation, a driven two-level system behaves like a spin-",[533,52806,52808,52826],{"className":52807},[9443],[533,52809,52811],{"className":52810},[9447],[9174,52812,52813],{"xmlns":9450},[9452,52814,52815,52823],{},[9455,52816,52817,52819,52821],{},[10856,52818,1052],{},[9461,52820,2941],{"mathvariant":9573},[10856,52822,1140],{},[9473,52824,52825],{"encoding":9475},"1\u002F2",[533,52827,52829],{"className":52828,"ariaHidden":1089},[9480],[533,52830,52832,52835],{"className":52831},[9484],[533,52833],{"className":52834,"style":9998},[9488],[533,52836,52825],{"className":52837},[9493]," particle precessing around an effective magnetic field. The drive strength supplies the transverse control component. Applied detuning supplies the longitudinal control component.",[25,52840,52842],{"id":52841},"rotating-frame-hamiltonian","Rotating-Frame Hamiltonian",[12,52844,52845],{},"In the laboratory frame, a minimal semiclassical Hamiltonian for the driven qubit is",[533,52847,52849],{"className":52848},[29056],[533,52850,52852,52920],{"className":52851},[9443],[533,52853,52855],{"className":52854},[9447],[9174,52856,52857],{"xmlns":9450,"display":29065},[9452,52858,52859,52917],{},[9455,52860,52861,52863,52865,52867,52869,52871,52885,52891,52893,52895,52897,52899,52901,52903,52905,52907,52909,52915],{},[9461,52862,16132],{},[9958,52864,615],{"stretchy":9960},[9461,52866,9582],{},[9958,52868,2632],{"stretchy":9960},[9958,52870,554],{},[21845,52872,52873,52883],{},[9455,52874,52875,52877],{},[9461,52876,50828],{"mathvariant":9573},[9458,52878,52879,52881],{},[9461,52880,9463],{},[10856,52882,1049],{},[10856,52884,1140],{},[9458,52886,52887,52889],{},[9461,52888,21876],{},[9461,52890,1632],{},[9958,52892,6350],{},[9461,52894,50828],{"mathvariant":9573},[9461,52896,9659],{"mathvariant":9573},[9461,52898,14318],{},[9958,52900,21836],{},[9958,52902,615],{"stretchy":9960},[9461,52904,9463],{},[9461,52906,9582],{},[9958,52908,2632],{"stretchy":9960},[9458,52910,52911,52913],{},[9461,52912,21876],{},[9461,52914,29076],{},[9958,52916,2464],{"separator":1089},[9473,52918,52919],{"encoding":9475},"H(t)=\\frac{\\hbar\\omega_0}{2}\\sigma_z+\\hbar\\Omega\\cos(\\omega t)\\sigma_x,",[533,52921,52923,52950,53109],{"className":52922,"ariaHidden":1089},[9480],[533,52924,52926,52929,52932,52935,52938,52941,52944,52947],{"className":52925},[9484],[533,52927],{"className":52928,"style":9998},[9488],[533,52930,16132],{"className":52931,"style":25837},[9493,9497],[533,52933,615],{"className":52934},[10002],[533,52936,9582],{"className":52937},[9493,9497],[533,52939,2632],{"className":52940},[10101],[533,52942],{"className":52943,"style":21908},[10348],[533,52945,554],{"className":52946},[21912],[533,52948],{"className":52949,"style":21908},[10348],[533,52951,52953,52957,53060,53100,53103,53106],{"className":52952},[9484],[533,52954],{"className":52955,"style":52956},[9488],"height:2.0519em;vertical-align:-0.686em;",[533,52958,52960,52963,53057],{"className":52959},[9493],[533,52961],{"className":52962},[10002,21997],[533,52964,52966],{"className":52965},[21845],[533,52967,52969,53049],{"className":52968},[9506,9507],[533,52970,52972,53046],{"className":52971},[9511],[533,52973,52976,52987,52995],{"className":52974,"style":52975},[9515],"height:1.3659em;",[533,52977,52978,52981],{"style":31623},[533,52979],{"className":52980,"style":22017},[9523],[533,52982,52984],{"className":52983},[9493],[533,52985,1140],{"className":52986},[9493],[533,52988,52989,52992],{"style":22063},[533,52990],{"className":52991,"style":22017},[9523],[533,52993],{"className":52994,"style":22071},[22070],[533,52996,52997,53000],{"style":31643},[533,52998],{"className":52999,"style":22017},[9523],[533,53001,53003,53006],{"className":53002},[9493],[533,53004,50828],{"className":53005},[9493],[533,53007,53009,53012],{"className":53008},[9493],[533,53010,9463],{"className":53011,"style":9498},[9493,9497],[533,53013,53015],{"className":53014},[9502],[533,53016,53018,53038],{"className":53017},[9506,9507],[533,53019,53021,53035],{"className":53020},[9511],[533,53022,53024],{"className":53023,"style":21941},[9515],[533,53025,53026,53029],{"style":9519},[533,53027],{"className":53028,"style":9524},[9523],[533,53030,53032],{"className":53031},[9528,9529,9530,9531],[533,53033,1049],{"className":53034},[9493,9531],[533,53036,1090],{"className":53037},[9546],[533,53039,53041],{"className":53040},[9511],[533,53042,53044],{"className":53043,"style":9553},[9515],[533,53045],{},[533,53047,1090],{"className":53048},[9546],[533,53050,53052],{"className":53051},[9511],[533,53053,53055],{"className":53054,"style":31709},[9515],[533,53056],{},[533,53058],{"className":53059},[10101,21997],[533,53061,53063,53066],{"className":53062},[9493],[533,53064,21876],{"className":53065,"style":9498},[9493,9497],[533,53067,53069],{"className":53068},[9502],[533,53070,53072,53092],{"className":53071},[9506,9507],[533,53073,53075,53089],{"className":53074},[9511],[533,53076,53078],{"className":53077,"style":22873},[9515],[533,53079,53080,53083],{"style":9519},[533,53081],{"className":53082,"style":9524},[9523],[533,53084,53086],{"className":53085},[9528,9529,9530,9531],[533,53087,1632],{"className":53088,"style":29647},[9493,9497,9531],[533,53090,1090],{"className":53091},[9546],[533,53093,53095],{"className":53094},[9511],[533,53096,53098],{"className":53097,"style":9553},[9515],[533,53099],{},[533,53101],{"className":53102,"style":22903},[10348],[533,53104,6350],{"className":53105},[22093],[533,53107],{"className":53108,"style":22903},[10348],[533,53110,53112,53115,53119,53122,53125,53128,53131,53134,53137,53177],{"className":53111},[9484],[533,53113],{"className":53114,"style":9998},[9488],[533,53116,53118],{"className":53117},[9493],"ℏΩ",[533,53120],{"className":53121,"style":10349},[10348],[533,53123,14318],{"className":53124},[21970],[533,53126,615],{"className":53127},[10002],[533,53129,9463],{"className":53130,"style":9498},[9493,9497],[533,53132,9582],{"className":53133},[9493,9497],[533,53135,2632],{"className":53136},[10101],[533,53138,53140,53143],{"className":53139},[9493],[533,53141,21876],{"className":53142,"style":9498},[9493,9497],[533,53144,53146],{"className":53145},[9502],[533,53147,53149,53169],{"className":53148},[9506,9507],[533,53150,53152,53166],{"className":53151},[9511],[533,53153,53155],{"className":53154,"style":22873},[9515],[533,53156,53157,53160],{"style":9519},[533,53158],{"className":53159,"style":9524},[9523],[533,53161,53163],{"className":53162},[9528,9529,9530,9531],[533,53164,29076],{"className":53165},[9493,9497,9531],[533,53167,1090],{"className":53168},[9546],[533,53170,53172],{"className":53171},[9511],[533,53173,53175],{"className":53174,"style":9553},[9515],[533,53176],{},[533,53178,2464],{"className":53179},[10344],[12,53181,49177,53182,53242,53243,53271,53272,53309],{},[533,53183,53185,53206],{"className":53184},[9443],[533,53186,53188],{"className":53187},[9447],[9174,53189,53190],{"xmlns":9450},[9452,53191,53192,53204],{},[9455,53193,53194,53196,53198,53200,53202],{},[9461,53195,9463],{},[9958,53197,554],{},[10856,53199,1140],{},[9461,53201,22502],{},[9461,53203,618],{},[9473,53205,49994],{"encoding":9475},[533,53207,53209,53227],{"className":53208,"ariaHidden":1089},[9480],[533,53210,53212,53215,53218,53221,53224],{"className":53211},[9484],[533,53213],{"className":53214,"style":32975},[9488],[533,53216,9463],{"className":53217,"style":9498},[9493,9497],[533,53219],{"className":53220,"style":21908},[10348],[533,53222,554],{"className":53223},[21912],[533,53225],{"className":53226,"style":21908},[10348],[533,53228,53230,53233,53236,53239],{"className":53229},[9484],[533,53231],{"className":53232,"style":49203},[9488],[533,53234,1140],{"className":53235},[9493],[533,53237,22502],{"className":53238,"style":9498},[9493,9497],[533,53240,618],{"className":53241,"style":22860},[9493,9497]," is the drive angular frequency and ",[533,53244,53246,53259],{"className":53245},[9443],[533,53247,53249],{"className":53248},[9447],[9174,53250,53251],{"xmlns":9450},[9452,53252,53253,53257],{},[9455,53254,53255],{},[9461,53256,9659],{"mathvariant":9573},[9473,53258,9662],{"encoding":9475},[533,53260,53262],{"className":53261,"ariaHidden":1089},[9480],[533,53263,53265,53268],{"className":53264},[9484],[533,53266],{"className":53267,"style":9672},[9488],[533,53269,9659],{"className":53270},[9493]," is the on-resonance Rabi angular frequency. The computational model specifies the drive strength using ",[533,53273,53275,53294],{"className":53274},[9443],[533,53276,53278],{"className":53277},[9447],[9174,53279,53280],{"xmlns":9450},[9452,53281,53282,53292],{},[9455,53283,53284,53286,53288,53290],{},[9461,53285,9659],{"mathvariant":9573},[9461,53287,2941],{"mathvariant":9573},[10856,53289,1140],{},[9461,53291,22502],{},[9473,53293,50092],{"encoding":9475},[533,53295,53297],{"className":53296,"ariaHidden":1089},[9480],[533,53298,53300,53303,53306],{"className":53299},[9484],[533,53301],{"className":53302,"style":9998},[9488],[533,53304,50105],{"className":53305},[9493],[533,53307,22502],{"className":53308,"style":9498},[9493,9497]," in MHz. Transforming into a frame rotating at the drive frequency and applying the rotating-wave approximation gives the effective time-independent Hamiltonian",[533,53311,53313],{"className":53312},[29056],[533,53314,53316,53374],{"className":53315},[9443],[533,53317,53319],{"className":53318},[9447],[9174,53320,53321],{"xmlns":9450,"display":29065},[9452,53322,53323,53371],{},[9455,53324,53325,53337,53339,53345,53369],{},[9458,53326,53327,53329],{},[9461,53328,16132],{},[9455,53330,53331,53333,53335],{},[9461,53332,29825],{"mathvariant":9573},[9461,53334,31279],{"mathvariant":9573},[9461,53336,21817],{"mathvariant":9573},[9958,53338,554],{},[21845,53340,53341,53343],{},[9461,53342,50828],{"mathvariant":9573},[10856,53344,1140],{},[9455,53346,53347,53349,53351,53357,53359,53361,53367],{},[9958,53348,615],{"fence":1089},[9461,53350,9574],{"mathvariant":9573},[9458,53352,53353,53355],{},[9461,53354,21876],{},[9461,53356,1632],{},[9958,53358,6350],{},[9461,53360,9659],{"mathvariant":9573},[9458,53362,53363,53365],{},[9461,53364,21876],{},[9461,53366,29076],{},[9958,53368,2632],{"fence":1089},[9958,53370,2464],{"separator":1089},[9473,53372,53373],{"encoding":9475},"H_{\\mathrm{RWA}}=\\frac{\\hbar}{2}\\left(\\Delta\\sigma_z+\\Omega\\sigma_x\\right),",[533,53375,53377,53439],{"className":53376,"ariaHidden":1089},[9480],[533,53378,53380,53383,53430,53433,53436],{"className":53379},[9484],[533,53381],{"className":53382,"style":9595},[9488],[533,53384,53386,53389],{"className":53385},[9493],[533,53387,16132],{"className":53388,"style":25837},[9493,9497],[533,53390,53392],{"className":53391},[9502],[533,53393,53395,53422],{"className":53394},[9506,9507],[533,53396,53398,53419],{"className":53397},[9511],[533,53399,53401],{"className":53400,"style":9516},[9515],[533,53402,53404,53407],{"style":53403},"top:-2.55em;margin-left:-0.0813em;margin-right:0.05em;",[533,53405],{"className":53406,"style":9524},[9523],[533,53408,53410],{"className":53409},[9528,9529,9530,9531],[533,53411,53413],{"className":53412},[9493,9531],[533,53414,53416],{"className":53415},[9493,9531],[533,53417,50698],{"className":53418},[9493,30229,9531],[533,53420,1090],{"className":53421},[9546],[533,53423,53425],{"className":53424},[9511],[533,53426,53428],{"className":53427,"style":9553},[9515],[533,53429],{},[533,53431],{"className":53432,"style":21908},[10348],[533,53434,554],{"className":53435},[21912],[533,53437],{"className":53438,"style":21908},[10348],[533,53440,53442,53445,53507,53510,53614,53617],{"className":53441},[9484],[533,53443],{"className":53444,"style":52956},[9488],[533,53446,53448,53451,53504],{"className":53447},[9493],[533,53449],{"className":53450},[10002,21997],[533,53452,53454],{"className":53453},[21845],[533,53455,53457,53496],{"className":53456},[9506,9507],[533,53458,53460,53493],{"className":53459},[9511],[533,53461,53463,53474,53482],{"className":53462,"style":52975},[9515],[533,53464,53465,53468],{"style":31623},[533,53466],{"className":53467,"style":22017},[9523],[533,53469,53471],{"className":53470},[9493],[533,53472,1140],{"className":53473},[9493],[533,53475,53476,53479],{"style":22063},[533,53477],{"className":53478,"style":22017},[9523],[533,53480],{"className":53481,"style":22071},[22070],[533,53483,53484,53487],{"style":31643},[533,53485],{"className":53486,"style":22017},[9523],[533,53488,53490],{"className":53489},[9493],[533,53491,50828],{"className":53492},[9493],[533,53494,1090],{"className":53495},[9546],[533,53497,53499],{"className":53498},[9511],[533,53500,53502],{"className":53501,"style":31709},[9515],[533,53503],{},[533,53505],{"className":53506},[10101,21997],[533,53508],{"className":53509,"style":10349},[10348],[533,53511,53513,53516,53519,53559,53562,53565,53568,53571,53611],{"className":53512},[21977],[533,53514,615],{"className":53515,"style":21982},[10002,21981],[533,53517,9574],{"className":53518},[9493],[533,53520,53522,53525],{"className":53521},[9493],[533,53523,21876],{"className":53524,"style":9498},[9493,9497],[533,53526,53528],{"className":53527},[9502],[533,53529,53531,53551],{"className":53530},[9506,9507],[533,53532,53534,53548],{"className":53533},[9511],[533,53535,53537],{"className":53536,"style":22873},[9515],[533,53538,53539,53542],{"style":9519},[533,53540],{"className":53541,"style":9524},[9523],[533,53543,53545],{"className":53544},[9528,9529,9530,9531],[533,53546,1632],{"className":53547,"style":29647},[9493,9497,9531],[533,53549,1090],{"className":53550},[9546],[533,53552,53554],{"className":53553},[9511],[533,53555,53557],{"className":53556,"style":9553},[9515],[533,53558],{},[533,53560],{"className":53561,"style":22903},[10348],[533,53563,6350],{"className":53564},[22093],[533,53566],{"className":53567,"style":22903},[10348],[533,53569,9659],{"className":53570},[9493],[533,53572,53574,53577],{"className":53573},[9493],[533,53575,21876],{"className":53576,"style":9498},[9493,9497],[533,53578,53580],{"className":53579},[9502],[533,53581,53583,53603],{"className":53582},[9506,9507],[533,53584,53586,53600],{"className":53585},[9511],[533,53587,53589],{"className":53588,"style":22873},[9515],[533,53590,53591,53594],{"style":9519},[533,53592],{"className":53593,"style":9524},[9523],[533,53595,53597],{"className":53596},[9528,9529,9530,9531],[533,53598,29076],{"className":53599},[9493,9497,9531],[533,53601,1090],{"className":53602},[9546],[533,53604,53606],{"className":53605},[9511],[533,53607,53609],{"className":53608,"style":9553},[9515],[533,53610],{},[533,53612,2632],{"className":53613,"style":21982},[10101,21981],[533,53615],{"className":53616,"style":10349},[10348],[533,53618,2464],{"className":53619},[10344],[12,53621,53622],{},"with detuning",[533,53624,53626],{"className":53625},[29056],[533,53627,53629,53677],{"className":53628},[9443],[533,53630,53632],{"className":53631},[9447],[9174,53633,53634],{"xmlns":9450,"display":29065},[9452,53635,53636,53674],{},[9455,53637,53638,53640,53642,53644,53646,53652,53654,53656,53658,53660,53662,53664,53670,53672],{},[9461,53639,9574],{"mathvariant":9573},[9958,53641,554],{},[9461,53643,9463],{},[9958,53645,21843],{},[9458,53647,53648,53650],{},[9461,53649,9463],{},[10856,53651,1049],{},[9958,53653,554],{},[10856,53655,1140],{},[9461,53657,22502],{},[9958,53659,615],{"stretchy":9960},[9461,53661,618],{},[9958,53663,21843],{},[9458,53665,53666,53668],{},[9461,53667,618],{},[10856,53669,1049],{},[9958,53671,2632],{"stretchy":9960},[9461,53673,114],{"mathvariant":9573},[9473,53675,53676],{"encoding":9475},"\\Delta=\\omega-\\omega_0=2\\pi(f-f_0).",[533,53678,53680,53698,53716,53771,53798],{"className":53679,"ariaHidden":1089},[9480],[533,53681,53683,53686,53689,53692,53695],{"className":53682},[9484],[533,53684],{"className":53685,"style":9672},[9488],[533,53687,9574],{"className":53688},[9493],[533,53690],{"className":53691,"style":21908},[10348],[533,53693,554],{"className":53694},[21912],[533,53696],{"className":53697,"style":21908},[10348],[533,53699,53701,53704,53707,53710,53713],{"className":53700},[9484],[533,53702],{"className":53703,"style":50203},[9488],[533,53705,9463],{"className":53706,"style":9498},[9493,9497],[533,53708],{"className":53709,"style":22903},[10348],[533,53711,21843],{"className":53712},[22093],[533,53714],{"className":53715,"style":22903},[10348],[533,53717,53719,53722,53762,53765,53768],{"className":53718},[9484],[533,53720],{"className":53721,"style":9489},[9488],[533,53723,53725,53728],{"className":53724},[9493],[533,53726,9463],{"className":53727,"style":9498},[9493,9497],[533,53729,53731],{"className":53730},[9502],[533,53732,53734,53754],{"className":53733},[9506,9507],[533,53735,53737,53751],{"className":53736},[9511],[533,53738,53740],{"className":53739,"style":21941},[9515],[533,53741,53742,53745],{"style":9519},[533,53743],{"className":53744,"style":9524},[9523],[533,53746,53748],{"className":53747},[9528,9529,9530,9531],[533,53749,1049],{"className":53750},[9493,9531],[533,53752,1090],{"className":53753},[9546],[533,53755,53757],{"className":53756},[9511],[533,53758,53760],{"className":53759,"style":9553},[9515],[533,53761],{},[533,53763],{"className":53764,"style":21908},[10348],[533,53766,554],{"className":53767},[21912],[533,53769],{"className":53770,"style":21908},[10348],[533,53772,53774,53777,53780,53783,53786,53789,53792,53795],{"className":53773},[9484],[533,53775],{"className":53776,"style":9998},[9488],[533,53778,1140],{"className":53779},[9493],[533,53781,22502],{"className":53782,"style":9498},[9493,9497],[533,53784,615],{"className":53785},[10002],[533,53787,618],{"className":53788,"style":22860},[9493,9497],[533,53790],{"className":53791,"style":22903},[10348],[533,53793,21843],{"className":53794},[22093],[533,53796],{"className":53797,"style":22903},[10348],[533,53799,53801,53804,53844,53847],{"className":53800},[9484],[533,53802],{"className":53803,"style":9998},[9488],[533,53805,53807,53810],{"className":53806},[9493],[533,53808,618],{"className":53809,"style":22860},[9493,9497],[533,53811,53813],{"className":53812},[9502],[533,53814,53816,53836],{"className":53815},[9506,9507],[533,53817,53819,53833],{"className":53818},[9511],[533,53820,53822],{"className":53821,"style":21941},[9515],[533,53823,53824,53827],{"style":22876},[533,53825],{"className":53826,"style":9524},[9523],[533,53828,53830],{"className":53829},[9528,9529,9530,9531],[533,53831,1049],{"className":53832},[9493,9531],[533,53834,1090],{"className":53835},[9546],[533,53837,53839],{"className":53838},[9511],[533,53840,53842],{"className":53841,"style":9553},[9515],[533,53843],{},[533,53845,2632],{"className":53846},[10101],[533,53848,114],{"className":53849},[9493],[12,53851,53852,53853,1576,53881,53909,53910,53938,53939,53967],{},"This Hamiltonian describes precession around an effective control axis with components proportional to ",[533,53854,53856,53869],{"className":53855},[9443],[533,53857,53859],{"className":53858},[9447],[9174,53860,53861],{"xmlns":9450},[9452,53862,53863,53867],{},[9455,53864,53865],{},[9461,53866,9659],{"mathvariant":9573},[9473,53868,9662],{"encoding":9475},[533,53870,53872],{"className":53871,"ariaHidden":1089},[9480],[533,53873,53875,53878],{"className":53874},[9484],[533,53876],{"className":53877,"style":9672},[9488],[533,53879,9659],{"className":53880},[9493],[533,53882,53884,53897],{"className":53883},[9443],[533,53885,53887],{"className":53886},[9447],[9174,53888,53889],{"xmlns":9450},[9452,53890,53891,53895],{},[9455,53892,53893],{},[9461,53894,9574],{"mathvariant":9573},[9473,53896,38928],{"encoding":9475},[533,53898,53900],{"className":53899,"ariaHidden":1089},[9480],[533,53901,53903,53906],{"className":53902},[9484],[533,53904],{"className":53905,"style":9672},[9488],[533,53907,9574],{"className":53908},[9493],". The transverse component ",[533,53911,53913,53926],{"className":53912},[9443],[533,53914,53916],{"className":53915},[9447],[9174,53917,53918],{"xmlns":9450},[9452,53919,53920,53924],{},[9455,53921,53922],{},[9461,53923,9659],{"mathvariant":9573},[9473,53925,9662],{"encoding":9475},[533,53927,53929],{"className":53928,"ariaHidden":1089},[9480],[533,53930,53932,53935],{"className":53931},[9484],[533,53933],{"className":53934,"style":9672},[9488],[533,53936,9659],{"className":53937},[9493]," drives population transfer. A longitudinal component ",[533,53940,53942,53955],{"className":53941},[9443],[533,53943,53945],{"className":53944},[9447],[9174,53946,53947],{"xmlns":9450},[9452,53948,53949,53953],{},[9455,53950,53951],{},[9461,53952,9574],{"mathvariant":9573},[9473,53954,38928],{"encoding":9475},[533,53956,53958],{"className":53957,"ariaHidden":1089},[9480],[533,53959,53961,53964],{"className":53960},[9484],[533,53962],{"className":53963,"style":9672},[9488],[533,53965,9574],{"className":53966},[9493]," tilts the rotation axis away from the resonant direction.",[25,53969,53971],{"id":53970},"excited-state-probability","Excited-State Probability",[12,53973,53974,53975,54013,54014,37527],{},"The simulation assumes that the qubit begins in the ground state ",[533,53976,53978,53995],{"className":53977},[9443],[533,53979,53981],{"className":53980},[9447],[9174,53982,53983],{"xmlns":9450},[9452,53984,53985,53993],{},[9455,53986,53987,53989,53991],{},[9958,53988,9961],{"stretchy":9960},[9461,53990,49279],{},[9958,53992,10860],{"stretchy":9960},[9473,53994,49284],{"encoding":9475},[533,53996,53998],{"className":53997,"ariaHidden":1089},[9480],[533,53999,54001,54004,54007,54010],{"className":54000},[9484],[533,54002],{"className":54003,"style":9998},[9488],[533,54005,9961],{"className":54006},[10002],[533,54008,49279],{"className":54009,"style":9498},[9493,9497],[533,54011,10860],{"className":54012},[10101],". Evolving under the RWA Hamiltonian, the probability of occupying the excited state after pulse duration ",[533,54015,54017,54030],{"className":54016},[9443],[533,54018,54020],{"className":54019},[9447],[9174,54021,54022],{"xmlns":9450},[9452,54023,54024,54028],{},[9455,54025,54026],{},[9461,54027,49096],{},[9473,54029,49224],{"encoding":9475},[533,54031,54033],{"className":54032,"ariaHidden":1089},[9480],[533,54034,54036,54039],{"className":54035},[9484],[533,54037],{"className":54038,"style":32975},[9488],[533,54040,49096],{"className":54041,"style":49168},[9493,9497],[533,54043,54045],{"className":54044},[29056],[533,54046,54048,54126],{"className":54047},[9443],[533,54049,54051],{"className":54050},[9447],[9174,54052,54053],{"xmlns":9450,"display":29065},[9452,54054,54055,54123],{},[9455,54056,54057,54063,54065,54067,54069,54071,54073,54075,54091,54101,54121],{},[9458,54058,54059,54061],{},[9461,54060,49085],{},[9461,54062,629],{},[9958,54064,615],{"stretchy":9960},[9461,54066,618],{},[9958,54068,2464],{"separator":1089},[9461,54070,49096],{},[9958,54072,2632],{"stretchy":9960},[9958,54074,554],{},[21845,54076,54077,54083],{},[21862,54078,54079,54081],{},[9461,54080,9659],{"mathvariant":9573},[10856,54082,1140],{},[37177,54084,54085,54087,54089],{},[9461,54086,9659],{"mathvariant":9573},[9461,54088,29825],{},[10856,54090,1140],{},[21862,54092,54093,54099],{},[9455,54094,54095,54097],{},[9461,54096,14336],{},[9958,54098,21836],{},[10856,54100,1140],{},[9455,54102,54103,54105,54119],{},[9958,54104,615],{"fence":1089},[21845,54106,54107,54117],{},[9455,54108,54109,54115],{},[9458,54110,54111,54113],{},[9461,54112,9659],{"mathvariant":9573},[9461,54114,29825],{},[9461,54116,49096],{},[10856,54118,1140],{},[9958,54120,2632],{"fence":1089},[9958,54122,2464],{"separator":1089},[9473,54124,54125],{"encoding":9475},"P_e(f,\\tau)=\\frac{\\Omega^2}{\\Omega_R^2}\\sin^2\\left(\\frac{\\Omega_R\\tau}{2}\\right),",[533,54127,54129,54202],{"className":54128,"ariaHidden":1089},[9480],[533,54130,54132,54135,54175,54178,54181,54184,54187,54190,54193,54196,54199],{"className":54131},[9484],[533,54133],{"className":54134,"style":9998},[9488],[533,54136,54138,54141],{"className":54137},[9493],[533,54139,49085],{"className":54140,"style":26405},[9493,9497],[533,54142,54144],{"className":54143},[9502],[533,54145,54147,54167],{"className":54146},[9506,9507],[533,54148,54150,54164],{"className":54149},[9511],[533,54151,54153],{"className":54152,"style":22873},[9515],[533,54154,54155,54158],{"style":31397},[533,54156],{"className":54157,"style":9524},[9523],[533,54159,54161],{"className":54160},[9528,9529,9530,9531],[533,54162,629],{"className":54163},[9493,9497,9531],[533,54165,1090],{"className":54166},[9546],[533,54168,54170],{"className":54169},[9511],[533,54171,54173],{"className":54172,"style":9553},[9515],[533,54174],{},[533,54176,615],{"className":54177},[10002],[533,54179,618],{"className":54180,"style":22860},[9493,9497],[533,54182,2464],{"className":54183},[10344],[533,54185],{"className":54186,"style":10349},[10348],[533,54188,49096],{"className":54189,"style":49168},[9493,9497],[533,54191,2632],{"className":54192},[10101],[533,54194],{"className":54195,"style":21908},[10348],[533,54197,554],{"className":54198},[21912],[533,54200],{"className":54201,"style":21908},[10348],[533,54203,54205,54209,54351,54354,54385,54388,54506,54509],{"className":54204},[9484],[533,54206],{"className":54207,"style":54208},[9488],"height:2.4706em;vertical-align:-0.9795em;",[533,54210,54212,54215,54348],{"className":54211},[9493],[533,54213],{"className":54214},[10002,21997],[533,54216,54218],{"className":54217},[21845],[533,54219,54221,54339],{"className":54220},[9506,9507],[533,54222,54224,54336],{"className":54223},[9511],[533,54225,54228,54291,54299],{"className":54226,"style":54227},[9515],"height:1.4911em;",[533,54229,54230,54233],{"style":31623},[533,54231],{"className":54232,"style":22017},[9523],[533,54234,54236],{"className":54235},[9493],[533,54237,54239,54242],{"className":54238},[9493],[533,54240,9659],{"className":54241},[9493],[533,54243,54245],{"className":54244},[9502],[533,54246,54248,54282],{"className":54247},[9506,9507],[533,54249,54251,54279],{"className":54250},[9511],[533,54252,54255,54267],{"className":54253,"style":54254},[9515],"height:0.7959em;",[533,54256,54258,54261],{"style":54257},"top:-2.4065em;margin-left:0em;margin-right:0.05em;",[533,54259],{"className":54260,"style":9524},[9523],[533,54262,54264],{"className":54263},[9528,9529,9530,9531],[533,54265,29825],{"className":54266,"style":32780},[9493,9497,9531],[533,54268,54270,54273],{"style":54269},"top:-3.0448em;margin-right:0.05em;",[533,54271],{"className":54272,"style":9524},[9523],[533,54274,54276],{"className":54275},[9528,9529,9530,9531],[533,54277,1140],{"className":54278},[9493,9531],[533,54280,1090],{"className":54281},[9546],[533,54283,54285],{"className":54284},[9511],[533,54286,54289],{"className":54287,"style":54288},[9515],"height:0.2935em;",[533,54290],{},[533,54292,54293,54296],{"style":22063},[533,54294],{"className":54295,"style":22017},[9523],[533,54297],{"className":54298,"style":22071},[22070],[533,54300,54301,54304],{"style":31643},[533,54302],{"className":54303,"style":22017},[9523],[533,54305,54307],{"className":54306},[9493],[533,54308,54310,54313],{"className":54309},[9493],[533,54311,9659],{"className":54312},[9493],[533,54314,54316],{"className":54315},[9502],[533,54317,54319],{"className":54318},[9506],[533,54320,54322],{"className":54321},[9511],[533,54323,54325],{"className":54324,"style":29860},[9515],[533,54326,54327,54330],{"style":24194},[533,54328],{"className":54329,"style":9524},[9523],[533,54331,54333],{"className":54332},[9528,9529,9530,9531],[533,54334,1140],{"className":54335},[9493,9531],[533,54337,1090],{"className":54338},[9546],[533,54340,54342],{"className":54341},[9511],[533,54343,54346],{"className":54344,"style":54345},[9515],"height:0.9795em;",[533,54347],{},[533,54349],{"className":54350},[10101,21997],[533,54352],{"className":54353,"style":10349},[10348],[533,54355,54357,54360],{"className":54356},[21970],[533,54358,14336],{"className":54359},[21970],[533,54361,54363],{"className":54362},[9502],[533,54364,54366],{"className":54365},[9506],[533,54367,54369],{"className":54368},[9511],[533,54370,54373],{"className":54371,"style":54372},[9515],"height:0.8719em;",[533,54374,54376,54379],{"style":54375},"top:-3.1208em;margin-right:0.05em;",[533,54377],{"className":54378,"style":9524},[9523],[533,54380,54382],{"className":54381},[9528,9529,9530,9531],[533,54383,1140],{"className":54384},[9493,9531],[533,54386],{"className":54387,"style":10349},[10348],[533,54389,54391,54397,54500],{"className":54390},[21977],[533,54392,54394],{"className":54393,"style":21982},[10002,21981],[533,54395,615],{"className":54396},[21986,9530],[533,54398,54400,54403,54497],{"className":54399},[9493],[533,54401],{"className":54402},[10002,21997],[533,54404,54406],{"className":54405},[21845],[533,54407,54409,54489],{"className":54408},[9506,9507],[533,54410,54412,54486],{"className":54411},[9511],[533,54413,54416,54427,54435],{"className":54414,"style":54415},[9515],"height:1.3603em;",[533,54417,54418,54421],{"style":31623},[533,54419],{"className":54420,"style":22017},[9523],[533,54422,54424],{"className":54423},[9493],[533,54425,1140],{"className":54426},[9493],[533,54428,54429,54432],{"style":22063},[533,54430],{"className":54431,"style":22017},[9523],[533,54433],{"className":54434,"style":22071},[22070],[533,54436,54437,54440],{"style":31643},[533,54438],{"className":54439,"style":22017},[9523],[533,54441,54443,54483],{"className":54442},[9493],[533,54444,54446,54449],{"className":54445},[9493],[533,54447,9659],{"className":54448},[9493],[533,54450,54452],{"className":54451},[9502],[533,54453,54455,54475],{"className":54454},[9506,9507],[533,54456,54458,54472],{"className":54457},[9511],[533,54459,54461],{"className":54460,"style":9516},[9515],[533,54462,54463,54466],{"style":9617},[533,54464],{"className":54465,"style":9524},[9523],[533,54467,54469],{"className":54468},[9528,9529,9530,9531],[533,54470,29825],{"className":54471,"style":32780},[9493,9497,9531],[533,54473,1090],{"className":54474},[9546],[533,54476,54478],{"className":54477},[9511],[533,54479,54481],{"className":54480,"style":9553},[9515],[533,54482],{},[533,54484,49096],{"className":54485,"style":49168},[9493,9497],[533,54487,1090],{"className":54488},[9546],[533,54490,54492],{"className":54491},[9511],[533,54493,54495],{"className":54494,"style":31709},[9515],[533,54496],{},[533,54498],{"className":54499},[10101,21997],[533,54501,54503],{"className":54502,"style":21982},[10101,21981],[533,54504,2632],{"className":54505},[21986,9530],[533,54507],{"className":54508,"style":10349},[10348],[533,54510,2464],{"className":54511},[10344],[12,54513,12857],{},[533,54515,54517],{"className":54516},[29056],[533,54518,54520,54558],{"className":54519},[9443],[533,54521,54523],{"className":54522},[9447],[9174,54524,54525],{"xmlns":9450,"display":29065},[9452,54526,54527,54555],{},[9455,54528,54529,54535,54537],{},[9458,54530,54531,54533],{},[9461,54532,9659],{"mathvariant":9573},[9461,54534,29825],{},[9958,54536,554],{},[30893,54538,54539],{},[9455,54540,54541,54547,54549],{},[21862,54542,54543,54545],{},[9461,54544,9659],{"mathvariant":9573},[10856,54546,1140],{},[9958,54548,6350],{},[21862,54550,54551,54553],{},[9461,54552,9574],{"mathvariant":9573},[10856,54554,1140],{},[9473,54556,54557],{"encoding":9475},"\\Omega_R=\\sqrt{\\Omega^2+\\Delta^2}",[533,54559,54561,54616],{"className":54560,"ariaHidden":1089},[9480],[533,54562,54564,54567,54607,54610,54613],{"className":54563},[9484],[533,54565],{"className":54566,"style":9595},[9488],[533,54568,54570,54573],{"className":54569},[9493],[533,54571,9659],{"className":54572},[9493],[533,54574,54576],{"className":54575},[9502],[533,54577,54579,54599],{"className":54578},[9506,9507],[533,54580,54582,54596],{"className":54581},[9511],[533,54583,54585],{"className":54584,"style":9516},[9515],[533,54586,54587,54590],{"style":9617},[533,54588],{"className":54589,"style":9524},[9523],[533,54591,54593],{"className":54592},[9528,9529,9530,9531],[533,54594,29825],{"className":54595,"style":32780},[9493,9497,9531],[533,54597,1090],{"className":54598},[9546],[533,54600,54602],{"className":54601},[9511],[533,54603,54605],{"className":54604,"style":9553},[9515],[533,54606],{},[533,54608],{"className":54609,"style":21908},[10348],[533,54611,554],{"className":54612},[21912],[533,54614],{"className":54615,"style":21908},[10348],[533,54617,54619,54623],{"className":54618},[9484],[533,54620],{"className":54621,"style":54622},[9488],"height:1.24em;vertical-align:-0.1777em;",[533,54624,54626],{"className":54625},[9493,2262],[533,54627,54629,54737],{"className":54628},[9506,9507],[533,54630,54632,54734],{"className":54631},[9511],[533,54633,54636,54717],{"className":54634,"style":54635},[9515],"height:1.0623em;",[533,54637,54640,54644],{"className":54638,"style":54639},[31076],"top:-3.2em;",[533,54641],{"className":54642,"style":54643},[9523],"height:3.2em;",[533,54645,54648,54679,54682,54685,54688],{"className":54646,"style":54647},[9493],"padding-left:1em;",[533,54649,54651,54654],{"className":54650},[9493],[533,54652,9659],{"className":54653},[9493],[533,54655,54657],{"className":54656},[9502],[533,54658,54660],{"className":54659},[9506],[533,54661,54663],{"className":54662},[9511],[533,54664,54667],{"className":54665,"style":54666},[9515],"height:0.7401em;",[533,54668,54670,54673],{"style":54669},"top:-2.989em;margin-right:0.05em;",[533,54671],{"className":54672,"style":9524},[9523],[533,54674,54676],{"className":54675},[9528,9529,9530,9531],[533,54677,1140],{"className":54678},[9493,9531],[533,54680],{"className":54681,"style":22903},[10348],[533,54683,6350],{"className":54684},[22093],[533,54686],{"className":54687,"style":22903},[10348],[533,54689,54691,54694],{"className":54690},[9493],[533,54692,9574],{"className":54693},[9493],[533,54695,54697],{"className":54696},[9502],[533,54698,54700],{"className":54699},[9506],[533,54701,54703],{"className":54702},[9511],[533,54704,54706],{"className":54705,"style":54666},[9515],[533,54707,54708,54711],{"style":54669},[533,54709],{"className":54710,"style":9524},[9523],[533,54712,54714],{"className":54713},[9528,9529,9530,9531],[533,54715,1140],{"className":54716},[9493,9531],[533,54718,54720,54723],{"style":54719},"top:-3.0223em;",[533,54721],{"className":54722,"style":54643},[9523],[533,54724,54727],{"className":54725,"style":54726},[31097],"min-width:1.02em;height:1.28em;",[31100,54728,54731],{"xmlns":31102,"width":31103,"height":54729,"viewBox":54730,"preserveAspectRatio":31106},"1.28em","0 0 400000 1296",[31108,54732],{"d":54733},"M263,681c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl0 -0\nc4.7,-7.3,11,-11,19,-11\nH40000v40H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM1001 80h400000v40h-400000z",[533,54735,1090],{"className":54736},[9546],[533,54738,54740],{"className":54739},[9511],[533,54741,54744],{"className":54742,"style":54743},[9515],"height:0.1777em;",[533,54745],{},[12,54747,54748],{},"is the generalized Rabi angular frequency. The amplitude coefficient",[533,54750,54752],{"className":54751},[29056],[533,54753,54755,54783],{"className":54754},[9443],[533,54756,54758],{"className":54757},[9447],[9174,54759,54760],{"xmlns":9450,"display":29065},[9452,54761,54762,54780],{},[9455,54763,54764],{},[21845,54765,54766,54772],{},[21862,54767,54768,54770],{},[9461,54769,9659],{"mathvariant":9573},[10856,54771,1140],{},[37177,54773,54774,54776,54778],{},[9461,54775,9659],{"mathvariant":9573},[9461,54777,29825],{},[10856,54779,1140],{},[9473,54781,54782],{"encoding":9475},"\\frac{\\Omega^2}{\\Omega_R^2}",[533,54784,54786],{"className":54785,"ariaHidden":1089},[9480],[533,54787,54789,54792],{"className":54788},[9484],[533,54790],{"className":54791,"style":54208},[9488],[533,54793,54795,54798,54925],{"className":54794},[9493],[533,54796],{"className":54797},[10002,21997],[533,54799,54801],{"className":54800},[21845],[533,54802,54804,54917],{"className":54803},[9506,9507],[533,54805,54807,54914],{"className":54806},[9511],[533,54808,54810,54869,54877],{"className":54809,"style":54227},[9515],[533,54811,54812,54815],{"style":31623},[533,54813],{"className":54814,"style":22017},[9523],[533,54816,54818],{"className":54817},[9493],[533,54819,54821,54824],{"className":54820},[9493],[533,54822,9659],{"className":54823},[9493],[533,54825,54827],{"className":54826},[9502],[533,54828,54830,54861],{"className":54829},[9506,9507],[533,54831,54833,54858],{"className":54832},[9511],[533,54834,54836,54847],{"className":54835,"style":54254},[9515],[533,54837,54838,54841],{"style":54257},[533,54839],{"className":54840,"style":9524},[9523],[533,54842,54844],{"className":54843},[9528,9529,9530,9531],[533,54845,29825],{"className":54846,"style":32780},[9493,9497,9531],[533,54848,54849,54852],{"style":54269},[533,54850],{"className":54851,"style":9524},[9523],[533,54853,54855],{"className":54854},[9528,9529,9530,9531],[533,54856,1140],{"className":54857},[9493,9531],[533,54859,1090],{"className":54860},[9546],[533,54862,54864],{"className":54863},[9511],[533,54865,54867],{"className":54866,"style":54288},[9515],[533,54868],{},[533,54870,54871,54874],{"style":22063},[533,54872],{"className":54873,"style":22017},[9523],[533,54875],{"className":54876,"style":22071},[22070],[533,54878,54879,54882],{"style":31643},[533,54880],{"className":54881,"style":22017},[9523],[533,54883,54885],{"className":54884},[9493],[533,54886,54888,54891],{"className":54887},[9493],[533,54889,9659],{"className":54890},[9493],[533,54892,54894],{"className":54893},[9502],[533,54895,54897],{"className":54896},[9506],[533,54898,54900],{"className":54899},[9511],[533,54901,54903],{"className":54902,"style":29860},[9515],[533,54904,54905,54908],{"style":24194},[533,54906],{"className":54907,"style":9524},[9523],[533,54909,54911],{"className":54910},[9528,9529,9530,9531],[533,54912,1140],{"className":54913},[9493,9531],[533,54915,1090],{"className":54916},[9546],[533,54918,54920],{"className":54919},[9511],[533,54921,54923],{"className":54922,"style":54345},[9515],[533,54924],{},[533,54926],{"className":54927},[10101,21997],[12,54929,54930,54931,54982],{},"sets the maximum possible population transfer. At exact resonance, ",[533,54932,54934,54952],{"className":54933},[9443],[533,54935,54937],{"className":54936},[9447],[9174,54938,54939],{"xmlns":9450},[9452,54940,54941,54949],{},[9455,54942,54943,54945,54947],{},[9461,54944,9574],{"mathvariant":9573},[9958,54946,554],{},[10856,54948,1049],{},[9473,54950,54951],{"encoding":9475},"\\Delta=0",[533,54953,54955,54973],{"className":54954,"ariaHidden":1089},[9480],[533,54956,54958,54961,54964,54967,54970],{"className":54957},[9484],[533,54959],{"className":54960,"style":9672},[9488],[533,54962,9574],{"className":54963},[9493],[533,54965],{"className":54966,"style":21908},[10348],[533,54968,554],{"className":54969},[21912],[533,54971],{"className":54972,"style":21908},[10348],[533,54974,54976,54979],{"className":54975},[9484],[533,54977],{"className":54978,"style":30480},[9488],[533,54980,1049],{"className":54981},[9493],", so",[533,54984,54986],{"className":54985},[29056],[533,54987,54989,55021],{"className":54988},[9443],[533,54990,54992],{"className":54991},[9447],[9174,54993,54994],{"xmlns":9450,"display":29065},[9452,54995,54996,55018],{},[9455,54997,54998,55014,55016],{},[21845,54999,55000,55006],{},[21862,55001,55002,55004],{},[9461,55003,9659],{"mathvariant":9573},[10856,55005,1140],{},[37177,55007,55008,55010,55012],{},[9461,55009,9659],{"mathvariant":9573},[9461,55011,29825],{},[10856,55013,1140],{},[9958,55015,554],{},[10856,55017,51728],{},[9473,55019,55020],{"encoding":9475},"\\frac{\\Omega^2}{\\Omega_R^2}=1.",[533,55022,55024,55175],{"className":55023,"ariaHidden":1089},[9480],[533,55025,55027,55030,55166,55169,55172],{"className":55026},[9484],[533,55028],{"className":55029,"style":54208},[9488],[533,55031,55033,55036,55163],{"className":55032},[9493],[533,55034],{"className":55035},[10002,21997],[533,55037,55039],{"className":55038},[21845],[533,55040,55042,55155],{"className":55041},[9506,9507],[533,55043,55045,55152],{"className":55044},[9511],[533,55046,55048,55107,55115],{"className":55047,"style":54227},[9515],[533,55049,55050,55053],{"style":31623},[533,55051],{"className":55052,"style":22017},[9523],[533,55054,55056],{"className":55055},[9493],[533,55057,55059,55062],{"className":55058},[9493],[533,55060,9659],{"className":55061},[9493],[533,55063,55065],{"className":55064},[9502],[533,55066,55068,55099],{"className":55067},[9506,9507],[533,55069,55071,55096],{"className":55070},[9511],[533,55072,55074,55085],{"className":55073,"style":54254},[9515],[533,55075,55076,55079],{"style":54257},[533,55077],{"className":55078,"style":9524},[9523],[533,55080,55082],{"className":55081},[9528,9529,9530,9531],[533,55083,29825],{"className":55084,"style":32780},[9493,9497,9531],[533,55086,55087,55090],{"style":54269},[533,55088],{"className":55089,"style":9524},[9523],[533,55091,55093],{"className":55092},[9528,9529,9530,9531],[533,55094,1140],{"className":55095},[9493,9531],[533,55097,1090],{"className":55098},[9546],[533,55100,55102],{"className":55101},[9511],[533,55103,55105],{"className":55104,"style":54288},[9515],[533,55106],{},[533,55108,55109,55112],{"style":22063},[533,55110],{"className":55111,"style":22017},[9523],[533,55113],{"className":55114,"style":22071},[22070],[533,55116,55117,55120],{"style":31643},[533,55118],{"className":55119,"style":22017},[9523],[533,55121,55123],{"className":55122},[9493],[533,55124,55126,55129],{"className":55125},[9493],[533,55127,9659],{"className":55128},[9493],[533,55130,55132],{"className":55131},[9502],[533,55133,55135],{"className":55134},[9506],[533,55136,55138],{"className":55137},[9511],[533,55139,55141],{"className":55140,"style":29860},[9515],[533,55142,55143,55146],{"style":24194},[533,55144],{"className":55145,"style":9524},[9523],[533,55147,55149],{"className":55148},[9528,9529,9530,9531],[533,55150,1140],{"className":55151},[9493,9531],[533,55153,1090],{"className":55154},[9546],[533,55156,55158],{"className":55157},[9511],[533,55159,55161],{"className":55160,"style":54345},[9515],[533,55162],{},[533,55164],{"className":55165},[10101,21997],[533,55167],{"className":55168,"style":21908},[10348],[533,55170,554],{"className":55171},[21912],[533,55173],{"className":55174,"style":21908},[10348],[533,55176,55178,55181],{"className":55177},[9484],[533,55179],{"className":55180,"style":30480},[9488],[533,55182,51728],{"className":55183},[9493],[12,55185,55186],{},"Full population inversion is achievable in the ideal resonant model. For any nonzero detuning, the coefficient falls below one, so the state generally cannot reach unit excited-state probability.",[12,55188,55189],{},"At resonance, the excited-state probability simplifies to",[533,55191,55193],{"className":55192},[29056],[533,55194,55196,55250],{"className":55195},[9443],[533,55197,55199],{"className":55198},[9447],[9174,55200,55201],{"xmlns":9450,"display":29065},[9452,55202,55203,55247],{},[9455,55204,55205,55211,55213,55215,55217,55219,55229,55245],{},[9458,55206,55207,55209],{},[9461,55208,49085],{},[9461,55210,629],{},[9958,55212,615],{"stretchy":9960},[9461,55214,49096],{},[9958,55216,2632],{"stretchy":9960},[9958,55218,554],{},[21862,55220,55221,55227],{},[9455,55222,55223,55225],{},[9461,55224,14336],{},[9958,55226,21836],{},[10856,55228,1140],{},[9455,55230,55231,55233,55243],{},[9958,55232,615],{"fence":1089},[21845,55234,55235,55241],{},[9455,55236,55237,55239],{},[9461,55238,9659],{"mathvariant":9573},[9461,55240,49096],{},[10856,55242,1140],{},[9958,55244,2632],{"fence":1089},[9461,55246,114],{"mathvariant":9573},[9473,55248,55249],{"encoding":9475},"P_e(\\tau)=\\sin^2\\left(\\frac{\\Omega\\tau}{2}\\right).",[533,55251,55253,55317],{"className":55252,"ariaHidden":1089},[9480],[533,55254,55256,55259,55299,55302,55305,55308,55311,55314],{"className":55255},[9484],[533,55257],{"className":55258,"style":9998},[9488],[533,55260,55262,55265],{"className":55261},[9493],[533,55263,49085],{"className":55264,"style":26405},[9493,9497],[533,55266,55268],{"className":55267},[9502],[533,55269,55271,55291],{"className":55270},[9506,9507],[533,55272,55274,55288],{"className":55273},[9511],[533,55275,55277],{"className":55276,"style":22873},[9515],[533,55278,55279,55282],{"style":31397},[533,55280],{"className":55281,"style":9524},[9523],[533,55283,55285],{"className":55284},[9528,9529,9530,9531],[533,55286,629],{"className":55287},[9493,9497,9531],[533,55289,1090],{"className":55290},[9546],[533,55292,55294],{"className":55293},[9511],[533,55295,55297],{"className":55296,"style":9553},[9515],[533,55298],{},[533,55300,615],{"className":55301},[10002],[533,55303,49096],{"className":55304,"style":49168},[9493,9497],[533,55306,2632],{"className":55307},[10101],[533,55309],{"className":55310,"style":21908},[10348],[533,55312,554],{"className":55313},[21912],[533,55315],{"className":55316,"style":21908},[10348],[533,55318,55320,55323,55352,55355,55435,55438],{"className":55319},[9484],[533,55321],{"className":55322,"style":29293},[9488],[533,55324,55326,55329],{"className":55325},[21970],[533,55327,14336],{"className":55328},[21970],[533,55330,55332],{"className":55331},[9502],[533,55333,55335],{"className":55334},[9506],[533,55336,55338],{"className":55337},[9511],[533,55339,55341],{"className":55340,"style":54372},[9515],[533,55342,55343,55346],{"style":54375},[533,55344],{"className":55345,"style":9524},[9523],[533,55347,55349],{"className":55348},[9528,9529,9530,9531],[533,55350,1140],{"className":55351},[9493,9531],[533,55353],{"className":55354,"style":10349},[10348],[533,55356,55358,55364,55429],{"className":55357},[21977],[533,55359,55361],{"className":55360,"style":21982},[10002,21981],[533,55362,615],{"className":55363},[21986,9530],[533,55365,55367,55370,55426],{"className":55366},[9493],[533,55368],{"className":55369},[10002,21997],[533,55371,55373],{"className":55372},[21845],[533,55374,55376,55418],{"className":55375},[9506,9507],[533,55377,55379,55415],{"className":55378},[9511],[533,55380,55382,55393,55401],{"className":55381,"style":54415},[9515],[533,55383,55384,55387],{"style":31623},[533,55385],{"className":55386,"style":22017},[9523],[533,55388,55390],{"className":55389},[9493],[533,55391,1140],{"className":55392},[9493],[533,55394,55395,55398],{"style":22063},[533,55396],{"className":55397,"style":22017},[9523],[533,55399],{"className":55400,"style":22071},[22070],[533,55402,55403,55406],{"style":31643},[533,55404],{"className":55405,"style":22017},[9523],[533,55407,55409,55412],{"className":55408},[9493],[533,55410,9659],{"className":55411},[9493],[533,55413,49096],{"className":55414,"style":49168},[9493,9497],[533,55416,1090],{"className":55417},[9546],[533,55419,55421],{"className":55420},[9511],[533,55422,55424],{"className":55423,"style":31709},[9515],[533,55425],{},[533,55427],{"className":55428},[10101,21997],[533,55430,55432],{"className":55431,"style":21982},[10101,21981],[533,55433,2632],{"className":55434},[21986,9530],[533,55436],{"className":55437,"style":10349},[10348],[533,55439,114],{"className":55440},[9493],[12,55442,55443,55444,55472],{},"The pulse duration required for ideal population inversion defines the standard ",[533,55445,55447,55460],{"className":55446},[9443],[533,55448,55450],{"className":55449},[9447],[9174,55451,55452],{"xmlns":9450},[9452,55453,55454,55458],{},[9455,55455,55456],{},[9461,55457,22502],{},[9473,55459,32965],{"encoding":9475},[533,55461,55463],{"className":55462,"ariaHidden":1089},[9480],[533,55464,55466,55469],{"className":55465},[9484],[533,55467],{"className":55468,"style":32975},[9488],[533,55470,22502],{"className":55471,"style":9498},[9493,9497],"-pulse time,",[533,55474,55476],{"className":55475},[29056],[533,55477,55479,55529],{"className":55478},[9443],[533,55480,55482],{"className":55481},[9447],[9174,55483,55484],{"xmlns":9450,"display":29065},[9452,55485,55486,55526],{},[9455,55487,55488,55494,55496,55502,55504,55524],{},[9458,55489,55490,55492],{},[9461,55491,49096],{},[9461,55493,22502],{},[9958,55495,554],{},[21845,55497,55498,55500],{},[9461,55499,22502],{},[9461,55501,9659],{"mathvariant":9573},[9958,55503,554],{},[21845,55505,55506,55508],{},[10856,55507,1052],{},[9455,55509,55510,55512,55514,55516,55518,55520,55522],{},[10856,55511,1140],{},[9958,55513,615],{"stretchy":9960},[9461,55515,9659],{"mathvariant":9573},[9461,55517,2941],{"mathvariant":9573},[10856,55519,1140],{},[9461,55521,22502],{},[9958,55523,2632],{"stretchy":9960},[9461,55525,114],{"mathvariant":9573},[9473,55527,55528],{"encoding":9475},"\\tau_\\pi=\\frac{\\pi}{\\Omega}=\\frac{1}{2(\\Omega\u002F2\\pi)}.",[533,55530,55532,55588,55667],{"className":55531,"ariaHidden":1089},[9480],[533,55533,55535,55538,55579,55582,55585],{"className":55534},[9484],[533,55536],{"className":55537,"style":9489},[9488],[533,55539,55541,55544],{"className":55540},[9493],[533,55542,49096],{"className":55543,"style":49168},[9493,9497],[533,55545,55547],{"className":55546},[9502],[533,55548,55550,55571],{"className":55549},[9506,9507],[533,55551,55553,55568],{"className":55552},[9511],[533,55554,55556],{"className":55555,"style":22873},[9515],[533,55557,55559,55562],{"style":55558},"top:-2.55em;margin-left:-0.1132em;margin-right:0.05em;",[533,55560],{"className":55561,"style":9524},[9523],[533,55563,55565],{"className":55564},[9528,9529,9530,9531],[533,55566,22502],{"className":55567,"style":9498},[9493,9497,9531],[533,55569,1090],{"className":55570},[9546],[533,55572,55574],{"className":55573},[9511],[533,55575,55577],{"className":55576,"style":9553},[9515],[533,55578],{},[533,55580],{"className":55581,"style":21908},[10348],[533,55583,554],{"className":55584},[21912],[533,55586],{"className":55587,"style":21908},[10348],[533,55589,55591,55595,55658,55661,55664],{"className":55590},[9484],[533,55592],{"className":55593,"style":55594},[9488],"height:1.7936em;vertical-align:-0.686em;",[533,55596,55598,55601,55655],{"className":55597},[9493],[533,55599],{"className":55600},[10002,21997],[533,55602,55604],{"className":55603},[21845],[533,55605,55607,55647],{"className":55606},[9506,9507],[533,55608,55610,55644],{"className":55609},[9511],[533,55611,55614,55625,55633],{"className":55612,"style":55613},[9515],"height:1.1076em;",[533,55615,55616,55619],{"style":31623},[533,55617],{"className":55618,"style":22017},[9523],[533,55620,55622],{"className":55621},[9493],[533,55623,9659],{"className":55624},[9493],[533,55626,55627,55630],{"style":22063},[533,55628],{"className":55629,"style":22017},[9523],[533,55631],{"className":55632,"style":22071},[22070],[533,55634,55635,55638],{"style":31643},[533,55636],{"className":55637,"style":22017},[9523],[533,55639,55641],{"className":55640},[9493],[533,55642,22502],{"className":55643,"style":9498},[9493,9497],[533,55645,1090],{"className":55646},[9546],[533,55648,55650],{"className":55649},[9511],[533,55651,55653],{"className":55652,"style":31709},[9515],[533,55654],{},[533,55656],{"className":55657},[10101,21997],[533,55659],{"className":55660,"style":21908},[10348],[533,55662,554],{"className":55663},[21912],[533,55665],{"className":55666,"style":21908},[10348],[533,55668,55670,55674,55750],{"className":55669},[9484],[533,55671],{"className":55672,"style":55673},[9488],"height:2.2574em;vertical-align:-0.936em;",[533,55675,55677,55680,55747],{"className":55676},[9493],[533,55678],{"className":55679},[10002,21997],[533,55681,55683],{"className":55682},[21845],[533,55684,55686,55738],{"className":55685},[9506,9507],[533,55687,55689,55735],{"className":55688},[9511],[533,55690,55693,55716,55724],{"className":55691,"style":55692},[9515],"height:1.3214em;",[533,55694,55695,55698],{"style":31623},[533,55696],{"className":55697,"style":22017},[9523],[533,55699,55701,55704,55707,55710,55713],{"className":55700},[9493],[533,55702,1140],{"className":55703},[9493],[533,55705,615],{"className":55706},[10002],[533,55708,50105],{"className":55709},[9493],[533,55711,22502],{"className":55712,"style":9498},[9493,9497],[533,55714,2632],{"className":55715},[10101],[533,55717,55718,55721],{"style":22063},[533,55719],{"className":55720,"style":22017},[9523],[533,55722],{"className":55723,"style":22071},[22070],[533,55725,55726,55729],{"style":31643},[533,55727],{"className":55728,"style":22017},[9523],[533,55730,55732],{"className":55731},[9493],[533,55733,1052],{"className":55734},[9493],[533,55736,1090],{"className":55737},[9546],[533,55739,55741],{"className":55740},[9511],[533,55742,55745],{"className":55743,"style":55744},[9515],"height:0.936em;",[533,55746],{},[533,55748],{"className":55749},[10101,21997],[533,55751,114],{"className":55752},[9493],[12,55754,55755],{},"Given the default drive strength",[533,55757,55759],{"className":55758},[29056],[533,55760,55762,55801],{"className":55761},[9443],[533,55763,55765],{"className":55764},[9447],[9174,55766,55767],{"xmlns":9450,"display":29065},[9452,55768,55769,55798],{},[9455,55770,55771,55781,55783,55785,55787,55796],{},[21845,55772,55773,55775],{},[9461,55774,9659],{"mathvariant":9573},[9455,55776,55777,55779],{},[10856,55778,1140],{},[9461,55780,22502],{},[9958,55782,554],{},[10856,55784,17468],{},[29972,55786,29974],{},[9455,55788,55789,55792,55794],{},[9461,55790,55791],{"mathvariant":9573},"M",[9461,55793,16132],{"mathvariant":9573},[9461,55795,1632],{"mathvariant":9573},[9958,55797,2464],{"separator":1089},[9473,55799,55800],{"encoding":9475},"\\frac{\\Omega}{2\\pi}=20~\\mathrm{MHz},",[533,55802,55804,55885],{"className":55803,"ariaHidden":1089},[9480],[533,55805,55807,55811,55876,55879,55882],{"className":55806},[9484],[533,55808],{"className":55809,"style":55810},[9488],"height:2.0463em;vertical-align:-0.686em;",[533,55812,55814,55817,55873],{"className":55813},[9493],[533,55815],{"className":55816},[10002,21997],[533,55818,55820],{"className":55819},[21845],[533,55821,55823,55865],{"className":55822},[9506,9507],[533,55824,55826,55862],{"className":55825},[9511],[533,55827,55829,55843,55851],{"className":55828,"style":54415},[9515],[533,55830,55831,55834],{"style":31623},[533,55832],{"className":55833,"style":22017},[9523],[533,55835,55837,55840],{"className":55836},[9493],[533,55838,1140],{"className":55839},[9493],[533,55841,22502],{"className":55842,"style":9498},[9493,9497],[533,55844,55845,55848],{"style":22063},[533,55846],{"className":55847,"style":22017},[9523],[533,55849],{"className":55850,"style":22071},[22070],[533,55852,55853,55856],{"style":31643},[533,55854],{"className":55855,"style":22017},[9523],[533,55857,55859],{"className":55858},[9493],[533,55860,9659],{"className":55861},[9493],[533,55863,1090],{"className":55864},[9546],[533,55866,55868],{"className":55867},[9511],[533,55869,55871],{"className":55870,"style":31709},[9515],[533,55872],{},[533,55874],{"className":55875},[10101,21997],[533,55877],{"className":55878,"style":21908},[10348],[533,55880,554],{"className":55881},[21912],[533,55883],{"className":55884,"style":21908},[10348],[533,55886,55888,55891,55894,55897,55903],{"className":55887},[9484],[533,55889],{"className":55890,"style":35987},[9488],[533,55892,17468],{"className":55893},[9493],[533,55895,29974],{"className":55896},[10348,51276],[533,55898,55900],{"className":55899},[9493],[533,55901,13043],{"className":55902},[9493,30229],[533,55904,2464],{"className":55905},[10344],[12,55907,55908,55909,55937],{},"the ideal ",[533,55910,55912,55925],{"className":55911},[9443],[533,55913,55915],{"className":55914},[9447],[9174,55916,55917],{"xmlns":9450},[9452,55918,55919,55923],{},[9455,55920,55921],{},[9461,55922,22502],{},[9473,55924,32965],{"encoding":9475},[533,55926,55928],{"className":55927,"ariaHidden":1089},[9480],[533,55929,55931,55934],{"className":55930},[9484],[533,55932],{"className":55933,"style":32975},[9488],[533,55935,22502],{"className":55936,"style":9498},[9493,9497],"-pulse time is",[533,55939,55941],{"className":55940},[29056],[533,55942,55944,55977],{"className":55943},[9443],[533,55945,55947],{"className":55946},[9447],[9174,55948,55949],{"xmlns":9450,"display":29065},[9452,55950,55951,55974],{},[9455,55952,55953,55959,55961,55963,55965,55972],{},[9458,55954,55955,55957],{},[9461,55956,49096],{},[9461,55958,22502],{},[9958,55960,554],{},[10856,55962,7565],{},[29972,55964,29974],{},[9455,55966,55967,55969],{},[9461,55968,30647],{"mathvariant":9573},[9461,55970,55971],{"mathvariant":9573},"s",[9461,55973,114],{"mathvariant":9573},[9473,55975,55976],{"encoding":9475},"\\tau_\\pi=25~\\mathrm{ns}.",[533,55978,55980,56035],{"className":55979,"ariaHidden":1089},[9480],[533,55981,55983,55986,56026,56029,56032],{"className":55982},[9484],[533,55984],{"className":55985,"style":9489},[9488],[533,55987,55989,55992],{"className":55988},[9493],[533,55990,49096],{"className":55991,"style":49168},[9493,9497],[533,55993,55995],{"className":55994},[9502],[533,55996,55998,56018],{"className":55997},[9506,9507],[533,55999,56001,56015],{"className":56000},[9511],[533,56002,56004],{"className":56003,"style":22873},[9515],[533,56005,56006,56009],{"style":55558},[533,56007],{"className":56008,"style":9524},[9523],[533,56010,56012],{"className":56011},[9528,9529,9530,9531],[533,56013,22502],{"className":56014,"style":9498},[9493,9497,9531],[533,56016,1090],{"className":56017},[9546],[533,56019,56021],{"className":56020},[9511],[533,56022,56024],{"className":56023,"style":9553},[9515],[533,56025],{},[533,56027],{"className":56028,"style":21908},[10348],[533,56030,554],{"className":56031},[21912],[533,56033],{"className":56034,"style":21908},[10348],[533,56036,56038,56041,56044,56047,56054],{"className":56037},[9484],[533,56039],{"className":56040,"style":30480},[9488],[533,56042,7565],{"className":56043},[9493],[533,56045,29974],{"className":56046},[10348,51276],[533,56048,56050],{"className":56049},[9493],[533,56051,56053],{"className":56052},[9493,30229],"ns",[533,56055,114],{"className":56056},[9493],[12,56058,56059],{},"A full period of the resonant excited-state probability oscillation is",[533,56061,56063],{"className":56062},[29056],[533,56064,56066,56114],{"className":56065},[9443],[533,56067,56069],{"className":56068},[9447],[9174,56070,56071],{"xmlns":9450,"display":29065},[9452,56072,56073,56111],{},[9455,56074,56075,56081,56083,56093,56095,56109],{},[9458,56076,56077,56079],{},[9461,56078,6090],{},[9461,56080,29825],{},[9958,56082,554],{},[21845,56084,56085,56091],{},[9455,56086,56087,56089],{},[10856,56088,1140],{},[9461,56090,22502],{},[9461,56092,9659],{"mathvariant":9573},[9958,56094,554],{},[21845,56096,56097,56099],{},[10856,56098,1052],{},[9455,56100,56101,56103,56105,56107],{},[9461,56102,9659],{"mathvariant":9573},[9461,56104,2941],{"mathvariant":9573},[10856,56106,1140],{},[9461,56108,22502],{},[9461,56110,114],{"mathvariant":9573},[9473,56112,56113],{"encoding":9475},"T_R=\\frac{2\\pi}{\\Omega}=\\frac{1}{\\Omega\u002F2\\pi}.",[533,56115,56117,56172,56253],{"className":56116,"ariaHidden":1089},[9480],[533,56118,56120,56123,56163,56166,56169],{"className":56119},[9484],[533,56121],{"className":56122,"style":9595},[9488],[533,56124,56126,56129],{"className":56125},[9493],[533,56127,6090],{"className":56128,"style":26405},[9493,9497],[533,56130,56132],{"className":56131},[9502],[533,56133,56135,56155],{"className":56134},[9506,9507],[533,56136,56138,56152],{"className":56137},[9511],[533,56139,56141],{"className":56140,"style":9516},[9515],[533,56142,56143,56146],{"style":31397},[533,56144],{"className":56145,"style":9524},[9523],[533,56147,56149],{"className":56148},[9528,9529,9530,9531],[533,56150,29825],{"className":56151,"style":32780},[9493,9497,9531],[533,56153,1090],{"className":56154},[9546],[533,56156,56158],{"className":56157},[9511],[533,56159,56161],{"className":56160,"style":9553},[9515],[533,56162],{},[533,56164],{"className":56165,"style":21908},[10348],[533,56167,554],{"className":56168},[21912],[533,56170],{"className":56171,"style":21908},[10348],[533,56173,56175,56179,56244,56247,56250],{"className":56174},[9484],[533,56176],{"className":56177,"style":56178},[9488],"height:2.0074em;vertical-align:-0.686em;",[533,56180,56182,56185,56241],{"className":56181},[9493],[533,56183],{"className":56184},[10002,21997],[533,56186,56188],{"className":56187},[21845],[533,56189,56191,56233],{"className":56190},[9506,9507],[533,56192,56194,56230],{"className":56193},[9511],[533,56195,56197,56208,56216],{"className":56196,"style":55692},[9515],[533,56198,56199,56202],{"style":31623},[533,56200],{"className":56201,"style":22017},[9523],[533,56203,56205],{"className":56204},[9493],[533,56206,9659],{"className":56207},[9493],[533,56209,56210,56213],{"style":22063},[533,56211],{"className":56212,"style":22017},[9523],[533,56214],{"className":56215,"style":22071},[22070],[533,56217,56218,56221],{"style":31643},[533,56219],{"className":56220,"style":22017},[9523],[533,56222,56224,56227],{"className":56223},[9493],[533,56225,1140],{"className":56226},[9493],[533,56228,22502],{"className":56229,"style":9498},[9493,9497],[533,56231,1090],{"className":56232},[9546],[533,56234,56236],{"className":56235},[9511],[533,56237,56239],{"className":56238,"style":31709},[9515],[533,56240],{},[533,56242],{"className":56243},[10101,21997],[533,56245],{"className":56246,"style":21908},[10348],[533,56248,554],{"className":56249},[21912],[533,56251],{"className":56252,"style":21908},[10348],[533,56254,56256,56259,56324],{"className":56255},[9484],[533,56257],{"className":56258,"style":55673},[9488],[533,56260,56262,56265,56321],{"className":56261},[9493],[533,56263],{"className":56264},[10002,21997],[533,56266,56268],{"className":56267},[21845],[533,56269,56271,56313],{"className":56270},[9506,9507],[533,56272,56274,56310],{"className":56273},[9511],[533,56275,56277,56291,56299],{"className":56276,"style":55692},[9515],[533,56278,56279,56282],{"style":31623},[533,56280],{"className":56281,"style":22017},[9523],[533,56283,56285,56288],{"className":56284},[9493],[533,56286,50105],{"className":56287},[9493],[533,56289,22502],{"className":56290,"style":9498},[9493,9497],[533,56292,56293,56296],{"style":22063},[533,56294],{"className":56295,"style":22017},[9523],[533,56297],{"className":56298,"style":22071},[22070],[533,56300,56301,56304],{"style":31643},[533,56302],{"className":56303,"style":22017},[9523],[533,56305,56307],{"className":56306},[9493],[533,56308,1052],{"className":56309},[9493],[533,56311,1090],{"className":56312},[9546],[533,56314,56316],{"className":56315},[9511],[533,56317,56319],{"className":56318,"style":55744},[9515],[533,56320],{},[533,56322],{"className":56323},[10101,21997],[533,56325,114],{"className":56326},[9493],[12,56328,56329],{},"For the same default drive strength, the full temporal period is",[533,56331,56333],{"className":56332},[29056],[533,56334,56336,56369],{"className":56335},[9443],[533,56337,56339],{"className":56338},[9447],[9174,56340,56341],{"xmlns":9450,"display":29065},[9452,56342,56343,56366],{},[9455,56344,56345,56351,56353,56356,56358,56364],{},[9458,56346,56347,56349],{},[9461,56348,6090],{},[9461,56350,29825],{},[9958,56352,554],{},[10856,56354,56355],{},"50",[29972,56357,29974],{},[9455,56359,56360,56362],{},[9461,56361,30647],{"mathvariant":9573},[9461,56363,55971],{"mathvariant":9573},[9461,56365,114],{"mathvariant":9573},[9473,56367,56368],{"encoding":9475},"T_R=50~\\mathrm{ns}.",[533,56370,56372,56427],{"className":56371,"ariaHidden":1089},[9480],[533,56373,56375,56378,56418,56421,56424],{"className":56374},[9484],[533,56376],{"className":56377,"style":9595},[9488],[533,56379,56381,56384],{"className":56380},[9493],[533,56382,6090],{"className":56383,"style":26405},[9493,9497],[533,56385,56387],{"className":56386},[9502],[533,56388,56390,56410],{"className":56389},[9506,9507],[533,56391,56393,56407],{"className":56392},[9511],[533,56394,56396],{"className":56395,"style":9516},[9515],[533,56397,56398,56401],{"style":31397},[533,56399],{"className":56400,"style":9524},[9523],[533,56402,56404],{"className":56403},[9528,9529,9530,9531],[533,56405,29825],{"className":56406,"style":32780},[9493,9497,9531],[533,56408,1090],{"className":56409},[9546],[533,56411,56413],{"className":56412},[9511],[533,56414,56416],{"className":56415,"style":9553},[9515],[533,56417],{},[533,56419],{"className":56420,"style":21908},[10348],[533,56422,554],{"className":56423},[21912],[533,56425],{"className":56426,"style":21908},[10348],[533,56428,56430,56433,56436,56439,56445],{"className":56429},[9484],[533,56431],{"className":56432,"style":30480},[9488],[533,56434,56355],{"className":56435},[9493],[533,56437,29974],{"className":56438},[10348,51276],[533,56440,56442],{"className":56441},[9493],[533,56443,56053],{"className":56444},[9493,30229],[533,56446,114],{"className":56447},[9493],[25,56449,56451],{"id":56450},"phenomenological-dephasing","Phenomenological Dephasing",[12,56453,56454],{},"The computational model includes an optional phenomenological damping factor,",[533,56456,56458],{"className":56457},[29056],[533,56459,56461,56533],{"className":56460},[9443],[533,56462,56464],{"className":56463},[9447],[9174,56465,56466],{"xmlns":9450,"display":29065},[9452,56467,56468,56530],{},[9455,56469,56470,56476,56478,56480,56482,56484,56486,56488,56494,56496,56498,56500,56502,56504,56506,56508,56528],{},[9458,56471,56472,56474],{},[9461,56473,49085],{},[9461,56475,629],{},[9958,56477,615],{"stretchy":9960},[9461,56479,618],{},[9958,56481,2464],{"separator":1089},[9461,56483,49096],{},[9958,56485,2632],{"stretchy":9960},[9958,56487,24063],{},[9458,56489,56490,56492],{},[9461,56491,49085],{},[9461,56493,629],{},[9958,56495,615],{"stretchy":9960},[9461,56497,618],{},[9958,56499,2464],{"separator":1089},[9461,56501,49096],{},[9958,56503,2632],{"stretchy":9960},[9461,56505,16247],{},[9958,56507,21836],{},[9455,56509,56510,56512,56514,56526],{},[9958,56511,615],{"fence":1089},[9958,56513,21843],{},[21845,56515,56516,56518],{},[9461,56517,49096],{},[37177,56519,56520,56522,56524],{},[9461,56521,6090],{},[10856,56523,1140],{},[9958,56525,50623],{},[9958,56527,2632],{"fence":1089},[9461,56529,114],{"mathvariant":9573},[9473,56531,56532],{"encoding":9475},"P_e(f,\\tau)\\rightarrow P_e(f,\\tau)\\exp\\left(-\\frac{\\tau}{T_2^\\ast}\\right).",[533,56534,56536,56609],{"className":56535,"ariaHidden":1089},[9480],[533,56537,56539,56542,56582,56585,56588,56591,56594,56597,56600,56603,56606],{"className":56538},[9484],[533,56540],{"className":56541,"style":9998},[9488],[533,56543,56545,56548],{"className":56544},[9493],[533,56546,49085],{"className":56547,"style":26405},[9493,9497],[533,56549,56551],{"className":56550},[9502],[533,56552,56554,56574],{"className":56553},[9506,9507],[533,56555,56557,56571],{"className":56556},[9511],[533,56558,56560],{"className":56559,"style":22873},[9515],[533,56561,56562,56565],{"style":31397},[533,56563],{"className":56564,"style":9524},[9523],[533,56566,56568],{"className":56567},[9528,9529,9530,9531],[533,56569,629],{"className":56570},[9493,9497,9531],[533,56572,1090],{"className":56573},[9546],[533,56575,56577],{"className":56576},[9511],[533,56578,56580],{"className":56579,"style":9553},[9515],[533,56581],{},[533,56583,615],{"className":56584},[10002],[533,56586,618],{"className":56587,"style":22860},[9493,9497],[533,56589,2464],{"className":56590},[10344],[533,56592],{"className":56593,"style":10349},[10348],[533,56595,49096],{"className":56596,"style":49168},[9493,9497],[533,56598,2632],{"className":56599},[10101],[533,56601],{"className":56602,"style":21908},[10348],[533,56604,24063],{"className":56605},[21912],[533,56607],{"className":56608,"style":21908},[10348],[533,56610,56612,56616,56656,56659,56662,56665,56668,56671,56674,56677,56680,56683,56815,56818],{"className":56611},[9484],[533,56613],{"className":56614,"style":56615},[9488],"height:2.4023em;vertical-align:-0.9523em;",[533,56617,56619,56622],{"className":56618},[9493],[533,56620,49085],{"className":56621,"style":26405},[9493,9497],[533,56623,56625],{"className":56624},[9502],[533,56626,56628,56648],{"className":56627},[9506,9507],[533,56629,56631,56645],{"className":56630},[9511],[533,56632,56634],{"className":56633,"style":22873},[9515],[533,56635,56636,56639],{"style":31397},[533,56637],{"className":56638,"style":9524},[9523],[533,56640,56642],{"className":56641},[9528,9529,9530,9531],[533,56643,629],{"className":56644},[9493,9497,9531],[533,56646,1090],{"className":56647},[9546],[533,56649,56651],{"className":56650},[9511],[533,56652,56654],{"className":56653,"style":9553},[9515],[533,56655],{},[533,56657,615],{"className":56658},[10002],[533,56660,618],{"className":56661,"style":22860},[9493,9497],[533,56663,2464],{"className":56664},[10344],[533,56666],{"className":56667,"style":10349},[10348],[533,56669,49096],{"className":56670,"style":49168},[9493,9497],[533,56672,2632],{"className":56673},[10101],[533,56675],{"className":56676,"style":10349},[10348],[533,56678,16247],{"className":56679},[21970],[533,56681],{"className":56682,"style":10349},[10348],[533,56684,56686,56692,56695,56809],{"className":56685},[21977],[533,56687,56689],{"className":56688,"style":21982},[10002,21981],[533,56690,615],{"className":56691},[21986,9530],[533,56693,21843],{"className":56694},[9493],[533,56696,56698,56701,56806],{"className":56697},[9493],[533,56699],{"className":56700},[10002,21997],[533,56702,56704],{"className":56703},[21845],[533,56705,56707,56797],{"className":56706},[9506,9507],[533,56708,56710,56794],{"className":56709},[9511],[533,56711,56713,56775,56783],{"className":56712,"style":55613},[9515],[533,56714,56715,56718],{"style":31623},[533,56716],{"className":56717,"style":22017},[9523],[533,56719,56721],{"className":56720},[9493],[533,56722,56724,56727],{"className":56723},[9493],[533,56725,6090],{"className":56726,"style":26405},[9493,9497],[533,56728,56730],{"className":56729},[9502],[533,56731,56733,56766],{"className":56732},[9506,9507],[533,56734,56736,56763],{"className":56735},[9511],[533,56737,56740,56752],{"className":56738,"style":56739},[9515],"height:0.6705em;",[533,56741,56743,56746],{"style":56742},"top:-2.4337em;margin-left:-0.1389em;margin-right:0.05em;",[533,56744],{"className":56745,"style":9524},[9523],[533,56747,56749],{"className":56748},[9528,9529,9530,9531],[533,56750,1140],{"className":56751},[9493,9531],[533,56753,56754,56757],{"style":54269},[533,56755],{"className":56756,"style":9524},[9523],[533,56758,56760],{"className":56759},[9528,9529,9530,9531],[533,56761,50623],{"className":56762},[22093,9531],[533,56764,1090],{"className":56765},[9546],[533,56767,56769],{"className":56768},[9511],[533,56770,56773],{"className":56771,"style":56772},[9515],"height:0.2663em;",[533,56774],{},[533,56776,56777,56780],{"style":22063},[533,56778],{"className":56779,"style":22017},[9523],[533,56781],{"className":56782,"style":22071},[22070],[533,56784,56785,56788],{"style":31643},[533,56786],{"className":56787,"style":22017},[9523],[533,56789,56791],{"className":56790},[9493],[533,56792,49096],{"className":56793,"style":49168},[9493,9497],[533,56795,1090],{"className":56796},[9546],[533,56798,56800],{"className":56799},[9511],[533,56801,56804],{"className":56802,"style":56803},[9515],"height:0.9523em;",[533,56805],{},[533,56807],{"className":56808},[10101,21997],[533,56810,56812],{"className":56811,"style":21982},[10101,21981],[533,56813,2632],{"className":56814},[21986,9530],[533,56816],{"className":56817,"style":10349},[10348],[533,56819,114],{"className":56820},[9493],[12,56822,56823],{},"This exponential envelope attenuates the plotted Rabi fringes as pulse duration increases. The factor is a compact visualization device for contrast decay. A rigorous open-quantum-system treatment would require a density matrix model with relaxation channels, dephasing channels, finite temperature effects, shaped pulse envelopes, and stochastic dynamics. The default dephasing parameter is",[533,56825,56827],{"className":56826},[29056],[533,56828,56830,56865],{"className":56829},[9443],[533,56831,56833],{"className":56832},[9447],[9174,56834,56835],{"xmlns":9450,"display":29065},[9452,56836,56837,56862],{},[9455,56838,56839,56847,56849,56852,56854,56860],{},[37177,56840,56841,56843,56845],{},[9461,56842,6090],{},[10856,56844,1140],{},[9958,56846,50623],{},[9958,56848,554],{},[10856,56850,56851],{},"500",[29972,56853,29974],{},[9455,56855,56856,56858],{},[9461,56857,30647],{"mathvariant":9573},[9461,56859,55971],{"mathvariant":9573},[9461,56861,114],{"mathvariant":9573},[9473,56863,56864],{"encoding":9475},"T_2^\\ast=500~\\mathrm{ns}.",[533,56866,56868,56937],{"className":56867,"ariaHidden":1089},[9480],[533,56869,56871,56875,56928,56931,56934],{"className":56870},[9484],[533,56872],{"className":56873,"style":56874},[9488],"height:0.9857em;vertical-align:-0.247em;",[533,56876,56878,56881],{"className":56877},[9493],[533,56879,6090],{"className":56880,"style":26405},[9493,9497],[533,56882,56884],{"className":56883},[9502],[533,56885,56887,56920],{"className":56886},[9506,9507],[533,56888,56890,56917],{"className":56889},[9511],[533,56891,56894,56906],{"className":56892,"style":56893},[9515],"height:0.7387em;",[533,56895,56897,56900],{"style":56896},"top:-2.453em;margin-left:-0.1389em;margin-right:0.05em;",[533,56898],{"className":56899,"style":9524},[9523],[533,56901,56903],{"className":56902},[9528,9529,9530,9531],[533,56904,1140],{"className":56905},[9493,9531],[533,56907,56908,56911],{"style":32796},[533,56909],{"className":56910,"style":9524},[9523],[533,56912,56914],{"className":56913},[9528,9529,9530,9531],[533,56915,50623],{"className":56916},[22093,9531],[533,56918,1090],{"className":56919},[9546],[533,56921,56923],{"className":56922},[9511],[533,56924,56926],{"className":56925,"style":37516},[9515],[533,56927],{},[533,56929],{"className":56930,"style":21908},[10348],[533,56932,554],{"className":56933},[21912],[533,56935],{"className":56936,"style":21908},[10348],[533,56938,56940,56943,56946,56949,56955],{"className":56939},[9484],[533,56941],{"className":56942,"style":30480},[9488],[533,56944,56851],{"className":56945},[9493],[533,56947,29974],{"className":56948},[10348,51276],[533,56950,56952],{"className":56951},[9493],[533,56953,56053],{"className":56954},[9493,30229],[533,56956,114],{"className":56957},[9493],[12,56959,56960,56961,56964],{},"Setting ",[57,56962,56963],{},"T2STAR_NS = None"," disables the phenomenological damping factor.",[25,56966,56968],{"id":56967},"detuning-and-generalized-rabi-frequency","Detuning and Generalized Rabi Frequency",[12,56970,56971],{},"Detuning quantifies the spectral mismatch between the applied drive and the natural qubit transition,",[533,56973,56975],{"className":56974},[29056],[533,56976,56978,57014],{"className":56977},[9443],[533,56979,56981],{"className":56980},[9447],[9174,56982,56983],{"xmlns":9450,"display":29065},[9452,56984,56985,57011],{},[9455,56986,56987,56989,56991,56993,56995,56997,56999,57001,57007,57009],{},[9461,56988,9574],{"mathvariant":9573},[9958,56990,554],{},[10856,56992,1140],{},[9461,56994,22502],{},[9958,56996,615],{"stretchy":9960},[9461,56998,618],{},[9958,57000,21843],{},[9458,57002,57003,57005],{},[9461,57004,618],{},[10856,57006,1049],{},[9958,57008,2632],{"stretchy":9960},[9461,57010,114],{"mathvariant":9573},[9473,57012,57013],{"encoding":9475},"\\Delta=2\\pi(f-f_0).",[533,57015,57017,57035,57062],{"className":57016,"ariaHidden":1089},[9480],[533,57018,57020,57023,57026,57029,57032],{"className":57019},[9484],[533,57021],{"className":57022,"style":9672},[9488],[533,57024,9574],{"className":57025},[9493],[533,57027],{"className":57028,"style":21908},[10348],[533,57030,554],{"className":57031},[21912],[533,57033],{"className":57034,"style":21908},[10348],[533,57036,57038,57041,57044,57047,57050,57053,57056,57059],{"className":57037},[9484],[533,57039],{"className":57040,"style":9998},[9488],[533,57042,1140],{"className":57043},[9493],[533,57045,22502],{"className":57046,"style":9498},[9493,9497],[533,57048,615],{"className":57049},[10002],[533,57051,618],{"className":57052,"style":22860},[9493,9497],[533,57054],{"className":57055,"style":22903},[10348],[533,57057,21843],{"className":57058},[22093],[533,57060],{"className":57061,"style":22903},[10348],[533,57063,57065,57068,57108,57111],{"className":57064},[9484],[533,57066],{"className":57067,"style":9998},[9488],[533,57069,57071,57074],{"className":57070},[9493],[533,57072,618],{"className":57073,"style":22860},[9493,9497],[533,57075,57077],{"className":57076},[9502],[533,57078,57080,57100],{"className":57079},[9506,9507],[533,57081,57083,57097],{"className":57082},[9511],[533,57084,57086],{"className":57085,"style":21941},[9515],[533,57087,57088,57091],{"style":22876},[533,57089],{"className":57090,"style":9524},[9523],[533,57092,57094],{"className":57093},[9528,9529,9530,9531],[533,57095,1049],{"className":57096},[9493,9531],[533,57098,1090],{"className":57099},[9546],[533,57101,57103],{"className":57102},[9511],[533,57104,57106],{"className":57105,"style":9553},[9515],[533,57107],{},[533,57109,2632],{"className":57110},[10101],[533,57112,114],{"className":57113},[9493],[12,57115,57116],{},"Expressed in ordinary frequency units, the generalized Rabi frequency is",[533,57118,57120],{"className":57119},[29056],[533,57121,57123,57211],{"className":57122},[9443],[533,57124,57126],{"className":57125},[9447],[9174,57127,57128],{"xmlns":9450,"display":29065},[9452,57129,57130,57208],{},[9455,57131,57132,57138,57140,57142,57144,57146,57160,57162,57206],{},[9458,57133,57134,57136],{},[9461,57135,50359],{},[9461,57137,29825],{},[9958,57139,615],{"stretchy":9960},[9461,57141,618],{},[9958,57143,2632],{"stretchy":9960},[9958,57145,554],{},[21845,57147,57148,57154],{},[9458,57149,57150,57152],{},[9461,57151,9659],{"mathvariant":9573},[9461,57153,29825],{},[9455,57155,57156,57158],{},[10856,57157,1140],{},[9461,57159,22502],{},[9958,57161,554],{},[30893,57163,57164],{},[9455,57165,57166,57186,57188,57190,57192,57194,57200],{},[21862,57167,57168,57184],{},[9455,57169,57170,57172,57182],{},[9958,57171,615],{"fence":1089},[21845,57173,57174,57176],{},[9461,57175,9659],{"mathvariant":9573},[9455,57177,57178,57180],{},[10856,57179,1140],{},[9461,57181,22502],{},[9958,57183,2632],{"fence":1089},[10856,57185,1140],{},[9958,57187,6350],{},[9958,57189,615],{"stretchy":9960},[9461,57191,618],{},[9958,57193,21843],{},[9458,57195,57196,57198],{},[9461,57197,618],{},[10856,57199,1049],{},[21862,57201,57202,57204],{},[9958,57203,2632],{"stretchy":9960},[10856,57205,1140],{},[9461,57207,114],{"mathvariant":9573},[9473,57209,57210],{"encoding":9475},"\\nu_R(f)=\\frac{\\Omega_R}{2\\pi}=\\sqrt{\\left(\\frac{\\Omega}{2\\pi}\\right)^2+(f-f_0)^2}.",[533,57212,57214,57278,57395],{"className":57213,"ariaHidden":1089},[9480],[533,57215,57217,57220,57260,57263,57266,57269,57272,57275],{"className":57216},[9484],[533,57218],{"className":57219,"style":9998},[9488],[533,57221,57223,57226],{"className":57222},[9493],[533,57224,50359],{"className":57225,"style":50380},[9493,9497],[533,57227,57229],{"className":57228},[9502],[533,57230,57232,57252],{"className":57231},[9506,9507],[533,57233,57235,57249],{"className":57234},[9511],[533,57236,57238],{"className":57237,"style":9516},[9515],[533,57239,57240,57243],{"style":50395},[533,57241],{"className":57242,"style":9524},[9523],[533,57244,57246],{"className":57245},[9528,9529,9530,9531],[533,57247,29825],{"className":57248,"style":32780},[9493,9497,9531],[533,57250,1090],{"className":57251},[9546],[533,57253,57255],{"className":57254},[9511],[533,57256,57258],{"className":57257,"style":9553},[9515],[533,57259],{},[533,57261,615],{"className":57262},[10002],[533,57264,618],{"className":57265,"style":22860},[9493,9497],[533,57267,2632],{"className":57268},[10101],[533,57270],{"className":57271,"style":21908},[10348],[533,57273,554],{"className":57274},[21912],[533,57276],{"className":57277,"style":21908},[10348],[533,57279,57281,57284,57386,57389,57392],{"className":57280},[9484],[533,57282],{"className":57283,"style":55810},[9488],[533,57285,57287,57290,57383],{"className":57286},[9493],[533,57288],{"className":57289},[10002,21997],[533,57291,57293],{"className":57292},[21845],[533,57294,57296,57375],{"className":57295},[9506,9507],[533,57297,57299,57372],{"className":57298},[9511],[533,57300,57302,57316,57324],{"className":57301,"style":54415},[9515],[533,57303,57304,57307],{"style":31623},[533,57305],{"className":57306,"style":22017},[9523],[533,57308,57310,57313],{"className":57309},[9493],[533,57311,1140],{"className":57312},[9493],[533,57314,22502],{"className":57315,"style":9498},[9493,9497],[533,57317,57318,57321],{"style":22063},[533,57319],{"className":57320,"style":22017},[9523],[533,57322],{"className":57323,"style":22071},[22070],[533,57325,57326,57329],{"style":31643},[533,57327],{"className":57328,"style":22017},[9523],[533,57330,57332],{"className":57331},[9493],[533,57333,57335,57338],{"className":57334},[9493],[533,57336,9659],{"className":57337},[9493],[533,57339,57341],{"className":57340},[9502],[533,57342,57344,57364],{"className":57343},[9506,9507],[533,57345,57347,57361],{"className":57346},[9511],[533,57348,57350],{"className":57349,"style":9516},[9515],[533,57351,57352,57355],{"style":9617},[533,57353],{"className":57354,"style":9524},[9523],[533,57356,57358],{"className":57357},[9528,9529,9530,9531],[533,57359,29825],{"className":57360,"style":32780},[9493,9497,9531],[533,57362,1090],{"className":57363},[9546],[533,57365,57367],{"className":57366},[9511],[533,57368,57370],{"className":57369,"style":9553},[9515],[533,57371],{},[533,57373,1090],{"className":57374},[9546],[533,57376,57378],{"className":57377},[9511],[533,57379,57381],{"className":57380,"style":31709},[9515],[533,57382],{},[533,57384],{"className":57385},[10101,21997],[533,57387],{"className":57388,"style":21908},[10348],[533,57390,554],{"className":57391},[21912],[533,57393],{"className":57394,"style":21908},[10348],[533,57396,57398,57402,57656],{"className":57397},[9484],[533,57399],{"className":57400,"style":57401},[9488],"height:3.04em;vertical-align:-1.0541em;",[533,57403,57405],{"className":57404},[9493,2262],[533,57406,57408,57647],{"className":57407},[9506,9507],[533,57409,57411,57644],{"className":57410},[9511],[533,57412,57415,57627],{"className":57413,"style":57414},[9515],"height:1.9859em;",[533,57416,57419,57423],{"className":57417,"style":57418},[31076],"top:-5em;",[533,57420],{"className":57421,"style":57422},[9523],"height:5em;",[533,57424,57426,57534,57537,57540,57543,57546,57549,57552,57555,57558,57598],{"className":57425,"style":54647},[9493],[533,57427,57429,57509],{"className":57428},[21977],[533,57430,57432,57438,57503],{"className":57431},[21977],[533,57433,57435],{"className":57434,"style":21982},[10002,21981],[533,57436,615],{"className":57437},[21986,9530],[533,57439,57441,57444,57500],{"className":57440},[9493],[533,57442],{"className":57443},[10002,21997],[533,57445,57447],{"className":57446},[21845],[533,57448,57450,57492],{"className":57449},[9506,9507],[533,57451,57453,57489],{"className":57452},[9511],[533,57454,57456,57470,57478],{"className":57455,"style":54415},[9515],[533,57457,57458,57461],{"style":31623},[533,57459],{"className":57460,"style":22017},[9523],[533,57462,57464,57467],{"className":57463},[9493],[533,57465,1140],{"className":57466},[9493],[533,57468,22502],{"className":57469,"style":9498},[9493,9497],[533,57471,57472,57475],{"style":22063},[533,57473],{"className":57474,"style":22017},[9523],[533,57476],{"className":57477,"style":22071},[22070],[533,57479,57480,57483],{"style":31643},[533,57481],{"className":57482,"style":22017},[9523],[533,57484,57486],{"className":57485},[9493],[533,57487,9659],{"className":57488},[9493],[533,57490,1090],{"className":57491},[9546],[533,57493,57495],{"className":57494},[9511],[533,57496,57498],{"className":57497,"style":31709},[9515],[533,57499],{},[533,57501],{"className":57502},[10101,21997],[533,57504,57506],{"className":57505,"style":21982},[10101,21981],[533,57507,2632],{"className":57508},[21986,9530],[533,57510,57512],{"className":57511},[9502],[533,57513,57515],{"className":57514},[9506],[533,57516,57518],{"className":57517},[9511],[533,57519,57522],{"className":57520,"style":57521},[9515],"height:1.654em;",[533,57523,57525,57528],{"style":57524},"top:-3.9029em;margin-right:0.05em;",[533,57526],{"className":57527,"style":9524},[9523],[533,57529,57531],{"className":57530},[9528,9529,9530,9531],[533,57532,1140],{"className":57533},[9493,9531],[533,57535],{"className":57536,"style":22903},[10348],[533,57538,6350],{"className":57539},[22093],[533,57541],{"className":57542,"style":22903},[10348],[533,57544,615],{"className":57545},[10002],[533,57547,618],{"className":57548,"style":22860},[9493,9497],[533,57550],{"className":57551,"style":22903},[10348],[533,57553,21843],{"className":57554},[22093],[533,57556],{"className":57557,"style":22903},[10348],[533,57559,57561,57564],{"className":57560},[9493],[533,57562,618],{"className":57563,"style":22860},[9493,9497],[533,57565,57567],{"className":57566},[9502],[533,57568,57570,57590],{"className":57569},[9506,9507],[533,57571,57573,57587],{"className":57572},[9511],[533,57574,57576],{"className":57575,"style":21941},[9515],[533,57577,57578,57581],{"style":22876},[533,57579],{"className":57580,"style":9524},[9523],[533,57582,57584],{"className":57583},[9528,9529,9530,9531],[533,57585,1049],{"className":57586},[9493,9531],[533,57588,1090],{"className":57589},[9546],[533,57591,57593],{"className":57592},[9511],[533,57594,57596],{"className":57595,"style":9553},[9515],[533,57597],{},[533,57599,57601,57604],{"className":57600},[10101],[533,57602,2632],{"className":57603},[10101],[533,57605,57607],{"className":57606},[9502],[533,57608,57610],{"className":57609},[9506],[533,57611,57613],{"className":57612},[9511],[533,57614,57616],{"className":57615,"style":54666},[9515],[533,57617,57618,57621],{"style":54669},[533,57619],{"className":57620,"style":9524},[9523],[533,57622,57624],{"className":57623},[9528,9529,9530,9531],[533,57625,1140],{"className":57626},[9493,9531],[533,57628,57630,57633],{"style":57629},"top:-3.9459em;",[533,57631],{"className":57632,"style":57422},[9523],[533,57634,57637],{"className":57635,"style":57636},[31097],"min-width:1.02em;height:3.08em;",[31100,57638,57641],{"xmlns":31102,"width":31103,"height":57639,"viewBox":57640,"preserveAspectRatio":31106},"3.08em","0 0 400000 3240",[31108,57642],{"d":57643},"M473,2793\nc339.3,-1799.3,509.3,-2700,510,-2702 l0 -0\nc3.3,-7.3,9.3,-11,18,-11 H400000v40H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM1001 80h400000v40H1017.7z",[533,57645,1090],{"className":57646},[9546],[533,57648,57650],{"className":57649},[9511],[533,57651,57654],{"className":57652,"style":57653},[9515],"height:1.0541em;",[533,57655],{},[533,57657,114],{"className":57658},[9493],[12,57660,57661],{},"This expression explains the ridge visible in the Fourier-domain heatmap. At resonance, the generalized frequency equals the applied drive strength,",[533,57663,57665],{"className":57664},[29056],[533,57666,57668,57710],{"className":57667},[9443],[533,57669,57671],{"className":57670},[9447],[9174,57672,57673],{"xmlns":9450,"display":29065},[9452,57674,57675,57707],{},[9455,57676,57677,57683,57685,57691,57693,57695,57705],{},[9458,57678,57679,57681],{},[9461,57680,50359],{},[9461,57682,29825],{},[9958,57684,615],{"stretchy":9960},[9458,57686,57687,57689],{},[9461,57688,618],{},[10856,57690,1049],{},[9958,57692,2632],{"stretchy":9960},[9958,57694,554],{},[21845,57696,57697,57699],{},[9461,57698,9659],{"mathvariant":9573},[9455,57700,57701,57703],{},[10856,57702,1140],{},[9461,57704,22502],{},[9461,57706,114],{"mathvariant":9573},[9473,57708,57709],{"encoding":9475},"\\nu_R(f_0)=\\frac{\\Omega}{2\\pi}.",[533,57711,57713,57814],{"className":57712,"ariaHidden":1089},[9480],[533,57714,57716,57719,57759,57762,57802,57805,57808,57811],{"className":57715},[9484],[533,57717],{"className":57718,"style":9998},[9488],[533,57720,57722,57725],{"className":57721},[9493],[533,57723,50359],{"className":57724,"style":50380},[9493,9497],[533,57726,57728],{"className":57727},[9502],[533,57729,57731,57751],{"className":57730},[9506,9507],[533,57732,57734,57748],{"className":57733},[9511],[533,57735,57737],{"className":57736,"style":9516},[9515],[533,57738,57739,57742],{"style":50395},[533,57740],{"className":57741,"style":9524},[9523],[533,57743,57745],{"className":57744},[9528,9529,9530,9531],[533,57746,29825],{"className":57747,"style":32780},[9493,9497,9531],[533,57749,1090],{"className":57750},[9546],[533,57752,57754],{"className":57753},[9511],[533,57755,57757],{"className":57756,"style":9553},[9515],[533,57758],{},[533,57760,615],{"className":57761},[10002],[533,57763,57765,57768],{"className":57764},[9493],[533,57766,618],{"className":57767,"style":22860},[9493,9497],[533,57769,57771],{"className":57770},[9502],[533,57772,57774,57794],{"className":57773},[9506,9507],[533,57775,57777,57791],{"className":57776},[9511],[533,57778,57780],{"className":57779,"style":21941},[9515],[533,57781,57782,57785],{"style":22876},[533,57783],{"className":57784,"style":9524},[9523],[533,57786,57788],{"className":57787},[9528,9529,9530,9531],[533,57789,1049],{"className":57790},[9493,9531],[533,57792,1090],{"className":57793},[9546],[533,57795,57797],{"className":57796},[9511],[533,57798,57800],{"className":57799,"style":9553},[9515],[533,57801],{},[533,57803,2632],{"className":57804},[10101],[533,57806],{"className":57807,"style":21908},[10348],[533,57809,554],{"className":57810},[21912],[533,57812],{"className":57813,"style":21908},[10348],[533,57815,57817,57820,57885],{"className":57816},[9484],[533,57818],{"className":57819,"style":55810},[9488],[533,57821,57823,57826,57882],{"className":57822},[9493],[533,57824],{"className":57825},[10002,21997],[533,57827,57829],{"className":57828},[21845],[533,57830,57832,57874],{"className":57831},[9506,9507],[533,57833,57835,57871],{"className":57834},[9511],[533,57836,57838,57852,57860],{"className":57837,"style":54415},[9515],[533,57839,57840,57843],{"style":31623},[533,57841],{"className":57842,"style":22017},[9523],[533,57844,57846,57849],{"className":57845},[9493],[533,57847,1140],{"className":57848},[9493],[533,57850,22502],{"className":57851,"style":9498},[9493,9497],[533,57853,57854,57857],{"style":22063},[533,57855],{"className":57856,"style":22017},[9523],[533,57858],{"className":57859,"style":22071},[22070],[533,57861,57862,57865],{"style":31643},[533,57863],{"className":57864,"style":22017},[9523],[533,57866,57868],{"className":57867},[9493],[533,57869,9659],{"className":57870},[9493],[533,57872,1090],{"className":57873},[9546],[533,57875,57877],{"className":57876},[9511],[533,57878,57880],{"className":57879,"style":31709},[9515],[533,57881],{},[533,57883],{"className":57884},[10101,21997],[533,57886,114],{"className":57887},[9493],[12,57889,57890,57891,57960,57961,58063],{},"As the system moves away from resonance, ",[533,57892,57894,57911],{"className":57893},[9443],[533,57895,57897],{"className":57896},[9447],[9174,57898,57899],{"xmlns":9450},[9452,57900,57901,57909],{},[9455,57902,57903],{},[9458,57904,57905,57907],{},[9461,57906,50359],{},[9461,57908,29825],{},[9473,57910,50364],{"encoding":9475},[533,57912,57914],{"className":57913,"ariaHidden":1089},[9480],[533,57915,57917,57920],{"className":57916},[9484],[533,57918],{"className":57919,"style":9489},[9488],[533,57921,57923,57926],{"className":57922},[9493],[533,57924,50359],{"className":57925,"style":50380},[9493,9497],[533,57927,57929],{"className":57928},[9502],[533,57930,57932,57952],{"className":57931},[9506,9507],[533,57933,57935,57949],{"className":57934},[9511],[533,57936,57938],{"className":57937,"style":9516},[9515],[533,57939,57940,57943],{"style":50395},[533,57941],{"className":57942,"style":9524},[9523],[533,57944,57946],{"className":57945},[9528,9529,9530,9531],[533,57947,29825],{"className":57948,"style":32780},[9493,9497,9531],[533,57950,1090],{"className":57951},[9546],[533,57953,57955],{"className":57954},[9511],[533,57956,57958],{"className":57957,"style":9553},[9515],[533,57959],{}," increases symmetrically with ",[533,57962,57964,57990],{"className":57963},[9443],[533,57965,57967],{"className":57966},[9447],[9174,57968,57969],{"xmlns":9450},[9452,57970,57971,57987],{},[9455,57972,57973,57975,57977,57979,57985],{},[9958,57974,9961],{"stretchy":9960},[9461,57976,618],{},[9958,57978,21843],{},[9458,57980,57981,57983],{},[9461,57982,618],{},[10856,57984,1049],{},[9958,57986,9961],{"stretchy":9960},[9473,57988,57989],{"encoding":9475},"\\lvert f-f_0\\rvert",[533,57991,57993,58014],{"className":57992,"ariaHidden":1089},[9480],[533,57994,57996,57999,58002,58005,58008,58011],{"className":57995},[9484],[533,57997],{"className":57998,"style":9998},[9488],[533,58000,9961],{"className":58001},[10002],[533,58003,618],{"className":58004,"style":22860},[9493,9497],[533,58006],{"className":58007,"style":22903},[10348],[533,58009,21843],{"className":58010},[22093],[533,58012],{"className":58013,"style":22903},[10348],[533,58015,58017,58020,58060],{"className":58016},[9484],[533,58018],{"className":58019,"style":9998},[9488],[533,58021,58023,58026],{"className":58022},[9493],[533,58024,618],{"className":58025,"style":22860},[9493,9497],[533,58027,58029],{"className":58028},[9502],[533,58030,58032,58052],{"className":58031},[9506,9507],[533,58033,58035,58049],{"className":58034},[9511],[533,58036,58038],{"className":58037,"style":21941},[9515],[533,58039,58040,58043],{"style":22876},[533,58041],{"className":58042,"style":9524},[9523],[533,58044,58046],{"className":58045},[9528,9529,9530,9531],[533,58047,1049],{"className":58048},[9493,9531],[533,58050,1090],{"className":58051},[9546],[533,58053,58055],{"className":58054},[9511],[533,58056,58058],{"className":58057,"style":9553},[9515],[533,58059],{},[533,58061,9961],{"className":58062},[10101],". The oscillations accelerate along the pulse-duration axis, and the maximum achievable excited-state probability decreases. This tradeoff is the defining visual signature of detuned Rabi dynamics.",[25,58065,58067],{"id":58066},"quantum-information-interpretation","Quantum Information Interpretation",[12,58069,58070,58071,58141],{},"In quantum information language, a calibrated resonant Rabi pulse implements a single-qubit rotation. At exact resonance, the effective Hamiltonian is proportional to ",[533,58072,58074,58092],{"className":58073},[9443],[533,58075,58077],{"className":58076},[9447],[9174,58078,58079],{"xmlns":9450},[9452,58080,58081,58089],{},[9455,58082,58083],{},[9458,58084,58085,58087],{},[9461,58086,21876],{},[9461,58088,29076],{},[9473,58090,58091],{"encoding":9475},"\\sigma_x",[533,58093,58095],{"className":58094,"ariaHidden":1089},[9480],[533,58096,58098,58101],{"className":58097},[9484],[533,58099],{"className":58100,"style":9489},[9488],[533,58102,58104,58107],{"className":58103},[9493],[533,58105,21876],{"className":58106,"style":9498},[9493,9497],[533,58108,58110],{"className":58109},[9502],[533,58111,58113,58133],{"className":58112},[9506,9507],[533,58114,58116,58130],{"className":58115},[9511],[533,58117,58119],{"className":58118,"style":22873},[9515],[533,58120,58121,58124],{"style":9519},[533,58122],{"className":58123,"style":9524},[9523],[533,58125,58127],{"className":58126},[9528,9529,9530,9531],[533,58128,29076],{"className":58129},[9493,9497,9531],[533,58131,1090],{"className":58132},[9546],[533,58134,58136],{"className":58135},[9511],[533,58137,58139],{"className":58138,"style":9553},[9515],[533,58140],{},", so the microwave pulse implements",[533,58143,58145],{"className":58144},[29056],[533,58146,58148,58204],{"className":58147},[9443],[533,58149,58151],{"className":58150},[9447],[9174,58152,58153],{"xmlns":9450,"display":29065},[9452,58154,58155,58201],{},[9455,58156,58157,58163,58165,58167,58169,58171,58173,58175,58199],{},[9458,58158,58159,58161],{},[9461,58160,29825],{},[9461,58162,29076],{},[9958,58164,615],{"stretchy":9960},[9461,58166,24093],{},[9958,58168,2632],{"stretchy":9960},[9958,58170,554],{},[9461,58172,16247],{},[9958,58174,21836],{},[9455,58176,58177,58179,58181,58197],{},[9958,58178,615],{"fence":1089},[9958,58180,21843],{},[21845,58182,58183,58195],{},[9455,58184,58185,58187,58189],{},[9461,58186,2556],{},[9461,58188,24093],{},[9458,58190,58191,58193],{},[9461,58192,21876],{},[9461,58194,29076],{},[10856,58196,1140],{},[9958,58198,2632],{"fence":1089},[9958,58200,2464],{"separator":1089},[9473,58202,58203],{"encoding":9475},"R_x(\\theta)=\\exp\\left(-\\frac{i\\theta\\sigma_x}{2}\\right),",[533,58205,58207,58271],{"className":58206,"ariaHidden":1089},[9480],[533,58208,58210,58213,58253,58256,58259,58262,58265,58268],{"className":58209},[9484],[533,58211],{"className":58212,"style":9998},[9488],[533,58214,58216,58219],{"className":58215},[9493],[533,58217,29825],{"className":58218,"style":32780},[9493,9497],[533,58220,58222],{"className":58221},[9502],[533,58223,58225,58245],{"className":58224},[9506,9507],[533,58226,58228,58242],{"className":58227},[9511],[533,58229,58231],{"className":58230,"style":22873},[9515],[533,58232,58233,58236],{"style":33746},[533,58234],{"className":58235,"style":9524},[9523],[533,58237,58239],{"className":58238},[9528,9529,9530,9531],[533,58240,29076],{"className":58241},[9493,9497,9531],[533,58243,1090],{"className":58244},[9546],[533,58246,58248],{"className":58247},[9511],[533,58249,58251],{"className":58250,"style":9553},[9515],[533,58252],{},[533,58254,615],{"className":58255},[10002],[533,58257,24093],{"className":58258,"style":24210},[9493,9497],[533,58260,2632],{"className":58261},[10101],[533,58263],{"className":58264,"style":21908},[10348],[533,58266,554],{"className":58267},[21912],[533,58269],{"className":58270,"style":21908},[10348],[533,58272,58274,58277,58280,58283,58407,58410],{"className":58273},[9484],[533,58275],{"className":58276,"style":29293},[9488],[533,58278,16247],{"className":58279},[21970],[533,58281],{"className":58282,"style":10349},[10348],[533,58284,58286,58292,58295,58401],{"className":58285},[21977],[533,58287,58289],{"className":58288,"style":21982},[10002,21981],[533,58290,615],{"className":58291},[21986,9530],[533,58293,21843],{"className":58294},[9493],[533,58296,58298,58301,58398],{"className":58297},[9493],[533,58299],{"className":58300},[10002,21997],[533,58302,58304],{"className":58303},[21845],[533,58305,58307,58390],{"className":58306},[9506,9507],[533,58308,58310,58387],{"className":58309},[9511],[533,58311,58314,58325,58333],{"className":58312,"style":58313},[9515],"height:1.3714em;",[533,58315,58316,58319],{"style":31623},[533,58317],{"className":58318,"style":22017},[9523],[533,58320,58322],{"className":58321},[9493],[533,58323,1140],{"className":58324},[9493],[533,58326,58327,58330],{"style":22063},[533,58328],{"className":58329,"style":22017},[9523],[533,58331],{"className":58332,"style":22071},[22070],[533,58334,58335,58338],{"style":31643},[533,58336],{"className":58337,"style":22017},[9523],[533,58339,58341,58344,58347],{"className":58340},[9493],[533,58342,2556],{"className":58343},[9493,9497],[533,58345,24093],{"className":58346,"style":24210},[9493,9497],[533,58348,58350,58353],{"className":58349},[9493],[533,58351,21876],{"className":58352,"style":9498},[9493,9497],[533,58354,58356],{"className":58355},[9502],[533,58357,58359,58379],{"className":58358},[9506,9507],[533,58360,58362,58376],{"className":58361},[9511],[533,58363,58365],{"className":58364,"style":22873},[9515],[533,58366,58367,58370],{"style":9519},[533,58368],{"className":58369,"style":9524},[9523],[533,58371,58373],{"className":58372},[9528,9529,9530,9531],[533,58374,29076],{"className":58375},[9493,9497,9531],[533,58377,1090],{"className":58378},[9546],[533,58380,58382],{"className":58381},[9511],[533,58383,58385],{"className":58384,"style":9553},[9515],[533,58386],{},[533,58388,1090],{"className":58389},[9546],[533,58391,58393],{"className":58392},[9511],[533,58394,58396],{"className":58395,"style":31709},[9515],[533,58397],{},[533,58399],{"className":58400},[10101,21997],[533,58402,58404],{"className":58403,"style":21982},[10101,21981],[533,58405,2632],{"className":58406},[21986,9530],[533,58408],{"className":58409,"style":10349},[10348],[533,58411,2464],{"className":58412},[10344],[12,58414,12857],{},[533,58416,58418],{"className":58417},[29056],[533,58419,58421,58443],{"className":58420},[9443],[533,58422,58424],{"className":58423},[9447],[9174,58425,58426],{"xmlns":9450,"display":29065},[9452,58427,58428,58440],{},[9455,58429,58430,58432,58434,58436,58438],{},[9461,58431,24093],{},[9958,58433,554],{},[9461,58435,9659],{"mathvariant":9573},[9461,58437,49096],{},[9461,58439,114],{"mathvariant":9573},[9473,58441,58442],{"encoding":9475},"\\theta=\\Omega\\tau.",[533,58444,58446,58465],{"className":58445,"ariaHidden":1089},[9480],[533,58447,58449,58453,58456,58459,58462],{"className":58448},[9484],[533,58450],{"className":58451,"style":58452},[9488],"height:0.6944em;",[533,58454,24093],{"className":58455,"style":24210},[9493,9497],[533,58457],{"className":58458,"style":21908},[10348],[533,58460,554],{"className":58461},[21912],[533,58463],{"className":58464,"style":21908},[10348],[533,58466,58468,58471,58474,58477],{"className":58467},[9484],[533,58469],{"className":58470,"style":9672},[9488],[533,58472,9659],{"className":58473},[9493],[533,58475,49096],{"className":58476,"style":49168},[9493,9497],[533,58478,114],{"className":58479},[9493],[12,58481,58482,58483,58511],{},"A calibrated resonant ",[533,58484,58486,58499],{"className":58485},[9443],[533,58487,58489],{"className":58488},[9447],[9174,58490,58491],{"xmlns":9450},[9452,58492,58493,58497],{},[9455,58494,58495],{},[9461,58496,22502],{},[9473,58498,32965],{"encoding":9475},[533,58500,58502],{"className":58501,"ariaHidden":1089},[9480],[533,58503,58505,58508],{"className":58504},[9484],[533,58506],{"className":58507,"style":32975},[9488],[533,58509,22502],{"className":58510,"style":9498},[9493,9497],"-pulse enacts",[533,58513,58515],{"className":58514},[29056],[533,58516,58518,58556],{"className":58517},[9443],[533,58519,58521],{"className":58520},[9447],[9174,58522,58523],{"xmlns":9450,"display":29065},[9452,58524,58525,58553],{},[9455,58526,58527,58533,58535,58537,58539,58541,58543,58545,58551],{},[9458,58528,58529,58531],{},[9461,58530,29825],{},[9461,58532,29076],{},[9958,58534,615],{"stretchy":9960},[9461,58536,22502],{},[9958,58538,2632],{"stretchy":9960},[9958,58540,554],{},[9958,58542,21843],{},[9461,58544,2556],{},[9458,58546,58547,58549],{},[9461,58548,21876],{},[9461,58550,29076],{},[9958,58552,2464],{"separator":1089},[9473,58554,58555],{"encoding":9475},"R_x(\\pi)=-i\\sigma_x,",[533,58557,58559,58623],{"className":58558,"ariaHidden":1089},[9480],[533,58560,58562,58565,58605,58608,58611,58614,58617,58620],{"className":58561},[9484],[533,58563],{"className":58564,"style":9998},[9488],[533,58566,58568,58571],{"className":58567},[9493],[533,58569,29825],{"className":58570,"style":32780},[9493,9497],[533,58572,58574],{"className":58573},[9502],[533,58575,58577,58597],{"className":58576},[9506,9507],[533,58578,58580,58594],{"className":58579},[9511],[533,58581,58583],{"className":58582,"style":22873},[9515],[533,58584,58585,58588],{"style":33746},[533,58586],{"className":58587,"style":9524},[9523],[533,58589,58591],{"className":58590},[9528,9529,9530,9531],[533,58592,29076],{"className":58593},[9493,9497,9531],[533,58595,1090],{"className":58596},[9546],[533,58598,58600],{"className":58599},[9511],[533,58601,58603],{"className":58602,"style":9553},[9515],[533,58604],{},[533,58606,615],{"className":58607},[10002],[533,58609,22502],{"className":58610,"style":9498},[9493,9497],[533,58612,2632],{"className":58613},[10101],[533,58615],{"className":58616,"style":21908},[10348],[533,58618,554],{"className":58619},[21912],[533,58621],{"className":58622,"style":21908},[10348],[533,58624,58626,58630,58633,58636,58676],{"className":58625},[9484],[533,58627],{"className":58628,"style":58629},[9488],"height:0.854em;vertical-align:-0.1944em;",[533,58631,21843],{"className":58632},[9493],[533,58634,2556],{"className":58635},[9493,9497],[533,58637,58639,58642],{"className":58638},[9493],[533,58640,21876],{"className":58641,"style":9498},[9493,9497],[533,58643,58645],{"className":58644},[9502],[533,58646,58648,58668],{"className":58647},[9506,9507],[533,58649,58651,58665],{"className":58650},[9511],[533,58652,58654],{"className":58653,"style":22873},[9515],[533,58655,58656,58659],{"style":9519},[533,58657],{"className":58658,"style":9524},[9523],[533,58660,58662],{"className":58661},[9528,9529,9530,9531],[533,58663,29076],{"className":58664},[9493,9497,9531],[533,58666,1090],{"className":58667},[9546],[533,58669,58671],{"className":58670},[9511],[533,58672,58674],{"className":58673,"style":9553},[9515],[533,58675],{},[533,58677,2464],{"className":58678},[10344],[12,58680,58681,58682,58710,58711,58747],{},"which corresponds to a quantum ",[533,58683,58685,58698],{"className":58684},[9443],[533,58686,58688],{"className":58687},[9447],[9174,58689,58690],{"xmlns":9450},[9452,58691,58692,58696],{},[9455,58693,58694],{},[9461,58695,9471],{},[9473,58697,9471],{"encoding":9475},[533,58699,58701],{"className":58700,"ariaHidden":1089},[9480],[533,58702,58704,58707],{"className":58703},[9484],[533,58705],{"className":58706,"style":9672},[9488],[533,58708,9471],{"className":58709,"style":9542},[9493,9497]," gate up to a global phase. A resonant ",[533,58712,58714,58732],{"className":58713},[9443],[533,58715,58717],{"className":58716},[9447],[9174,58718,58719],{"xmlns":9450},[9452,58720,58721,58729],{},[9455,58722,58723,58725,58727],{},[9461,58724,22502],{},[9461,58726,2941],{"mathvariant":9573},[10856,58728,1140],{},[9473,58730,58731],{"encoding":9475},"\\pi\u002F2",[533,58733,58735],{"className":58734,"ariaHidden":1089},[9480],[533,58736,58738,58741,58744],{"className":58737},[9484],[533,58739],{"className":58740,"style":9998},[9488],[533,58742,22502],{"className":58743,"style":9498},[9493,9497],[533,58745,23215],{"className":58746},[9493],"-pulse prepares a balanced coherent superposition,",[533,58749,58751],{"className":58750},[29056],[533,58752,58754,58800],{"className":58753},[9443],[533,58755,58757],{"className":58756},[9447],[9174,58758,58759],{"xmlns":9450,"display":29065},[9452,58760,58761,58797],{},[9455,58762,58763,58765,58767,58769,58771,58795],{},[9958,58764,9961],{"stretchy":9960},[9461,58766,49279],{},[9958,58768,10860],{"stretchy":9960},[9958,58770,24063],{},[21845,58772,58773,58791],{},[9455,58774,58775,58777,58779,58781,58783,58785,58787,58789],{},[9958,58776,9961],{"stretchy":9960},[9461,58778,49279],{},[9958,58780,10860],{"stretchy":9960},[9958,58782,21843],{},[9461,58784,2556],{},[9958,58786,9961],{"stretchy":9960},[9461,58788,629],{},[9958,58790,10860],{"stretchy":9960},[30893,58792,58793],{},[10856,58794,1140],{},[9958,58796,2464],{"separator":1089},[9473,58798,58799],{"encoding":9475},"\\lvert g\\rangle\\rightarrow\\frac{\\lvert g\\rangle-i\\lvert e\\rangle}{\\sqrt{2}},",[533,58801,58803,58827],{"className":58802,"ariaHidden":1089},[9480],[533,58804,58806,58809,58812,58815,58818,58821,58824],{"className":58805},[9484],[533,58807],{"className":58808,"style":9998},[9488],[533,58810,9961],{"className":58811},[10002],[533,58813,49279],{"className":58814,"style":9498},[9493,9497],[533,58816,10860],{"className":58817},[10101],[533,58819],{"className":58820,"style":21908},[10348],[533,58822,24063],{"className":58823},[21912],[533,58825],{"className":58826,"style":21908},[10348],[533,58828,58830,58834,58970],{"className":58829},[9484],[533,58831],{"className":58832,"style":58833},[9488],"height:2.357em;vertical-align:-0.93em;",[533,58835,58837,58840,58967],{"className":58836},[9493],[533,58838],{"className":58839},[10002,21997],[533,58841,58843],{"className":58842},[21845],[533,58844,58846,58958],{"className":58845},[9506,9507],[533,58847,58849,58955],{"className":58848},[9511],[533,58850,58853,58909,58917],{"className":58851,"style":58852},[9515],"height:1.427em;",[533,58854,58856,58859],{"style":58855},"top:-2.2028em;",[533,58857],{"className":58858,"style":22017},[9523],[533,58860,58862],{"className":58861},[9493],[533,58863,58865],{"className":58864},[9493,2262],[533,58866,58868,58901],{"className":58867},[9506,9507],[533,58869,58871,58898],{"className":58870},[9511],[533,58872,58874,58886],{"className":58873,"style":31662},[9515],[533,58875,58877,58880],{"className":58876,"style":31077},[31076],[533,58878],{"className":58879,"style":22017},[9523],[533,58881,58883],{"className":58882,"style":31084},[9493],[533,58884,1140],{"className":58885},[9493],[533,58887,58888,58891],{"style":31677},[533,58889],{"className":58890,"style":22017},[9523],[533,58892,58894],{"className":58893,"style":31098},[31097],[31100,58895,58896],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,58897],{"d":31110},[533,58899,1090],{"className":58900},[9546],[533,58902,58904],{"className":58903},[9511],[533,58905,58907],{"className":58906,"style":31697},[9515],[533,58908],{},[533,58910,58911,58914],{"style":22063},[533,58912],{"className":58913,"style":22017},[9523],[533,58915],{"className":58916,"style":22071},[22070],[533,58918,58919,58922],{"style":31643},[533,58920],{"className":58921,"style":22017},[9523],[533,58923,58925,58928,58931,58934,58937,58940,58943,58946,58949,58952],{"className":58924},[9493],[533,58926,9961],{"className":58927},[10002],[533,58929,49279],{"className":58930,"style":9498},[9493,9497],[533,58932,10860],{"className":58933},[10101],[533,58935],{"className":58936,"style":22903},[10348],[533,58938,21843],{"className":58939},[22093],[533,58941],{"className":58942,"style":22903},[10348],[533,58944,2556],{"className":58945},[9493,9497],[533,58947,9961],{"className":58948},[10002],[533,58950,629],{"className":58951},[9493,9497],[533,58953,10860],{"className":58954},[10101],[533,58956,1090],{"className":58957},[9546],[533,58959,58961],{"className":58960},[9511],[533,58962,58965],{"className":58963,"style":58964},[9515],"height:0.93em;",[533,58966],{},[533,58968],{"className":58969},[10101,21997],[533,58971,2464],{"className":58972},[10344],[12,58974,58975],{},"with a phase convention set by the microwave drive phase.",[12,58977,58978],{},"Detuning changes the rotation axis so it is no longer purely transverse. The unitary can be written as",[533,58980,58982],{"className":58981},[29056],[533,58983,58985,59054],{"className":58984},[9443],[533,58986,58988],{"className":58987},[9447],[9174,58989,58990],{"xmlns":9450,"display":29065},[9452,58991,58992,59051],{},[9455,58993,58994,59004,59006,59008,59010,59012,59014,59016,59049],{},[9458,58995,58996,58998],{},[9461,58997,29825],{},[33970,58999,59000,59002],{"accent":1089},[9461,59001,30647],{},[9958,59003,33977],{},[9958,59005,615],{"stretchy":9960},[9461,59007,24093],{},[9958,59009,2632],{"stretchy":9960},[9958,59011,554],{},[9461,59013,16247],{},[9958,59015,21836],{},[9455,59017,59018,59020,59022,59032,59038,59040,59047],{},[9958,59019,615],{"fence":1089},[9958,59021,21843],{},[21845,59023,59024,59030],{},[9455,59025,59026,59028],{},[9461,59027,2556],{},[9461,59029,24093],{},[10856,59031,1140],{},[33970,59033,59034,59036],{"accent":1089},[9461,59035,30647],{},[9958,59037,33977],{},[9958,59039,29931],{},[33970,59041,59042,59044],{"accent":1089},[9461,59043,21876],{},[9958,59045,59046],{},"⃗",[9958,59048,2632],{"fence":1089},[9958,59050,2464],{"separator":1089},[9473,59052,59053],{"encoding":9475},"R_{\\hat{n}}(\\theta)=\\exp\\left(-\\frac{i\\theta}{2}\\hat{n}\\cdot\\vec{\\sigma}\\right),",[533,59055,59057,59154],{"className":59056,"ariaHidden":1089},[9480],[533,59058,59060,59063,59136,59139,59142,59145,59148,59151],{"className":59059},[9484],[533,59061],{"className":59062,"style":9998},[9488],[533,59064,59066,59069],{"className":59065},[9493],[533,59067,29825],{"className":59068,"style":32780},[9493,9497],[533,59070,59072],{"className":59071},[9502],[533,59073,59075,59128],{"className":59074},[9506,9507],[533,59076,59078,59125],{"className":59077},[9511],[533,59079,59082],{"className":59080,"style":59081},[9515],"height:0.3361em;",[533,59083,59084,59087],{"style":33746},[533,59085],{"className":59086,"style":9524},[9523],[533,59088,59090],{"className":59089},[9528,9529,9530,9531],[533,59091,59093],{"className":59092},[9493,9531],[533,59094,59096],{"className":59095},[9493,33994,9531],[533,59097,59099],{"className":59098},[9506],[533,59100,59102],{"className":59101},[9511],[533,59103,59105,59114],{"className":59104,"style":58452},[9515],[533,59106,59108,59111],{"style":59107},"top:-2.7em;",[533,59109],{"className":59110,"style":9524},[9523],[533,59112,30647],{"className":59113},[9493,9497,9531],[533,59115,59116,59119],{"style":59107},[533,59117],{"className":59118,"style":9524},[9523],[533,59120,59122],{"className":59121,"style":34022},[34021],[533,59123,33977],{"className":59124},[9493,9531],[533,59126,1090],{"className":59127},[9546],[533,59129,59131],{"className":59130},[9511],[533,59132,59134],{"className":59133,"style":9553},[9515],[533,59135],{},[533,59137,615],{"className":59138},[10002],[533,59140,24093],{"className":59141,"style":24210},[9493,9497],[533,59143,2632],{"className":59144},[10101],[533,59146],{"className":59147,"style":21908},[10348],[533,59149,554],{"className":59150},[21912],[533,59152],{"className":59153,"style":21908},[10348],[533,59155,59157,59160,59163,59166,59334,59337],{"className":59156},[9484],[533,59158],{"className":59159,"style":29293},[9488],[533,59161,16247],{"className":59162},[21970],[533,59164],{"className":59165,"style":10349},[10348],[533,59167,59169,59175,59178,59243,59274,59277,59280,59283,59328],{"className":59168},[21977],[533,59170,59172],{"className":59171,"style":21982},[10002,21981],[533,59173,615],{"className":59174},[21986,9530],[533,59176,21843],{"className":59177},[9493],[533,59179,59181,59184,59240],{"className":59180},[9493],[533,59182],{"className":59183},[10002,21997],[533,59185,59187],{"className":59186},[21845],[533,59188,59190,59232],{"className":59189},[9506,9507],[533,59191,59193,59229],{"className":59192},[9511],[533,59194,59196,59207,59215],{"className":59195,"style":58313},[9515],[533,59197,59198,59201],{"style":31623},[533,59199],{"className":59200,"style":22017},[9523],[533,59202,59204],{"className":59203},[9493],[533,59205,1140],{"className":59206},[9493],[533,59208,59209,59212],{"style":22063},[533,59210],{"className":59211,"style":22017},[9523],[533,59213],{"className":59214,"style":22071},[22070],[533,59216,59217,59220],{"style":31643},[533,59218],{"className":59219,"style":22017},[9523],[533,59221,59223,59226],{"className":59222},[9493],[533,59224,2556],{"className":59225},[9493,9497],[533,59227,24093],{"className":59228,"style":24210},[9493,9497],[533,59230,1090],{"className":59231},[9546],[533,59233,59235],{"className":59234},[9511],[533,59236,59238],{"className":59237,"style":31709},[9515],[533,59239],{},[533,59241],{"className":59242},[10101,21997],[533,59244,59246],{"className":59245},[9493,33994],[533,59247,59249],{"className":59248},[9506],[533,59250,59252],{"className":59251},[9511],[533,59253,59255,59263],{"className":59254,"style":58452},[9515],[533,59256,59257,59260],{"style":31077},[533,59258],{"className":59259,"style":22017},[9523],[533,59261,30647],{"className":59262},[9493,9497],[533,59264,59265,59268],{"style":31077},[533,59266],{"className":59267,"style":22017},[9523],[533,59269,59271],{"className":59270,"style":34022},[34021],[533,59272,33977],{"className":59273},[9493],[533,59275],{"className":59276,"style":22903},[10348],[533,59278,29931],{"className":59279},[22093],[533,59281],{"className":59282,"style":22903},[10348],[533,59284,59286],{"className":59285},[9493,33994],[533,59287,59289],{"className":59288},[9506],[533,59290,59292],{"className":59291},[9511],[533,59293,59296,59304],{"className":59294,"style":59295},[9515],"height:0.714em;",[533,59297,59298,59301],{"style":31077},[533,59299],{"className":59300,"style":22017},[9523],[533,59302,21876],{"className":59303,"style":9498},[9493,9497],[533,59305,59306,59309],{"style":31077},[533,59307],{"className":59308,"style":22017},[9523],[533,59310,59313],{"className":59311,"style":59312},[34021],"left:-0.2355em;",[533,59314,59318],{"className":59315,"style":59317},[59316],"overlay","height:0.714em;width:0.471em;",[31100,59319,59325],{"xmlns":31102,"width":59320,"height":59321,"style":59322,"viewBox":59323,"preserveAspectRatio":59324},"0.471em","0.714em","width:0.471em","0 0 471 714","xMinYMin",[31108,59326],{"d":59327},"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",[533,59329,59331],{"className":59330,"style":21982},[10101,21981],[533,59332,2632],{"className":59333},[21986,9530],[533,59335],{"className":59336,"style":10349},[10348],[533,59338,2464],{"className":59339},[10344],[12,59341,12857],{},[533,59343,59345],{"className":59344},[29056],[533,59346,59348,59410],{"className":59347},[9443],[533,59349,59351],{"className":59350},[9447],[9174,59352,59353],{"xmlns":9450,"display":29065},[9452,59354,59355,59407],{},[9455,59356,59357,59363,59365,59375,59377,59379,59381,59383,59385,59387,59389,59391,59393,59395,59397,59403,59405],{},[33970,59358,59359,59361],{"accent":1089},[9461,59360,30647],{},[9958,59362,33977],{},[9958,59364,554],{},[21845,59366,59367,59369],{},[10856,59368,1052],{},[9458,59370,59371,59373],{},[9461,59372,9659],{"mathvariant":9573},[9461,59374,29825],{},[9958,59376,615],{"stretchy":9960},[9461,59378,9659],{"mathvariant":9573},[9958,59380,2464],{"separator":1089},[10856,59382,1049],{},[9958,59384,2464],{"separator":1089},[9461,59386,9574],{"mathvariant":9573},[9958,59388,2632],{"stretchy":9960},[9958,59390,2464],{"separator":1089},[10348,59392],{"width":29941},[9461,59394,24093],{},[9958,59396,554],{},[9458,59398,59399,59401],{},[9461,59400,9659],{"mathvariant":9573},[9461,59402,29825],{},[9461,59404,49096],{},[9461,59406,114],{"mathvariant":9573},[9473,59408,59409],{"encoding":9475},"\\hat{n}=\\frac{1}{\\Omega_R}(\\Omega,0,\\Delta), \\qquad \\theta=\\Omega_R\\tau.",[533,59411,59413,59459,59614],{"className":59412,"ariaHidden":1089},[9480],[533,59414,59416,59419,59450,59453,59456],{"className":59415},[9484],[533,59417],{"className":59418,"style":58452},[9488],[533,59420,59422],{"className":59421},[9493,33994],[533,59423,59425],{"className":59424},[9506],[533,59426,59428],{"className":59427},[9511],[533,59429,59431,59439],{"className":59430,"style":58452},[9515],[533,59432,59433,59436],{"style":31077},[533,59434],{"className":59435,"style":22017},[9523],[533,59437,30647],{"className":59438},[9493,9497],[533,59440,59441,59444],{"style":31077},[533,59442],{"className":59443,"style":22017},[9523],[533,59445,59447],{"className":59446,"style":34022},[34021],[533,59448,33977],{"className":59449},[9493],[533,59451],{"className":59452,"style":21908},[10348],[533,59454,554],{"className":59455},[21912],[533,59457],{"className":59458,"style":21908},[10348],[533,59460,59462,59466,59566,59569,59572,59575,59578,59581,59584,59587,59590,59593,59596,59599,59602,59605,59608,59611],{"className":59461},[9484],[533,59463],{"className":59464,"style":59465},[9488],"height:2.1574em;vertical-align:-0.836em;",[533,59467,59469,59472,59563],{"className":59468},[9493],[533,59470],{"className":59471},[10002,21997],[533,59473,59475],{"className":59474},[21845],[533,59476,59478,59554],{"className":59477},[9506,9507],[533,59479,59481,59551],{"className":59480},[9511],[533,59482,59484,59532,59540],{"className":59483,"style":55692},[9515],[533,59485,59486,59489],{"style":31623},[533,59487],{"className":59488,"style":22017},[9523],[533,59490,59492],{"className":59491},[9493],[533,59493,59495,59498],{"className":59494},[9493],[533,59496,9659],{"className":59497},[9493],[533,59499,59501],{"className":59500},[9502],[533,59502,59504,59524],{"className":59503},[9506,9507],[533,59505,59507,59521],{"className":59506},[9511],[533,59508,59510],{"className":59509,"style":9516},[9515],[533,59511,59512,59515],{"style":9617},[533,59513],{"className":59514,"style":9524},[9523],[533,59516,59518],{"className":59517},[9528,9529,9530,9531],[533,59519,29825],{"className":59520,"style":32780},[9493,9497,9531],[533,59522,1090],{"className":59523},[9546],[533,59525,59527],{"className":59526},[9511],[533,59528,59530],{"className":59529,"style":9553},[9515],[533,59531],{},[533,59533,59534,59537],{"style":22063},[533,59535],{"className":59536,"style":22017},[9523],[533,59538],{"className":59539,"style":22071},[22070],[533,59541,59542,59545],{"style":31643},[533,59543],{"className":59544,"style":22017},[9523],[533,59546,59548],{"className":59547},[9493],[533,59549,1052],{"className":59550},[9493],[533,59552,1090],{"className":59553},[9546],[533,59555,59557],{"className":59556},[9511],[533,59558,59561],{"className":59559,"style":59560},[9515],"height:0.836em;",[533,59562],{},[533,59564],{"className":59565},[10101,21997],[533,59567,615],{"className":59568},[10002],[533,59570,9659],{"className":59571},[9493],[533,59573,2464],{"className":59574},[10344],[533,59576],{"className":59577,"style":10349},[10348],[533,59579,1049],{"className":59580},[9493],[533,59582,2464],{"className":59583},[10344],[533,59585],{"className":59586,"style":10349},[10348],[533,59588,9574],{"className":59589},[9493],[533,59591,2632],{"className":59592},[10101],[533,59594,2464],{"className":59595},[10344],[533,59597],{"className":59598,"style":30160},[10348],[533,59600],{"className":59601,"style":10349},[10348],[533,59603,24093],{"className":59604,"style":24210},[9493,9497],[533,59606],{"className":59607,"style":21908},[10348],[533,59609,554],{"className":59610},[21912],[533,59612],{"className":59613,"style":21908},[10348],[533,59615,59617,59620,59660,59663],{"className":59616},[9484],[533,59618],{"className":59619,"style":9595},[9488],[533,59621,59623,59626],{"className":59622},[9493],[533,59624,9659],{"className":59625},[9493],[533,59627,59629],{"className":59628},[9502],[533,59630,59632,59652],{"className":59631},[9506,9507],[533,59633,59635,59649],{"className":59634},[9511],[533,59636,59638],{"className":59637,"style":9516},[9515],[533,59639,59640,59643],{"style":9617},[533,59641],{"className":59642,"style":9524},[9523],[533,59644,59646],{"className":59645},[9528,9529,9530,9531],[533,59647,29825],{"className":59648,"style":32780},[9493,9497,9531],[533,59650,1090],{"className":59651},[9546],[533,59653,59655],{"className":59654},[9511],[533,59656,59658],{"className":59657,"style":9553},[9515],[533,59659],{},[533,59661,49096],{"className":59662,"style":49168},[9493,9497],[533,59664,114],{"className":59665},[9493],[12,59667,59668],{},"This representation shows that detuning increases the rotation rate and tilts the control axis. Under this idealized model, the qubit still evolves coherently, although the trajectory generally misses the pure excited-state pole.",[25,59670,59672],{"id":59671},"bloch-sphere-interpretation","Bloch-Sphere Interpretation",[12,59674,59675],{},"A Bloch sphere maps any pure qubit state to a unit vector in three-dimensional space. Ground and excited states occupy opposite poles. Equal-amplitude coherent superpositions lie on the equator.",[12,59677,59678,59679,59717,59718,59746,59747,59782],{},"A resonant microwave drive rotates the Bloch vector around a transverse axis. Starting from ",[533,59680,59682,59699],{"className":59681},[9443],[533,59683,59685],{"className":59684},[9447],[9174,59686,59687],{"xmlns":9450},[9452,59688,59689,59697],{},[9455,59690,59691,59693,59695],{},[9958,59692,9961],{"stretchy":9960},[9461,59694,49279],{},[9958,59696,10860],{"stretchy":9960},[9473,59698,49284],{"encoding":9475},[533,59700,59702],{"className":59701,"ariaHidden":1089},[9480],[533,59703,59705,59708,59711,59714],{"className":59704},[9484],[533,59706],{"className":59707,"style":9998},[9488],[533,59709,9961],{"className":59710},[10002],[533,59712,49279],{"className":59713,"style":9498},[9493,9497],[533,59715,10860],{"className":59716},[10101],", a properly timed ",[533,59719,59721,59734],{"className":59720},[9443],[533,59722,59724],{"className":59723},[9447],[9174,59725,59726],{"xmlns":9450},[9452,59727,59728,59732],{},[9455,59729,59730],{},[9461,59731,22502],{},[9473,59733,32965],{"encoding":9475},[533,59735,59737],{"className":59736,"ariaHidden":1089},[9480],[533,59738,59740,59743],{"className":59739},[9484],[533,59741],{"className":59742,"style":32975},[9488],[533,59744,22502],{"className":59745,"style":9498},[9493,9497],"-pulse moves the state to the excited-state pole. A ",[533,59748,59750,59767],{"className":59749},[9443],[533,59751,59753],{"className":59752},[9447],[9174,59754,59755],{"xmlns":9450},[9452,59756,59757,59765],{},[9455,59758,59759,59761,59763],{},[9461,59760,22502],{},[9461,59762,2941],{"mathvariant":9573},[10856,59764,1140],{},[9473,59766,58731],{"encoding":9475},[533,59768,59770],{"className":59769,"ariaHidden":1089},[9480],[533,59771,59773,59776,59779],{"className":59772},[9484],[533,59774],{"className":59775,"style":9998},[9488],[533,59777,22502],{"className":59778,"style":9498},[9493,9497],[533,59780,23215],{"className":59781},[9493],"-pulse moves the state to the equator, where the ground-state and excited-state measurement probabilities are equal.",[12,59784,59785,59786,59814],{},"Detuning tilts the rotation axis toward the ",[533,59787,59789,59802],{"className":59788},[9443],[533,59790,59792],{"className":59791},[9447],[9174,59793,59794],{"xmlns":9450},[9452,59795,59796,59800],{},[9455,59797,59798],{},[9461,59799,1632],{},[9473,59801,1632],{"encoding":9475},[533,59803,59805],{"className":59804,"ariaHidden":1089},[9480],[533,59806,59808,59811],{"className":59807},[9484],[533,59809],{"className":59810,"style":32975},[9488],[533,59812,1632],{"className":59813,"style":29647},[9493,9497],"-axis. The state vector then precesses around the tilted axis and generally fails to reach the excited-state pole. This geometric picture explains the amplitude coefficient",[533,59816,59818],{"className":59817},[29056],[533,59819,59821,59851],{"className":59820},[9443],[533,59822,59824],{"className":59823},[9447],[9174,59825,59826],{"xmlns":9450,"display":29065},[9452,59827,59828,59848],{},[9455,59829,59830,59846],{},[21845,59831,59832,59838],{},[21862,59833,59834,59836],{},[9461,59835,9659],{"mathvariant":9573},[10856,59837,1140],{},[37177,59839,59840,59842,59844],{},[9461,59841,9659],{"mathvariant":9573},[9461,59843,29825],{},[10856,59845,1140],{},[9461,59847,114],{"mathvariant":9573},[9473,59849,59850],{"encoding":9475},"\\frac{\\Omega^2}{\\Omega_R^2}.",[533,59852,59854],{"className":59853,"ariaHidden":1089},[9480],[533,59855,59857,59860,59996],{"className":59856},[9484],[533,59858],{"className":59859,"style":54208},[9488],[533,59861,59863,59866,59993],{"className":59862},[9493],[533,59864],{"className":59865},[10002,21997],[533,59867,59869],{"className":59868},[21845],[533,59870,59872,59985],{"className":59871},[9506,9507],[533,59873,59875,59982],{"className":59874},[9511],[533,59876,59878,59937,59945],{"className":59877,"style":54227},[9515],[533,59879,59880,59883],{"style":31623},[533,59881],{"className":59882,"style":22017},[9523],[533,59884,59886],{"className":59885},[9493],[533,59887,59889,59892],{"className":59888},[9493],[533,59890,9659],{"className":59891},[9493],[533,59893,59895],{"className":59894},[9502],[533,59896,59898,59929],{"className":59897},[9506,9507],[533,59899,59901,59926],{"className":59900},[9511],[533,59902,59904,59915],{"className":59903,"style":54254},[9515],[533,59905,59906,59909],{"style":54257},[533,59907],{"className":59908,"style":9524},[9523],[533,59910,59912],{"className":59911},[9528,9529,9530,9531],[533,59913,29825],{"className":59914,"style":32780},[9493,9497,9531],[533,59916,59917,59920],{"style":54269},[533,59918],{"className":59919,"style":9524},[9523],[533,59921,59923],{"className":59922},[9528,9529,9530,9531],[533,59924,1140],{"className":59925},[9493,9531],[533,59927,1090],{"className":59928},[9546],[533,59930,59932],{"className":59931},[9511],[533,59933,59935],{"className":59934,"style":54288},[9515],[533,59936],{},[533,59938,59939,59942],{"style":22063},[533,59940],{"className":59941,"style":22017},[9523],[533,59943],{"className":59944,"style":22071},[22070],[533,59946,59947,59950],{"style":31643},[533,59948],{"className":59949,"style":22017},[9523],[533,59951,59953],{"className":59952},[9493],[533,59954,59956,59959],{"className":59955},[9493],[533,59957,9659],{"className":59958},[9493],[533,59960,59962],{"className":59961},[9502],[533,59963,59965],{"className":59964},[9506],[533,59966,59968],{"className":59967},[9511],[533,59969,59971],{"className":59970,"style":29860},[9515],[533,59972,59973,59976],{"style":24194},[533,59974],{"className":59975,"style":9524},[9523],[533,59977,59979],{"className":59978},[9528,9529,9530,9531],[533,59980,1140],{"className":59981},[9493,9531],[533,59983,1090],{"className":59984},[9546],[533,59986,59988],{"className":59987},[9511],[533,59989,59991],{"className":59990,"style":54345},[9515],[533,59992],{},[533,59994],{"className":59995},[10101,21997],[533,59997,114],{"className":59998},[9493],[12,60000,60001,60002,60041],{},"As ",[533,60003,60005,60023],{"className":60004},[9443],[533,60006,60008],{"className":60007},[9447],[9174,60009,60010],{"xmlns":9450},[9452,60011,60012,60020],{},[9455,60013,60014,60016,60018],{},[9958,60015,9961],{"stretchy":9960},[9461,60017,9574],{"mathvariant":9573},[9958,60019,9961],{"stretchy":9960},[9473,60021,60022],{"encoding":9475},"\\lvert\\Delta\\rvert",[533,60024,60026],{"className":60025,"ariaHidden":1089},[9480],[533,60027,60029,60032,60035,60038],{"className":60028},[9484],[533,60030],{"className":60031,"style":9998},[9488],[533,60033,9961],{"className":60034},[10002],[533,60036,9574],{"className":60037},[9493],[533,60039,9961],{"className":60040},[10101]," grows, the rotation axis becomes more longitudinal, the oscillation frequency increases, and the maximum excited-state population decreases.",[25,60043,60045],{"id":60044},"fourier-analysis-dynamics","Fourier Analysis Dynamics",[12,60047,60048,60049,60077,60078,60176],{},"The spectral analysis computes a real Fast Fourier transform along the pulse-duration axis. For each sampled drive frequency ",[533,60050,60052,60065],{"className":60051},[9443],[533,60053,60055],{"className":60054},[9447],[9174,60056,60057],{"xmlns":9450},[9452,60058,60059,60063],{},[9455,60060,60061],{},[9461,60062,618],{},[9473,60064,618],{"encoding":9475},[533,60066,60068],{"className":60067,"ariaHidden":1089},[9480],[533,60069,60071,60074],{"className":60070},[9484],[533,60072],{"className":60073,"style":49203},[9488],[533,60075,618],{"className":60076,"style":22860},[9493,9497],", the trace ",[533,60079,60081,60109],{"className":60080},[9443],[533,60082,60084],{"className":60083},[9447],[9174,60085,60086],{"xmlns":9450},[9452,60087,60088,60106],{},[9455,60089,60090,60096,60098,60100,60102,60104],{},[9458,60091,60092,60094],{},[9461,60093,49085],{},[9461,60095,629],{},[9958,60097,615],{"stretchy":9960},[9461,60099,49096],{},[9958,60101,2464],{"separator":1089},[9461,60103,618],{},[9958,60105,2632],{"stretchy":9960},[9473,60107,60108],{"encoding":9475},"P_e(\\tau,f)",[533,60110,60112],{"className":60111,"ariaHidden":1089},[9480],[533,60113,60115,60118,60158,60161,60164,60167,60170,60173],{"className":60114},[9484],[533,60116],{"className":60117,"style":9998},[9488],[533,60119,60121,60124],{"className":60120},[9493],[533,60122,49085],{"className":60123,"style":26405},[9493,9497],[533,60125,60127],{"className":60126},[9502],[533,60128,60130,60150],{"className":60129},[9506,9507],[533,60131,60133,60147],{"className":60132},[9511],[533,60134,60136],{"className":60135,"style":22873},[9515],[533,60137,60138,60141],{"style":31397},[533,60139],{"className":60140,"style":9524},[9523],[533,60142,60144],{"className":60143},[9528,9529,9530,9531],[533,60145,629],{"className":60146},[9493,9497,9531],[533,60148,1090],{"className":60149},[9546],[533,60151,60153],{"className":60152},[9511],[533,60154,60156],{"className":60155,"style":9553},[9515],[533,60157],{},[533,60159,615],{"className":60160},[10002],[533,60162,49096],{"className":60163,"style":49168},[9493,9497],[533,60165,2464],{"className":60166},[10344],[533,60168],{"className":60169,"style":10349},[10348],[533,60171,618],{"className":60172,"style":22860},[9493,9497],[533,60174,2632],{"className":60175},[10101]," is treated as a time-domain signal. The spectral amplitude is",[533,60178,60180],{"className":60179},[29056],[533,60181,60183,60247],{"className":60182},[9443],[533,60184,60186],{"className":60185},[9447],[9174,60187,60188],{"xmlns":9450,"display":29065},[9452,60189,60190,60244],{},[9455,60191,60192,60194,60196,60198,60200,60202,60204,60206,60242],{},[9461,60193,31206],{},[9958,60195,615],{"stretchy":9960},[9461,60197,50359],{},[9958,60199,2464],{"separator":1089},[9461,60201,618],{},[9958,60203,2632],{"stretchy":9960},[9958,60205,554],{},[9455,60207,60208,60210,60218,60240],{},[9958,60209,9961],{"fence":1089},[9458,60211,60212,60216],{},[9461,60213,60215],{"mathvariant":60214},"script","F",[9461,60217,49096],{},[9455,60219,60220,60222,60228,60230,60232,60234,60236,60238],{},[9958,60221,626],{"fence":1089},[9458,60223,60224,60226],{},[9461,60225,49085],{},[9461,60227,629],{},[9958,60229,615],{"stretchy":9960},[9461,60231,49096],{},[9958,60233,2464],{"separator":1089},[9461,60235,618],{},[9958,60237,2632],{"stretchy":9960},[9958,60239,632],{"fence":1089},[9958,60241,9961],{"fence":1089},[9461,60243,114],{"mathvariant":9573},[9473,60245,60246],{"encoding":9475},"S(\\nu,f)=\\left|\\mathcal{F}_{\\tau}\\left\\{P_e(\\tau,f)\\right\\}\\right|.",[533,60248,60250,60286],{"className":60249,"ariaHidden":1089},[9480],[533,60251,60253,60256,60259,60262,60265,60268,60271,60274,60277,60280,60283],{"className":60252},[9484],[533,60254],{"className":60255,"style":9998},[9488],[533,60257,31206],{"className":60258,"style":22540},[9493,9497],[533,60260,615],{"className":60261},[10002],[533,60263,50359],{"className":60264,"style":50380},[9493,9497],[533,60266,2464],{"className":60267},[10344],[533,60269],{"className":60270,"style":10349},[10348],[533,60272,618],{"className":60273,"style":22860},[9493,9497],[533,60275,2632],{"className":60276},[10101],[533,60278],{"className":60279,"style":21908},[10348],[533,60281,554],{"className":60282},[21912],[533,60284],{"className":60285,"style":21908},[10348],[533,60287,60289,60292,60417,60420],{"className":60288},[9484],[533,60290],{"className":60291,"style":9998},[9488],[533,60293,60295,60298,60344,60347,60414],{"className":60294},[21977],[533,60296,9961],{"className":60297,"style":21982},[10002,21981],[533,60299,60301,60306],{"className":60300},[9493],[533,60302,60215],{"className":60303,"style":60305},[9493,60304],"mathcal","margin-right:0.0993em;",[533,60307,60309],{"className":60308},[9502],[533,60310,60312,60336],{"className":60311},[9506,9507],[533,60313,60315,60333],{"className":60314},[9511],[533,60316,60318],{"className":60317,"style":22873},[9515],[533,60319,60321,60324],{"style":60320},"top:-2.55em;margin-left:-0.0993em;margin-right:0.05em;",[533,60322],{"className":60323,"style":9524},[9523],[533,60325,60327],{"className":60326},[9528,9529,9530,9531],[533,60328,60330],{"className":60329},[9493,9531],[533,60331,49096],{"className":60332,"style":49168},[9493,9497,9531],[533,60334,1090],{"className":60335},[9546],[533,60337,60339],{"className":60338},[9511],[533,60340,60342],{"className":60341,"style":9553},[9515],[533,60343],{},[533,60345],{"className":60346,"style":10349},[10348],[533,60348,60350,60353,60393,60396,60399,60402,60405,60408,60411],{"className":60349},[21977],[533,60351,626],{"className":60352,"style":21982},[10002,21981],[533,60354,60356,60359],{"className":60355},[9493],[533,60357,49085],{"className":60358,"style":26405},[9493,9497],[533,60360,60362],{"className":60361},[9502],[533,60363,60365,60385],{"className":60364},[9506,9507],[533,60366,60368,60382],{"className":60367},[9511],[533,60369,60371],{"className":60370,"style":22873},[9515],[533,60372,60373,60376],{"style":31397},[533,60374],{"className":60375,"style":9524},[9523],[533,60377,60379],{"className":60378},[9528,9529,9530,9531],[533,60380,629],{"className":60381},[9493,9497,9531],[533,60383,1090],{"className":60384},[9546],[533,60386,60388],{"className":60387},[9511],[533,60389,60391],{"className":60390,"style":9553},[9515],[533,60392],{},[533,60394,615],{"className":60395},[10002],[533,60397,49096],{"className":60398,"style":49168},[9493,9497],[533,60400,2464],{"className":60401},[10344],[533,60403],{"className":60404,"style":10349},[10348],[533,60406,618],{"className":60407,"style":22860},[9493,9497],[533,60409,2632],{"className":60410},[10101],[533,60412,632],{"className":60413,"style":21982},[10101,21981],[533,60415,9961],{"className":60416,"style":21982},[10101,21981],[533,60418],{"className":60419,"style":10349},[10348],[533,60421,114],{"className":60422},[9493],[12,60424,60425],{},"This probability expression contains a squared sinusoid. Using the identity",[533,60427,60429],{"className":60428},[29056],[533,60430,60432,60508],{"className":60431},[9443],[533,60433,60435],{"className":60434},[9447],[9174,60436,60437],{"xmlns":9450,"display":29065},[9452,60438,60439,60505],{},[9455,60440,60441,60451,60471,60473,60479],{},[21862,60442,60443,60449],{},[9455,60444,60445,60447],{},[9461,60446,14336],{},[9958,60448,21836],{},[10856,60450,1140],{},[9455,60452,60453,60455,60469],{},[9958,60454,615],{"fence":1089},[21845,60456,60457,60467],{},[9455,60458,60459,60465],{},[9458,60460,60461,60463],{},[9461,60462,9659],{"mathvariant":9573},[9461,60464,29825],{},[9461,60466,49096],{},[10856,60468,1140],{},[9958,60470,2632],{"fence":1089},[9958,60472,554],{},[21845,60474,60475,60477],{},[10856,60476,1052],{},[10856,60478,1140],{},[9455,60480,60481,60483,60485,60487,60489,60491,60493,60499,60501,60503],{},[9958,60482,1522],{"fence":1089},[10856,60484,1052],{},[9958,60486,21843],{},[9461,60488,14318],{},[9958,60490,21836],{},[9958,60492,615],{"stretchy":9960},[9458,60494,60495,60497],{},[9461,60496,9659],{"mathvariant":9573},[9461,60498,29825],{},[9461,60500,49096],{},[9958,60502,2632],{"stretchy":9960},[9958,60504,30516],{"fence":1089},[9473,60506,60507],{"encoding":9475},"\\sin^2\\left(\\frac{\\Omega_R\\tau}{2}\\right)=\\frac{1}{2}\\left[1-\\cos(\\Omega_R\\tau)\\right]",[533,60509,60511,60675],{"className":60510,"ariaHidden":1089},[9480],[533,60512,60514,60517,60546,60549,60666,60669,60672],{"className":60513},[9484],[533,60515],{"className":60516,"style":29293},[9488],[533,60518,60520,60523],{"className":60519},[21970],[533,60521,14336],{"className":60522},[21970],[533,60524,60526],{"className":60525},[9502],[533,60527,60529],{"className":60528},[9506],[533,60530,60532],{"className":60531},[9511],[533,60533,60535],{"className":60534,"style":54372},[9515],[533,60536,60537,60540],{"style":54375},[533,60538],{"className":60539,"style":9524},[9523],[533,60541,60543],{"className":60542},[9528,9529,9530,9531],[533,60544,1140],{"className":60545},[9493,9531],[533,60547],{"className":60548,"style":10349},[10348],[533,60550,60552,60558,60660],{"className":60551},[21977],[533,60553,60555],{"className":60554,"style":21982},[10002,21981],[533,60556,615],{"className":60557},[21986,9530],[533,60559,60561,60564,60657],{"className":60560},[9493],[533,60562],{"className":60563},[10002,21997],[533,60565,60567],{"className":60566},[21845],[533,60568,60570,60649],{"className":60569},[9506,9507],[533,60571,60573,60646],{"className":60572},[9511],[533,60574,60576,60587,60595],{"className":60575,"style":54415},[9515],[533,60577,60578,60581],{"style":31623},[533,60579],{"className":60580,"style":22017},[9523],[533,60582,60584],{"className":60583},[9493],[533,60585,1140],{"className":60586},[9493],[533,60588,60589,60592],{"style":22063},[533,60590],{"className":60591,"style":22017},[9523],[533,60593],{"className":60594,"style":22071},[22070],[533,60596,60597,60600],{"style":31643},[533,60598],{"className":60599,"style":22017},[9523],[533,60601,60603,60643],{"className":60602},[9493],[533,60604,60606,60609],{"className":60605},[9493],[533,60607,9659],{"className":60608},[9493],[533,60610,60612],{"className":60611},[9502],[533,60613,60615,60635],{"className":60614},[9506,9507],[533,60616,60618,60632],{"className":60617},[9511],[533,60619,60621],{"className":60620,"style":9516},[9515],[533,60622,60623,60626],{"style":9617},[533,60624],{"className":60625,"style":9524},[9523],[533,60627,60629],{"className":60628},[9528,9529,9530,9531],[533,60630,29825],{"className":60631,"style":32780},[9493,9497,9531],[533,60633,1090],{"className":60634},[9546],[533,60636,60638],{"className":60637},[9511],[533,60639,60641],{"className":60640,"style":9553},[9515],[533,60642],{},[533,60644,49096],{"className":60645,"style":49168},[9493,9497],[533,60647,1090],{"className":60648},[9546],[533,60650,60652],{"className":60651},[9511],[533,60653,60655],{"className":60654,"style":31709},[9515],[533,60656],{},[533,60658],{"className":60659},[10101,21997],[533,60661,60663],{"className":60662,"style":21982},[10101,21981],[533,60664,2632],{"className":60665},[21986,9530],[533,60667],{"className":60668,"style":21908},[10348],[533,60670,554],{"className":60671},[21912],[533,60673],{"className":60674,"style":21908},[10348],[533,60676,60678,60681,60743,60746],{"className":60677},[9484],[533,60679],{"className":60680,"style":56178},[9488],[533,60682,60684,60687,60740],{"className":60683},[9493],[533,60685],{"className":60686},[10002,21997],[533,60688,60690],{"className":60689},[21845],[533,60691,60693,60732],{"className":60692},[9506,9507],[533,60694,60696,60729],{"className":60695},[9511],[533,60697,60699,60710,60718],{"className":60698,"style":55692},[9515],[533,60700,60701,60704],{"style":31623},[533,60702],{"className":60703,"style":22017},[9523],[533,60705,60707],{"className":60706},[9493],[533,60708,1140],{"className":60709},[9493],[533,60711,60712,60715],{"style":22063},[533,60713],{"className":60714,"style":22017},[9523],[533,60716],{"className":60717,"style":22071},[22070],[533,60719,60720,60723],{"style":31643},[533,60721],{"className":60722,"style":22017},[9523],[533,60724,60726],{"className":60725},[9493],[533,60727,1052],{"className":60728},[9493],[533,60730,1090],{"className":60731},[9546],[533,60733,60735],{"className":60734},[9511],[533,60736,60738],{"className":60737,"style":31709},[9515],[533,60739],{},[533,60741],{"className":60742},[10101,21997],[533,60744],{"className":60745,"style":10349},[10348],[533,60747,60749,60752,60755,60758,60761,60764,60767,60770,60810,60813,60816],{"className":60748},[21977],[533,60750,1522],{"className":60751,"style":21982},[10002,21981],[533,60753,1052],{"className":60754},[9493],[533,60756],{"className":60757,"style":22903},[10348],[533,60759,21843],{"className":60760},[22093],[533,60762],{"className":60763,"style":22903},[10348],[533,60765,14318],{"className":60766},[21970],[533,60768,615],{"className":60769},[10002],[533,60771,60773,60776],{"className":60772},[9493],[533,60774,9659],{"className":60775},[9493],[533,60777,60779],{"className":60778},[9502],[533,60780,60782,60802],{"className":60781},[9506,9507],[533,60783,60785,60799],{"className":60784},[9511],[533,60786,60788],{"className":60787,"style":9516},[9515],[533,60789,60790,60793],{"style":9617},[533,60791],{"className":60792,"style":9524},[9523],[533,60794,60796],{"className":60795},[9528,9529,9530,9531],[533,60797,29825],{"className":60798,"style":32780},[9493,9497,9531],[533,60800,1090],{"className":60801},[9546],[533,60803,60805],{"className":60804},[9511],[533,60806,60808],{"className":60807,"style":9553},[9515],[533,60809],{},[533,60811,49096],{"className":60812,"style":49168},[9493,9497],[533,60814,2632],{"className":60815},[10101],[533,60817,30516],{"className":60818,"style":21982},[10101,21981],[12,60820,60821],{},"shows that the dominant oscillatory spectral component appears at the generalized frequency",[533,60823,60825],{"className":60824},[29056],[533,60826,60828,60864],{"className":60827},[9443],[533,60829,60831],{"className":60830},[9447],[9174,60832,60833],{"xmlns":9450,"display":29065},[9452,60834,60835,60861],{},[9455,60836,60837,60843,60845,60859],{},[9458,60838,60839,60841],{},[9461,60840,50359],{},[9461,60842,29825],{},[9958,60844,554],{},[21845,60846,60847,60853],{},[9458,60848,60849,60851],{},[9461,60850,9659],{"mathvariant":9573},[9461,60852,29825],{},[9455,60854,60855,60857],{},[10856,60856,1140],{},[9461,60858,22502],{},[9461,60860,114],{"mathvariant":9573},[9473,60862,60863],{"encoding":9475},"\\nu_R=\\frac{\\Omega_R}{2\\pi}.",[533,60865,60867,60922],{"className":60866,"ariaHidden":1089},[9480],[533,60868,60870,60873,60913,60916,60919],{"className":60869},[9484],[533,60871],{"className":60872,"style":9489},[9488],[533,60874,60876,60879],{"className":60875},[9493],[533,60877,50359],{"className":60878,"style":50380},[9493,9497],[533,60880,60882],{"className":60881},[9502],[533,60883,60885,60905],{"className":60884},[9506,9507],[533,60886,60888,60902],{"className":60887},[9511],[533,60889,60891],{"className":60890,"style":9516},[9515],[533,60892,60893,60896],{"style":50395},[533,60894],{"className":60895,"style":9524},[9523],[533,60897,60899],{"className":60898},[9528,9529,9530,9531],[533,60900,29825],{"className":60901,"style":32780},[9493,9497,9531],[533,60903,1090],{"className":60904},[9546],[533,60906,60908],{"className":60907},[9511],[533,60909,60911],{"className":60910,"style":9553},[9515],[533,60912],{},[533,60914],{"className":60915,"style":21908},[10348],[533,60917,554],{"className":60918},[21912],[533,60920],{"className":60921,"style":21908},[10348],[533,60923,60925,60928,61030],{"className":60924},[9484],[533,60926],{"className":60927,"style":55810},[9488],[533,60929,60931,60934,61027],{"className":60930},[9493],[533,60932],{"className":60933},[10002,21997],[533,60935,60937],{"className":60936},[21845],[533,60938,60940,61019],{"className":60939},[9506,9507],[533,60941,60943,61016],{"className":60942},[9511],[533,60944,60946,60960,60968],{"className":60945,"style":54415},[9515],[533,60947,60948,60951],{"style":31623},[533,60949],{"className":60950,"style":22017},[9523],[533,60952,60954,60957],{"className":60953},[9493],[533,60955,1140],{"className":60956},[9493],[533,60958,22502],{"className":60959,"style":9498},[9493,9497],[533,60961,60962,60965],{"style":22063},[533,60963],{"className":60964,"style":22017},[9523],[533,60966],{"className":60967,"style":22071},[22070],[533,60969,60970,60973],{"style":31643},[533,60971],{"className":60972,"style":22017},[9523],[533,60974,60976],{"className":60975},[9493],[533,60977,60979,60982],{"className":60978},[9493],[533,60980,9659],{"className":60981},[9493],[533,60983,60985],{"className":60984},[9502],[533,60986,60988,61008],{"className":60987},[9506,9507],[533,60989,60991,61005],{"className":60990},[9511],[533,60992,60994],{"className":60993,"style":9516},[9515],[533,60995,60996,60999],{"style":9617},[533,60997],{"className":60998,"style":9524},[9523],[533,61000,61002],{"className":61001},[9528,9529,9530,9531],[533,61003,29825],{"className":61004,"style":32780},[9493,9497,9531],[533,61006,1090],{"className":61007},[9546],[533,61009,61011],{"className":61010},[9511],[533,61012,61014],{"className":61013,"style":9553},[9515],[533,61015],{},[533,61017,1090],{"className":61018},[9546],[533,61020,61022],{"className":61021},[9511],[533,61023,61025],{"className":61024,"style":31709},[9515],[533,61026],{},[533,61028],{"className":61029},[10101,21997],[533,61031,114],{"className":61032},[9493],[12,61034,61035],{},"The computational workflow subtracts the mean signal along the pulse-duration axis, applies a Hann window to reduce spectral leakage, uses zero-padding to smooth the displayed Fourier grid, and overlays the exact generalized Rabi ridge on the Fourier heatmap. Zero-padding improves visual interpolation of the plotted spectrum, although the physical frequency resolution remains set by the sampled temporal window.",[25,61037,61039],{"id":61038},"computational-methodology","Computational Methodology",[12,61041,61042,61043,61071,61072,61100,61101,1576,61129,61157,61158,61292,61293,61512],{},"The notebook uses a deterministic closed-form workflow, so it does not require numerical time stepping of the Schrödinger equation. It defines a drive-frequency grid ",[533,61044,61046,61059],{"className":61045},[9443],[533,61047,61049],{"className":61048},[9447],[9174,61050,61051],{"xmlns":9450},[9452,61052,61053,61057],{},[9455,61054,61055],{},[9461,61056,618],{},[9473,61058,618],{"encoding":9475},[533,61060,61062],{"className":61061,"ariaHidden":1089},[9480],[533,61063,61065,61068],{"className":61064},[9484],[533,61066],{"className":61067,"style":49203},[9488],[533,61069,618],{"className":61070,"style":22860},[9493,9497]," in GHz and a pulse-duration grid ",[533,61073,61075,61088],{"className":61074},[9443],[533,61076,61078],{"className":61077},[9447],[9174,61079,61080],{"xmlns":9450},[9452,61081,61082,61086],{},[9455,61083,61084],{},[9461,61085,49096],{},[9473,61087,49224],{"encoding":9475},[533,61089,61091],{"className":61090,"ariaHidden":1089},[9480],[533,61092,61094,61097],{"className":61093},[9484],[533,61095],{"className":61096,"style":32975},[9488],[533,61098,49096],{"className":61099,"style":49168},[9493,9497]," in ns, then converts both to SI units. From a dense two-dimensional mesh over ",[533,61102,61104,61117],{"className":61103},[9443],[533,61105,61107],{"className":61106},[9447],[9174,61108,61109],{"xmlns":9450},[9452,61110,61111,61115],{},[9455,61112,61113],{},[9461,61114,618],{},[9473,61116,618],{"encoding":9475},[533,61118,61120],{"className":61119,"ariaHidden":1089},[9480],[533,61121,61123,61126],{"className":61122},[9484],[533,61124],{"className":61125,"style":49203},[9488],[533,61127,618],{"className":61128,"style":22860},[9493,9497],[533,61130,61132,61145],{"className":61131},[9443],[533,61133,61135],{"className":61134},[9447],[9174,61136,61137],{"xmlns":9450},[9452,61138,61139,61143],{},[9455,61140,61141],{},[9461,61142,49096],{},[9473,61144,49224],{"encoding":9475},[533,61146,61148],{"className":61147,"ariaHidden":1089},[9480],[533,61149,61151,61154],{"className":61150},[9484],[533,61152],{"className":61153,"style":32975},[9488],[533,61155,49096],{"className":61156,"style":49168},[9493,9497],", the workflow computes the detuning ",[533,61159,61161,61195],{"className":61160},[9443],[533,61162,61164],{"className":61163},[9447],[9174,61165,61166],{"xmlns":9450},[9452,61167,61168,61192],{},[9455,61169,61170,61172,61174,61176,61178,61180,61182,61184,61190],{},[9461,61171,9574],{"mathvariant":9573},[9958,61173,554],{},[10856,61175,1140],{},[9461,61177,22502],{},[9958,61179,615],{"stretchy":9960},[9461,61181,618],{},[9958,61183,21843],{},[9458,61185,61186,61188],{},[9461,61187,618],{},[10856,61189,1049],{},[9958,61191,2632],{"stretchy":9960},[9473,61193,61194],{"encoding":9475},"\\Delta=2\\pi(f-f_0)",[533,61196,61198,61216,61243],{"className":61197,"ariaHidden":1089},[9480],[533,61199,61201,61204,61207,61210,61213],{"className":61200},[9484],[533,61202],{"className":61203,"style":9672},[9488],[533,61205,9574],{"className":61206},[9493],[533,61208],{"className":61209,"style":21908},[10348],[533,61211,554],{"className":61212},[21912],[533,61214],{"className":61215,"style":21908},[10348],[533,61217,61219,61222,61225,61228,61231,61234,61237,61240],{"className":61218},[9484],[533,61220],{"className":61221,"style":9998},[9488],[533,61223,1140],{"className":61224},[9493],[533,61226,22502],{"className":61227,"style":9498},[9493,9497],[533,61229,615],{"className":61230},[10002],[533,61232,618],{"className":61233,"style":22860},[9493,9497],[533,61235],{"className":61236,"style":22903},[10348],[533,61238,21843],{"className":61239},[22093],[533,61241],{"className":61242,"style":22903},[10348],[533,61244,61246,61249,61289],{"className":61245},[9484],[533,61247],{"className":61248,"style":9998},[9488],[533,61250,61252,61255],{"className":61251},[9493],[533,61253,618],{"className":61254,"style":22860},[9493,9497],[533,61256,61258],{"className":61257},[9502],[533,61259,61261,61281],{"className":61260},[9506,9507],[533,61262,61264,61278],{"className":61263},[9511],[533,61265,61267],{"className":61266,"style":21941},[9515],[533,61268,61269,61272],{"style":22876},[533,61270],{"className":61271,"style":9524},[9523],[533,61273,61275],{"className":61274},[9528,9529,9530,9531],[533,61276,1049],{"className":61277},[9493,9531],[533,61279,1090],{"className":61280},[9546],[533,61282,61284],{"className":61283},[9511],[533,61285,61287],{"className":61286,"style":9553},[9515],[533,61288],{},[533,61290,2632],{"className":61291},[10101],", evaluates the generalized Rabi angular frequency ",[533,61294,61296,61333],{"className":61295},[9443],[533,61297,61299],{"className":61298},[9447],[9174,61300,61301],{"xmlns":9450},[9452,61302,61303,61331],{},[9455,61304,61305,61311,61313],{},[9458,61306,61307,61309],{},[9461,61308,9659],{"mathvariant":9573},[9461,61310,29825],{},[9958,61312,554],{},[30893,61314,61315],{},[9455,61316,61317,61323,61325],{},[21862,61318,61319,61321],{},[9461,61320,9659],{"mathvariant":9573},[10856,61322,1140],{},[9958,61324,6350],{},[21862,61326,61327,61329],{},[9461,61328,9574],{"mathvariant":9573},[10856,61330,1140],{},[9473,61332,54557],{"encoding":9475},[533,61334,61336,61391],{"className":61335,"ariaHidden":1089},[9480],[533,61337,61339,61342,61382,61385,61388],{"className":61338},[9484],[533,61340],{"className":61341,"style":9595},[9488],[533,61343,61345,61348],{"className":61344},[9493],[533,61346,9659],{"className":61347},[9493],[533,61349,61351],{"className":61350},[9502],[533,61352,61354,61374],{"className":61353},[9506,9507],[533,61355,61357,61371],{"className":61356},[9511],[533,61358,61360],{"className":61359,"style":9516},[9515],[533,61361,61362,61365],{"style":9617},[533,61363],{"className":61364,"style":9524},[9523],[533,61366,61368],{"className":61367},[9528,9529,9530,9531],[533,61369,29825],{"className":61370,"style":32780},[9493,9497,9531],[533,61372,1090],{"className":61373},[9546],[533,61375,61377],{"className":61376},[9511],[533,61378,61380],{"className":61379,"style":9553},[9515],[533,61381],{},[533,61383],{"className":61384,"style":21908},[10348],[533,61386,554],{"className":61387},[21912],[533,61389],{"className":61390,"style":21908},[10348],[533,61392,61394,61398],{"className":61393},[9484],[533,61395],{"className":61396,"style":61397},[9488],"height:1.04em;vertical-align:-0.1266em;",[533,61399,61401],{"className":61400},[9493,2262],[533,61402,61404,61503],{"className":61403},[9506,9507],[533,61405,61407,61500],{"className":61406},[9511],[533,61408,61411,61487],{"className":61409,"style":61410},[9515],"height:0.9134em;",[533,61412,61414,61417],{"className":61413,"style":31077},[31076],[533,61415],{"className":61416,"style":22017},[9523],[533,61418,61420,61449,61452,61455,61458],{"className":61419,"style":31084},[9493],[533,61421,61423,61426],{"className":61422},[9493],[533,61424,9659],{"className":61425},[9493],[533,61427,61429],{"className":61428},[9502],[533,61430,61432],{"className":61431},[9506],[533,61433,61435],{"className":61434},[9511],[533,61436,61438],{"className":61437,"style":54666},[9515],[533,61439,61440,61443],{"style":54669},[533,61441],{"className":61442,"style":9524},[9523],[533,61444,61446],{"className":61445},[9528,9529,9530,9531],[533,61447,1140],{"className":61448},[9493,9531],[533,61450],{"className":61451,"style":22903},[10348],[533,61453,6350],{"className":61454},[22093],[533,61456],{"className":61457,"style":22903},[10348],[533,61459,61461,61464],{"className":61460},[9493],[533,61462,9574],{"className":61463},[9493],[533,61465,61467],{"className":61466},[9502],[533,61468,61470],{"className":61469},[9506],[533,61471,61473],{"className":61472},[9511],[533,61474,61476],{"className":61475,"style":54666},[9515],[533,61477,61478,61481],{"style":54669},[533,61479],{"className":61480,"style":9524},[9523],[533,61482,61484],{"className":61483},[9528,9529,9530,9531],[533,61485,1140],{"className":61486},[9493,9531],[533,61488,61490,61493],{"style":61489},"top:-2.8734em;",[533,61491],{"className":61492,"style":22017},[9523],[533,61494,61496],{"className":61495,"style":31098},[31097],[31100,61497,61498],{"xmlns":31102,"width":31103,"height":31104,"viewBox":31105,"preserveAspectRatio":31106},[31108,61499],{"d":31110},[533,61501,1090],{"className":61502},[9546],[533,61504,61506],{"className":61505},[9511],[533,61507,61510],{"className":61508,"style":61509},[9515],"height:0.1266em;",[533,61511],{},", and calculates the analytic excited-state probability",[533,61514,61516],{"className":61515},[29056],[533,61517,61519,61597],{"className":61518},[9443],[533,61520,61522],{"className":61521},[9447],[9174,61523,61524],{"xmlns":9450,"display":29065},[9452,61525,61526,61594],{},[9455,61527,61528,61534,61536,61538,61540,61542,61544,61546,61562,61572,61592],{},[9458,61529,61530,61532],{},[9461,61531,49085],{},[9461,61533,629],{},[9958,61535,615],{"stretchy":9960},[9461,61537,618],{},[9958,61539,2464],{"separator":1089},[9461,61541,49096],{},[9958,61543,2632],{"stretchy":9960},[9958,61545,554],{},[21845,61547,61548,61554],{},[21862,61549,61550,61552],{},[9461,61551,9659],{"mathvariant":9573},[10856,61553,1140],{},[37177,61555,61556,61558,61560],{},[9461,61557,9659],{"mathvariant":9573},[9461,61559,29825],{},[10856,61561,1140],{},[21862,61563,61564,61570],{},[9455,61565,61566,61568],{},[9461,61567,14336],{},[9958,61569,21836],{},[10856,61571,1140],{},[9455,61573,61574,61576,61590],{},[9958,61575,615],{"fence":1089},[21845,61577,61578,61588],{},[9455,61579,61580,61586],{},[9458,61581,61582,61584],{},[9461,61583,9659],{"mathvariant":9573},[9461,61585,29825],{},[9461,61587,49096],{},[10856,61589,1140],{},[9958,61591,2632],{"fence":1089},[9461,61593,114],{"mathvariant":9573},[9473,61595,61596],{"encoding":9475},"P_e(f,\\tau)=\\frac{\\Omega^2}{\\Omega_R^2}\\sin^2\\left(\\frac{\\Omega_R\\tau}{2}\\right).",[533,61598,61600,61673],{"className":61599,"ariaHidden":1089},[9480],[533,61601,61603,61606,61646,61649,61652,61655,61658,61661,61664,61667,61670],{"className":61602},[9484],[533,61604],{"className":61605,"style":9998},[9488],[533,61607,61609,61612],{"className":61608},[9493],[533,61610,49085],{"className":61611,"style":26405},[9493,9497],[533,61613,61615],{"className":61614},[9502],[533,61616,61618,61638],{"className":61617},[9506,9507],[533,61619,61621,61635],{"className":61620},[9511],[533,61622,61624],{"className":61623,"style":22873},[9515],[533,61625,61626,61629],{"style":31397},[533,61627],{"className":61628,"style":9524},[9523],[533,61630,61632],{"className":61631},[9528,9529,9530,9531],[533,61633,629],{"className":61634},[9493,9497,9531],[533,61636,1090],{"className":61637},[9546],[533,61639,61641],{"className":61640},[9511],[533,61642,61644],{"className":61643,"style":9553},[9515],[533,61645],{},[533,61647,615],{"className":61648},[10002],[533,61650,618],{"className":61651,"style":22860},[9493,9497],[533,61653,2464],{"className":61654},[10344],[533,61656],{"className":61657,"style":10349},[10348],[533,61659,49096],{"className":61660,"style":49168},[9493,9497],[533,61662,2632],{"className":61663},[10101],[533,61665],{"className":61666,"style":21908},[10348],[533,61668,554],{"className":61669},[21912],[533,61671],{"className":61672,"style":21908},[10348],[533,61674,61676,61679,61815,61818,61847,61850,61967,61970],{"className":61675},[9484],[533,61677],{"className":61678,"style":54208},[9488],[533,61680,61682,61685,61812],{"className":61681},[9493],[533,61683],{"className":61684},[10002,21997],[533,61686,61688],{"className":61687},[21845],[533,61689,61691,61804],{"className":61690},[9506,9507],[533,61692,61694,61801],{"className":61693},[9511],[533,61695,61697,61756,61764],{"className":61696,"style":54227},[9515],[533,61698,61699,61702],{"style":31623},[533,61700],{"className":61701,"style":22017},[9523],[533,61703,61705],{"className":61704},[9493],[533,61706,61708,61711],{"className":61707},[9493],[533,61709,9659],{"className":61710},[9493],[533,61712,61714],{"className":61713},[9502],[533,61715,61717,61748],{"className":61716},[9506,9507],[533,61718,61720,61745],{"className":61719},[9511],[533,61721,61723,61734],{"className":61722,"style":54254},[9515],[533,61724,61725,61728],{"style":54257},[533,61726],{"className":61727,"style":9524},[9523],[533,61729,61731],{"className":61730},[9528,9529,9530,9531],[533,61732,29825],{"className":61733,"style":32780},[9493,9497,9531],[533,61735,61736,61739],{"style":54269},[533,61737],{"className":61738,"style":9524},[9523],[533,61740,61742],{"className":61741},[9528,9529,9530,9531],[533,61743,1140],{"className":61744},[9493,9531],[533,61746,1090],{"className":61747},[9546],[533,61749,61751],{"className":61750},[9511],[533,61752,61754],{"className":61753,"style":54288},[9515],[533,61755],{},[533,61757,61758,61761],{"style":22063},[533,61759],{"className":61760,"style":22017},[9523],[533,61762],{"className":61763,"style":22071},[22070],[533,61765,61766,61769],{"style":31643},[533,61767],{"className":61768,"style":22017},[9523],[533,61770,61772],{"className":61771},[9493],[533,61773,61775,61778],{"className":61774},[9493],[533,61776,9659],{"className":61777},[9493],[533,61779,61781],{"className":61780},[9502],[533,61782,61784],{"className":61783},[9506],[533,61785,61787],{"className":61786},[9511],[533,61788,61790],{"className":61789,"style":29860},[9515],[533,61791,61792,61795],{"style":24194},[533,61793],{"className":61794,"style":9524},[9523],[533,61796,61798],{"className":61797},[9528,9529,9530,9531],[533,61799,1140],{"className":61800},[9493,9531],[533,61802,1090],{"className":61803},[9546],[533,61805,61807],{"className":61806},[9511],[533,61808,61810],{"className":61809,"style":54345},[9515],[533,61811],{},[533,61813],{"className":61814},[10101,21997],[533,61816],{"className":61817,"style":10349},[10348],[533,61819,61821,61824],{"className":61820},[21970],[533,61822,14336],{"className":61823},[21970],[533,61825,61827],{"className":61826},[9502],[533,61828,61830],{"className":61829},[9506],[533,61831,61833],{"className":61832},[9511],[533,61834,61836],{"className":61835,"style":54372},[9515],[533,61837,61838,61841],{"style":54375},[533,61839],{"className":61840,"style":9524},[9523],[533,61842,61844],{"className":61843},[9528,9529,9530,9531],[533,61845,1140],{"className":61846},[9493,9531],[533,61848],{"className":61849,"style":10349},[10348],[533,61851,61853,61859,61961],{"className":61852},[21977],[533,61854,61856],{"className":61855,"style":21982},[10002,21981],[533,61857,615],{"className":61858},[21986,9530],[533,61860,61862,61865,61958],{"className":61861},[9493],[533,61863],{"className":61864},[10002,21997],[533,61866,61868],{"className":61867},[21845],[533,61869,61871,61950],{"className":61870},[9506,9507],[533,61872,61874,61947],{"className":61873},[9511],[533,61875,61877,61888,61896],{"className":61876,"style":54415},[9515],[533,61878,61879,61882],{"style":31623},[533,61880],{"className":61881,"style":22017},[9523],[533,61883,61885],{"className":61884},[9493],[533,61886,1140],{"className":61887},[9493],[533,61889,61890,61893],{"style":22063},[533,61891],{"className":61892,"style":22017},[9523],[533,61894],{"className":61895,"style":22071},[22070],[533,61897,61898,61901],{"style":31643},[533,61899],{"className":61900,"style":22017},[9523],[533,61902,61904,61944],{"className":61903},[9493],[533,61905,61907,61910],{"className":61906},[9493],[533,61908,9659],{"className":61909},[9493],[533,61911,61913],{"className":61912},[9502],[533,61914,61916,61936],{"className":61915},[9506,9507],[533,61917,61919,61933],{"className":61918},[9511],[533,61920,61922],{"className":61921,"style":9516},[9515],[533,61923,61924,61927],{"style":9617},[533,61925],{"className":61926,"style":9524},[9523],[533,61928,61930],{"className":61929},[9528,9529,9530,9531],[533,61931,29825],{"className":61932,"style":32780},[9493,9497,9531],[533,61934,1090],{"className":61935},[9546],[533,61937,61939],{"className":61938},[9511],[533,61940,61942],{"className":61941,"style":9553},[9515],[533,61943],{},[533,61945,49096],{"className":61946,"style":49168},[9493,9497],[533,61948,1090],{"className":61949},[9546],[533,61951,61953],{"className":61952},[9511],[533,61954,61956],{"className":61955,"style":31709},[9515],[533,61957],{},[533,61959],{"className":61960},[10101,21997],[533,61962,61964],{"className":61963,"style":21982},[10101,21981],[533,61965,2632],{"className":61966},[21986,9530],[533,61968],{"className":61969,"style":10349},[10348],[533,61971,114],{"className":61972},[9493],[12,61974,61975,61976,62091],{},"The routine optionally applies the damping envelope ",[533,61977,61979,62013],{"className":61978},[9443],[533,61980,61982],{"className":61981},[9447],[9174,61983,61984],{"xmlns":9450},[9452,61985,61986,62010],{},[9455,61987,61988,61990,61992,61994,61996,61998,62000,62008],{},[9461,61989,16247],{},[9958,61991,21836],{},[9958,61993,615],{"stretchy":9960},[9958,61995,21843],{},[9461,61997,49096],{},[9461,61999,2941],{"mathvariant":9573},[37177,62001,62002,62004,62006],{},[9461,62003,6090],{},[10856,62005,1140],{},[9958,62007,50623],{},[9958,62009,2632],{"stretchy":9960},[9473,62011,62012],{"encoding":9475},"\\exp(-\\tau\u002FT_2^\\ast)",[533,62014,62016],{"className":62015,"ariaHidden":1089},[9480],[533,62017,62019,62022,62025,62028,62031,62034,62037,62088],{"className":62018},[9484],[533,62020],{"className":62021,"style":9998},[9488],[533,62023,16247],{"className":62024},[21970],[533,62026,615],{"className":62027},[10002],[533,62029,21843],{"className":62030},[9493],[533,62032,49096],{"className":62033,"style":49168},[9493,9497],[533,62035,2941],{"className":62036},[9493],[533,62038,62040,62043],{"className":62039},[9493],[533,62041,6090],{"className":62042,"style":26405},[9493,9497],[533,62044,62046],{"className":62045},[9502],[533,62047,62049,62080],{"className":62048},[9506,9507],[533,62050,62052,62077],{"className":62051},[9511],[533,62053,62055,62066],{"className":62054,"style":50655},[9515],[533,62056,62057,62060],{"style":50658},[533,62058],{"className":62059,"style":9524},[9523],[533,62061,62063],{"className":62062},[9528,9529,9530,9531],[533,62064,1140],{"className":62065},[9493,9531],[533,62067,62068,62071],{"style":24194},[533,62069],{"className":62070,"style":9524},[9523],[533,62072,62074],{"className":62073},[9528,9529,9530,9531],[533,62075,50623],{"className":62076},[22093,9531],[533,62078,1090],{"className":62079},[9546],[533,62081,62083],{"className":62082},[9511],[533,62084,62086],{"className":62085,"style":50688},[9515],[533,62087],{},[533,62089,2632],{"className":62090},[10101]," and clips the result to the physical interval",[533,62093,62095],{"className":62094},[29056],[533,62096,62098,62125],{"className":62097},[9443],[533,62099,62101],{"className":62100},[9447],[9174,62102,62103],{"xmlns":9450,"display":29065},[9452,62104,62105,62122],{},[9455,62106,62107,62109,62112,62118,62120],{},[10856,62108,1049],{},[9958,62110,62111],{},"≤",[9458,62113,62114,62116],{},[9461,62115,49085],{},[9461,62117,629],{},[9958,62119,62111],{},[10856,62121,51728],{},[9473,62123,62124],{"encoding":9475},"0\\le P_e\\le 1.",[533,62126,62128,62147,62202],{"className":62127,"ariaHidden":1089},[9480],[533,62129,62131,62135,62138,62141,62144],{"className":62130},[9484],[533,62132],{"className":62133,"style":62134},[9488],"height:0.7804em;vertical-align:-0.136em;",[533,62136,1049],{"className":62137},[9493],[533,62139],{"className":62140,"style":21908},[10348],[533,62142,62111],{"className":62143},[21912],[533,62145],{"className":62146,"style":21908},[10348],[533,62148,62150,62153,62193,62196,62199],{"className":62149},[9484],[533,62151],{"className":62152,"style":9595},[9488],[533,62154,62156,62159],{"className":62155},[9493],[533,62157,49085],{"className":62158,"style":26405},[9493,9497],[533,62160,62162],{"className":62161},[9502],[533,62163,62165,62185],{"className":62164},[9506,9507],[533,62166,62168,62182],{"className":62167},[9511],[533,62169,62171],{"className":62170,"style":22873},[9515],[533,62172,62173,62176],{"style":31397},[533,62174],{"className":62175,"style":9524},[9523],[533,62177,62179],{"className":62178},[9528,9529,9530,9531],[533,62180,629],{"className":62181},[9493,9497,9531],[533,62183,1090],{"className":62184},[9546],[533,62186,62188],{"className":62187},[9511],[533,62189,62191],{"className":62190,"style":9553},[9515],[533,62192],{},[533,62194],{"className":62195,"style":21908},[10348],[533,62197,62111],{"className":62198},[21912],[533,62200],{"className":62201,"style":21908},[10348],[533,62203,62205,62208],{"className":62204},[9484],[533,62206],{"className":62207,"style":30480},[9488],[533,62209,51728],{"className":62210},[9493],[12,62212,62213],{},"Finally, the output is rendered as heatmaps, three-dimensional surfaces, one-dimensional slices, and Fourier-domain spectra. Standard scientific Python libraries provide the numerical arrays, visualization routines, and optional interactive rendering tools.",[25,62215,62217],{"id":62216},"graphical-interpretation","Graphical Interpretation",[12,62219,4657,62220,62318],{},[533,62221,62223,62251],{"className":62222},[9443],[533,62224,62226],{"className":62225},[9447],[9174,62227,62228],{"xmlns":9450},[9452,62229,62230,62248],{},[9455,62231,62232,62238,62240,62242,62244,62246],{},[9458,62233,62234,62236],{},[9461,62235,49085],{},[9461,62237,629],{},[9958,62239,615],{"stretchy":9960},[9461,62241,618],{},[9958,62243,2464],{"separator":1089},[9461,62245,49096],{},[9958,62247,2632],{"stretchy":9960},[9473,62249,62250],{"encoding":9475},"P_e(f,\\tau)",[533,62252,62254],{"className":62253,"ariaHidden":1089},[9480],[533,62255,62257,62260,62300,62303,62306,62309,62312,62315],{"className":62256},[9484],[533,62258],{"className":62259,"style":9998},[9488],[533,62261,62263,62266],{"className":62262},[9493],[533,62264,49085],{"className":62265,"style":26405},[9493,9497],[533,62267,62269],{"className":62268},[9502],[533,62270,62272,62292],{"className":62271},[9506,9507],[533,62273,62275,62289],{"className":62274},[9511],[533,62276,62278],{"className":62277,"style":22873},[9515],[533,62279,62280,62283],{"style":31397},[533,62281],{"className":62282,"style":9524},[9523],[533,62284,62286],{"className":62285},[9528,9529,9530,9531],[533,62287,629],{"className":62288},[9493,9497,9531],[533,62290,1090],{"className":62291},[9546],[533,62293,62295],{"className":62294},[9511],[533,62296,62298],{"className":62297,"style":9553},[9515],[533,62299],{},[533,62301,615],{"className":62302},[10002],[533,62304,618],{"className":62305,"style":22860},[9493,9497],[533,62307,2464],{"className":62308},[10344],[533,62310],{"className":62311,"style":10349},[10348],[533,62313,49096],{"className":62314,"style":49168},[9493,9497],[533,62316,2632],{"className":62317},[10101]," heatmap shows the predicted probability of detecting the qubit in the excited state after applying a control pulse. Its horizontal axis gives the applied drive frequency. The vertical axis gives the pulse duration. Brighter regions indicate higher excited-state probability.",[12,62320,62321],{},"The resonant interaction region appears near",[533,62323,62325],{"className":62324},[29056],[533,62326,62328,62351],{"className":62327},[9443],[533,62329,62331],{"className":62330},[9447],[9174,62332,62333],{"xmlns":9450,"display":29065},[9452,62334,62335,62349],{},[9455,62336,62337,62339,62341,62347],{},[9461,62338,618],{},[9958,62340,554],{},[9458,62342,62343,62345],{},[9461,62344,618],{},[10856,62346,1049],{},[9461,62348,114],{"mathvariant":9573},[9473,62350,51425],{"encoding":9475},[533,62352,62354,62372],{"className":62353,"ariaHidden":1089},[9480],[533,62355,62357,62360,62363,62366,62369],{"className":62356},[9484],[533,62358],{"className":62359,"style":49203},[9488],[533,62361,618],{"className":62362,"style":22860},[9493,9497],[533,62364],{"className":62365,"style":21908},[10348],[533,62367,554],{"className":62368},[21912],[533,62370],{"className":62371,"style":21908},[10348],[533,62373,62375,62378,62418],{"className":62374},[9484],[533,62376],{"className":62377,"style":49203},[9488],[533,62379,62381,62384],{"className":62380},[9493],[533,62382,618],{"className":62383,"style":22860},[9493,9497],[533,62385,62387],{"className":62386},[9502],[533,62388,62390,62410],{"className":62389},[9506,9507],[533,62391,62393,62407],{"className":62392},[9511],[533,62394,62396],{"className":62395,"style":21941},[9515],[533,62397,62398,62401],{"style":22876},[533,62399],{"className":62400,"style":9524},[9523],[533,62402,62404],{"className":62403},[9528,9529,9530,9531],[533,62405,1049],{"className":62406},[9493,9531],[533,62408,1090],{"className":62409},[9546],[533,62411,62413],{"className":62412},[9511],[533,62414,62416],{"className":62415,"style":9553},[9515],[533,62417],{},[533,62419,114],{"className":62420},[9493],[12,62422,62423,62424,62503],{},"At resonance, contrast is maximal and the pulse duration alone sets the rotation angle. With the default drive strength ",[533,62425,62427,62461],{"className":62426},[9443],[533,62428,62430],{"className":62429},[9447],[9174,62431,62432],{"xmlns":9450},[9452,62433,62434,62458],{},[9455,62435,62436,62438,62440,62442,62444,62446,62448,62450],{},[9461,62437,9659],{"mathvariant":9573},[9461,62439,2941],{"mathvariant":9573},[10856,62441,1140],{},[9461,62443,22502],{},[9958,62445,554],{},[10856,62447,17468],{},[29972,62449,29974],{},[9455,62451,62452,62454,62456],{},[9461,62453,55791],{"mathvariant":9573},[9461,62455,16132],{"mathvariant":9573},[9461,62457,1632],{"mathvariant":9573},[9473,62459,62460],{"encoding":9475},"\\Omega\u002F2\\pi=20~\\mathrm{MHz}",[533,62462,62464,62485],{"className":62463,"ariaHidden":1089},[9480],[533,62465,62467,62470,62473,62476,62479,62482],{"className":62466},[9484],[533,62468],{"className":62469,"style":9998},[9488],[533,62471,50105],{"className":62472},[9493],[533,62474,22502],{"className":62475,"style":9498},[9493,9497],[533,62477],{"className":62478,"style":21908},[10348],[533,62480,554],{"className":62481},[21912],[533,62483],{"className":62484,"style":21908},[10348],[533,62486,62488,62491,62494,62497],{"className":62487},[9484],[533,62489],{"className":62490,"style":9672},[9488],[533,62492,17468],{"className":62493},[9493],[533,62495,29974],{"className":62496},[10348,51276],[533,62498,62500],{"className":62499},[9493],[533,62501,13043],{"className":62502},[9493,30229],", the ideal resonant maxima appear near",[533,62505,62507],{"className":62506},[29056],[533,62508,62510,62583],{"className":62509},[9443],[533,62511,62513],{"className":62512},[9447],[9174,62514,62515],{"xmlns":9450,"display":29065},[9452,62516,62517,62580],{},[9455,62518,62519,62521,62523,62525,62527,62533,62535,62537,62540,62542,62548,62550,62552,62555,62557,62563,62565,62567,62570,62572,62578],{},[9461,62520,49096],{},[9958,62522,554],{},[10856,62524,7565],{},[29972,62526,29974],{},[9455,62528,62529,62531],{},[9461,62530,30647],{"mathvariant":9573},[9461,62532,55971],{"mathvariant":9573},[9958,62534,2464],{"separator":1089},[29972,62536,29974],{},[10856,62538,62539],{},"75",[29972,62541,29974],{},[9455,62543,62544,62546],{},[9461,62545,30647],{"mathvariant":9573},[9461,62547,55971],{"mathvariant":9573},[9958,62549,2464],{"separator":1089},[29972,62551,29974],{},[10856,62553,62554],{},"125",[29972,62556,29974],{},[9455,62558,62559,62561],{},[9461,62560,30647],{"mathvariant":9573},[9461,62562,55971],{"mathvariant":9573},[9958,62564,2464],{"separator":1089},[29972,62566,29974],{},[10856,62568,62569],{},"175",[29972,62571,29974],{},[9455,62573,62574,62576],{},[9461,62575,30647],{"mathvariant":9573},[9461,62577,55971],{"mathvariant":9573},[9958,62579,2464],{"separator":1089},[9473,62581,62582],{"encoding":9475},"\\tau=25~\\mathrm{ns},\\ 75~\\mathrm{ns},\\ 125~\\mathrm{ns},\\ 175~\\mathrm{ns},",[533,62584,62586,62604],{"className":62585,"ariaHidden":1089},[9480],[533,62587,62589,62592,62595,62598,62601],{"className":62588},[9484],[533,62590],{"className":62591,"style":32975},[9488],[533,62593,49096],{"className":62594,"style":49168},[9493,9497],[533,62596],{"className":62597,"style":21908},[10348],[533,62599,554],{"className":62600},[21912],[533,62602],{"className":62603,"style":21908},[10348],[533,62605,62607,62611,62614,62617,62623,62626,62629,62632,62635,62638,62644,62647,62650,62653,62656,62659,62665,62668,62671,62674,62677,62680,62686],{"className":62606},[9484],[533,62608],{"className":62609,"style":62610},[9488],"height:0.8389em;vertical-align:-0.1944em;",[533,62612,7565],{"className":62613},[9493],[533,62615,29974],{"className":62616},[10348,51276],[533,62618,62620],{"className":62619},[9493],[533,62621,56053],{"className":62622},[9493,30229],[533,62624,2464],{"className":62625},[10344],[533,62627,29974],{"className":62628},[10348],[533,62630],{"className":62631,"style":10349},[10348],[533,62633,62539],{"className":62634},[9493],[533,62636,29974],{"className":62637},[10348,51276],[533,62639,62641],{"className":62640},[9493],[533,62642,56053],{"className":62643},[9493,30229],[533,62645,2464],{"className":62646},[10344],[533,62648,29974],{"className":62649},[10348],[533,62651],{"className":62652,"style":10349},[10348],[533,62654,62554],{"className":62655},[9493],[533,62657,29974],{"className":62658},[10348,51276],[533,62660,62662],{"className":62661},[9493],[533,62663,56053],{"className":62664},[9493,30229],[533,62666,2464],{"className":62667},[10344],[533,62669,29974],{"className":62670},[10348],[533,62672],{"className":62673,"style":10349},[10348],[533,62675,62569],{"className":62676},[9493],[533,62678,29974],{"className":62679},[10348,51276],[533,62681,62683],{"className":62682},[9493],[533,62684,56053],{"className":62685},[9493,30229],[533,62687,2464],{"className":62688},[10344],[12,62690,62691],{},"before the optional phenomenological damping factor is applied.",[12,62693,62694,62695,62764,62765,62891],{},"Off resonance, the fringes show lower contrast and faster temporal oscillations. This behavior follows from the generalized Rabi frequency ",[533,62696,62698,62715],{"className":62697},[9443],[533,62699,62701],{"className":62700},[9447],[9174,62702,62703],{"xmlns":9450},[9452,62704,62705,62713],{},[9455,62706,62707],{},[9458,62708,62709,62711],{},[9461,62710,9659],{"mathvariant":9573},[9461,62712,29825],{},[9473,62714,50286],{"encoding":9475},[533,62716,62718],{"className":62717,"ariaHidden":1089},[9480],[533,62719,62721,62724],{"className":62720},[9484],[533,62722],{"className":62723,"style":9595},[9488],[533,62725,62727,62730],{"className":62726},[9493],[533,62728,9659],{"className":62729},[9493],[533,62731,62733],{"className":62732},[9502],[533,62734,62736,62756],{"className":62735},[9506,9507],[533,62737,62739,62753],{"className":62738},[9511],[533,62740,62742],{"className":62741,"style":9516},[9515],[533,62743,62744,62747],{"style":9617},[533,62745],{"className":62746,"style":9524},[9523],[533,62748,62750],{"className":62749},[9528,9529,9530,9531],[533,62751,29825],{"className":62752,"style":32780},[9493,9497,9531],[533,62754,1090],{"className":62755},[9546],[533,62757,62759],{"className":62758},[9511],[533,62760,62762],{"className":62761,"style":9553},[9515],[533,62763],{},", which increases with detuning, and from the amplitude coefficient ",[533,62766,62768,62796],{"className":62767},[9443],[533,62769,62771],{"className":62770},[9447],[9174,62772,62773],{"xmlns":9450},[9452,62774,62775,62793],{},[9455,62776,62777,62783,62785],{},[21862,62778,62779,62781],{},[9461,62780,9659],{"mathvariant":9573},[10856,62782,1140],{},[9461,62784,2941],{"mathvariant":9573},[37177,62786,62787,62789,62791],{},[9461,62788,9659],{"mathvariant":9573},[9461,62790,29825],{},[10856,62792,1140],{},[9473,62794,62795],{"encoding":9475},"\\Omega^2\u002F\\Omega_R^2",[533,62797,62799],{"className":62798,"ariaHidden":1089},[9480],[533,62800,62802,62806,62835,62838],{"className":62801},[9484],[533,62803],{"className":62804,"style":62805},[9488],"height:1.0894em;vertical-align:-0.2753em;",[533,62807,62809,62812],{"className":62808},[9493],[533,62810,9659],{"className":62811},[9493],[533,62813,62815],{"className":62814},[9502],[533,62816,62818],{"className":62817},[9506],[533,62819,62821],{"className":62820},[9511],[533,62822,62824],{"className":62823,"style":29860},[9515],[533,62825,62826,62829],{"style":24194},[533,62827],{"className":62828,"style":9524},[9523],[533,62830,62832],{"className":62831},[9528,9529,9530,9531],[533,62833,1140],{"className":62834},[9493,9531],[533,62836,2941],{"className":62837},[9493],[533,62839,62841,62844],{"className":62840},[9493],[533,62842,9659],{"className":62843},[9493],[533,62845,62847],{"className":62846},[9502],[533,62848,62850,62882],{"className":62849},[9506,9507],[533,62851,62853,62879],{"className":62852},[9511],[533,62854,62856,62868],{"className":62855,"style":29860},[9515],[533,62857,62859,62862],{"style":62858},"top:-2.4247em;margin-left:0em;margin-right:0.05em;",[533,62860],{"className":62861,"style":9524},[9523],[533,62863,62865],{"className":62864},[9528,9529,9530,9531],[533,62866,29825],{"className":62867,"style":32780},[9493,9497,9531],[533,62869,62870,62873],{"style":24194},[533,62871],{"className":62872,"style":9524},[9523],[533,62874,62876],{"className":62875},[9528,9529,9530,9531],[533,62877,1140],{"className":62878},[9493,9531],[533,62880,1090],{"className":62881},[9546],[533,62883,62885],{"className":62884},[9511],[533,62886,62889],{"className":62887,"style":62888},[9515],"height:0.2753em;",[533,62890],{},", which decreases with detuning.",[12,62893,62894],{},"The three-dimensional surface plot represents the same probability data as a height field. This view emphasizes the central resonant ridge and the suppressed off-resonant oscillations. Cross-section plots isolate one-dimensional behavior. A fixed-frequency slice shows how probability evolves with pulse duration. At a fixed duration, a complementary slice shows how probability changes across the drive-frequency sweep.",[12,62896,62897,62898,62995],{},"The FFT heatmap characterizes the oscillation-frequency content of ",[533,62899,62901,62928],{"className":62900},[9443],[533,62902,62904],{"className":62903},[9447],[9174,62905,62906],{"xmlns":9450},[9452,62907,62908,62926],{},[9455,62909,62910,62916,62918,62920,62922,62924],{},[9458,62911,62912,62914],{},[9461,62913,49085],{},[9461,62915,629],{},[9958,62917,615],{"stretchy":9960},[9461,62919,49096],{},[9958,62921,2464],{"separator":1089},[9461,62923,618],{},[9958,62925,2632],{"stretchy":9960},[9473,62927,60108],{"encoding":9475},[533,62929,62931],{"className":62930,"ariaHidden":1089},[9480],[533,62932,62934,62937,62977,62980,62983,62986,62989,62992],{"className":62933},[9484],[533,62935],{"className":62936,"style":9998},[9488],[533,62938,62940,62943],{"className":62939},[9493],[533,62941,49085],{"className":62942,"style":26405},[9493,9497],[533,62944,62946],{"className":62945},[9502],[533,62947,62949,62969],{"className":62948},[9506,9507],[533,62950,62952,62966],{"className":62951},[9511],[533,62953,62955],{"className":62954,"style":22873},[9515],[533,62956,62957,62960],{"style":31397},[533,62958],{"className":62959,"style":9524},[9523],[533,62961,62963],{"className":62962},[9528,9529,9530,9531],[533,62964,629],{"className":62965},[9493,9497,9531],[533,62967,1090],{"className":62968},[9546],[533,62970,62972],{"className":62971},[9511],[533,62973,62975],{"className":62974,"style":9553},[9515],[533,62976],{},[533,62978,615],{"className":62979},[10002],[533,62981,49096],{"className":62982,"style":49168},[9493,9497],[533,62984,2464],{"className":62985},[10344],[533,62987],{"className":62988,"style":10349},[10348],[533,62990,618],{"className":62991,"style":22860},[9493,9497],[533,62993,2632],{"className":62994},[10101],". An overlaid theoretical curve follows",[533,62997,62999],{"className":62998},[29056],[533,63000,63002,63074],{"className":63001},[9443],[533,63003,63005],{"className":63004},[9447],[9174,63006,63007],{"xmlns":9450,"display":29065},[9452,63008,63009,63071],{},[9455,63010,63011,63017,63019,63021,63023,63025,63069],{},[9458,63012,63013,63015],{},[9461,63014,50359],{},[9461,63016,29825],{},[9958,63018,615],{"stretchy":9960},[9461,63020,618],{},[9958,63022,2632],{"stretchy":9960},[9958,63024,554],{},[30893,63026,63027],{},[9455,63028,63029,63049,63051,63053,63055,63057,63063],{},[21862,63030,63031,63047],{},[9455,63032,63033,63035,63045],{},[9958,63034,615],{"fence":1089},[21845,63036,63037,63039],{},[9461,63038,9659],{"mathvariant":9573},[9455,63040,63041,63043],{},[10856,63042,1140],{},[9461,63044,22502],{},[9958,63046,2632],{"fence":1089},[10856,63048,1140],{},[9958,63050,6350],{},[9958,63052,615],{"stretchy":9960},[9461,63054,618],{},[9958,63056,21843],{},[9458,63058,63059,63061],{},[9461,63060,618],{},[10856,63062,1049],{},[21862,63064,63065,63067],{},[9958,63066,2632],{"stretchy":9960},[10856,63068,1140],{},[9461,63070,114],{"mathvariant":9573},[9473,63072,63073],{"encoding":9475},"\\nu_R(f)=\\sqrt{\\left(\\frac{\\Omega}{2\\pi}\\right)^2+(f-f_0)^2}.",[533,63075,63077,63141],{"className":63076,"ariaHidden":1089},[9480],[533,63078,63080,63083,63123,63126,63129,63132,63135,63138],{"className":63079},[9484],[533,63081],{"className":63082,"style":9998},[9488],[533,63084,63086,63089],{"className":63085},[9493],[533,63087,50359],{"className":63088,"style":50380},[9493,9497],[533,63090,63092],{"className":63091},[9502],[533,63093,63095,63115],{"className":63094},[9506,9507],[533,63096,63098,63112],{"className":63097},[9511],[533,63099,63101],{"className":63100,"style":9516},[9515],[533,63102,63103,63106],{"style":50395},[533,63104],{"className":63105,"style":9524},[9523],[533,63107,63109],{"className":63108},[9528,9529,9530,9531],[533,63110,29825],{"className":63111,"style":32780},[9493,9497,9531],[533,63113,1090],{"className":63114},[9546],[533,63116,63118],{"className":63117},[9511],[533,63119,63121],{"className":63120,"style":9553},[9515],[533,63122],{},[533,63124,615],{"className":63125},[10002],[533,63127,618],{"className":63128,"style":22860},[9493,9497],[533,63130,2632],{"className":63131},[10101],[533,63133],{"className":63134,"style":21908},[10348],[533,63136,554],{"className":63137},[21912],[533,63139],{"className":63140,"style":21908},[10348],[533,63142,63144,63147,63390],{"className":63143},[9484],[533,63145],{"className":63146,"style":57401},[9488],[533,63148,63150],{"className":63149},[9493,2262],[533,63151,63153,63382],{"className":63152},[9506,9507],[533,63154,63156,63379],{"className":63155},[9511],[533,63157,63159,63367],{"className":63158,"style":57414},[9515],[533,63160,63162,63165],{"className":63161,"style":57418},[31076],[533,63163],{"className":63164,"style":57422},[9523],[533,63166,63168,63274,63277,63280,63283,63286,63289,63292,63295,63298,63338],{"className":63167,"style":54647},[9493],[533,63169,63171,63251],{"className":63170},[21977],[533,63172,63174,63180,63245],{"className":63173},[21977],[533,63175,63177],{"className":63176,"style":21982},[10002,21981],[533,63178,615],{"className":63179},[21986,9530],[533,63181,63183,63186,63242],{"className":63182},[9493],[533,63184],{"className":63185},[10002,21997],[533,63187,63189],{"className":63188},[21845],[533,63190,63192,63234],{"className":63191},[9506,9507],[533,63193,63195,63231],{"className":63194},[9511],[533,63196,63198,63212,63220],{"className":63197,"style":54415},[9515],[533,63199,63200,63203],{"style":31623},[533,63201],{"className":63202,"style":22017},[9523],[533,63204,63206,63209],{"className":63205},[9493],[533,63207,1140],{"className":63208},[9493],[533,63210,22502],{"className":63211,"style":9498},[9493,9497],[533,63213,63214,63217],{"style":22063},[533,63215],{"className":63216,"style":22017},[9523],[533,63218],{"className":63219,"style":22071},[22070],[533,63221,63222,63225],{"style":31643},[533,63223],{"className":63224,"style":22017},[9523],[533,63226,63228],{"className":63227},[9493],[533,63229,9659],{"className":63230},[9493],[533,63232,1090],{"className":63233},[9546],[533,63235,63237],{"className":63236},[9511],[533,63238,63240],{"className":63239,"style":31709},[9515],[533,63241],{},[533,63243],{"className":63244},[10101,21997],[533,63246,63248],{"className":63247,"style":21982},[10101,21981],[533,63249,2632],{"className":63250},[21986,9530],[533,63252,63254],{"className":63253},[9502],[533,63255,63257],{"className":63256},[9506],[533,63258,63260],{"className":63259},[9511],[533,63261,63263],{"className":63262,"style":57521},[9515],[533,63264,63265,63268],{"style":57524},[533,63266],{"className":63267,"style":9524},[9523],[533,63269,63271],{"className":63270},[9528,9529,9530,9531],[533,63272,1140],{"className":63273},[9493,9531],[533,63275],{"className":63276,"style":22903},[10348],[533,63278,6350],{"className":63279},[22093],[533,63281],{"className":63282,"style":22903},[10348],[533,63284,615],{"className":63285},[10002],[533,63287,618],{"className":63288,"style":22860},[9493,9497],[533,63290],{"className":63291,"style":22903},[10348],[533,63293,21843],{"className":63294},[22093],[533,63296],{"className":63297,"style":22903},[10348],[533,63299,63301,63304],{"className":63300},[9493],[533,63302,618],{"className":63303,"style":22860},[9493,9497],[533,63305,63307],{"className":63306},[9502],[533,63308,63310,63330],{"className":63309},[9506,9507],[533,63311,63313,63327],{"className":63312},[9511],[533,63314,63316],{"className":63315,"style":21941},[9515],[533,63317,63318,63321],{"style":22876},[533,63319],{"className":63320,"style":9524},[9523],[533,63322,63324],{"className":63323},[9528,9529,9530,9531],[533,63325,1049],{"className":63326},[9493,9531],[533,63328,1090],{"className":63329},[9546],[533,63331,63333],{"className":63332},[9511],[533,63334,63336],{"className":63335,"style":9553},[9515],[533,63337],{},[533,63339,63341,63344],{"className":63340},[10101],[533,63342,2632],{"className":63343},[10101],[533,63345,63347],{"className":63346},[9502],[533,63348,63350],{"className":63349},[9506],[533,63351,63353],{"className":63352},[9511],[533,63354,63356],{"className":63355,"style":54666},[9515],[533,63357,63358,63361],{"style":54669},[533,63359],{"className":63360,"style":9524},[9523],[533,63362,63364],{"className":63363},[9528,9529,9530,9531],[533,63365,1140],{"className":63366},[9493,9531],[533,63368,63369,63372],{"style":57629},[533,63370],{"className":63371,"style":57422},[9523],[533,63373,63375],{"className":63374,"style":57636},[31097],[31100,63376,63377],{"xmlns":31102,"width":31103,"height":57639,"viewBox":57640,"preserveAspectRatio":31106},[31108,63378],{"d":57643},[533,63380,1090],{"className":63381},[9546],[533,63383,63385],{"className":63384},[9511],[533,63386,63388],{"className":63387,"style":57653},[9515],[533,63389],{},[533,63391,114],{"className":63392},[9493],[25,63394,63396],{"id":63395},"primary-modeling-assumptions","Primary Modeling Assumptions",[12,63398,63399],{},"This notebook is an idealized mathematical physics visualization designed for conceptual clarity and calibration intuition.",[30,63401,63402,63412],{},[33,63403,63404],{},[36,63405,63406,63409],{},[39,63407,63408],{},"Assumption",[39,63410,63411],{},"Implication",[49,63413,63414,63498,63506,63513,63521,63558,63648,63804,63852,63860,63868,63876],{},[36,63415,63416,63419],{},[54,63417,63418],{},"Two-level truncation",[54,63420,63421,63422,1576,63460,114],{},"The simulated model includes only ",[533,63423,63425,63442],{"className":63424},[9443],[533,63426,63428],{"className":63427},[9447],[9174,63429,63430],{"xmlns":9450},[9452,63431,63432,63440],{},[9455,63433,63434,63436,63438],{},[9958,63435,9961],{"stretchy":9960},[9461,63437,49279],{},[9958,63439,10860],{"stretchy":9960},[9473,63441,49284],{"encoding":9475},[533,63443,63445],{"className":63444,"ariaHidden":1089},[9480],[533,63446,63448,63451,63454,63457],{"className":63447},[9484],[533,63449],{"className":63450,"style":9998},[9488],[533,63452,9961],{"className":63453},[10002],[533,63455,49279],{"className":63456,"style":9498},[9493,9497],[533,63458,10860],{"className":63459},[10101],[533,63461,63463,63480],{"className":63462},[9443],[533,63464,63466],{"className":63465},[9447],[9174,63467,63468],{"xmlns":9450},[9452,63469,63470,63478],{},[9455,63471,63472,63474,63476],{},[9958,63473,9961],{"stretchy":9960},[9461,63475,629],{},[9958,63477,10860],{"stretchy":9960},[9473,63479,49330],{"encoding":9475},[533,63481,63483],{"className":63482,"ariaHidden":1089},[9480],[533,63484,63486,63489,63492,63495],{"className":63485},[9484],[533,63487],{"className":63488,"style":9998},[9488],[533,63490,9961],{"className":63491},[10002],[533,63493,629],{"className":63494},[9493,9497],[533,63496,10860],{"className":63497},[10101],[36,63499,63500,63503],{},[54,63501,63502],{},"Classical drive",[54,63504,63505],{},"The microwave field is prescribed externally instead of quantized as a field mode.",[36,63507,63508,63510],{},[54,63509,50701],{},[54,63511,63512],{},"Fast counter-rotating terms are omitted.",[36,63514,63515,63518],{},[54,63516,63517],{},"Square pulse",[54,63519,63520],{},"The drive is assumed to turn on and off instantaneously.",[36,63522,63523,63526],{},[54,63524,63525],{},"Uniform drive amplitude",[54,63527,63528,63529,63557],{},"The parameter ",[533,63530,63532,63545],{"className":63531},[9443],[533,63533,63535],{"className":63534},[9447],[9174,63536,63537],{"xmlns":9450},[9452,63538,63539,63543],{},[9455,63540,63541],{},[9461,63542,9659],{"mathvariant":9573},[9473,63544,9662],{"encoding":9475},[533,63546,63548],{"className":63547,"ariaHidden":1089},[9480],[533,63549,63551,63554],{"className":63550},[9484],[533,63552],{"className":63553,"style":9672},[9488],[533,63555,9659],{"className":63556},[9493]," remains constant across the frequency sweep.",[36,63559,63560,63563],{},[54,63561,63562],{},"Optional damping envelope",[54,63564,63528,63565,63647],{},[533,63566,63568,63587],{"className":63567},[9443],[533,63569,63571],{"className":63570},[9447],[9174,63572,63573],{"xmlns":9450},[9452,63574,63575,63585],{},[9455,63576,63577],{},[37177,63578,63579,63581,63583],{},[9461,63580,6090],{},[10856,63582,1140],{},[9958,63584,50623],{},[9473,63586,50626],{"encoding":9475},[533,63588,63590],{"className":63589,"ariaHidden":1089},[9480],[533,63591,63593,63596],{"className":63592},[9484],[533,63594],{"className":63595,"style":50636},[9488],[533,63597,63599,63602],{"className":63598},[9493],[533,63600,6090],{"className":63601,"style":26405},[9493,9497],[533,63603,63605],{"className":63604},[9502],[533,63606,63608,63639],{"className":63607},[9506,9507],[533,63609,63611,63636],{"className":63610},[9511],[533,63612,63614,63625],{"className":63613,"style":50655},[9515],[533,63615,63616,63619],{"style":50658},[533,63617],{"className":63618,"style":9524},[9523],[533,63620,63622],{"className":63621},[9528,9529,9530,9531],[533,63623,1140],{"className":63624},[9493,9531],[533,63626,63627,63630],{"style":24194},[533,63628],{"className":63629,"style":9524},[9523],[533,63631,63633],{"className":63632},[9528,9529,9530,9531],[533,63634,50623],{"className":63635},[22093,9531],[533,63637,1090],{"className":63638},[9546],[533,63640,63642],{"className":63641},[9511],[533,63643,63645],{"className":63644,"style":50688},[9515],[533,63646],{}," enters as a simple exponential contrast envelope.",[36,63649,63650,63724],{},[54,63651,63652,63653,63723],{},"No explicit ",[533,63654,63656,63674],{"className":63655},[9443],[533,63657,63659],{"className":63658},[9447],[9174,63660,63661],{"xmlns":9450},[9452,63662,63663,63671],{},[9455,63664,63665],{},[9458,63666,63667,63669],{},[9461,63668,6090],{},[10856,63670,1052],{},[9473,63672,63673],{"encoding":9475},"T_1",[533,63675,63677],{"className":63676,"ariaHidden":1089},[9480],[533,63678,63680,63683],{"className":63679},[9484],[533,63681],{"className":63682,"style":9595},[9488],[533,63684,63686,63689],{"className":63685},[9493],[533,63687,6090],{"className":63688,"style":26405},[9493,9497],[533,63690,63692],{"className":63691},[9502],[533,63693,63695,63715],{"className":63694},[9506,9507],[533,63696,63698,63712],{"className":63697},[9511],[533,63699,63701],{"className":63700,"style":21941},[9515],[533,63702,63703,63706],{"style":31397},[533,63704],{"className":63705,"style":9524},[9523],[533,63707,63709],{"className":63708},[9528,9529,9530,9531],[533,63710,1052],{"className":63711},[9493,9531],[533,63713,1090],{"className":63714},[9546],[533,63716,63718],{"className":63717},[9511],[533,63719,63721],{"className":63720,"style":9553},[9515],[533,63722],{}," relaxation",[54,63725,63726,63727,5181,63765,63803],{},"Energy decay from ",[533,63728,63730,63747],{"className":63729},[9443],[533,63731,63733],{"className":63732},[9447],[9174,63734,63735],{"xmlns":9450},[9452,63736,63737,63745],{},[9455,63738,63739,63741,63743],{},[9958,63740,9961],{"stretchy":9960},[9461,63742,629],{},[9958,63744,10860],{"stretchy":9960},[9473,63746,49330],{"encoding":9475},[533,63748,63750],{"className":63749,"ariaHidden":1089},[9480],[533,63751,63753,63756,63759,63762],{"className":63752},[9484],[533,63754],{"className":63755,"style":9998},[9488],[533,63757,9961],{"className":63758},[10002],[533,63760,629],{"className":63761},[9493,9497],[533,63763,10860],{"className":63764},[10101],[533,63766,63768,63785],{"className":63767},[9443],[533,63769,63771],{"className":63770},[9447],[9174,63772,63773],{"xmlns":9450},[9452,63774,63775,63783],{},[9455,63776,63777,63779,63781],{},[9958,63778,9961],{"stretchy":9960},[9461,63780,49279],{},[9958,63782,10860],{"stretchy":9960},[9473,63784,49284],{"encoding":9475},[533,63786,63788],{"className":63787,"ariaHidden":1089},[9480],[533,63789,63791,63794,63797,63800],{"className":63790},[9484],[533,63792],{"className":63793,"style":9998},[9488],[533,63795,9961],{"className":63796},[10002],[533,63798,49279],{"className":63799,"style":9498},[9493,9497],[533,63801,10860],{"className":63802},[10101]," is omitted.",[36,63805,63806,63809],{},[54,63807,63808],{},"No higher-state leakage",[54,63810,63811,63812,63851],{},"Higher levels, including a transmon ",[533,63813,63815,63833],{"className":63814},[9443],[533,63816,63818],{"className":63817},[9447],[9174,63819,63820],{"xmlns":9450},[9452,63821,63822,63830],{},[9455,63823,63824,63826,63828],{},[9958,63825,9961],{"stretchy":9960},[9461,63827,618],{},[9958,63829,10860],{"stretchy":9960},[9473,63831,63832],{"encoding":9475},"\\lvert f\\rangle",[533,63834,63836],{"className":63835,"ariaHidden":1089},[9480],[533,63837,63839,63842,63845,63848],{"className":63838},[9484],[533,63840],{"className":63841,"style":9998},[9488],[533,63843,9961],{"className":63844},[10002],[533,63846,618],{"className":63847,"style":22860},[9493,9497],[533,63849,10860],{"className":63850},[10101]," state, are excluded.",[36,63853,63854,63857],{},[54,63855,63856],{},"No AC Stark shift",[54,63858,63859],{},"Drive-induced transition-frequency shifts are excluded.",[36,63861,63862,63865],{},[54,63863,63864],{},"No Bloch-Siegert shift",[54,63866,63867],{},"Counter-rotating corrections are excluded.",[36,63869,63870,63873],{},[54,63871,63872],{},"No experimental readout model",[54,63874,63875],{},"Assignment errors and finite signal-to-noise effects are omitted.",[36,63877,63878,63881],{},[54,63879,63880],{},"No pulse-envelope shaping",[54,63882,63883],{},"Gaussian, DRAG, cosine, and hardware-specific envelopes are omitted.",[12,63885,63886],{},"A hardware-accurate superconducting-qubit simulation requires additional structure, including anharmonic multilevel dynamics, calibrated microwave pulse envelopes, drive phase control, amplitude-dependent frequency shifts, finite thermal populations, leakage channels, and measurement infidelity modeled with density matrix dynamics.",[25,63888,63890],{"id":63889},"notebook-control-knobs","Notebook Control Knobs",[12,63892,63893],{},"The first code section centralizes the main physical and numerical parameters for direct adjustment.",[30,63895,63896,63908],{},[33,63897,63898],{},[36,63899,63900,63903,63906],{},[39,63901,63902],{},"Parameter",[39,63904,63905],{"align":9424},"Default",[39,63907,49256],{},[49,63909,63910,63994,64047,64062,64077,64091,64105,64120,64134],{},[36,63911,63912,63917,63921],{},[54,63913,63914],{},[57,63915,63916],{},"F0_GHZ",[54,63918,63919],{"align":9424},[57,63920,51189],{},[54,63922,63923,63924,63993],{},"Qubit transition frequency ",[533,63925,63927,63944],{"className":63926},[9443],[533,63928,63930],{"className":63929},[9447],[9174,63931,63932],{"xmlns":9450},[9452,63933,63934,63942],{},[9455,63935,63936],{},[9458,63937,63938,63940],{},[9461,63939,618],{},[10856,63941,1049],{},[9473,63943,49626],{"encoding":9475},[533,63945,63947],{"className":63946,"ariaHidden":1089},[9480],[533,63948,63950,63953],{"className":63949},[9484],[533,63951],{"className":63952,"style":49203},[9488],[533,63954,63956,63959],{"className":63955},[9493],[533,63957,618],{"className":63958,"style":22860},[9493,9497],[533,63960,63962],{"className":63961},[9502],[533,63963,63965,63985],{"className":63964},[9506,9507],[533,63966,63968,63982],{"className":63967},[9511],[533,63969,63971],{"className":63970,"style":21941},[9515],[533,63972,63973,63976],{"style":22876},[533,63974],{"className":63975,"style":9524},[9523],[533,63977,63979],{"className":63978},[9528,9529,9530,9531],[533,63980,1049],{"className":63981},[9493,9531],[533,63983,1090],{"className":63984},[9546],[533,63986,63988],{"className":63987},[9511],[533,63989,63991],{"className":63990,"style":9553},[9515],[533,63992],{}," in GHz",[36,63995,63996,64001,64006],{},[54,63997,63998],{},[57,63999,64000],{},"OMEGA_ONRESONANCE_MHZ",[54,64002,64003],{"align":9424},[57,64004,64005],{},"20.0",[54,64007,64008,64009,64046],{},"On-resonance Rabi rate ",[533,64010,64012,64031],{"className":64011},[9443],[533,64013,64015],{"className":64014},[9447],[9174,64016,64017],{"xmlns":9450},[9452,64018,64019,64029],{},[9455,64020,64021,64023,64025,64027],{},[9461,64022,9659],{"mathvariant":9573},[9461,64024,2941],{"mathvariant":9573},[10856,64026,1140],{},[9461,64028,22502],{},[9473,64030,50092],{"encoding":9475},[533,64032,64034],{"className":64033,"ariaHidden":1089},[9480],[533,64035,64037,64040,64043],{"className":64036},[9484],[533,64038],{"className":64039,"style":9998},[9488],[533,64041,50105],{"className":64042},[9493],[533,64044,22502],{"className":64045,"style":9498},[9493,9497]," in MHz",[36,64048,64049,64054,64059],{},[54,64050,64051],{},[57,64052,64053],{},"FREQ_MIN_GHZ",[54,64055,64056],{"align":9424},[57,64057,64058],{},"4.90",[54,64060,64061],{},"Minimum swept drive frequency in GHz",[36,64063,64064,64069,64074],{},[54,64065,64066],{},[57,64067,64068],{},"FREQ_MAX_GHZ",[54,64070,64071],{"align":9424},[57,64072,64073],{},"5.10",[54,64075,64076],{},"Maximum swept drive frequency in GHz",[36,64078,64079,64084,64088],{},[54,64080,64081],{},[57,64082,64083],{},"N_FREQ",[54,64085,64086],{"align":9424},[57,64087,353],{},[54,64089,64090],{},"Number of drive-frequency samples",[36,64092,64093,64098,64102],{},[54,64094,64095],{},[57,64096,64097],{},"DUR_MIN_NS",[54,64099,64100],{"align":9424},[57,64101,2229],{},[54,64103,64104],{},"Minimum pulse duration in ns",[36,64106,64107,64112,64117],{},[54,64108,64109],{},[57,64110,64111],{},"DUR_MAX_NS",[54,64113,64114],{"align":9424},[57,64115,64116],{},"200.0",[54,64118,64119],{},"Maximum pulse duration in ns",[36,64121,64122,64127,64131],{},[54,64123,64124],{},[57,64125,64126],{},"N_DUR",[54,64128,64129],{"align":9424},[57,64130,353],{},[54,64132,64133],{},"Number of pulse-duration samples",[36,64135,64136,64141,64145],{},[54,64137,64138],{},[57,64139,64140],{},"T2STAR_NS",[54,64142,64143],{"align":9424},[57,64144,11323],{},[54,64146,64147,64148,64150],{},"Optional damping time in ns, with ",[57,64149,3838],{}," disabling damping",[12,64152,64153],{},"Additional cross-section plotting cells expose localized slice controls.",[30,64155,64156,64166],{},[33,64157,64158],{},[36,64159,64160,64162,64164],{},[39,64161,63902],{},[39,64163,63905],{"align":9424},[39,64165,49256],{},[49,64167,64168,64267],{},[36,64169,64170,64175,64179],{},[54,64171,64172],{},[57,64173,64174],{},"F_CROSS_GHZ",[54,64176,64177],{"align":9424},[57,64178,51189],{},[54,64180,64181,64182],{},"Drive-frequency slice used to plot ",[533,64183,64185,64209],{"className":64184},[9443],[533,64186,64188],{"className":64187},[9447],[9174,64189,64190],{"xmlns":9450},[9452,64191,64192,64206],{},[9455,64193,64194,64200,64202,64204],{},[9458,64195,64196,64198],{},[9461,64197,49085],{},[9461,64199,629],{},[9958,64201,615],{"stretchy":9960},[9461,64203,49096],{},[9958,64205,2632],{"stretchy":9960},[9473,64207,64208],{"encoding":9475},"P_e(\\tau)",[533,64210,64212],{"className":64211,"ariaHidden":1089},[9480],[533,64213,64215,64218,64258,64261,64264],{"className":64214},[9484],[533,64216],{"className":64217,"style":9998},[9488],[533,64219,64221,64224],{"className":64220},[9493],[533,64222,49085],{"className":64223,"style":26405},[9493,9497],[533,64225,64227],{"className":64226},[9502],[533,64228,64230,64250],{"className":64229},[9506,9507],[533,64231,64233,64247],{"className":64232},[9511],[533,64234,64236],{"className":64235,"style":22873},[9515],[533,64237,64238,64241],{"style":31397},[533,64239],{"className":64240,"style":9524},[9523],[533,64242,64244],{"className":64243},[9528,9529,9530,9531],[533,64245,629],{"className":64246},[9493,9497,9531],[533,64248,1090],{"className":64249},[9546],[533,64251,64253],{"className":64252},[9511],[533,64254,64256],{"className":64255,"style":9553},[9515],[533,64257],{},[533,64259,615],{"className":64260},[10002],[533,64262,49096],{"className":64263,"style":49168},[9493,9497],[533,64265,2632],{"className":64266},[10101],[36,64268,64269,64274,64279],{},[54,64270,64271],{},[57,64272,64273],{},"T_CROSS_NS",[54,64275,64276],{"align":9424},[57,64277,64278],{},"100.0",[54,64280,64281,64282],{},"Pulse-duration slice used to plot ",[533,64283,64285,64309],{"className":64284},[9443],[533,64286,64288],{"className":64287},[9447],[9174,64289,64290],{"xmlns":9450},[9452,64291,64292,64306],{},[9455,64293,64294,64300,64302,64304],{},[9458,64295,64296,64298],{},[9461,64297,49085],{},[9461,64299,629],{},[9958,64301,615],{"stretchy":9960},[9461,64303,618],{},[9958,64305,2632],{"stretchy":9960},[9473,64307,64308],{"encoding":9475},"P_e(f)",[533,64310,64312],{"className":64311,"ariaHidden":1089},[9480],[533,64313,64315,64318,64358,64361,64364],{"className":64314},[9484],[533,64316],{"className":64317,"style":9998},[9488],[533,64319,64321,64324],{"className":64320},[9493],[533,64322,49085],{"className":64323,"style":26405},[9493,9497],[533,64325,64327],{"className":64326},[9502],[533,64328,64330,64350],{"className":64329},[9506,9507],[533,64331,64333,64347],{"className":64332},[9511],[533,64334,64336],{"className":64335,"style":22873},[9515],[533,64337,64338,64341],{"style":31397},[533,64339],{"className":64340,"style":9524},[9523],[533,64342,64344],{"className":64343},[9528,9529,9530,9531],[533,64345,629],{"className":64346},[9493,9497,9531],[533,64348,1090],{"className":64349},[9546],[533,64351,64353],{"className":64352},[9511],[533,64354,64356],{"className":64355,"style":9553},[9515],[533,64357],{},[533,64359,615],{"className":64360},[10002],[533,64362,618],{"className":64363,"style":22860},[9493,9497],[533,64365,2632],{"className":64366},[10101],[12,64368,64369],{},"Separate FFT processing controls support spectral analysis.",[30,64371,64372,64382],{},[33,64373,64374],{},[36,64375,64376,64378,64380],{},[39,64377,63902],{},[39,64379,63905],{"align":9424},[39,64381,49256],{},[49,64383,64384,64398,64413,64427,64442,64457],{},[36,64385,64386,64391,64395],{},[54,64387,64388],{},[57,64389,64390],{},"FFT_PAD",[54,64392,64393],{"align":9424},[57,64394,12908],{},[54,64396,64397],{},"Zero-padding factor used in the Fourier transform",[36,64399,64400,64405,64410],{},[54,64401,64402],{},[57,64403,64404],{},"WINDOW",[54,64406,64407],{"align":9424},[57,64408,64409],{},"\"hann\"",[54,64411,64412],{},"Window function applied along the pulse-duration axis",[36,64414,64415,64420,64424],{},[54,64416,64417],{},[57,64418,64419],{},"DETREND_MEAN",[54,64421,64422],{"align":9424},[57,64423,1958],{},[54,64425,64426],{},"Flag that subtracts the mean before the FFT",[36,64428,64429,64434,64439],{},[54,64430,64431],{},[57,64432,64433],{},"AMP_MODE",[54,64435,64436],{"align":9424},[57,64437,64438],{},"\"magnitude\"",[54,64440,64441],{},"Display mode for magnitude, power, or dB-scaled amplitude",[36,64443,64444,64449,64454],{},[54,64445,64446],{},[57,64447,64448],{},"NORM_MODE",[54,64450,64451],{"align":9424},[57,64452,64453],{},"\"global\"",[54,64455,64456],{},"Normalization mode applied globally or per drive-frequency column",[36,64458,64459,64464,64469],{},[54,64460,64461],{},[57,64462,64463],{},"FREQ_UNITS",[54,64465,64466],{"align":9424},[57,64467,64468],{},"\"MHz\"",[54,64470,64471],{},"Frequency units used on the Fourier-frequency axis",[12,64473,64474],{},"Three-dimensional visualization cells add rendering controls for upsampling, colormaps, face-count limits, and viewing angles. These settings change the appearance of the rendered figures while preserving the analytic probability model.",[524,64476,64478],{"className":526,"code":64477,"language":528,"meta":529,"style":529},"# @title Install dependencies\nimport sys\n%pip -q install pyvista pythreejs trame\n",[57,64479,64480,64485,64492],{"__ignoreMap":529},[533,64481,64482],{"class":535,"line":536},[533,64483,64484],{"class":593},"# @title Install dependencies\n",[533,64486,64487,64489],{"class":535,"line":547},[533,64488,883],{"class":539},[533,64490,64491],{"class":543}," sys\n",[533,64493,64494,64497,64500,64502],{"class":535,"line":575},[533,64495,64496],{"class":553},"%",[533,64498,64499],{"class":543},"pip ",[533,64501,2514],{"class":553},[533,64503,64504],{"class":543},"q install pyvista pythreejs trame\n",[524,64506,64508],{"className":526,"code":64507,"language":528,"meta":529,"style":529},"# @title Controls & imports\nimport math\nfrom typing import Optional, Tuple\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\ntry:\n    import pyvista as pv  # optional; only for 3D interactive\n    PV_AVAILABLE = True\nexcept Exception:\n    PV_AVAILABLE = False\n\nplt.rcParams['figure.dpi'] = 250\nplt.rcParams['axes.grid'] = False\n\n# ---------- Control knobs ----------\nF0_GHZ: float = 5.000        # Qubit transition freq f0 [GHz]\nOMEGA_ONRESONANCE_MHZ: float = 20.0  # Ω\u002F2π on-resonance [MHz]\nFREQ_MIN_GHZ: float = 4.90   # Sweep min f [GHz]\nFREQ_MAX_GHZ: float = 5.10   # Sweep max f [GHz]\nN_FREQ: int = 401            # # of frequency points\nDUR_MIN_NS: float = 0.0      # Sweep min duration τ [ns]\nDUR_MAX_NS: float = 200.0    # Sweep max duration τ [ns]\nN_DUR: int = 401             # # of duration points\nT2STAR_NS: Optional[float] = 500.0  # None to disable exp(-τ\u002FT2*)\n\nprint('Controls loaded.')\n",[57,64509,64510,64515,64521,64532,64542,64552,64564,64568,64574,64590,64600,64608,64617,64621,64634,64647,64651,64656,64672,64687,64703,64719,64735,64750,64766,64781,64800,64804],{"__ignoreMap":529},[533,64511,64512],{"class":535,"line":536},[533,64513,64514],{"class":593},"# @title Controls & imports\n",[533,64516,64517,64519],{"class":535,"line":547},[533,64518,883],{"class":539},[533,64520,11121],{"class":543},[533,64522,64523,64525,64527,64529],{"class":535,"line":575},[533,64524,877],{"class":539},[533,64526,11109],{"class":543},[533,64528,883],{"class":539},[533,64530,64531],{"class":543}," Optional, Tuple\n",[533,64533,64534,64536,64538,64540],{"class":535,"line":590},[533,64535,883],{"class":539},[533,64537,11128],{"class":543},[533,64539,584],{"class":539},[533,64541,11133],{"class":543},[533,64543,64544,64546,64548,64550],{"class":535,"line":597},[533,64545,883],{"class":539},[533,64547,11140],{"class":543},[533,64549,584],{"class":539},[533,64551,11145],{"class":543},[533,64553,64554,64556,64559,64561],{"class":535,"line":603},[533,64555,883],{"class":539},[533,64557,64558],{"class":543}," pandas ",[533,64560,584],{"class":539},[533,64562,64563],{"class":543}," pd\n",[533,64565,64566],{"class":535,"line":609},[533,64567,891],{"emptyLinePlaceholder":790},[533,64569,64570,64572],{"class":535,"line":640},[533,64571,688],{"class":539},[533,64573,544],{"class":543},[533,64575,64576,64579,64582,64584,64587],{"class":535,"line":646},[533,64577,64578],{"class":539},"    import",[533,64580,64581],{"class":543}," pyvista ",[533,64583,584],{"class":539},[533,64585,64586],{"class":543}," pv  ",[533,64588,64589],{"class":593},"# optional; only for 3D interactive\n",[533,64591,64592,64595,64597],{"class":535,"line":658},[533,64593,64594],{"class":625},"    PV_AVAILABLE",[533,64596,4899],{"class":553},[533,64598,64599],{"class":625}," True\n",[533,64601,64602,64605],{"class":535,"line":680},[533,64603,64604],{"class":539},"except",[533,64606,64607],{"class":543}," Exception:\n",[533,64609,64610,64612,64614],{"class":535,"line":1536},[533,64611,64594],{"class":625},[533,64613,4899],{"class":553},[533,64615,64616],{"class":625}," False\n",[533,64618,64619],{"class":535,"line":1552},[533,64620,891],{"emptyLinePlaceholder":790},[533,64622,64623,64625,64627,64629,64631],{"class":535,"line":1911},[533,64624,16903],{"class":543},[533,64626,16906],{"class":621},[533,64628,11314],{"class":543},[533,64630,554],{"class":553},[533,64632,64633],{"class":625}," 250\n",[533,64635,64636,64638,64641,64643,64645],{"class":535,"line":1940},[533,64637,16903],{"class":543},[533,64639,64640],{"class":621},"'axes.grid'",[533,64642,11314],{"class":543},[533,64644,554],{"class":553},[533,64646,64616],{"class":625},[533,64648,64649],{"class":535,"line":1968},[533,64650,891],{"emptyLinePlaceholder":790},[533,64652,64653],{"class":535,"line":1995},[533,64654,64655],{"class":593},"# ---------- Control knobs ----------\n",[533,64657,64658,64660,64662,64664,64666,64669],{"class":535,"line":4164},[533,64659,63916],{"class":625},[533,64661,1389],{"class":543},[533,64663,11186],{"class":553},[533,64665,4899],{"class":553},[533,64667,64668],{"class":625}," 5.000",[533,64670,64671],{"class":593},"        # Qubit transition freq f0 [GHz]\n",[533,64673,64674,64676,64678,64680,64682,64684],{"class":535,"line":4199},[533,64675,64000],{"class":625},[533,64677,1389],{"class":543},[533,64679,11186],{"class":553},[533,64681,4899],{"class":553},[533,64683,15270],{"class":625},[533,64685,64686],{"class":593},"  # Ω\u002F2π on-resonance [MHz]\n",[533,64688,64689,64691,64693,64695,64697,64700],{"class":535,"line":4206},[533,64690,64053],{"class":625},[533,64692,1389],{"class":543},[533,64694,11186],{"class":553},[533,64696,4899],{"class":553},[533,64698,64699],{"class":625}," 4.90",[533,64701,64702],{"class":593},"   # Sweep min f [GHz]\n",[533,64704,64705,64707,64709,64711,64713,64716],{"class":535,"line":4214},[533,64706,64068],{"class":625},[533,64708,1389],{"class":543},[533,64710,11186],{"class":553},[533,64712,4899],{"class":553},[533,64714,64715],{"class":625}," 5.10",[533,64717,64718],{"class":593},"   # Sweep max f [GHz]\n",[533,64720,64721,64723,64725,64727,64729,64732],{"class":535,"line":11296},[533,64722,64083],{"class":625},[533,64724,1389],{"class":543},[533,64726,4175],{"class":553},[533,64728,4899],{"class":553},[533,64730,64731],{"class":625}," 401",[533,64733,64734],{"class":593},"            # # of frequency points\n",[533,64736,64737,64739,64741,64743,64745,64747],{"class":535,"line":11302},[533,64738,64097],{"class":625},[533,64740,1389],{"class":543},[533,64742,11186],{"class":553},[533,64744,4899],{"class":553},[533,64746,11793],{"class":625},[533,64748,64749],{"class":593},"      # Sweep min duration τ [ns]\n",[533,64751,64752,64754,64756,64758,64760,64763],{"class":535,"line":11332},[533,64753,64111],{"class":625},[533,64755,1389],{"class":543},[533,64757,11186],{"class":553},[533,64759,4899],{"class":553},[533,64761,64762],{"class":625}," 200.0",[533,64764,64765],{"class":593},"    # Sweep max duration τ [ns]\n",[533,64767,64768,64770,64772,64774,64776,64778],{"class":535,"line":11345},[533,64769,64126],{"class":625},[533,64771,1389],{"class":543},[533,64773,4175],{"class":553},[533,64775,4899],{"class":553},[533,64777,64731],{"class":625},[533,64779,64780],{"class":593},"             # # of duration points\n",[533,64782,64783,64785,64788,64790,64792,64794,64797],{"class":535,"line":11372},[533,64784,64140],{"class":625},[533,64786,64787],{"class":543},": Optional[",[533,64789,11186],{"class":553},[533,64791,11314],{"class":543},[533,64793,554],{"class":553},[533,64795,64796],{"class":625}," 500.0",[533,64798,64799],{"class":593},"  # None to disable exp(-τ\u002FT2*)\n",[533,64801,64802],{"class":535,"line":11385},[533,64803,891],{"emptyLinePlaceholder":790},[533,64805,64806,64808,64810,64813],{"class":535,"line":11390},[533,64807,917],{"class":553},[533,64809,615],{"class":543},[533,64811,64812],{"class":621},"'Controls loaded.'",[533,64814,637],{"class":543},[524,64816,64819],{"className":64817,"code":64818,"language":31773,"meta":529},[38897],"Controls loaded.\n",[57,64820,64818],{"__ignoreMap":529},[524,64822,64824],{"className":526,"code":64823,"language":528,"meta":529,"style":529},"def rabi_probability(\n    f_ghz: np.ndarray,\n    tau_ns: np.ndarray,\n    f0_ghz: float,\n    omega_onres_mhz: float,\n    t2star_ns: Optional[float] = None,\n) -> np.ndarray:\n    \"\"\"Excited-state probability on a 2D grid (f, τ), under RWA.\n\n    Args:\n        f_ghz: 1D array of drive frequencies [GHz].\n        tau_ns: 1D array of pulse durations [ns].\n        f0_ghz: Qubit frequency on resonance [GHz].\n        omega_onres_mhz: On-resonance Rabi rate Ω\u002F2π [MHz].\n        t2star_ns: Optional T2* [ns]; multiplies exp(−τ\u002FT2*).\n\n    Returns:\n        2D array P_e with shape (len(tau_ns), len(f_ghz)).\n    \"\"\"\n    two_pi = 2.0 * math.pi\n    f = f_ghz * 1e9\n    f0 = f0_ghz * 1e9\n    tau = tau_ns * 1e-9\n    omega = two_pi * omega_onres_mhz * 1e6  # rad\u002Fs\n\n    F, TAU = np.meshgrid(f, tau, indexing='xy')\n    Delta = two_pi * (F - f0)               # rad\u002Fs\n    Omega_R = np.sqrt(omega**2 + Delta**2)\n\n    with np.errstate(divide='ignore', invalid='ignore'):\n        amp = (omega \u002F Omega_R) ** 2\n        phase = 0.5 * Omega_R * TAU\n        Pe = amp * np.sin(phase) ** 2\n\n    if t2star_ns is not None and t2star_ns > 0.0:\n        decay = np.exp(-TAU \u002F (t2star_ns * 1e-9))\n        Pe = Pe * decay\n\n    return np.clip(Pe, 0.0, 1.0)\n",[57,64825,64826,64835,64842,64849,64860,64871,64888,64892,64897,64901,64906,64911,64916,64921,64926,64931,64935,64940,64945,64949,64963,64978,64992,65006,65028,65032,65058,65080,65109,65113,65144,65164,65183,65206,65210,65233,65261,65275,65279],{"__ignoreMap":529},[533,64827,64828,64830,64833],{"class":535,"line":536},[533,64829,1754],{"class":539},[533,64831,64832],{"class":560}," rabi_probability",[533,64834,1503],{"class":543},[533,64836,64837,64840],{"class":535,"line":547},[533,64838,64839],{"class":1762},"    f_ghz",[533,64841,41421],{"class":543},[533,64843,64844,64847],{"class":535,"line":575},[533,64845,64846],{"class":1762},"    tau_ns",[533,64848,41421],{"class":543},[533,64850,64851,64854,64856,64858],{"class":535,"line":590},[533,64852,64853],{"class":1762},"    f0_ghz",[533,64855,1389],{"class":543},[533,64857,11186],{"class":553},[533,64859,1549],{"class":543},[533,64861,64862,64865,64867,64869],{"class":535,"line":597},[533,64863,64864],{"class":1762},"    omega_onres_mhz",[533,64866,1389],{"class":543},[533,64868,11186],{"class":553},[533,64870,1549],{"class":543},[533,64872,64873,64876,64878,64880,64882,64884,64886],{"class":535,"line":603},[533,64874,64875],{"class":1762},"    t2star_ns",[533,64877,64787],{"class":543},[533,64879,11186],{"class":553},[533,64881,11314],{"class":543},[533,64883,554],{"class":553},[533,64885,3906],{"class":625},[533,64887,1549],{"class":543},[533,64889,64890],{"class":535,"line":609},[533,64891,39985],{"class":543},[533,64893,64894],{"class":535,"line":640},[533,64895,64896],{"class":621},"    \"\"\"Excited-state probability on a 2D grid (f, τ), under RWA.\n",[533,64898,64899],{"class":535,"line":646},[533,64900,891],{"emptyLinePlaceholder":790},[533,64902,64903],{"class":535,"line":658},[533,64904,64905],{"class":621},"    Args:\n",[533,64907,64908],{"class":535,"line":680},[533,64909,64910],{"class":621},"        f_ghz: 1D array of drive frequencies [GHz].\n",[533,64912,64913],{"class":535,"line":1536},[533,64914,64915],{"class":621},"        tau_ns: 1D array of pulse durations [ns].\n",[533,64917,64918],{"class":535,"line":1552},[533,64919,64920],{"class":621},"        f0_ghz: Qubit frequency on resonance [GHz].\n",[533,64922,64923],{"class":535,"line":1911},[533,64924,64925],{"class":621},"        omega_onres_mhz: On-resonance Rabi rate Ω\u002F2π [MHz].\n",[533,64927,64928],{"class":535,"line":1940},[533,64929,64930],{"class":621},"        t2star_ns: Optional T2* [ns]; multiplies exp(−τ\u002FT2*).\n",[533,64932,64933],{"class":535,"line":1968},[533,64934,891],{"emptyLinePlaceholder":790},[533,64936,64937],{"class":535,"line":1995},[533,64938,64939],{"class":621},"    Returns:\n",[533,64941,64942],{"class":535,"line":4164},[533,64943,64944],{"class":621},"        2D array P_e with shape (len(tau_ns), len(f_ghz)).\n",[533,64946,64947],{"class":535,"line":4199},[533,64948,39472],{"class":621},[533,64950,64951,64954,64956,64958,64960],{"class":535,"line":4206},[533,64952,64953],{"class":543},"    two_pi ",[533,64955,554],{"class":553},[533,64957,2251],{"class":625},[533,64959,2254],{"class":553},[533,64961,64962],{"class":543}," math.pi\n",[533,64964,64965,64968,64970,64973,64975],{"class":535,"line":4214},[533,64966,64967],{"class":543},"    f ",[533,64969,554],{"class":553},[533,64971,64972],{"class":543}," f_ghz ",[533,64974,2469],{"class":553},[533,64976,64977],{"class":625}," 1e9\n",[533,64979,64980,64983,64985,64988,64990],{"class":535,"line":11296},[533,64981,64982],{"class":543},"    f0 ",[533,64984,554],{"class":553},[533,64986,64987],{"class":543}," f0_ghz ",[533,64989,2469],{"class":553},[533,64991,64977],{"class":625},[533,64993,64994,64997,64999,65002,65004],{"class":535,"line":11302},[533,64995,64996],{"class":543},"    tau ",[533,64998,554],{"class":553},[533,65000,65001],{"class":543}," tau_ns ",[533,65003,2469],{"class":553},[533,65005,15488],{"class":625},[533,65007,65008,65011,65013,65016,65018,65021,65023,65025],{"class":535,"line":11332},[533,65009,65010],{"class":543},"    omega ",[533,65012,554],{"class":553},[533,65014,65015],{"class":543}," two_pi ",[533,65017,2469],{"class":553},[533,65019,65020],{"class":543}," omega_onres_mhz ",[533,65022,2469],{"class":553},[533,65024,15528],{"class":625},[533,65026,65027],{"class":593},"  # rad\u002Fs\n",[533,65029,65030],{"class":535,"line":11345},[533,65031,891],{"emptyLinePlaceholder":790},[533,65033,65034,65037,65040,65042,65044,65046,65049,65051,65053,65056],{"class":535,"line":11372},[533,65035,65036],{"class":543},"    F, ",[533,65038,65039],{"class":625},"TAU",[533,65041,4899],{"class":553},[533,65043,2911],{"class":543},[533,65045,40547],{"class":560},[533,65047,65048],{"class":543},"(f, tau, ",[533,65050,40553],{"class":567},[533,65052,554],{"class":553},[533,65054,65055],{"class":621},"'xy'",[533,65057,637],{"class":543},[533,65059,65060,65063,65065,65067,65069,65072,65074,65077],{"class":535,"line":11385},[533,65061,65062],{"class":543},"    Delta ",[533,65064,554],{"class":553},[533,65066,65015],{"class":543},[533,65068,2469],{"class":553},[533,65070,65071],{"class":543}," (F ",[533,65073,2514],{"class":553},[533,65075,65076],{"class":543}," f0)               ",[533,65078,65079],{"class":593},"# rad\u002Fs\n",[533,65081,65082,65085,65087,65089,65091,65094,65096,65098,65100,65103,65105,65107],{"class":535,"line":11390},[533,65083,65084],{"class":543},"    Omega_R ",[533,65086,554],{"class":553},[533,65088,2911],{"class":543},[533,65090,2262],{"class":560},[533,65092,65093],{"class":543},"(omega",[533,65095,11935],{"class":553},[533,65097,1140],{"class":625},[533,65099,14257],{"class":553},[533,65101,65102],{"class":543}," Delta",[533,65104,11935],{"class":553},[533,65106,1140],{"class":625},[533,65108,637],{"class":543},[533,65110,65111],{"class":535,"line":11402},[533,65112,891],{"emptyLinePlaceholder":790},[533,65114,65115,65118,65120,65123,65125,65128,65130,65133,65135,65138,65140,65142],{"class":535,"line":11407},[533,65116,65117],{"class":539},"    with",[533,65119,2911],{"class":543},[533,65121,65122],{"class":560},"errstate",[533,65124,615],{"class":543},[533,65126,65127],{"class":567},"divide",[533,65129,554],{"class":553},[533,65131,65132],{"class":621},"'ignore'",[533,65134,1133],{"class":543},[533,65136,65137],{"class":567},"invalid",[533,65139,554],{"class":553},[533,65141,65132],{"class":621},[533,65143,1771],{"class":543},[533,65145,65146,65149,65151,65154,65156,65159,65161],{"class":535,"line":11412},[533,65147,65148],{"class":543},"        amp ",[533,65150,554],{"class":553},[533,65152,65153],{"class":543}," (omega ",[533,65155,2941],{"class":553},[533,65157,65158],{"class":543}," Omega_R) ",[533,65160,11935],{"class":553},[533,65162,65163],{"class":625}," 2\n",[533,65165,65166,65169,65171,65173,65175,65178,65180],{"class":535,"line":11418},[533,65167,65168],{"class":543},"        phase ",[533,65170,554],{"class":553},[533,65172,12264],{"class":625},[533,65174,2254],{"class":553},[533,65176,65177],{"class":543}," Omega_R ",[533,65179,2469],{"class":553},[533,65181,65182],{"class":625}," TAU\n",[533,65184,65185,65188,65190,65193,65195,65197,65199,65202,65204],{"class":535,"line":11423},[533,65186,65187],{"class":543},"        Pe ",[533,65189,554],{"class":553},[533,65191,65192],{"class":543}," amp ",[533,65194,2469],{"class":553},[533,65196,2911],{"class":543},[533,65198,14336],{"class":560},[533,65200,65201],{"class":543},"(phase) ",[533,65203,11935],{"class":553},[533,65205,65163],{"class":625},[533,65207,65208],{"class":535,"line":11467},[533,65209,891],{"emptyLinePlaceholder":790},[533,65211,65212,65214,65217,65219,65221,65223,65225,65227,65229,65231],{"class":535,"line":11473},[533,65213,1814],{"class":539},[533,65215,65216],{"class":543}," t2star_ns ",[533,65218,3900],{"class":539},[533,65220,3903],{"class":539},[533,65222,3906],{"class":625},[533,65224,3894],{"class":539},[533,65226,65216],{"class":543},[533,65228,2808],{"class":553},[533,65230,11793],{"class":625},[533,65232,544],{"class":543},[533,65234,65235,65238,65240,65242,65244,65246,65248,65250,65252,65255,65257,65259],{"class":535,"line":11488},[533,65236,65237],{"class":543},"        decay ",[533,65239,554],{"class":553},[533,65241,2911],{"class":543},[533,65243,16247],{"class":560},[533,65245,615],{"class":543},[533,65247,2514],{"class":553},[533,65249,65039],{"class":625},[533,65251,11903],{"class":553},[533,65253,65254],{"class":543}," (t2star_ns ",[533,65256,2469],{"class":553},[533,65258,28479],{"class":625},[533,65260,1937],{"class":543},[533,65262,65263,65265,65267,65270,65272],{"class":535,"line":11505},[533,65264,65187],{"class":543},[533,65266,554],{"class":553},[533,65268,65269],{"class":543}," Pe ",[533,65271,2469],{"class":553},[533,65273,65274],{"class":543}," decay\n",[533,65276,65277],{"class":535,"line":11518},[533,65278,891],{"emptyLinePlaceholder":790},[533,65280,65281,65283,65285,65287,65290,65292,65294,65296],{"class":535,"line":11523},[533,65282,1880],{"class":539},[533,65284,2911],{"class":543},[533,65286,13850],{"class":560},[533,65288,65289],{"class":543},"(Pe, ",[533,65291,2229],{"class":625},[533,65293,1133],{"class":543},[533,65295,2239],{"class":625},[533,65297,637],{"class":543},[524,65299,65301],{"className":526,"code":65300,"language":528,"meta":529,"style":529},"freq_ghz = np.linspace(FREQ_MIN_GHZ, FREQ_MAX_GHZ, N_FREQ)\ndur_ns = np.linspace(DUR_MIN_NS, DUR_MAX_NS, N_DUR)\nPe = rabi_probability(freq_ghz, dur_ns, F0_GHZ, OMEGA_ONRESONANCE_MHZ, T2STAR_NS)\nprint('Grid shape (τ × f):', Pe.shape)\n",[57,65302,65303,65328,65353,65377],{"__ignoreMap":529},[533,65304,65305,65308,65310,65312,65314,65316,65318,65320,65322,65324,65326],{"class":535,"line":536},[533,65306,65307],{"class":543},"freq_ghz ",[533,65309,554],{"class":553},[533,65311,2911],{"class":543},[533,65313,12734],{"class":560},[533,65315,615],{"class":543},[533,65317,64053],{"class":625},[533,65319,1133],{"class":543},[533,65321,64068],{"class":625},[533,65323,1133],{"class":543},[533,65325,64083],{"class":625},[533,65327,637],{"class":543},[533,65329,65330,65333,65335,65337,65339,65341,65343,65345,65347,65349,65351],{"class":535,"line":547},[533,65331,65332],{"class":543},"dur_ns ",[533,65334,554],{"class":553},[533,65336,2911],{"class":543},[533,65338,12734],{"class":560},[533,65340,615],{"class":543},[533,65342,64097],{"class":625},[533,65344,1133],{"class":543},[533,65346,64111],{"class":625},[533,65348,1133],{"class":543},[533,65350,64126],{"class":625},[533,65352,637],{"class":543},[533,65354,65355,65358,65360,65362,65365,65367,65369,65371,65373,65375],{"class":535,"line":575},[533,65356,65357],{"class":543},"Pe ",[533,65359,554],{"class":553},[533,65361,64832],{"class":560},[533,65363,65364],{"class":543},"(freq_ghz, dur_ns, ",[533,65366,63916],{"class":625},[533,65368,1133],{"class":543},[533,65370,64000],{"class":625},[533,65372,1133],{"class":543},[533,65374,64140],{"class":625},[533,65376,637],{"class":543},[533,65378,65379,65381,65383,65386],{"class":535,"line":590},[533,65380,917],{"class":553},[533,65382,615],{"class":543},[533,65384,65385],{"class":621},"'Grid shape (τ × f):'",[533,65387,65388],{"class":543},", Pe.shape)\n",[524,65390,65393],{"className":65391,"code":65392,"language":31773,"meta":529},[38897],"Grid shape (τ × f): (401, 401)\n",[57,65394,65392],{"__ignoreMap":529},[524,65396,65398],{"className":526,"code":65397,"language":528,"meta":529,"style":529},"controls_table = pd.DataFrame(\n    [\n        ['f0 (GHz)', F0_GHZ],\n        ['Ω\u002F2π on-res (MHz)', OMEGA_ONRESONANCE_MHZ],\n        ['f sweep min (GHz)', FREQ_MIN_GHZ],\n        ['f sweep max (GHz)', FREQ_MAX_GHZ],\n        ['N_f', N_FREQ],\n        ['τ sweep min (ns)', DUR_MIN_NS],\n        ['τ sweep max (ns)', DUR_MAX_NS],\n        ['N_τ', N_DUR],\n        ['T2* (ns; None=off)', T2STAR_NS],\n    ],\n    columns=['Parameter', 'Value']\n)\ncontrols_table\n",[57,65399,65400,65415,65420,65434,65447,65460,65473,65486,65499,65512,65525,65538,65543,65562,65566],{"__ignoreMap":529},[533,65401,65402,65405,65407,65410,65413],{"class":535,"line":536},[533,65403,65404],{"class":543},"controls_table ",[533,65406,554],{"class":553},[533,65408,65409],{"class":543}," pd.",[533,65411,65412],{"class":560},"DataFrame",[533,65414,1503],{"class":543},[533,65416,65417],{"class":535,"line":547},[533,65418,65419],{"class":543},"    [\n",[533,65421,65422,65425,65428,65430,65432],{"class":535,"line":575},[533,65423,65424],{"class":543},"        [",[533,65426,65427],{"class":621},"'f0 (GHz)'",[533,65429,1133],{"class":543},[533,65431,63916],{"class":625},[533,65433,1533],{"class":543},[533,65435,65436,65438,65441,65443,65445],{"class":535,"line":590},[533,65437,65424],{"class":543},[533,65439,65440],{"class":621},"'Ω\u002F2π on-res (MHz)'",[533,65442,1133],{"class":543},[533,65444,64000],{"class":625},[533,65446,1533],{"class":543},[533,65448,65449,65451,65454,65456,65458],{"class":535,"line":597},[533,65450,65424],{"class":543},[533,65452,65453],{"class":621},"'f sweep min (GHz)'",[533,65455,1133],{"class":543},[533,65457,64053],{"class":625},[533,65459,1533],{"class":543},[533,65461,65462,65464,65467,65469,65471],{"class":535,"line":603},[533,65463,65424],{"class":543},[533,65465,65466],{"class":621},"'f sweep max (GHz)'",[533,65468,1133],{"class":543},[533,65470,64068],{"class":625},[533,65472,1533],{"class":543},[533,65474,65475,65477,65480,65482,65484],{"class":535,"line":609},[533,65476,65424],{"class":543},[533,65478,65479],{"class":621},"'N_f'",[533,65481,1133],{"class":543},[533,65483,64083],{"class":625},[533,65485,1533],{"class":543},[533,65487,65488,65490,65493,65495,65497],{"class":535,"line":640},[533,65489,65424],{"class":543},[533,65491,65492],{"class":621},"'τ sweep min (ns)'",[533,65494,1133],{"class":543},[533,65496,64097],{"class":625},[533,65498,1533],{"class":543},[533,65500,65501,65503,65506,65508,65510],{"class":535,"line":646},[533,65502,65424],{"class":543},[533,65504,65505],{"class":621},"'τ sweep max (ns)'",[533,65507,1133],{"class":543},[533,65509,64111],{"class":625},[533,65511,1533],{"class":543},[533,65513,65514,65516,65519,65521,65523],{"class":535,"line":658},[533,65515,65424],{"class":543},[533,65517,65518],{"class":621},"'N_τ'",[533,65520,1133],{"class":543},[533,65522,64126],{"class":625},[533,65524,1533],{"class":543},[533,65526,65527,65529,65532,65534,65536],{"class":535,"line":680},[533,65528,65424],{"class":543},[533,65530,65531],{"class":621},"'T2* (ns; None=off)'",[533,65533,1133],{"class":543},[533,65535,64140],{"class":625},[533,65537,1533],{"class":543},[533,65539,65540],{"class":535,"line":1536},[533,65541,65542],{"class":543},"    ],\n",[533,65544,65545,65548,65550,65552,65555,65557,65560],{"class":535,"line":1552},[533,65546,65547],{"class":567},"    columns",[533,65549,554],{"class":553},[533,65551,1522],{"class":543},[533,65553,65554],{"class":621},"'Parameter'",[533,65556,1133],{"class":543},[533,65558,65559],{"class":621},"'Value'",[533,65561,14965],{"class":543},[533,65563,65564],{"class":535,"line":1911},[533,65565,637],{"class":543},[533,65567,65568],{"class":535,"line":1940},[533,65569,65570],{"class":543},"controls_table\n",[524,65572,65575],{"className":65573,"code":65574,"language":31773,"meta":529},[38897],"Parameter  Value\n0            f0 (GHz)    5.0\n1   Ω\u002F2π on-res (MHz)   20.0\n2   f sweep min (GHz)    4.9\n3   f sweep max (GHz)    5.1\n4                 N_f  401.0\n5    τ sweep min (ns)    0.0\n6    τ sweep max (ns)  200.0\n7                 N_τ  401.0\n8  T2* (ns; None=off)  500.0\n",[57,65576,65574],{"__ignoreMap":529},[524,65578,65580],{"className":526,"code":65579,"language":528,"meta":529,"style":529},"fig, ax = plt.subplots(figsize=(7, 5))\nc = ax.pcolormesh(freq_ghz, dur_ns, Pe, shading='auto')\ncb = fig.colorbar(c, ax=ax, label=r'$P_e$')\nax.set_xlabel('Drive frequency f (GHz)')\nax.set_ylabel('Pulse duration τ (ns)')\nax.set_title('Rabi excited-state probability $P_e(f,\\\\,\\\\tau)$')\nfig.tight_layout()\nplt.show()\n",[57,65581,65582,65608,65633,65664,65677,65690,65713,65722],{"__ignoreMap":529},[533,65583,65584,65586,65588,65590,65592,65594,65596,65598,65600,65602,65604,65606],{"class":535,"line":536},[533,65585,27656],{"class":543},[533,65587,554],{"class":553},[533,65589,19777],{"class":543},[533,65591,19780],{"class":560},[533,65593,615],{"class":543},[533,65595,12901],{"class":567},[533,65597,554],{"class":553},[533,65599,615],{"class":543},[533,65601,1994],{"class":625},[533,65603,1133],{"class":543},[533,65605,1220],{"class":625},[533,65607,1937],{"class":543},[533,65609,65610,65613,65615,65617,65620,65623,65626,65628,65631],{"class":535,"line":547},[533,65611,65612],{"class":543},"c ",[533,65614,554],{"class":553},[533,65616,41124],{"class":543},[533,65618,65619],{"class":560},"pcolormesh",[533,65621,65622],{"class":543},"(freq_ghz, dur_ns, Pe, ",[533,65624,65625],{"class":567},"shading",[533,65627,554],{"class":553},[533,65629,65630],{"class":621},"'auto'",[533,65632,637],{"class":543},[533,65634,65635,65638,65640,65642,65644,65647,65649,65651,65653,65655,65657,65659,65662],{"class":535,"line":575},[533,65636,65637],{"class":543},"cb ",[533,65639,554],{"class":553},[533,65641,41736],{"class":543},[533,65643,13556],{"class":560},[533,65645,65646],{"class":543},"(c, ",[533,65648,12651],{"class":567},[533,65650,554],{"class":553},[533,65652,41748],{"class":543},[533,65654,12942],{"class":567},[533,65656,554],{"class":553},[533,65658,13035],{"class":539},[533,65660,65661],{"class":2387},"'$P_e$'",[533,65663,637],{"class":543},[533,65665,65666,65668,65670,65672,65675],{"class":535,"line":590},[533,65667,27691],{"class":543},[533,65669,19871],{"class":560},[533,65671,615],{"class":543},[533,65673,65674],{"class":621},"'Drive frequency f (GHz)'",[533,65676,637],{"class":543},[533,65678,65679,65681,65683,65685,65688],{"class":535,"line":597},[533,65680,27691],{"class":543},[533,65682,19885],{"class":560},[533,65684,615],{"class":543},[533,65686,65687],{"class":621},"'Pulse duration τ (ns)'",[533,65689,637],{"class":543},[533,65691,65692,65694,65696,65698,65701,65704,65706,65708,65711],{"class":535,"line":603},[533,65693,27691],{"class":543},[533,65695,19861],{"class":560},[533,65697,615],{"class":543},[533,65699,65700],{"class":621},"'Rabi excited-state probability $P_e(f,",[533,65702,65703],{"class":553},"\\\\",[533,65705,2464],{"class":621},[533,65707,65703],{"class":553},[533,65709,65710],{"class":621},"tau)$'",[533,65712,637],{"class":543},[533,65714,65715,65718,65720],{"class":535,"line":609},[533,65716,65717],{"class":543},"fig.",[533,65719,19953],{"class":560},[533,65721,1217],{"class":543},[533,65723,65724,65726,65728],{"class":535,"line":640},[533,65725,12893],{"class":543},[533,65727,13120],{"class":560},[533,65729,1217],{"class":543},[2175,65731],{"alt":65732,"src":65733},"Output 1 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-01.webp",[524,65735,65737],{"className":526,"code":65736,"language":528,"meta":529,"style":529},"# @title Cell: QuTiP Bloch sphere with labeled Rabi-control axes\n\"\"\"Render labeled Bloch-sphere trajectories for resonant and detuned drives.\"\"\"\n\nimport importlib.util\nimport subprocess\nimport sys\n\n# -------------------------------------------------------------------------\n# Control knobs\n# -------------------------------------------------------------------------\nINSTALL_BLOCH_DEPENDENCIES = True\n\nBLOCH_REQUIRED_PACKAGES = {\n    \"numpy\": \"numpy\",\n    \"matplotlib\": \"matplotlib\",\n    \"scipy\": \"scipy\",\n    \"qutip\": \"qutip\",\n}\n\nBLOCH_F0_GHZ = globals().get(\"F0_GHZ\", 5.000)\nBLOCH_OMEGA_ONRESONANCE_MHZ = globals().get(\n    \"OMEGA_ONRESONANCE_MHZ\",\n    20.0,\n)\n\nBLOCH_RESONANT_DETUNING_MHZ = 0.0\nBLOCH_DETUNED_DETUNING_MHZ = 40.0\n\n# Use None to automatically plot one resonant pi pulse.\nBLOCH_DURATION_NS = None\n\nBLOCH_NUM_TIME_POINTS = 300\nBLOCH_FIGSIZE = (8.8, 7.8)\nBLOCH_DPI = 250\nBLOCH_VIEW = [-60, 25]\n\nBLOCH_SHOW_CONTROL_AXIS_ARROWS = True\nBLOCH_SHOW_ARROW_TIP_LABELS = True\nBLOCH_SHOW_ENDPOINT_MARKERS = True\nBLOCH_SHOW_LEGEND = True\nBLOCH_PRINT_SUMMARY = True\n\nCOLOR_RESONANT_TRAJECTORY = \"tab:blue\"\nCOLOR_DETUNED_TRAJECTORY = \"tab:orange\"\nCOLOR_RESONANT_AXIS = \"tab:green\"\nCOLOR_DETUNED_AXIS = \"tab:red\"\nCOLOR_INITIAL_STATE = \"black\"\n\nTRAJECTORY_LINEWIDTH = 2.4\nCONTROL_AXIS_LINEWIDTH = 2.2\nENDPOINT_MARKER_SIZE = 45\nARROW_LENGTH_RATIO = 0.12\nARROW_LABEL_SCALE = 1.16\n\nLEGEND_LOCATION = \"upper left\"\nLEGEND_BBOX_TO_ANCHOR = (1.02, 1.02)\n\n\ndef package_is_available(package_name: str) -> bool:\n    \"\"\"Return True when a package can be imported.\"\"\"\n    return importlib.util.find_spec(package_name) is not None\n\n\ndef install_missing_packages(\n    required_packages: dict[str, str],\n) -> None:\n    \"\"\"Install missing notebook packages using uv pip with a pip fallback.\"\"\"\n    if not INSTALL_BLOCH_DEPENDENCIES:\n        return\n\n    missing_package_names = [\n        pip_name\n        for import_name, pip_name in required_packages.items()\n        if not package_is_available(import_name)\n    ]\n\n    if not missing_package_names:\n        return\n\n    try:\n        subprocess.run(\n            [sys.executable, \"-m\", \"pip\", \"install\", \"-q\", \"uv\"],\n            check=True,\n        )\n        subprocess.run(\n            [\n                sys.executable,\n                \"-m\",\n                \"uv\",\n                \"pip\",\n                \"install\",\n                \"--system\",\n                \"-q\",\n                *missing_package_names,\n            ],\n            check=True,\n        )\n    except (subprocess.CalledProcessError, FileNotFoundError):\n        subprocess.run(\n            [\n                sys.executable,\n                \"-m\",\n                \"pip\",\n                \"install\",\n                \"-q\",\n                *missing_package_names,\n            ],\n            check=True,\n        )\n\n\ninstall_missing_packages(BLOCH_REQUIRED_PACKAGES)\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport qutip as qt\nfrom matplotlib.lines import Line2D\n\ntry:\n    from IPython import get_ipython\n\n    ipython = get_ipython()\n    if ipython is not None:\n        ipython.run_line_magic(\"matplotlib\", \"inline\")\nexcept ImportError:\n    pass\n\nplt.rcParams.update(\n    {\n        \"figure.dpi\": BLOCH_DPI,\n    }\n)\n\n\ndef get_pi_pulse_duration_ns(omega_onresonance_mhz: float) -> float:\n    \"\"\"Return the resonant pi-pulse duration in nanoseconds.\"\"\"\n    return 1.0e3 \u002F (2.0 * omega_onresonance_mhz)\n\n\ndef solve_rwa_bloch_trajectory(\n    detuning_mhz: float,\n    duration_ns: float,\n    num_time_points: int,\n) -> dict[str, np.ndarray | float]:\n    \"\"\"Solve the RWA two-level trajectory and return Bloch observables.\"\"\"\n    omega_rad_s = 2.0 * np.pi * BLOCH_OMEGA_ONRESONANCE_MHZ * 1.0e6\n    delta_rad_s = 2.0 * np.pi * detuning_mhz * 1.0e6\n    omega_generalized_rad_s = np.hypot(omega_rad_s, delta_rad_s)\n\n    time_s = np.linspace(0.0, duration_ns * 1.0e-9, num_time_points)\n\n    ground_state = qt.basis(2, 0)\n    excited_state = qt.basis(2, 1)\n    excited_projector = excited_state * excited_state.dag()\n\n    hamiltonian = 0.5 * (\n        delta_rad_s * qt.sigmaz()\n        + omega_rad_s * qt.sigmax()\n    )\n\n    result = qt.sesolve(\n        hamiltonian,\n        ground_state,\n        time_s,\n    )\n\n    x_expectation = np.real(np.asarray(qt.expect(qt.sigmax(), result.states)))\n    y_expectation = np.real(np.asarray(qt.expect(qt.sigmay(), result.states)))\n    z_expectation = np.real(np.asarray(qt.expect(qt.sigmaz(), result.states)))\n\n    excited_probability = np.real(\n        np.asarray(qt.expect(excited_projector, result.states))\n    )\n\n    bloch_vectors = np.vstack(\n        [\n            x_expectation,\n            y_expectation,\n            z_expectation,\n        ]\n    )\n\n    control_axis = np.array(\n        [\n            omega_rad_s \u002F omega_generalized_rad_s,\n            0.0,\n            delta_rad_s \u002F omega_generalized_rad_s,\n        ]\n    )\n\n    return {\n        \"time_ns\": time_s * 1.0e9,\n        \"vectors\": bloch_vectors,\n        \"excited_probability\": excited_probability,\n        \"control_axis\": control_axis,\n        \"generalized_rabi_mhz\": (\n            omega_generalized_rad_s \u002F (2.0 * np.pi * 1.0e6)\n        ),\n    }\n\n\ndef render_empty_bloch_sphere(\n    bloch_sphere: qt.Bloch,\n    fallback_figure: plt.Figure,\n):\n    \"\"\"Render an empty QuTiP Bloch sphere and return its Matplotlib axis.\"\"\"\n    if hasattr(bloch_sphere, \"render\"):\n        bloch_sphere.render()\n    elif hasattr(bloch_sphere, \"make_sphere\"):\n        bloch_sphere.make_sphere()\n    else:\n        bloch_sphere.show()\n\n    axis = getattr(bloch_sphere, \"axes\", None)\n\n    if axis is None and fallback_figure.axes:\n        axis = fallback_figure.axes[-1]\n\n    if axis is None:\n        raise RuntimeError(\"Could not access the Matplotlib Bloch axis.\")\n\n    return axis\n\n\ndef draw_bloch_trajectory(\n    axis,\n    vectors: np.ndarray,\n    color: str,\n    label: str,\n) -> None:\n    \"\"\"Draw a Bloch-vector trajectory on an existing 3D axis.\"\"\"\n    axis.plot(\n        vectors[0],\n        vectors[1],\n        vectors[2],\n        color=color,\n        linewidth=TRAJECTORY_LINEWIDTH,\n        label=label,\n    )\n\n\ndef draw_endpoint_marker(\n    axis,\n    vector: np.ndarray,\n    color: str,\n    label: str,\n) -> None:\n    \"\"\"Draw a marker at the final point of a Bloch trajectory.\"\"\"\n    axis.scatter(\n        vector[0],\n        vector[1],\n        vector[2],\n        color=color,\n        s=ENDPOINT_MARKER_SIZE,\n        depthshade=True,\n        label=label,\n    )\n\n\ndef draw_control_axis_arrow(\n    axis,\n    vector: np.ndarray,\n    color: str,\n    label: str,\n) -> None:\n    \"\"\"Draw a normalized effective-control-axis arrow.\"\"\"\n    axis.quiver(\n        0.0,\n        0.0,\n        0.0,\n        vector[0],\n        vector[1],\n        vector[2],\n        color=color,\n        linewidth=CONTROL_AXIS_LINEWIDTH,\n        arrow_length_ratio=ARROW_LENGTH_RATIO,\n        normalize=False,\n        label=label,\n    )\n\n\ndef add_arrow_tip_label(\n    axis,\n    vector: np.ndarray,\n    text: str,\n    color: str,\n) -> None:\n    \"\"\"Place a text label slightly beyond the arrow tip.\"\"\"\n    label_position = ARROW_LABEL_SCALE * vector\n\n    axis.text(\n        label_position[0],\n        label_position[1],\n        label_position[2],\n        text,\n        color=color,\n        fontsize=10,\n        ha=\"center\",\n        va=\"center\",\n    )\n\n\ndef add_initial_state_label(axis) -> None:\n    \"\"\"Label the initialized ground-state pole.\"\"\"\n    axis.scatter(\n        0.0,\n        0.0,\n        1.0,\n        color=COLOR_INITIAL_STATE,\n        s=ENDPOINT_MARKER_SIZE,\n        depthshade=True,\n    )\n    axis.text(\n        0.0,\n        0.0,\n        1.16,\n        r\"initial $|g\\rangle$\",\n        color=COLOR_INITIAL_STATE,\n        fontsize=9,\n        ha=\"center\",\n        va=\"center\",\n    )\n\n\nif BLOCH_DURATION_NS is None:\n    bloch_duration_ns = get_pi_pulse_duration_ns(\n        BLOCH_OMEGA_ONRESONANCE_MHZ\n    )\nelse:\n    bloch_duration_ns = BLOCH_DURATION_NS\n\nresonant_trajectory = solve_rwa_bloch_trajectory(\n    detuning_mhz=BLOCH_RESONANT_DETUNING_MHZ,\n    duration_ns=bloch_duration_ns,\n    num_time_points=BLOCH_NUM_TIME_POINTS,\n)\n\ndetuned_trajectory = solve_rwa_bloch_trajectory(\n    detuning_mhz=BLOCH_DETUNED_DETUNING_MHZ,\n    duration_ns=bloch_duration_ns,\n    num_time_points=BLOCH_NUM_TIME_POINTS,\n)\n\nresonant_drive_ghz = (\n    BLOCH_F0_GHZ\n    + BLOCH_RESONANT_DETUNING_MHZ * 1.0e-3\n)\ndetuned_drive_ghz = (\n    BLOCH_F0_GHZ\n    + BLOCH_DETUNED_DETUNING_MHZ * 1.0e-3\n)\n\nfigure = plt.figure(figsize=BLOCH_FIGSIZE)\n\nbloch = qt.Bloch(fig=figure)\nbloch.view = BLOCH_VIEW\nbloch.zlabel = [r\"$|g\\rangle$\", r\"$|e\\rangle$\"]\nbloch.title = (\n    \"Bloch-sphere Rabi trajectories\\n\"\n    rf\"resonant $\\Delta\u002F2\\pi={BLOCH_RESONANT_DETUNING_MHZ:.1f}$ MHz, \"\n    rf\"detuned $\\Delta\u002F2\\pi={BLOCH_DETUNED_DETUNING_MHZ:.1f}$ MHz\"\n)\n\nbloch_axis = render_empty_bloch_sphere(\n    bloch_sphere=bloch,\n    fallback_figure=figure,\n)\n\ndraw_bloch_trajectory(\n    axis=bloch_axis,\n    vectors=resonant_trajectory[\"vectors\"],\n    color=COLOR_RESONANT_TRAJECTORY,\n    label=\"Resonant state trajectory\",\n)\ndraw_bloch_trajectory(\n    axis=bloch_axis,\n    vectors=detuned_trajectory[\"vectors\"],\n    color=COLOR_DETUNED_TRAJECTORY,\n    label=\"Detuned state trajectory\",\n)\n\nif BLOCH_SHOW_ENDPOINT_MARKERS:\n    draw_endpoint_marker(\n        axis=bloch_axis,\n        vector=resonant_trajectory[\"vectors\"][:, -1],\n        color=COLOR_RESONANT_TRAJECTORY,\n        label=\"Resonant final state\",\n    )\n    draw_endpoint_marker(\n        axis=bloch_axis,\n        vector=detuned_trajectory[\"vectors\"][:, -1],\n        color=COLOR_DETUNED_TRAJECTORY,\n        label=\"Detuned final state\",\n    )\n    add_initial_state_label(bloch_axis)\n\nif BLOCH_SHOW_CONTROL_AXIS_ARROWS:\n    draw_control_axis_arrow(\n        axis=bloch_axis,\n        vector=resonant_trajectory[\"control_axis\"],\n        color=COLOR_RESONANT_AXIS,\n        label=r\"Resonant control axis $\\hat{n}_{\\mathrm{res}}$\",\n    )\n    draw_control_axis_arrow(\n        axis=bloch_axis,\n        vector=detuned_trajectory[\"control_axis\"],\n        color=COLOR_DETUNED_AXIS,\n        label=r\"Detuned control axis $\\hat{n}_{\\mathrm{det}}$\",\n    )\n\nif BLOCH_SHOW_ARROW_TIP_LABELS and BLOCH_SHOW_CONTROL_AXIS_ARROWS:\n    add_arrow_tip_label(\n        axis=bloch_axis,\n        vector=resonant_trajectory[\"control_axis\"],\n        text=r\"$\\hat{n}_{\\mathrm{res}}$\",\n        color=COLOR_RESONANT_AXIS,\n    )\n    add_arrow_tip_label(\n        axis=bloch_axis,\n        vector=detuned_trajectory[\"control_axis\"],\n        text=r\"$\\hat{n}_{\\mathrm{det}}$\",\n        color=COLOR_DETUNED_AXIS,\n    )\n\nif BLOCH_SHOW_LEGEND:\n    legend_handles = [\n        Line2D(\n            [0],\n            [0],\n            color=COLOR_RESONANT_TRAJECTORY,\n            linewidth=TRAJECTORY_LINEWIDTH,\n            label=\"Resonant state trajectory\",\n        ),\n        Line2D(\n            [0],\n            [0],\n            color=COLOR_DETUNED_TRAJECTORY,\n            linewidth=TRAJECTORY_LINEWIDTH,\n            label=\"Detuned state trajectory\",\n        ),\n        Line2D(\n            [0],\n            [0],\n            color=COLOR_RESONANT_AXIS,\n            linewidth=CONTROL_AXIS_LINEWIDTH,\n            label=r\"Resonant control axis $\\hat{n}_{\\mathrm{res}}$\",\n        ),\n        Line2D(\n            [0],\n            [0],\n            color=COLOR_DETUNED_AXIS,\n            linewidth=CONTROL_AXIS_LINEWIDTH,\n            label=r\"Detuned control axis $\\hat{n}_{\\mathrm{det}}$\",\n        ),\n    ]\n\n    bloch_axis.legend(\n        handles=legend_handles,\n        loc=LEGEND_LOCATION,\n        bbox_to_anchor=LEGEND_BBOX_TO_ANCHOR,\n        frameon=True,\n        borderaxespad=0.0,\n    )\n\nplt.show()\n\nif BLOCH_PRINT_SUMMARY:\n    resonant_axis = resonant_trajectory[\"control_axis\"]\n    detuned_axis = detuned_trajectory[\"control_axis\"]\n\n    print(\"Bloch-sphere trajectory summary\")\n    print(f\"Natural transition frequency f0: {BLOCH_F0_GHZ:.6f} GHz\")\n    print(f\"Resonant drive frequency: {resonant_drive_ghz:.6f} GHz\")\n    print(f\"Detuned drive frequency: {detuned_drive_ghz:.6f} GHz\")\n    print(f\"On-resonance Rabi rate: {BLOCH_OMEGA_ONRESONANCE_MHZ:.3f} MHz\")\n    print(f\"Plotted duration: {bloch_duration_ns:.3f} ns\")\n    print(\n        \"Resonant control axis n_res: \"\n        f\"({resonant_axis[0]:.6f}, \"\n        f\"{resonant_axis[1]:.6f}, \"\n        f\"{resonant_axis[2]:.6f})\"\n    )\n    print(\n        \"Detuned control axis n_det: \"\n        f\"({detuned_axis[0]:.6f}, \"\n        f\"{detuned_axis[1]:.6f}, \"\n        f\"{detuned_axis[2]:.6f})\"\n    )\n    print(\n        \"Resonant final excited-state probability: \"\n        f\"{resonant_trajectory['excited_probability'][-1]:.6f}\"\n    )\n    print(\n        \"Detuned final excited-state probability: \"\n        f\"{detuned_trajectory['excited_probability'][-1]:.6f}\"\n    )\n    print(\n        \"Detuned generalized Rabi frequency: \"\n        f\"{detuned_trajectory['generalized_rabi_mhz']:.6f} MHz\"\n    )\n",[57,65738,65739,65744,65749,65753,65760,65767,65773,65777,65782,65787,65791,65800,65804,65813,65825,65837,65849,65861,65865,65869,65893,65908,65915,65922,65926,65930,65939,65949,65953,65958,65968,65972,65982,66001,66010,66029,66033,66042,66051,66060,66069,66078,66082,66092,66102,66112,66122,66132,66136,66146,66156,66166,66176,66186,66190,66200,66218,66222,66226,66248,66253,66272,66276,66280,66289,66305,66313,66318,66329,66334,66338,66347,66352,66369,66380,66385,66389,66398,66402,66406,66413,66422,66452,66463,66467,66475,66480,66485,66492,66499,66506,66513,66520,66527,66535,66540,66550,66554,66562,66570,66574,66578,66584,66590,66596,66602,66608,66612,66622,66626,66630,66634,66645,66649,66659,66669,66681,66693,66697,66703,66716,66720,66732,66747,66766,66773,66778,66782,66791,66796,66807,66811,66815,66819,66823,66845,66850,66868,66872,66876,66885,66896,66907,66918,66935,66940,66963,66985,67000,67004,67030,67034,67056,67077,67097,67101,67114,67128,67145,67149,67153,67167,67172,67177,67182,67186,67190,67219,67245,67270,67274,67287,67301,67305,67309,67323,67328,67333,67338,67343,67348,67352,67356,67369,67374,67385,67393,67403,67408,67413,67418,67425,67441,67450,67459,67468,67477,67500,67506,67511,67516,67521,67531,67540,67549,67554,67560,67575,67586,67601,67611,67619,67628,67633,67654,67659,67675,67692,67697,67710,67723,67728,67736,67741,67746,67756,67764,67772,67784,67796,67805,67811,67821,67831,67840,67849,67860,67872,67883,67888,67893,67898,67908,67915,67923,67934,67945,67954,67960,67970,67980,67989,67998,68007,68019,68031,68040,68045,68050,68055,68065,68072,68079,68090,68101,68110,68116,68126,68134,68141,68148,68157,68166,68175,68184,68195,68207,68219,68228,68233,68238,68243,68253,68260,68267,68279,68290,68299,68305,68321,68326,68335,68345,68354,68363,68369,68378,68389,68401,68413,68418,68423,68428,68446,68452,68461,68468,68475,68483,68494,68505,68516,68521,68530,68537,68544,68552,68573,68584,68595,68606,68617,68622,68627,68632,68646,68658,68664,68669,68676,68686,68691,68703,68714,68724,68735,68740,68745,68757,68768,68777,68788,68793,68798,68808,68814,68828,68833,68843,68848,68860,68865,68870,68892,68897,68920,68931,68970,68980,68990,69009,69027,69032,69037,69049,69059,69069,69074,69079,69087,69097,69112,69123,69135,69140,69147,69156,69170,69181,69193,69198,69203,69213,69221,69231,69252,69263,69275,69280,69287,69296,69315,69326,69338,69343,69352,69357,69367,69375,69384,69398,69409,69435,69440,69447,69456,69469,69480,69503,69508,69513,69527,69535,69544,69557,69579,69590,69595,69602,69611,69624,69645,69656,69661,69666,69676,69686,69694,69704,69713,69725,69737,69749,69754,69761,69770,69779,69790,69801,69812,69817,69824,69833,69842,69853,69864,69885,69890,69897,69906,69915,69926,69937,69958,69963,69968,69973,69983,69994,70006,70018,70030,70042,70047,70052,70061,70066,70076,70091,70106,70111,70123,70147,70172,70197,70221,70247,70254,70260,70285,70306,70328,70333,70340,70346,70368,70389,70410,70415,70422,70428,70456,70461,70468,70474,70501,70506,70513,70519,70542],{"__ignoreMap":529},[533,65740,65741],{"class":535,"line":536},[533,65742,65743],{"class":593},"# @title Cell: QuTiP Bloch sphere with labeled Rabi-control axes\n",[533,65745,65746],{"class":535,"line":547},[533,65747,65748],{"class":621},"\"\"\"Render labeled Bloch-sphere trajectories for resonant and detuned drives.\"\"\"\n",[533,65750,65751],{"class":535,"line":575},[533,65752,891],{"emptyLinePlaceholder":790},[533,65754,65755,65757],{"class":535,"line":590},[533,65756,883],{"class":539},[533,65758,65759],{"class":543}," importlib.util\n",[533,65761,65762,65764],{"class":535,"line":597},[533,65763,883],{"class":539},[533,65765,65766],{"class":543}," subprocess\n",[533,65768,65769,65771],{"class":535,"line":603},[533,65770,883],{"class":539},[533,65772,64491],{"class":543},[533,65774,65775],{"class":535,"line":609},[533,65776,891],{"emptyLinePlaceholder":790},[533,65778,65779],{"class":535,"line":640},[533,65780,65781],{"class":593},"# -------------------------------------------------------------------------\n",[533,65783,65784],{"class":535,"line":646},[533,65785,65786],{"class":593},"# Control knobs\n",[533,65788,65789],{"class":535,"line":658},[533,65790,65781],{"class":593},[533,65792,65793,65796,65798],{"class":535,"line":680},[533,65794,65795],{"class":625},"INSTALL_BLOCH_DEPENDENCIES",[533,65797,4899],{"class":553},[533,65799,64599],{"class":625},[533,65801,65802],{"class":535,"line":1536},[533,65803,891],{"emptyLinePlaceholder":790},[533,65805,65806,65809,65811],{"class":535,"line":1552},[533,65807,65808],{"class":625},"BLOCH_REQUIRED_PACKAGES",[533,65810,4899],{"class":553},[533,65812,39739],{"class":543},[533,65814,65815,65818,65820,65823],{"class":535,"line":1911},[533,65816,65817],{"class":621},"    \"numpy\"",[533,65819,1389],{"class":543},[533,65821,65822],{"class":621},"\"numpy\"",[533,65824,1549],{"class":543},[533,65826,65827,65830,65832,65835],{"class":535,"line":1940},[533,65828,65829],{"class":621},"    \"matplotlib\"",[533,65831,1389],{"class":543},[533,65833,65834],{"class":621},"\"matplotlib\"",[533,65836,1549],{"class":543},[533,65838,65839,65842,65844,65847],{"class":535,"line":1968},[533,65840,65841],{"class":621},"    \"scipy\"",[533,65843,1389],{"class":543},[533,65845,65846],{"class":621},"\"scipy\"",[533,65848,1549],{"class":543},[533,65850,65851,65854,65856,65859],{"class":535,"line":1995},[533,65852,65853],{"class":621},"    \"qutip\"",[533,65855,1389],{"class":543},[533,65857,65858],{"class":621},"\"qutip\"",[533,65860,1549],{"class":543},[533,65862,65863],{"class":535,"line":4164},[533,65864,1405],{"class":543},[533,65866,65867],{"class":535,"line":4199},[533,65868,891],{"emptyLinePlaceholder":790},[533,65870,65871,65874,65876,65878,65880,65882,65884,65887,65889,65891],{"class":535,"line":4206},[533,65872,65873],{"class":625},"BLOCH_F0_GHZ",[533,65875,4899],{"class":553},[533,65877,3866],{"class":553},[533,65879,1211],{"class":543},[533,65881,3871],{"class":560},[533,65883,615],{"class":543},[533,65885,65886],{"class":621},"\"F0_GHZ\"",[533,65888,1133],{"class":543},[533,65890,51189],{"class":625},[533,65892,637],{"class":543},[533,65894,65895,65898,65900,65902,65904,65906],{"class":535,"line":4214},[533,65896,65897],{"class":625},"BLOCH_OMEGA_ONRESONANCE_MHZ",[533,65899,4899],{"class":553},[533,65901,3866],{"class":553},[533,65903,1211],{"class":543},[533,65905,3871],{"class":560},[533,65907,1503],{"class":543},[533,65909,65910,65913],{"class":535,"line":11296},[533,65911,65912],{"class":621},"    \"OMEGA_ONRESONANCE_MHZ\"",[533,65914,1549],{"class":543},[533,65916,65917,65920],{"class":535,"line":11302},[533,65918,65919],{"class":625},"    20.0",[533,65921,1549],{"class":543},[533,65923,65924],{"class":535,"line":11332},[533,65925,637],{"class":543},[533,65927,65928],{"class":535,"line":11345},[533,65929,891],{"emptyLinePlaceholder":790},[533,65931,65932,65935,65937],{"class":535,"line":11372},[533,65933,65934],{"class":625},"BLOCH_RESONANT_DETUNING_MHZ",[533,65936,4899],{"class":553},[533,65938,47621],{"class":625},[533,65940,65941,65944,65946],{"class":535,"line":11385},[533,65942,65943],{"class":625},"BLOCH_DETUNED_DETUNING_MHZ",[533,65945,4899],{"class":553},[533,65947,65948],{"class":625}," 40.0\n",[533,65950,65951],{"class":535,"line":11390},[533,65952,891],{"emptyLinePlaceholder":790},[533,65954,65955],{"class":535,"line":11402},[533,65956,65957],{"class":593},"# Use None to automatically plot one resonant pi pulse.\n",[533,65959,65960,65963,65965],{"class":535,"line":11407},[533,65961,65962],{"class":625},"BLOCH_DURATION_NS",[533,65964,4899],{"class":553},[533,65966,65967],{"class":625}," None\n",[533,65969,65970],{"class":535,"line":11412},[533,65971,891],{"emptyLinePlaceholder":790},[533,65973,65974,65977,65979],{"class":535,"line":11418},[533,65975,65976],{"class":625},"BLOCH_NUM_TIME_POINTS",[533,65978,4899],{"class":553},[533,65980,65981],{"class":625}," 300\n",[533,65983,65984,65987,65989,65991,65994,65996,65999],{"class":535,"line":11423},[533,65985,65986],{"class":625},"BLOCH_FIGSIZE",[533,65988,4899],{"class":553},[533,65990,5037],{"class":543},[533,65992,65993],{"class":625},"8.8",[533,65995,1133],{"class":543},[533,65997,65998],{"class":625},"7.8",[533,66000,637],{"class":543},[533,66002,66003,66006,66008],{"class":535,"line":11467},[533,66004,66005],{"class":625},"BLOCH_DPI",[533,66007,4899],{"class":553},[533,66009,64633],{"class":625},[533,66011,66012,66015,66017,66019,66021,66023,66025,66027],{"class":535,"line":11473},[533,66013,66014],{"class":625},"BLOCH_VIEW",[533,66016,4899],{"class":553},[533,66018,13464],{"class":543},[533,66020,2514],{"class":553},[533,66022,42072],{"class":625},[533,66024,1133],{"class":543},[533,66026,7565],{"class":625},[533,66028,14965],{"class":543},[533,66030,66031],{"class":535,"line":11488},[533,66032,891],{"emptyLinePlaceholder":790},[533,66034,66035,66038,66040],{"class":535,"line":11505},[533,66036,66037],{"class":625},"BLOCH_SHOW_CONTROL_AXIS_ARROWS",[533,66039,4899],{"class":553},[533,66041,64599],{"class":625},[533,66043,66044,66047,66049],{"class":535,"line":11518},[533,66045,66046],{"class":625},"BLOCH_SHOW_ARROW_TIP_LABELS",[533,66048,4899],{"class":553},[533,66050,64599],{"class":625},[533,66052,66053,66056,66058],{"class":535,"line":11523},[533,66054,66055],{"class":625},"BLOCH_SHOW_ENDPOINT_MARKERS",[533,66057,4899],{"class":553},[533,66059,64599],{"class":625},[533,66061,66062,66065,66067],{"class":535,"line":11555},[533,66063,66064],{"class":625},"BLOCH_SHOW_LEGEND",[533,66066,4899],{"class":553},[533,66068,64599],{"class":625},[533,66070,66071,66074,66076],{"class":535,"line":11561},[533,66072,66073],{"class":625},"BLOCH_PRINT_SUMMARY",[533,66075,4899],{"class":553},[533,66077,64599],{"class":625},[533,66079,66080],{"class":535,"line":11577},[533,66081,891],{"emptyLinePlaceholder":790},[533,66083,66084,66087,66089],{"class":535,"line":11600},[533,66085,66086],{"class":625},"COLOR_RESONANT_TRAJECTORY",[533,66088,4899],{"class":553},[533,66090,66091],{"class":621}," \"tab:blue\"\n",[533,66093,66094,66097,66099],{"class":535,"line":11621},[533,66095,66096],{"class":625},"COLOR_DETUNED_TRAJECTORY",[533,66098,4899],{"class":553},[533,66100,66101],{"class":621}," \"tab:orange\"\n",[533,66103,66104,66107,66109],{"class":535,"line":11637},[533,66105,66106],{"class":625},"COLOR_RESONANT_AXIS",[533,66108,4899],{"class":553},[533,66110,66111],{"class":621}," \"tab:green\"\n",[533,66113,66114,66117,66119],{"class":535,"line":11672},[533,66115,66116],{"class":625},"COLOR_DETUNED_AXIS",[533,66118,4899],{"class":553},[533,66120,66121],{"class":621}," \"tab:red\"\n",[533,66123,66124,66127,66129],{"class":535,"line":11689},[533,66125,66126],{"class":625},"COLOR_INITIAL_STATE",[533,66128,4899],{"class":553},[533,66130,66131],{"class":621}," \"black\"\n",[533,66133,66134],{"class":535,"line":11697},[533,66135,891],{"emptyLinePlaceholder":790},[533,66137,66138,66141,66143],{"class":535,"line":11734},[533,66139,66140],{"class":625},"TRAJECTORY_LINEWIDTH",[533,66142,4899],{"class":553},[533,66144,66145],{"class":625}," 2.4\n",[533,66147,66148,66151,66153],{"class":535,"line":11766},[533,66149,66150],{"class":625},"CONTROL_AXIS_LINEWIDTH",[533,66152,4899],{"class":553},[533,66154,66155],{"class":625}," 2.2\n",[533,66157,66158,66161,66163],{"class":535,"line":11806},[533,66159,66160],{"class":625},"ENDPOINT_MARKER_SIZE",[533,66162,4899],{"class":553},[533,66164,66165],{"class":625}," 45\n",[533,66167,66168,66171,66173],{"class":535,"line":11826},[533,66169,66170],{"class":625},"ARROW_LENGTH_RATIO",[533,66172,4899],{"class":553},[533,66174,66175],{"class":625}," 0.12\n",[533,66177,66178,66181,66183],{"class":535,"line":11831},[533,66179,66180],{"class":625},"ARROW_LABEL_SCALE",[533,66182,4899],{"class":553},[533,66184,66185],{"class":625}," 1.16\n",[533,66187,66188],{"class":535,"line":11867},[533,66189,891],{"emptyLinePlaceholder":790},[533,66191,66192,66195,66197],{"class":535,"line":11873},[533,66193,66194],{"class":625},"LEGEND_LOCATION",[533,66196,4899],{"class":553},[533,66198,66199],{"class":621}," \"upper left\"\n",[533,66201,66202,66205,66207,66209,66212,66214,66216],{"class":535,"line":11886},[533,66203,66204],{"class":625},"LEGEND_BBOX_TO_ANCHOR",[533,66206,4899],{"class":553},[533,66208,5037],{"class":543},[533,66210,66211],{"class":625},"1.02",[533,66213,1133],{"class":543},[533,66215,66211],{"class":625},[533,66217,637],{"class":543},[533,66219,66220],{"class":535,"line":11943},[533,66221,891],{"emptyLinePlaceholder":790},[533,66223,66224],{"class":535,"line":12001},[533,66225,891],{"emptyLinePlaceholder":790},[533,66227,66228,66230,66233,66235,66238,66240,66242,66244,66246],{"class":535,"line":12009},[533,66229,1754],{"class":539},[533,66231,66232],{"class":560}," package_is_available",[533,66234,615],{"class":543},[533,66236,66237],{"class":1762},"package_name",[533,66239,1389],{"class":543},[533,66241,39480],{"class":553},[533,66243,11460],{"class":543},[533,66245,11281],{"class":553},[533,66247,544],{"class":543},[533,66249,66250],{"class":535,"line":12014},[533,66251,66252],{"class":621},"    \"\"\"Return True when a package can be imported.\"\"\"\n",[533,66254,66255,66257,66260,66263,66266,66268,66270],{"class":535,"line":12033},[533,66256,1880],{"class":539},[533,66258,66259],{"class":543}," importlib.util.",[533,66261,66262],{"class":560},"find_spec",[533,66264,66265],{"class":543},"(package_name) ",[533,66267,3900],{"class":539},[533,66269,3903],{"class":539},[533,66271,65967],{"class":625},[533,66273,66274],{"class":535,"line":12039},[533,66275,891],{"emptyLinePlaceholder":790},[533,66277,66278],{"class":535,"line":12062},[533,66279,891],{"emptyLinePlaceholder":790},[533,66281,66282,66284,66287],{"class":535,"line":12067},[533,66283,1754],{"class":539},[533,66285,66286],{"class":560}," install_missing_packages",[533,66288,1503],{"class":543},[533,66290,66291,66294,66297,66299,66301,66303],{"class":535,"line":12075},[533,66292,66293],{"class":1762},"    required_packages",[533,66295,66296],{"class":543},": dict[",[533,66298,39480],{"class":553},[533,66300,1133],{"class":543},[533,66302,39480],{"class":553},[533,66304,1533],{"class":543},[533,66306,66307,66309,66311],{"class":535,"line":12088},[533,66308,11460],{"class":543},[533,66310,3838],{"class":625},[533,66312,544],{"class":543},[533,66314,66315],{"class":535,"line":12101},[533,66316,66317],{"class":621},"    \"\"\"Install missing notebook packages using uv pip with a pip fallback.\"\"\"\n",[533,66319,66320,66322,66324,66327],{"class":535,"line":12108},[533,66321,1814],{"class":539},[533,66323,3903],{"class":539},[533,66325,66326],{"class":625}," INSTALL_BLOCH_DEPENDENCIES",[533,66328,544],{"class":543},[533,66330,66331],{"class":535,"line":12119},[533,66332,66333],{"class":539},"        return\n",[533,66335,66336],{"class":535,"line":12130},[533,66337,891],{"emptyLinePlaceholder":790},[533,66339,66340,66343,66345],{"class":535,"line":12135},[533,66341,66342],{"class":543},"    missing_package_names ",[533,66344,554],{"class":553},[533,66346,26997],{"class":543},[533,66348,66349],{"class":535,"line":12140},[533,66350,66351],{"class":543},"        pip_name\n",[533,66353,66354,66357,66360,66362,66365,66367],{"class":535,"line":12146},[533,66355,66356],{"class":539},"        for",[533,66358,66359],{"class":543}," import_name, pip_name ",[533,66361,2786],{"class":539},[533,66363,66364],{"class":543}," required_packages.",[533,66366,2792],{"class":560},[533,66368,1217],{"class":543},[533,66370,66371,66373,66375,66377],{"class":535,"line":12151},[533,66372,2762],{"class":539},[533,66374,3903],{"class":539},[533,66376,66232],{"class":560},[533,66378,66379],{"class":543},"(import_name)\n",[533,66381,66382],{"class":535,"line":12201},[533,66383,66384],{"class":543},"    ]\n",[533,66386,66387],{"class":535,"line":12210},[533,66388,891],{"emptyLinePlaceholder":790},[533,66390,66391,66393,66395],{"class":535,"line":12256},[533,66392,1814],{"class":539},[533,66394,3903],{"class":539},[533,66396,66397],{"class":543}," missing_package_names:\n",[533,66399,66400],{"class":535,"line":12285},[533,66401,66333],{"class":539},[533,66403,66404],{"class":535,"line":12337},[533,66405,891],{"emptyLinePlaceholder":790},[533,66407,66408,66411],{"class":535,"line":12343},[533,66409,66410],{"class":539},"    try",[533,66412,544],{"class":543},[533,66414,66415,66418,66420],{"class":535,"line":12360},[533,66416,66417],{"class":543},"        subprocess.",[533,66419,561],{"class":560},[533,66421,1503],{"class":543},[533,66423,66424,66427,66430,66432,66435,66437,66440,66442,66445,66447,66450],{"class":535,"line":12365},[533,66425,66426],{"class":543},"            [sys.executable, ",[533,66428,66429],{"class":621},"\"-m\"",[533,66431,1133],{"class":543},[533,66433,66434],{"class":621},"\"pip\"",[533,66436,1133],{"class":543},[533,66438,66439],{"class":621},"\"install\"",[533,66441,1133],{"class":543},[533,66443,66444],{"class":621},"\"-q\"",[533,66446,1133],{"class":543},[533,66448,66449],{"class":621},"\"uv\"",[533,66451,1533],{"class":543},[533,66453,66454,66457,66459,66461],{"class":535,"line":12412},[533,66455,66456],{"class":567},"            check",[533,66458,554],{"class":553},[533,66460,1958],{"class":625},[533,66462,1549],{"class":543},[533,66464,66465],{"class":535,"line":12420},[533,66466,43212],{"class":543},[533,66468,66469,66471,66473],{"class":535,"line":12468},[533,66470,66417],{"class":543},[533,66472,561],{"class":560},[533,66474,1503],{"class":543},[533,66476,66477],{"class":535,"line":12491},[533,66478,66479],{"class":543},"            [\n",[533,66481,66482],{"class":535,"line":12531},[533,66483,66484],{"class":543},"                sys.executable,\n",[533,66486,66487,66490],{"class":535,"line":12569},[533,66488,66489],{"class":621},"                \"-m\"",[533,66491,1549],{"class":543},[533,66493,66494,66497],{"class":535,"line":12574},[533,66495,66496],{"class":621},"                \"uv\"",[533,66498,1549],{"class":543},[533,66500,66501,66504],{"class":535,"line":12589},[533,66502,66503],{"class":621},"                \"pip\"",[533,66505,1549],{"class":543},[533,66507,66508,66511],{"class":535,"line":12594},[533,66509,66510],{"class":621},"                \"install\"",[533,66512,1549],{"class":543},[533,66514,66515,66518],{"class":535,"line":12600},[533,66516,66517],{"class":621},"                \"--system\"",[533,66519,1549],{"class":543},[533,66521,66522,66525],{"class":535,"line":12641},[533,66523,66524],{"class":621},"                \"-q\"",[533,66526,1549],{"class":543},[533,66528,66529,66532],{"class":535,"line":12656},[533,66530,66531],{"class":553},"                *",[533,66533,66534],{"class":543},"missing_package_names,\n",[533,66536,66537],{"class":535,"line":12672},[533,66538,66539],{"class":543},"            ],\n",[533,66541,66542,66544,66546,66548],{"class":535,"line":12703},[533,66543,66456],{"class":567},[533,66545,554],{"class":553},[533,66547,1958],{"class":625},[533,66549,1549],{"class":543},[533,66551,66552],{"class":535,"line":12708},[533,66553,43212],{"class":543},[533,66555,66556,66559],{"class":535,"line":12713},[533,66557,66558],{"class":539},"    except",[533,66560,66561],{"class":543}," (subprocess.CalledProcessError, FileNotFoundError):\n",[533,66563,66564,66566,66568],{"class":535,"line":12719},[533,66565,66417],{"class":543},[533,66567,561],{"class":560},[533,66569,1503],{"class":543},[533,66571,66572],{"class":535,"line":12724},[533,66573,66479],{"class":543},[533,66575,66576],{"class":535,"line":12750},[533,66577,66484],{"class":543},[533,66579,66580,66582],{"class":535,"line":12775},[533,66581,66489],{"class":621},[533,66583,1549],{"class":543},[533,66585,66586,66588],{"class":535,"line":12780},[533,66587,66503],{"class":621},[533,66589,1549],{"class":543},[533,66591,66592,66594],{"class":535,"line":12812},[533,66593,66510],{"class":621},[533,66595,1549],{"class":543},[533,66597,66598,66600],{"class":535,"line":12842},[533,66599,66524],{"class":621},[533,66601,1549],{"class":543},[533,66603,66604,66606],{"class":535,"line":12879},[533,66605,66531],{"class":553},[533,66607,66534],{"class":543},[533,66609,66610],{"class":535,"line":12884},[533,66611,66539],{"class":543},[533,66613,66614,66616,66618,66620],{"class":535,"line":12890},[533,66615,66456],{"class":567},[533,66617,554],{"class":553},[533,66619,1958],{"class":625},[533,66621,1549],{"class":543},[533,66623,66624],{"class":535,"line":12927},[533,66625,43212],{"class":543},[533,66627,66628],{"class":535,"line":12988},[533,66629,891],{"emptyLinePlaceholder":790},[533,66631,66632],{"class":535,"line":13011},[533,66633,891],{"emptyLinePlaceholder":790},[533,66635,66636,66639,66641,66643],{"class":535,"line":13025},[533,66637,66638],{"class":560},"install_missing_packages",[533,66640,615],{"class":543},[533,66642,65808],{"class":625},[533,66644,637],{"class":543},[533,66646,66647],{"class":535,"line":13053},[533,66648,891],{"emptyLinePlaceholder":790},[533,66650,66651,66653,66655,66657],{"class":535,"line":13084},[533,66652,883],{"class":539},[533,66654,11140],{"class":543},[533,66656,584],{"class":539},[533,66658,11145],{"class":543},[533,66660,66661,66663,66665,66667],{"class":535,"line":13105},[533,66662,883],{"class":539},[533,66664,11128],{"class":543},[533,66666,584],{"class":539},[533,66668,11133],{"class":543},[533,66670,66671,66673,66676,66678],{"class":535,"line":13115},[533,66672,883],{"class":539},[533,66674,66675],{"class":543}," qutip ",[533,66677,584],{"class":539},[533,66679,66680],{"class":543}," qt\n",[533,66682,66683,66685,66688,66690],{"class":535,"line":13125},[533,66684,877],{"class":539},[533,66686,66687],{"class":543}," matplotlib.lines ",[533,66689,883],{"class":539},[533,66691,66692],{"class":543}," Line2D\n",[533,66694,66695],{"class":535,"line":13130},[533,66696,891],{"emptyLinePlaceholder":790},[533,66698,66699,66701],{"class":535,"line":13136},[533,66700,688],{"class":539},[533,66702,544],{"class":543},[533,66704,66705,66708,66711,66713],{"class":535,"line":13167},[533,66706,66707],{"class":539},"    from",[533,66709,66710],{"class":543}," IPython ",[533,66712,883],{"class":539},[533,66714,66715],{"class":543}," get_ipython\n",[533,66717,66718],{"class":535,"line":13213},[533,66719,891],{"emptyLinePlaceholder":790},[533,66721,66722,66725,66727,66730],{"class":535,"line":13234},[533,66723,66724],{"class":543},"    ipython ",[533,66726,554],{"class":553},[533,66728,66729],{"class":560}," get_ipython",[533,66731,1217],{"class":543},[533,66733,66734,66736,66739,66741,66743,66745],{"class":535,"line":13245},[533,66735,1814],{"class":539},[533,66737,66738],{"class":543}," ipython ",[533,66740,3900],{"class":539},[533,66742,3903],{"class":539},[533,66744,3906],{"class":625},[533,66746,544],{"class":543},[533,66748,66749,66752,66755,66757,66759,66761,66764],{"class":535,"line":13268},[533,66750,66751],{"class":543},"        ipython.",[533,66753,66754],{"class":560},"run_line_magic",[533,66756,615],{"class":543},[533,66758,65834],{"class":621},[533,66760,1133],{"class":543},[533,66762,66763],{"class":621},"\"inline\"",[533,66765,637],{"class":543},[533,66767,66768,66770],{"class":535,"line":13295},[533,66769,64604],{"class":539},[533,66771,66772],{"class":543}," ImportError:\n",[533,66774,66775],{"class":535,"line":13316},[533,66776,66777],{"class":539},"    pass\n",[533,66779,66780],{"class":535,"line":13325},[533,66781,891],{"emptyLinePlaceholder":790},[533,66783,66784,66787,66789],{"class":535,"line":13334},[533,66785,66786],{"class":543},"plt.rcParams.",[533,66788,39202],{"class":560},[533,66790,1503],{"class":543},[533,66792,66793],{"class":535,"line":13339},[533,66794,66795],{"class":543},"    {\n",[533,66797,66798,66801,66803,66805],{"class":535,"line":13345},[533,66799,66800],{"class":621},"        \"figure.dpi\"",[533,66802,1389],{"class":543},[533,66804,66005],{"class":625},[533,66806,1549],{"class":543},[533,66808,66809],{"class":535,"line":13370},[533,66810,39858],{"class":543},[533,66812,66813],{"class":535,"line":13389},[533,66814,637],{"class":543},[533,66816,66817],{"class":535,"line":13407},[533,66818,891],{"emptyLinePlaceholder":790},[533,66820,66821],{"class":535,"line":13420},[533,66822,891],{"emptyLinePlaceholder":790},[533,66824,66825,66827,66830,66832,66835,66837,66839,66841,66843],{"class":535,"line":13425},[533,66826,1754],{"class":539},[533,66828,66829],{"class":560}," get_pi_pulse_duration_ns",[533,66831,615],{"class":543},[533,66833,66834],{"class":1762},"omega_onresonance_mhz",[533,66836,1389],{"class":543},[533,66838,11186],{"class":553},[533,66840,11460],{"class":543},[533,66842,11186],{"class":553},[533,66844,544],{"class":543},[533,66846,66847],{"class":535,"line":13456},[533,66848,66849],{"class":621},"    \"\"\"Return the resonant pi-pulse duration in nanoseconds.\"\"\"\n",[533,66851,66852,66854,66857,66859,66861,66863,66865],{"class":535,"line":13502},[533,66853,1880],{"class":539},[533,66855,66856],{"class":625}," 1.0e3",[533,66858,11903],{"class":553},[533,66860,5037],{"class":543},[533,66862,11726],{"class":625},[533,66864,2254],{"class":553},[533,66866,66867],{"class":543}," omega_onresonance_mhz)\n",[533,66869,66870],{"class":535,"line":13551},[533,66871,891],{"emptyLinePlaceholder":790},[533,66873,66874],{"class":535,"line":13583},[533,66875,891],{"emptyLinePlaceholder":790},[533,66877,66878,66880,66883],{"class":535,"line":13612},[533,66879,1754],{"class":539},[533,66881,66882],{"class":560}," solve_rwa_bloch_trajectory",[533,66884,1503],{"class":543},[533,66886,66887,66890,66892,66894],{"class":535,"line":13635},[533,66888,66889],{"class":1762},"    detuning_mhz",[533,66891,1389],{"class":543},[533,66893,11186],{"class":553},[533,66895,1549],{"class":543},[533,66897,66898,66901,66903,66905],{"class":535,"line":13679},[533,66899,66900],{"class":1762},"    duration_ns",[533,66902,1389],{"class":543},[533,66904,11186],{"class":553},[533,66906,1549],{"class":543},[533,66908,66909,66912,66914,66916],{"class":535,"line":13688},[533,66910,66911],{"class":1762},"    num_time_points",[533,66913,1389],{"class":543},[533,66915,4175],{"class":553},[533,66917,1549],{"class":543},[533,66919,66920,66923,66925,66928,66930,66933],{"class":535,"line":13693},[533,66921,66922],{"class":543},") -> dict[",[533,66924,39480],{"class":553},[533,66926,66927],{"class":543},", np.ndarray ",[533,66929,13947],{"class":553},[533,66931,66932],{"class":553}," float",[533,66934,11864],{"class":543},[533,66936,66937],{"class":535,"line":13699},[533,66938,66939],{"class":621},"    \"\"\"Solve the RWA two-level trajectory and return Bloch observables.\"\"\"\n",[533,66941,66942,66945,66947,66949,66951,66953,66955,66958,66960],{"class":535,"line":13715},[533,66943,66944],{"class":543},"    omega_rad_s ",[533,66946,554],{"class":553},[533,66948,2251],{"class":625},[533,66950,2254],{"class":553},[533,66952,17896],{"class":543},[533,66954,2469],{"class":553},[533,66956,66957],{"class":625}," BLOCH_OMEGA_ONRESONANCE_MHZ",[533,66959,2254],{"class":553},[533,66961,66962],{"class":625}," 1.0e6\n",[533,66964,66965,66968,66970,66972,66974,66976,66978,66981,66983],{"class":535,"line":13732},[533,66966,66967],{"class":543},"    delta_rad_s ",[533,66969,554],{"class":553},[533,66971,2251],{"class":625},[533,66973,2254],{"class":553},[533,66975,17896],{"class":543},[533,66977,2469],{"class":553},[533,66979,66980],{"class":543}," detuning_mhz ",[533,66982,2469],{"class":553},[533,66984,66962],{"class":625},[533,66986,66987,66990,66992,66994,66997],{"class":535,"line":13745},[533,66988,66989],{"class":543},"    omega_generalized_rad_s ",[533,66991,554],{"class":553},[533,66993,2911],{"class":543},[533,66995,66996],{"class":560},"hypot",[533,66998,66999],{"class":543},"(omega_rad_s, delta_rad_s)\n",[533,67001,67002],{"class":535,"line":13762},[533,67003,891],{"emptyLinePlaceholder":790},[533,67005,67006,67009,67011,67013,67015,67017,67019,67022,67024,67027],{"class":535,"line":13774},[533,67007,67008],{"class":543},"    time_s ",[533,67010,554],{"class":553},[533,67012,2911],{"class":543},[533,67014,12734],{"class":560},[533,67016,615],{"class":543},[533,67018,2229],{"class":625},[533,67020,67021],{"class":543},", duration_ns ",[533,67023,2469],{"class":553},[533,67025,67026],{"class":625}," 1.0e-9",[533,67028,67029],{"class":543},", num_time_points)\n",[533,67031,67032],{"class":535,"line":13809},[533,67033,891],{"emptyLinePlaceholder":790},[533,67035,67036,67039,67041,67044,67046,67048,67050,67052,67054],{"class":535,"line":13814},[533,67037,67038],{"class":543},"    ground_state ",[533,67040,554],{"class":553},[533,67042,67043],{"class":543}," qt.",[533,67045,3483],{"class":560},[533,67047,615],{"class":543},[533,67049,1140],{"class":625},[533,67051,1133],{"class":543},[533,67053,1049],{"class":625},[533,67055,637],{"class":543},[533,67057,67058,67061,67063,67065,67067,67069,67071,67073,67075],{"class":535,"line":13840},[533,67059,67060],{"class":543},"    excited_state ",[533,67062,554],{"class":553},[533,67064,67043],{"class":543},[533,67066,3483],{"class":560},[533,67068,615],{"class":543},[533,67070,1140],{"class":625},[533,67072,1133],{"class":543},[533,67074,1052],{"class":625},[533,67076,637],{"class":543},[533,67078,67079,67082,67084,67087,67089,67092,67095],{"class":535,"line":13861},[533,67080,67081],{"class":543},"    excited_projector ",[533,67083,554],{"class":553},[533,67085,67086],{"class":543}," excited_state ",[533,67088,2469],{"class":553},[533,67090,67091],{"class":543}," excited_state.",[533,67093,67094],{"class":560},"dag",[533,67096,1217],{"class":543},[533,67098,67099],{"class":535,"line":13866},[533,67100,891],{"emptyLinePlaceholder":790},[533,67102,67103,67106,67108,67110,67112],{"class":535,"line":13897},[533,67104,67105],{"class":543},"    hamiltonian ",[533,67107,554],{"class":553},[533,67109,12264],{"class":625},[533,67111,2254],{"class":553},[533,67113,12282],{"class":543},[533,67115,67116,67119,67121,67123,67126],{"class":535,"line":13930},[533,67117,67118],{"class":543},"        delta_rad_s ",[533,67120,2469],{"class":553},[533,67122,67043],{"class":543},[533,67124,67125],{"class":560},"sigmaz",[533,67127,1217],{"class":543},[533,67129,67130,67133,67136,67138,67140,67143],{"class":535,"line":13967},[533,67131,67132],{"class":553},"        +",[533,67134,67135],{"class":543}," omega_rad_s ",[533,67137,2469],{"class":553},[533,67139,67043],{"class":543},[533,67141,67142],{"class":560},"sigmax",[533,67144,1217],{"class":543},[533,67146,67147],{"class":535,"line":13994},[533,67148,12340],{"class":543},[533,67150,67151],{"class":535,"line":14017},[533,67152,891],{"emptyLinePlaceholder":790},[533,67154,67155,67158,67160,67162,67165],{"class":535,"line":14057},[533,67156,67157],{"class":543},"    result ",[533,67159,554],{"class":553},[533,67161,67043],{"class":543},[533,67163,67164],{"class":560},"sesolve",[533,67166,1503],{"class":543},[533,67168,67169],{"class":535,"line":45868},[533,67170,67171],{"class":543},"        hamiltonian,\n",[533,67173,67174],{"class":535,"line":45873},[533,67175,67176],{"class":543},"        ground_state,\n",[533,67178,67179],{"class":535,"line":45888},[533,67180,67181],{"class":543},"        time_s,\n",[533,67183,67184],{"class":535,"line":45921},[533,67185,12340],{"class":543},[533,67187,67188],{"class":535,"line":45927},[533,67189,891],{"emptyLinePlaceholder":790},[533,67191,67192,67195,67197,67199,67202,67204,67206,67209,67212,67214,67216],{"class":535,"line":45939},[533,67193,67194],{"class":543},"    x_expectation ",[533,67196,554],{"class":553},[533,67198,2911],{"class":543},[533,67200,67201],{"class":560},"real",[533,67203,5967],{"class":543},[533,67205,39869],{"class":560},[533,67207,67208],{"class":543},"(qt.",[533,67210,67211],{"class":560},"expect",[533,67213,67208],{"class":543},[533,67215,67142],{"class":560},[533,67217,67218],{"class":543},"(), result.states)))\n",[533,67220,67221,67224,67226,67228,67230,67232,67234,67236,67238,67240,67243],{"class":535,"line":45957},[533,67222,67223],{"class":543},"    y_expectation ",[533,67225,554],{"class":553},[533,67227,2911],{"class":543},[533,67229,67201],{"class":560},[533,67231,5967],{"class":543},[533,67233,39869],{"class":560},[533,67235,67208],{"class":543},[533,67237,67211],{"class":560},[533,67239,67208],{"class":543},[533,67241,67242],{"class":560},"sigmay",[533,67244,67218],{"class":543},[533,67246,67247,67250,67252,67254,67256,67258,67260,67262,67264,67266,67268],{"class":535,"line":45976},[533,67248,67249],{"class":543},"    z_expectation ",[533,67251,554],{"class":553},[533,67253,2911],{"class":543},[533,67255,67201],{"class":560},[533,67257,5967],{"class":543},[533,67259,39869],{"class":560},[533,67261,67208],{"class":543},[533,67263,67211],{"class":560},[533,67265,67208],{"class":543},[533,67267,67125],{"class":560},[533,67269,67218],{"class":543},[533,67271,67272],{"class":535,"line":45999},[533,67273,891],{"emptyLinePlaceholder":790},[533,67275,67276,67279,67281,67283,67285],{"class":535,"line":46008},[533,67277,67278],{"class":543},"    excited_probability ",[533,67280,554],{"class":553},[533,67282,2911],{"class":543},[533,67284,67201],{"class":560},[533,67286,1503],{"class":543},[533,67288,67289,67292,67294,67296,67298],{"class":535,"line":46013},[533,67290,67291],{"class":543},"        np.",[533,67293,39869],{"class":560},[533,67295,67208],{"class":543},[533,67297,67211],{"class":560},[533,67299,67300],{"class":543},"(excited_projector, result.states))\n",[533,67302,67303],{"class":535,"line":46018},[533,67304,12340],{"class":543},[533,67306,67307],{"class":535,"line":46024},[533,67308,891],{"emptyLinePlaceholder":790},[533,67310,67311,67314,67316,67318,67321],{"class":535,"line":46039},[533,67312,67313],{"class":543},"    bloch_vectors ",[533,67315,554],{"class":553},[533,67317,2911],{"class":543},[533,67319,67320],{"class":560},"vstack",[533,67322,1503],{"class":543},[533,67324,67325],{"class":535,"line":46050},[533,67326,67327],{"class":543},"        [\n",[533,67329,67330],{"class":535,"line":46087},[533,67331,67332],{"class":543},"            x_expectation,\n",[533,67334,67335],{"class":535,"line":46109},[533,67336,67337],{"class":543},"            y_expectation,\n",[533,67339,67340],{"class":535,"line":46120},[533,67341,67342],{"class":543},"            z_expectation,\n",[533,67344,67345],{"class":535,"line":46137},[533,67346,67347],{"class":543},"        ]\n",[533,67349,67350],{"class":535,"line":46149},[533,67351,12340],{"class":543},[533,67353,67354],{"class":535,"line":46154},[533,67355,891],{"emptyLinePlaceholder":790},[533,67357,67358,67361,67363,67365,67367],{"class":535,"line":46159},[533,67359,67360],{"class":543},"    control_axis ",[533,67362,554],{"class":553},[533,67364,2911],{"class":543},[533,67366,2914],{"class":560},[533,67368,1503],{"class":543},[533,67370,67372],{"class":535,"line":67371},184,[533,67373,67327],{"class":543},[533,67375,67377,67380,67382],{"class":535,"line":67376},185,[533,67378,67379],{"class":543},"            omega_rad_s ",[533,67381,2941],{"class":553},[533,67383,67384],{"class":543}," omega_generalized_rad_s,\n",[533,67386,67388,67391],{"class":535,"line":67387},186,[533,67389,67390],{"class":625},"            0.0",[533,67392,1549],{"class":543},[533,67394,67396,67399,67401],{"class":535,"line":67395},187,[533,67397,67398],{"class":543},"            delta_rad_s ",[533,67400,2941],{"class":553},[533,67402,67384],{"class":543},[533,67404,67406],{"class":535,"line":67405},188,[533,67407,67347],{"class":543},[533,67409,67411],{"class":535,"line":67410},189,[533,67412,12340],{"class":543},[533,67414,67416],{"class":535,"line":67415},190,[533,67417,891],{"emptyLinePlaceholder":790},[533,67419,67421,67423],{"class":535,"line":67420},191,[533,67422,1880],{"class":539},[533,67424,39739],{"class":543},[533,67426,67428,67431,67434,67436,67439],{"class":535,"line":67427},192,[533,67429,67430],{"class":621},"        \"time_ns\"",[533,67432,67433],{"class":543},": time_s ",[533,67435,2469],{"class":553},[533,67437,67438],{"class":625}," 1.0e9",[533,67440,1549],{"class":543},[533,67442,67444,67447],{"class":535,"line":67443},193,[533,67445,67446],{"class":621},"        \"vectors\"",[533,67448,67449],{"class":543},": bloch_vectors,\n",[533,67451,67453,67456],{"class":535,"line":67452},194,[533,67454,67455],{"class":621},"        \"excited_probability\"",[533,67457,67458],{"class":543},": excited_probability,\n",[533,67460,67462,67465],{"class":535,"line":67461},195,[533,67463,67464],{"class":621},"        \"control_axis\"",[533,67466,67467],{"class":543},": control_axis,\n",[533,67469,67471,67474],{"class":535,"line":67470},196,[533,67472,67473],{"class":621},"        \"generalized_rabi_mhz\"",[533,67475,67476],{"class":543},": (\n",[533,67478,67480,67483,67485,67487,67489,67491,67493,67495,67498],{"class":535,"line":67479},197,[533,67481,67482],{"class":543},"            omega_generalized_rad_s ",[533,67484,2941],{"class":553},[533,67486,5037],{"class":543},[533,67488,11726],{"class":625},[533,67490,2254],{"class":553},[533,67492,17896],{"class":543},[533,67494,2469],{"class":553},[533,67496,67497],{"class":625}," 1.0e6",[533,67499,637],{"class":543},[533,67501,67503],{"class":535,"line":67502},198,[533,67504,67505],{"class":543},"        ),\n",[533,67507,67509],{"class":535,"line":67508},199,[533,67510,39858],{"class":543},[533,67512,67514],{"class":535,"line":67513},200,[533,67515,891],{"emptyLinePlaceholder":790},[533,67517,67519],{"class":535,"line":67518},201,[533,67520,891],{"emptyLinePlaceholder":790},[533,67522,67524,67526,67529],{"class":535,"line":67523},202,[533,67525,1754],{"class":539},[533,67527,67528],{"class":560}," render_empty_bloch_sphere",[533,67530,1503],{"class":543},[533,67532,67534,67537],{"class":535,"line":67533},203,[533,67535,67536],{"class":1762},"    bloch_sphere",[533,67538,67539],{"class":543},": qt.Bloch,\n",[533,67541,67543,67546],{"class":535,"line":67542},204,[533,67544,67545],{"class":1762},"    fallback_figure",[533,67547,67548],{"class":543},": plt.Figure,\n",[533,67550,67552],{"class":535,"line":67551},205,[533,67553,1771],{"class":543},[533,67555,67557],{"class":535,"line":67556},206,[533,67558,67559],{"class":621},"    \"\"\"Render an empty QuTiP Bloch sphere and return its Matplotlib axis.\"\"\"\n",[533,67561,67563,67565,67567,67570,67573],{"class":535,"line":67562},207,[533,67564,1814],{"class":539},[533,67566,44982],{"class":553},[533,67568,67569],{"class":543},"(bloch_sphere, ",[533,67571,67572],{"class":621},"\"render\"",[533,67574,1771],{"class":543},[533,67576,67578,67581,67584],{"class":535,"line":67577},208,[533,67579,67580],{"class":543},"        bloch_sphere.",[533,67582,67583],{"class":560},"render",[533,67585,1217],{"class":543},[533,67587,67589,67592,67594,67596,67599],{"class":535,"line":67588},209,[533,67590,67591],{"class":539},"    elif",[533,67593,44982],{"class":553},[533,67595,67569],{"class":543},[533,67597,67598],{"class":621},"\"make_sphere\"",[533,67600,1771],{"class":543},[533,67602,67604,67606,67609],{"class":535,"line":67603},210,[533,67605,67580],{"class":543},[533,67607,67608],{"class":560},"make_sphere",[533,67610,1217],{"class":543},[533,67612,67614,67617],{"class":535,"line":67613},211,[533,67615,67616],{"class":539},"    else",[533,67618,544],{"class":543},[533,67620,67622,67624,67626],{"class":535,"line":67621},212,[533,67623,67580],{"class":543},[533,67625,13120],{"class":560},[533,67627,1217],{"class":543},[533,67629,67631],{"class":535,"line":67630},213,[533,67632,891],{"emptyLinePlaceholder":790},[533,67634,67636,67639,67641,67643,67645,67648,67650,67652],{"class":535,"line":67635},214,[533,67637,67638],{"class":543},"    axis ",[533,67640,554],{"class":553},[533,67642,4016],{"class":553},[533,67644,67569],{"class":543},[533,67646,67647],{"class":621},"\"axes\"",[533,67649,1133],{"class":543},[533,67651,3838],{"class":625},[533,67653,637],{"class":543},[533,67655,67657],{"class":535,"line":67656},215,[533,67658,891],{"emptyLinePlaceholder":790},[533,67660,67662,67664,67666,67668,67670,67672],{"class":535,"line":67661},216,[533,67663,1814],{"class":539},[533,67665,40016],{"class":543},[533,67667,3900],{"class":539},[533,67669,3906],{"class":625},[533,67671,3894],{"class":539},[533,67673,67674],{"class":543}," fallback_figure.axes:\n",[533,67676,67678,67681,67683,67686,67688,67690],{"class":535,"line":67677},217,[533,67679,67680],{"class":543},"        axis ",[533,67682,554],{"class":553},[533,67684,67685],{"class":543}," fallback_figure.axes[",[533,67687,2514],{"class":553},[533,67689,1052],{"class":625},[533,67691,14965],{"class":543},[533,67693,67695],{"class":535,"line":67694},218,[533,67696,891],{"emptyLinePlaceholder":790},[533,67698,67700,67702,67704,67706,67708],{"class":535,"line":67699},219,[533,67701,1814],{"class":539},[533,67703,40016],{"class":543},[533,67705,3900],{"class":539},[533,67707,3906],{"class":625},[533,67709,544],{"class":543},[533,67711,67713,67715,67718,67721],{"class":535,"line":67712},220,[533,67714,40283],{"class":539},[533,67716,67717],{"class":543}," RuntimeError(",[533,67719,67720],{"class":621},"\"Could not access the Matplotlib Bloch axis.\"",[533,67722,637],{"class":543},[533,67724,67726],{"class":535,"line":67725},221,[533,67727,891],{"emptyLinePlaceholder":790},[533,67729,67731,67733],{"class":535,"line":67730},222,[533,67732,1880],{"class":539},[533,67734,67735],{"class":543}," axis\n",[533,67737,67739],{"class":535,"line":67738},223,[533,67740,891],{"emptyLinePlaceholder":790},[533,67742,67744],{"class":535,"line":67743},224,[533,67745,891],{"emptyLinePlaceholder":790},[533,67747,67749,67751,67754],{"class":535,"line":67748},225,[533,67750,1754],{"class":539},[533,67752,67753],{"class":560}," draw_bloch_trajectory",[533,67755,1503],{"class":543},[533,67757,67759,67762],{"class":535,"line":67758},226,[533,67760,67761],{"class":1762},"    axis",[533,67763,1549],{"class":543},[533,67765,67767,67770],{"class":535,"line":67766},227,[533,67768,67769],{"class":1762},"    vectors",[533,67771,41421],{"class":543},[533,67773,67775,67778,67780,67782],{"class":535,"line":67774},228,[533,67776,67777],{"class":1762},"    color",[533,67779,1389],{"class":543},[533,67781,39480],{"class":553},[533,67783,1549],{"class":543},[533,67785,67787,67790,67792,67794],{"class":535,"line":67786},229,[533,67788,67789],{"class":1762},"    label",[533,67791,1389],{"class":543},[533,67793,39480],{"class":553},[533,67795,1549],{"class":543},[533,67797,67799,67801,67803],{"class":535,"line":67798},230,[533,67800,11460],{"class":543},[533,67802,3838],{"class":625},[533,67804,544],{"class":543},[533,67806,67808],{"class":535,"line":67807},231,[533,67809,67810],{"class":621},"    \"\"\"Draw a Bloch-vector trajectory on an existing 3D axis.\"\"\"\n",[533,67812,67814,67817,67819],{"class":535,"line":67813},232,[533,67815,67816],{"class":543},"    axis.",[533,67818,12932],{"class":560},[533,67820,1503],{"class":543},[533,67822,67824,67827,67829],{"class":535,"line":67823},233,[533,67825,67826],{"class":543},"        vectors[",[533,67828,1049],{"class":625},[533,67830,1533],{"class":543},[533,67832,67834,67836,67838],{"class":535,"line":67833},234,[533,67835,67826],{"class":543},[533,67837,1052],{"class":625},[533,67839,1533],{"class":543},[533,67841,67843,67845,67847],{"class":535,"line":67842},235,[533,67844,67826],{"class":543},[533,67846,1140],{"class":625},[533,67848,1533],{"class":543},[533,67850,67852,67855,67857],{"class":535,"line":67851},236,[533,67853,67854],{"class":567},"        color",[533,67856,554],{"class":553},[533,67858,67859],{"class":543},"color,\n",[533,67861,67863,67866,67868,67870],{"class":535,"line":67862},237,[533,67864,67865],{"class":567},"        linewidth",[533,67867,554],{"class":553},[533,67869,66140],{"class":625},[533,67871,1549],{"class":543},[533,67873,67875,67878,67880],{"class":535,"line":67874},238,[533,67876,67877],{"class":567},"        label",[533,67879,554],{"class":553},[533,67881,67882],{"class":543},"label,\n",[533,67884,67886],{"class":535,"line":67885},239,[533,67887,12340],{"class":543},[533,67889,67891],{"class":535,"line":67890},240,[533,67892,891],{"emptyLinePlaceholder":790},[533,67894,67896],{"class":535,"line":67895},241,[533,67897,891],{"emptyLinePlaceholder":790},[533,67899,67901,67903,67906],{"class":535,"line":67900},242,[533,67902,1754],{"class":539},[533,67904,67905],{"class":560}," draw_endpoint_marker",[533,67907,1503],{"class":543},[533,67909,67911,67913],{"class":535,"line":67910},243,[533,67912,67761],{"class":1762},[533,67914,1549],{"class":543},[533,67916,67918,67921],{"class":535,"line":67917},244,[533,67919,67920],{"class":1762},"    vector",[533,67922,41421],{"class":543},[533,67924,67926,67928,67930,67932],{"class":535,"line":67925},245,[533,67927,67777],{"class":1762},[533,67929,1389],{"class":543},[533,67931,39480],{"class":553},[533,67933,1549],{"class":543},[533,67935,67937,67939,67941,67943],{"class":535,"line":67936},246,[533,67938,67789],{"class":1762},[533,67940,1389],{"class":543},[533,67942,39480],{"class":553},[533,67944,1549],{"class":543},[533,67946,67948,67950,67952],{"class":535,"line":67947},247,[533,67949,11460],{"class":543},[533,67951,3838],{"class":625},[533,67953,544],{"class":543},[533,67955,67957],{"class":535,"line":67956},248,[533,67958,67959],{"class":621},"    \"\"\"Draw a marker at the final point of a Bloch trajectory.\"\"\"\n",[533,67961,67963,67965,67968],{"class":535,"line":67962},249,[533,67964,67816],{"class":543},[533,67966,67967],{"class":560},"scatter",[533,67969,1503],{"class":543},[533,67971,67973,67976,67978],{"class":535,"line":67972},250,[533,67974,67975],{"class":543},"        vector[",[533,67977,1049],{"class":625},[533,67979,1533],{"class":543},[533,67981,67983,67985,67987],{"class":535,"line":67982},251,[533,67984,67975],{"class":543},[533,67986,1052],{"class":625},[533,67988,1533],{"class":543},[533,67990,67992,67994,67996],{"class":535,"line":67991},252,[533,67993,67975],{"class":543},[533,67995,1140],{"class":625},[533,67997,1533],{"class":543},[533,67999,68001,68003,68005],{"class":535,"line":68000},253,[533,68002,67854],{"class":567},[533,68004,554],{"class":553},[533,68006,67859],{"class":543},[533,68008,68010,68013,68015,68017],{"class":535,"line":68009},254,[533,68011,68012],{"class":567},"        s",[533,68014,554],{"class":553},[533,68016,66160],{"class":625},[533,68018,1549],{"class":543},[533,68020,68022,68025,68027,68029],{"class":535,"line":68021},255,[533,68023,68024],{"class":567},"        depthshade",[533,68026,554],{"class":553},[533,68028,1958],{"class":625},[533,68030,1549],{"class":543},[533,68032,68034,68036,68038],{"class":535,"line":68033},256,[533,68035,67877],{"class":567},[533,68037,554],{"class":553},[533,68039,67882],{"class":543},[533,68041,68043],{"class":535,"line":68042},257,[533,68044,12340],{"class":543},[533,68046,68048],{"class":535,"line":68047},258,[533,68049,891],{"emptyLinePlaceholder":790},[533,68051,68053],{"class":535,"line":68052},259,[533,68054,891],{"emptyLinePlaceholder":790},[533,68056,68058,68060,68063],{"class":535,"line":68057},260,[533,68059,1754],{"class":539},[533,68061,68062],{"class":560}," draw_control_axis_arrow",[533,68064,1503],{"class":543},[533,68066,68068,68070],{"class":535,"line":68067},261,[533,68069,67761],{"class":1762},[533,68071,1549],{"class":543},[533,68073,68075,68077],{"class":535,"line":68074},262,[533,68076,67920],{"class":1762},[533,68078,41421],{"class":543},[533,68080,68082,68084,68086,68088],{"class":535,"line":68081},263,[533,68083,67777],{"class":1762},[533,68085,1389],{"class":543},[533,68087,39480],{"class":553},[533,68089,1549],{"class":543},[533,68091,68093,68095,68097,68099],{"class":535,"line":68092},264,[533,68094,67789],{"class":1762},[533,68096,1389],{"class":543},[533,68098,39480],{"class":553},[533,68100,1549],{"class":543},[533,68102,68104,68106,68108],{"class":535,"line":68103},265,[533,68105,11460],{"class":543},[533,68107,3838],{"class":625},[533,68109,544],{"class":543},[533,68111,68113],{"class":535,"line":68112},266,[533,68114,68115],{"class":621},"    \"\"\"Draw a normalized effective-control-axis arrow.\"\"\"\n",[533,68117,68119,68121,68124],{"class":535,"line":68118},267,[533,68120,67816],{"class":543},[533,68122,68123],{"class":560},"quiver",[533,68125,1503],{"class":543},[533,68127,68129,68132],{"class":535,"line":68128},268,[533,68130,68131],{"class":625},"        0.0",[533,68133,1549],{"class":543},[533,68135,68137,68139],{"class":535,"line":68136},269,[533,68138,68131],{"class":625},[533,68140,1549],{"class":543},[533,68142,68144,68146],{"class":535,"line":68143},270,[533,68145,68131],{"class":625},[533,68147,1549],{"class":543},[533,68149,68151,68153,68155],{"class":535,"line":68150},271,[533,68152,67975],{"class":543},[533,68154,1049],{"class":625},[533,68156,1533],{"class":543},[533,68158,68160,68162,68164],{"class":535,"line":68159},272,[533,68161,67975],{"class":543},[533,68163,1052],{"class":625},[533,68165,1533],{"class":543},[533,68167,68169,68171,68173],{"class":535,"line":68168},273,[533,68170,67975],{"class":543},[533,68172,1140],{"class":625},[533,68174,1533],{"class":543},[533,68176,68178,68180,68182],{"class":535,"line":68177},274,[533,68179,67854],{"class":567},[533,68181,554],{"class":553},[533,68183,67859],{"class":543},[533,68185,68187,68189,68191,68193],{"class":535,"line":68186},275,[533,68188,67865],{"class":567},[533,68190,554],{"class":553},[533,68192,66150],{"class":625},[533,68194,1549],{"class":543},[533,68196,68198,68201,68203,68205],{"class":535,"line":68197},276,[533,68199,68200],{"class":567},"        arrow_length_ratio",[533,68202,554],{"class":553},[533,68204,66170],{"class":625},[533,68206,1549],{"class":543},[533,68208,68210,68213,68215,68217],{"class":535,"line":68209},277,[533,68211,68212],{"class":567},"        normalize",[533,68214,554],{"class":553},[533,68216,1930],{"class":625},[533,68218,1549],{"class":543},[533,68220,68222,68224,68226],{"class":535,"line":68221},278,[533,68223,67877],{"class":567},[533,68225,554],{"class":553},[533,68227,67882],{"class":543},[533,68229,68231],{"class":535,"line":68230},279,[533,68232,12340],{"class":543},[533,68234,68236],{"class":535,"line":68235},280,[533,68237,891],{"emptyLinePlaceholder":790},[533,68239,68241],{"class":535,"line":68240},281,[533,68242,891],{"emptyLinePlaceholder":790},[533,68244,68246,68248,68251],{"class":535,"line":68245},282,[533,68247,1754],{"class":539},[533,68249,68250],{"class":560}," add_arrow_tip_label",[533,68252,1503],{"class":543},[533,68254,68256,68258],{"class":535,"line":68255},283,[533,68257,67761],{"class":1762},[533,68259,1549],{"class":543},[533,68261,68263,68265],{"class":535,"line":68262},284,[533,68264,67920],{"class":1762},[533,68266,41421],{"class":543},[533,68268,68270,68273,68275,68277],{"class":535,"line":68269},285,[533,68271,68272],{"class":1762},"    text",[533,68274,1389],{"class":543},[533,68276,39480],{"class":553},[533,68278,1549],{"class":543},[533,68280,68282,68284,68286,68288],{"class":535,"line":68281},286,[533,68283,67777],{"class":1762},[533,68285,1389],{"class":543},[533,68287,39480],{"class":553},[533,68289,1549],{"class":543},[533,68291,68293,68295,68297],{"class":535,"line":68292},287,[533,68294,11460],{"class":543},[533,68296,3838],{"class":625},[533,68298,544],{"class":543},[533,68300,68302],{"class":535,"line":68301},288,[533,68303,68304],{"class":621},"    \"\"\"Place a text label slightly beyond the arrow tip.\"\"\"\n",[533,68306,68308,68311,68313,68316,68318],{"class":535,"line":68307},289,[533,68309,68310],{"class":543},"    label_position ",[533,68312,554],{"class":553},[533,68314,68315],{"class":625}," ARROW_LABEL_SCALE",[533,68317,2254],{"class":553},[533,68319,68320],{"class":543}," vector\n",[533,68322,68324],{"class":535,"line":68323},290,[533,68325,891],{"emptyLinePlaceholder":790},[533,68327,68329,68331,68333],{"class":535,"line":68328},291,[533,68330,67816],{"class":543},[533,68332,31773],{"class":560},[533,68334,1503],{"class":543},[533,68336,68338,68341,68343],{"class":535,"line":68337},292,[533,68339,68340],{"class":543},"        label_position[",[533,68342,1049],{"class":625},[533,68344,1533],{"class":543},[533,68346,68348,68350,68352],{"class":535,"line":68347},293,[533,68349,68340],{"class":543},[533,68351,1052],{"class":625},[533,68353,1533],{"class":543},[533,68355,68357,68359,68361],{"class":535,"line":68356},294,[533,68358,68340],{"class":543},[533,68360,1140],{"class":625},[533,68362,1533],{"class":543},[533,68364,68366],{"class":535,"line":68365},295,[533,68367,68368],{"class":543},"        text,\n",[533,68370,68372,68374,68376],{"class":535,"line":68371},296,[533,68373,67854],{"class":567},[533,68375,554],{"class":553},[533,68377,67859],{"class":543},[533,68379,68381,68383,68385,68387],{"class":535,"line":68380},297,[533,68382,41311],{"class":567},[533,68384,554],{"class":553},[533,68386,1579],{"class":625},[533,68388,1549],{"class":543},[533,68390,68392,68395,68397,68399],{"class":535,"line":68391},298,[533,68393,68394],{"class":567},"        ha",[533,68396,554],{"class":553},[533,68398,41296],{"class":621},[533,68400,1549],{"class":543},[533,68402,68404,68407,68409,68411],{"class":535,"line":68403},299,[533,68405,68406],{"class":567},"        va",[533,68408,554],{"class":553},[533,68410,41296],{"class":621},[533,68412,1549],{"class":543},[533,68414,68416],{"class":535,"line":68415},300,[533,68417,12340],{"class":543},[533,68419,68421],{"class":535,"line":68420},301,[533,68422,891],{"emptyLinePlaceholder":790},[533,68424,68426],{"class":535,"line":68425},302,[533,68427,891],{"emptyLinePlaceholder":790},[533,68429,68431,68433,68436,68438,68440,68442,68444],{"class":535,"line":68430},303,[533,68432,1754],{"class":539},[533,68434,68435],{"class":560}," add_initial_state_label",[533,68437,615],{"class":543},[533,68439,39969],{"class":1762},[533,68441,11460],{"class":543},[533,68443,3838],{"class":625},[533,68445,544],{"class":543},[533,68447,68449],{"class":535,"line":68448},304,[533,68450,68451],{"class":621},"    \"\"\"Label the initialized ground-state pole.\"\"\"\n",[533,68453,68455,68457,68459],{"class":535,"line":68454},305,[533,68456,67816],{"class":543},[533,68458,67967],{"class":560},[533,68460,1503],{"class":543},[533,68462,68464,68466],{"class":535,"line":68463},306,[533,68465,68131],{"class":625},[533,68467,1549],{"class":543},[533,68469,68471,68473],{"class":535,"line":68470},307,[533,68472,68131],{"class":625},[533,68474,1549],{"class":543},[533,68476,68478,68481],{"class":535,"line":68477},308,[533,68479,68480],{"class":625},"        1.0",[533,68482,1549],{"class":543},[533,68484,68486,68488,68490,68492],{"class":535,"line":68485},309,[533,68487,67854],{"class":567},[533,68489,554],{"class":553},[533,68491,66126],{"class":625},[533,68493,1549],{"class":543},[533,68495,68497,68499,68501,68503],{"class":535,"line":68496},310,[533,68498,68012],{"class":567},[533,68500,554],{"class":553},[533,68502,66160],{"class":625},[533,68504,1549],{"class":543},[533,68506,68508,68510,68512,68514],{"class":535,"line":68507},311,[533,68509,68024],{"class":567},[533,68511,554],{"class":553},[533,68513,1958],{"class":625},[533,68515,1549],{"class":543},[533,68517,68519],{"class":535,"line":68518},312,[533,68520,12340],{"class":543},[533,68522,68524,68526,68528],{"class":535,"line":68523},313,[533,68525,67816],{"class":543},[533,68527,31773],{"class":560},[533,68529,1503],{"class":543},[533,68531,68533,68535],{"class":535,"line":68532},314,[533,68534,68131],{"class":625},[533,68536,1549],{"class":543},[533,68538,68540,68542],{"class":535,"line":68539},315,[533,68541,68131],{"class":625},[533,68543,1549],{"class":543},[533,68545,68547,68550],{"class":535,"line":68546},316,[533,68548,68549],{"class":625},"        1.16",[533,68551,1549],{"class":543},[533,68553,68555,68558,68561,68563,68565,68568,68571],{"class":535,"line":68554},317,[533,68556,68557],{"class":539},"        r",[533,68559,68560],{"class":2387},"\"initial $",[533,68562,13947],{"class":543},[533,68564,49279],{"class":2387},[533,68566,68567],{"class":553},"\\r",[533,68569,68570],{"class":2387},"angle$\"",[533,68572,1549],{"class":543},[533,68574,68576,68578,68580,68582],{"class":535,"line":68575},318,[533,68577,67854],{"class":567},[533,68579,554],{"class":553},[533,68581,66126],{"class":625},[533,68583,1549],{"class":543},[533,68585,68587,68589,68591,68593],{"class":535,"line":68586},319,[533,68588,41311],{"class":567},[533,68590,554],{"class":553},[533,68592,19804],{"class":625},[533,68594,1549],{"class":543},[533,68596,68598,68600,68602,68604],{"class":535,"line":68597},320,[533,68599,68394],{"class":567},[533,68601,554],{"class":553},[533,68603,41296],{"class":621},[533,68605,1549],{"class":543},[533,68607,68609,68611,68613,68615],{"class":535,"line":68608},321,[533,68610,68406],{"class":567},[533,68612,554],{"class":553},[533,68614,41296],{"class":621},[533,68616,1549],{"class":543},[533,68618,68620],{"class":535,"line":68619},322,[533,68621,12340],{"class":543},[533,68623,68625],{"class":535,"line":68624},323,[533,68626,891],{"emptyLinePlaceholder":790},[533,68628,68630],{"class":535,"line":68629},324,[533,68631,891],{"emptyLinePlaceholder":790},[533,68633,68635,68637,68640,68642,68644],{"class":535,"line":68634},325,[533,68636,5724],{"class":539},[533,68638,68639],{"class":625}," BLOCH_DURATION_NS",[533,68641,37527],{"class":539},[533,68643,3906],{"class":625},[533,68645,544],{"class":543},[533,68647,68649,68652,68654,68656],{"class":535,"line":68648},326,[533,68650,68651],{"class":543},"    bloch_duration_ns ",[533,68653,554],{"class":553},[533,68655,66829],{"class":560},[533,68657,1503],{"class":543},[533,68659,68661],{"class":535,"line":68660},327,[533,68662,68663],{"class":625},"        BLOCH_OMEGA_ONRESONANCE_MHZ\n",[533,68665,68667],{"class":535,"line":68666},328,[533,68668,12340],{"class":543},[533,68670,68672,68674],{"class":535,"line":68671},329,[533,68673,7221],{"class":539},[533,68675,544],{"class":543},[533,68677,68679,68681,68683],{"class":535,"line":68678},330,[533,68680,68651],{"class":543},[533,68682,554],{"class":553},[533,68684,68685],{"class":625}," BLOCH_DURATION_NS\n",[533,68687,68689],{"class":535,"line":68688},331,[533,68690,891],{"emptyLinePlaceholder":790},[533,68692,68694,68697,68699,68701],{"class":535,"line":68693},332,[533,68695,68696],{"class":543},"resonant_trajectory ",[533,68698,554],{"class":553},[533,68700,66882],{"class":560},[533,68702,1503],{"class":543},[533,68704,68706,68708,68710,68712],{"class":535,"line":68705},333,[533,68707,66889],{"class":567},[533,68709,554],{"class":553},[533,68711,65934],{"class":625},[533,68713,1549],{"class":543},[533,68715,68717,68719,68721],{"class":535,"line":68716},334,[533,68718,66900],{"class":567},[533,68720,554],{"class":553},[533,68722,68723],{"class":543},"bloch_duration_ns,\n",[533,68725,68727,68729,68731,68733],{"class":535,"line":68726},335,[533,68728,66911],{"class":567},[533,68730,554],{"class":553},[533,68732,65976],{"class":625},[533,68734,1549],{"class":543},[533,68736,68738],{"class":535,"line":68737},336,[533,68739,637],{"class":543},[533,68741,68743],{"class":535,"line":68742},337,[533,68744,891],{"emptyLinePlaceholder":790},[533,68746,68748,68751,68753,68755],{"class":535,"line":68747},338,[533,68749,68750],{"class":543},"detuned_trajectory ",[533,68752,554],{"class":553},[533,68754,66882],{"class":560},[533,68756,1503],{"class":543},[533,68758,68760,68762,68764,68766],{"class":535,"line":68759},339,[533,68761,66889],{"class":567},[533,68763,554],{"class":553},[533,68765,65943],{"class":625},[533,68767,1549],{"class":543},[533,68769,68771,68773,68775],{"class":535,"line":68770},340,[533,68772,66900],{"class":567},[533,68774,554],{"class":553},[533,68776,68723],{"class":543},[533,68778,68780,68782,68784,68786],{"class":535,"line":68779},341,[533,68781,66911],{"class":567},[533,68783,554],{"class":553},[533,68785,65976],{"class":625},[533,68787,1549],{"class":543},[533,68789,68791],{"class":535,"line":68790},342,[533,68792,637],{"class":543},[533,68794,68796],{"class":535,"line":68795},343,[533,68797,891],{"emptyLinePlaceholder":790},[533,68799,68801,68804,68806],{"class":535,"line":68800},344,[533,68802,68803],{"class":543},"resonant_drive_ghz ",[533,68805,554],{"class":553},[533,68807,12282],{"class":543},[533,68809,68811],{"class":535,"line":68810},345,[533,68812,68813],{"class":625},"    BLOCH_F0_GHZ\n",[533,68815,68817,68820,68823,68825],{"class":535,"line":68816},346,[533,68818,68819],{"class":553},"    +",[533,68821,68822],{"class":625}," BLOCH_RESONANT_DETUNING_MHZ",[533,68824,2254],{"class":553},[533,68826,68827],{"class":625}," 1.0e-3\n",[533,68829,68831],{"class":535,"line":68830},347,[533,68832,637],{"class":543},[533,68834,68836,68839,68841],{"class":535,"line":68835},348,[533,68837,68838],{"class":543},"detuned_drive_ghz ",[533,68840,554],{"class":553},[533,68842,12282],{"class":543},[533,68844,68846],{"class":535,"line":68845},349,[533,68847,68813],{"class":625},[533,68849,68851,68853,68856,68858],{"class":535,"line":68850},350,[533,68852,68819],{"class":553},[533,68854,68855],{"class":625}," BLOCH_DETUNED_DETUNING_MHZ",[533,68857,2254],{"class":553},[533,68859,68827],{"class":625},[533,68861,68863],{"class":535,"line":68862},351,[533,68864,637],{"class":543},[533,68866,68868],{"class":535,"line":68867},352,[533,68869,891],{"emptyLinePlaceholder":790},[533,68871,68873,68876,68878,68880,68882,68884,68886,68888,68890],{"class":535,"line":68872},353,[533,68874,68875],{"class":543},"figure ",[533,68877,554],{"class":553},[533,68879,19777],{"class":543},[533,68881,12896],{"class":560},[533,68883,615],{"class":543},[533,68885,12901],{"class":567},[533,68887,554],{"class":553},[533,68889,65986],{"class":625},[533,68891,637],{"class":543},[533,68893,68895],{"class":535,"line":68894},354,[533,68896,891],{"emptyLinePlaceholder":790},[533,68898,68900,68903,68905,68907,68910,68912,68915,68917],{"class":535,"line":68899},355,[533,68901,68902],{"class":543},"bloch ",[533,68904,554],{"class":553},[533,68906,67043],{"class":543},[533,68908,68909],{"class":560},"Bloch",[533,68911,615],{"class":543},[533,68913,68914],{"class":567},"fig",[533,68916,554],{"class":553},[533,68918,68919],{"class":543},"figure)\n",[533,68921,68923,68926,68928],{"class":535,"line":68922},356,[533,68924,68925],{"class":543},"bloch.view ",[533,68927,554],{"class":553},[533,68929,68930],{"class":625}," BLOCH_VIEW\n",[533,68932,68934,68937,68939,68941,68943,68946,68948,68950,68952,68954,68956,68958,68960,68962,68964,68966,68968],{"class":535,"line":68933},357,[533,68935,68936],{"class":543},"bloch.zlabel ",[533,68938,554],{"class":553},[533,68940,13464],{"class":543},[533,68942,13035],{"class":539},[533,68944,68945],{"class":2387},"\"$",[533,68947,13947],{"class":543},[533,68949,49279],{"class":2387},[533,68951,68567],{"class":553},[533,68953,68570],{"class":2387},[533,68955,1133],{"class":543},[533,68957,13035],{"class":539},[533,68959,68945],{"class":2387},[533,68961,13947],{"class":543},[533,68963,629],{"class":2387},[533,68965,68567],{"class":553},[533,68967,68570],{"class":2387},[533,68969,14965],{"class":543},[533,68971,68973,68976,68978],{"class":535,"line":68972},358,[533,68974,68975],{"class":543},"bloch.title ",[533,68977,554],{"class":553},[533,68979,12282],{"class":543},[533,68981,68983,68986,68988],{"class":535,"line":68982},359,[533,68984,68985],{"class":621},"    \"Bloch-sphere Rabi trajectories",[533,68987,7117],{"class":553},[533,68989,43171],{"class":621},[533,68991,68993,68996,68999,69002,69004,69006],{"class":535,"line":68992},360,[533,68994,68995],{"class":539},"    rf",[533,68997,68998],{"class":621},"\"resonant $\\Delta\u002F2\\pi=",[533,69000,69001],{"class":625},"{BLOCH_RESONANT_DETUNING_MHZ",[533,69003,7135],{"class":539},[533,69005,632],{"class":625},[533,69007,69008],{"class":621},"$ MHz, \"\n",[533,69010,69012,69014,69017,69020,69022,69024],{"class":535,"line":69011},361,[533,69013,68995],{"class":539},[533,69015,69016],{"class":621},"\"detuned $\\Delta\u002F2\\pi=",[533,69018,69019],{"class":625},"{BLOCH_DETUNED_DETUNING_MHZ",[533,69021,7135],{"class":539},[533,69023,632],{"class":625},[533,69025,69026],{"class":621},"$ MHz\"\n",[533,69028,69030],{"class":535,"line":69029},362,[533,69031,637],{"class":543},[533,69033,69035],{"class":535,"line":69034},363,[533,69036,891],{"emptyLinePlaceholder":790},[533,69038,69040,69043,69045,69047],{"class":535,"line":69039},364,[533,69041,69042],{"class":543},"bloch_axis ",[533,69044,554],{"class":553},[533,69046,67528],{"class":560},[533,69048,1503],{"class":543},[533,69050,69052,69054,69056],{"class":535,"line":69051},365,[533,69053,67536],{"class":567},[533,69055,554],{"class":553},[533,69057,69058],{"class":543},"bloch,\n",[533,69060,69062,69064,69066],{"class":535,"line":69061},366,[533,69063,67545],{"class":567},[533,69065,554],{"class":553},[533,69067,69068],{"class":543},"figure,\n",[533,69070,69072],{"class":535,"line":69071},367,[533,69073,637],{"class":543},[533,69075,69077],{"class":535,"line":69076},368,[533,69078,891],{"emptyLinePlaceholder":790},[533,69080,69082,69085],{"class":535,"line":69081},369,[533,69083,69084],{"class":560},"draw_bloch_trajectory",[533,69086,1503],{"class":543},[533,69088,69090,69092,69094],{"class":535,"line":69089},370,[533,69091,67761],{"class":567},[533,69093,554],{"class":553},[533,69095,69096],{"class":543},"bloch_axis,\n",[533,69098,69100,69102,69104,69107,69110],{"class":535,"line":69099},371,[533,69101,67769],{"class":567},[533,69103,554],{"class":553},[533,69105,69106],{"class":543},"resonant_trajectory[",[533,69108,69109],{"class":621},"\"vectors\"",[533,69111,1533],{"class":543},[533,69113,69115,69117,69119,69121],{"class":535,"line":69114},372,[533,69116,67777],{"class":567},[533,69118,554],{"class":553},[533,69120,66086],{"class":625},[533,69122,1549],{"class":543},[533,69124,69126,69128,69130,69133],{"class":535,"line":69125},373,[533,69127,67789],{"class":567},[533,69129,554],{"class":553},[533,69131,69132],{"class":621},"\"Resonant state trajectory\"",[533,69134,1549],{"class":543},[533,69136,69138],{"class":535,"line":69137},374,[533,69139,637],{"class":543},[533,69141,69143,69145],{"class":535,"line":69142},375,[533,69144,69084],{"class":560},[533,69146,1503],{"class":543},[533,69148,69150,69152,69154],{"class":535,"line":69149},376,[533,69151,67761],{"class":567},[533,69153,554],{"class":553},[533,69155,69096],{"class":543},[533,69157,69159,69161,69163,69166,69168],{"class":535,"line":69158},377,[533,69160,67769],{"class":567},[533,69162,554],{"class":553},[533,69164,69165],{"class":543},"detuned_trajectory[",[533,69167,69109],{"class":621},[533,69169,1533],{"class":543},[533,69171,69173,69175,69177,69179],{"class":535,"line":69172},378,[533,69174,67777],{"class":567},[533,69176,554],{"class":553},[533,69178,66096],{"class":625},[533,69180,1549],{"class":543},[533,69182,69184,69186,69188,69191],{"class":535,"line":69183},379,[533,69185,67789],{"class":567},[533,69187,554],{"class":553},[533,69189,69190],{"class":621},"\"Detuned state trajectory\"",[533,69192,1549],{"class":543},[533,69194,69196],{"class":535,"line":69195},380,[533,69197,637],{"class":543},[533,69199,69201],{"class":535,"line":69200},381,[533,69202,891],{"emptyLinePlaceholder":790},[533,69204,69206,69208,69211],{"class":535,"line":69205},382,[533,69207,5724],{"class":539},[533,69209,69210],{"class":625}," BLOCH_SHOW_ENDPOINT_MARKERS",[533,69212,544],{"class":543},[533,69214,69216,69219],{"class":535,"line":69215},383,[533,69217,69218],{"class":560},"    draw_endpoint_marker",[533,69220,1503],{"class":543},[533,69222,69224,69227,69229],{"class":535,"line":69223},384,[533,69225,69226],{"class":567},"        axis",[533,69228,554],{"class":553},[533,69230,69096],{"class":543},[533,69232,69234,69237,69239,69241,69243,69246,69248,69250],{"class":535,"line":69233},385,[533,69235,69236],{"class":567},"        vector",[533,69238,554],{"class":553},[533,69240,69106],{"class":543},[533,69242,69109],{"class":621},[533,69244,69245],{"class":543},"][:, ",[533,69247,2514],{"class":553},[533,69249,1052],{"class":625},[533,69251,1533],{"class":543},[533,69253,69255,69257,69259,69261],{"class":535,"line":69254},386,[533,69256,67854],{"class":567},[533,69258,554],{"class":553},[533,69260,66086],{"class":625},[533,69262,1549],{"class":543},[533,69264,69266,69268,69270,69273],{"class":535,"line":69265},387,[533,69267,67877],{"class":567},[533,69269,554],{"class":553},[533,69271,69272],{"class":621},"\"Resonant final state\"",[533,69274,1549],{"class":543},[533,69276,69278],{"class":535,"line":69277},388,[533,69279,12340],{"class":543},[533,69281,69283,69285],{"class":535,"line":69282},389,[533,69284,69218],{"class":560},[533,69286,1503],{"class":543},[533,69288,69290,69292,69294],{"class":535,"line":69289},390,[533,69291,69226],{"class":567},[533,69293,554],{"class":553},[533,69295,69096],{"class":543},[533,69297,69299,69301,69303,69305,69307,69309,69311,69313],{"class":535,"line":69298},391,[533,69300,69236],{"class":567},[533,69302,554],{"class":553},[533,69304,69165],{"class":543},[533,69306,69109],{"class":621},[533,69308,69245],{"class":543},[533,69310,2514],{"class":553},[533,69312,1052],{"class":625},[533,69314,1533],{"class":543},[533,69316,69318,69320,69322,69324],{"class":535,"line":69317},392,[533,69319,67854],{"class":567},[533,69321,554],{"class":553},[533,69323,66096],{"class":625},[533,69325,1549],{"class":543},[533,69327,69329,69331,69333,69336],{"class":535,"line":69328},393,[533,69330,67877],{"class":567},[533,69332,554],{"class":553},[533,69334,69335],{"class":621},"\"Detuned final state\"",[533,69337,1549],{"class":543},[533,69339,69341],{"class":535,"line":69340},394,[533,69342,12340],{"class":543},[533,69344,69346,69349],{"class":535,"line":69345},395,[533,69347,69348],{"class":560},"    add_initial_state_label",[533,69350,69351],{"class":543},"(bloch_axis)\n",[533,69353,69355],{"class":535,"line":69354},396,[533,69356,891],{"emptyLinePlaceholder":790},[533,69358,69360,69362,69365],{"class":535,"line":69359},397,[533,69361,5724],{"class":539},[533,69363,69364],{"class":625}," BLOCH_SHOW_CONTROL_AXIS_ARROWS",[533,69366,544],{"class":543},[533,69368,69370,69373],{"class":535,"line":69369},398,[533,69371,69372],{"class":560},"    draw_control_axis_arrow",[533,69374,1503],{"class":543},[533,69376,69378,69380,69382],{"class":535,"line":69377},399,[533,69379,69226],{"class":567},[533,69381,554],{"class":553},[533,69383,69096],{"class":543},[533,69385,69387,69389,69391,69393,69396],{"class":535,"line":69386},400,[533,69388,69236],{"class":567},[533,69390,554],{"class":553},[533,69392,69106],{"class":543},[533,69394,69395],{"class":621},"\"control_axis\"",[533,69397,1533],{"class":543},[533,69399,69401,69403,69405,69407],{"class":535,"line":69400},401,[533,69402,67854],{"class":567},[533,69404,554],{"class":553},[533,69406,66106],{"class":625},[533,69408,1549],{"class":543},[533,69410,69412,69414,69416,69418,69421,69424,69427,69430,69433],{"class":535,"line":69411},402,[533,69413,67877],{"class":567},[533,69415,554],{"class":553},[533,69417,13035],{"class":539},[533,69419,69420],{"class":2387},"\"Resonant control axis $",[533,69422,69423],{"class":553},"\\h",[533,69425,69426],{"class":2387},"at{n}_{",[533,69428,69429],{"class":553},"\\m",[533,69431,69432],{"class":2387},"athrm{res}}$\"",[533,69434,1549],{"class":543},[533,69436,69438],{"class":535,"line":69437},403,[533,69439,12340],{"class":543},[533,69441,69443,69445],{"class":535,"line":69442},404,[533,69444,69372],{"class":560},[533,69446,1503],{"class":543},[533,69448,69450,69452,69454],{"class":535,"line":69449},405,[533,69451,69226],{"class":567},[533,69453,554],{"class":553},[533,69455,69096],{"class":543},[533,69457,69459,69461,69463,69465,69467],{"class":535,"line":69458},406,[533,69460,69236],{"class":567},[533,69462,554],{"class":553},[533,69464,69165],{"class":543},[533,69466,69395],{"class":621},[533,69468,1533],{"class":543},[533,69470,69472,69474,69476,69478],{"class":535,"line":69471},407,[533,69473,67854],{"class":567},[533,69475,554],{"class":553},[533,69477,66116],{"class":625},[533,69479,1549],{"class":543},[533,69481,69483,69485,69487,69489,69492,69494,69496,69498,69501],{"class":535,"line":69482},408,[533,69484,67877],{"class":567},[533,69486,554],{"class":553},[533,69488,13035],{"class":539},[533,69490,69491],{"class":2387},"\"Detuned control axis $",[533,69493,69423],{"class":553},[533,69495,69426],{"class":2387},[533,69497,69429],{"class":553},[533,69499,69500],{"class":2387},"athrm{det}}$\"",[533,69502,1549],{"class":543},[533,69504,69506],{"class":535,"line":69505},409,[533,69507,12340],{"class":543},[533,69509,69511],{"class":535,"line":69510},410,[533,69512,891],{"emptyLinePlaceholder":790},[533,69514,69516,69518,69521,69523,69525],{"class":535,"line":69515},411,[533,69517,5724],{"class":539},[533,69519,69520],{"class":625}," BLOCH_SHOW_ARROW_TIP_LABELS",[533,69522,3894],{"class":539},[533,69524,69364],{"class":625},[533,69526,544],{"class":543},[533,69528,69530,69533],{"class":535,"line":69529},412,[533,69531,69532],{"class":560},"    add_arrow_tip_label",[533,69534,1503],{"class":543},[533,69536,69538,69540,69542],{"class":535,"line":69537},413,[533,69539,69226],{"class":567},[533,69541,554],{"class":553},[533,69543,69096],{"class":543},[533,69545,69547,69549,69551,69553,69555],{"class":535,"line":69546},414,[533,69548,69236],{"class":567},[533,69550,554],{"class":553},[533,69552,69106],{"class":543},[533,69554,69395],{"class":621},[533,69556,1533],{"class":543},[533,69558,69560,69563,69565,69567,69569,69571,69573,69575,69577],{"class":535,"line":69559},415,[533,69561,69562],{"class":567},"        text",[533,69564,554],{"class":553},[533,69566,13035],{"class":539},[533,69568,68945],{"class":2387},[533,69570,69423],{"class":553},[533,69572,69426],{"class":2387},[533,69574,69429],{"class":553},[533,69576,69432],{"class":2387},[533,69578,1549],{"class":543},[533,69580,69582,69584,69586,69588],{"class":535,"line":69581},416,[533,69583,67854],{"class":567},[533,69585,554],{"class":553},[533,69587,66106],{"class":625},[533,69589,1549],{"class":543},[533,69591,69593],{"class":535,"line":69592},417,[533,69594,12340],{"class":543},[533,69596,69598,69600],{"class":535,"line":69597},418,[533,69599,69532],{"class":560},[533,69601,1503],{"class":543},[533,69603,69605,69607,69609],{"class":535,"line":69604},419,[533,69606,69226],{"class":567},[533,69608,554],{"class":553},[533,69610,69096],{"class":543},[533,69612,69614,69616,69618,69620,69622],{"class":535,"line":69613},420,[533,69615,69236],{"class":567},[533,69617,554],{"class":553},[533,69619,69165],{"class":543},[533,69621,69395],{"class":621},[533,69623,1533],{"class":543},[533,69625,69627,69629,69631,69633,69635,69637,69639,69641,69643],{"class":535,"line":69626},421,[533,69628,69562],{"class":567},[533,69630,554],{"class":553},[533,69632,13035],{"class":539},[533,69634,68945],{"class":2387},[533,69636,69423],{"class":553},[533,69638,69426],{"class":2387},[533,69640,69429],{"class":553},[533,69642,69500],{"class":2387},[533,69644,1549],{"class":543},[533,69646,69648,69650,69652,69654],{"class":535,"line":69647},422,[533,69649,67854],{"class":567},[533,69651,554],{"class":553},[533,69653,66116],{"class":625},[533,69655,1549],{"class":543},[533,69657,69659],{"class":535,"line":69658},423,[533,69660,12340],{"class":543},[533,69662,69664],{"class":535,"line":69663},424,[533,69665,891],{"emptyLinePlaceholder":790},[533,69667,69669,69671,69674],{"class":535,"line":69668},425,[533,69670,5724],{"class":539},[533,69672,69673],{"class":625}," BLOCH_SHOW_LEGEND",[533,69675,544],{"class":543},[533,69677,69679,69682,69684],{"class":535,"line":69678},426,[533,69680,69681],{"class":543},"    legend_handles ",[533,69683,554],{"class":553},[533,69685,26997],{"class":543},[533,69687,69689,69692],{"class":535,"line":69688},427,[533,69690,69691],{"class":560},"        Line2D",[533,69693,1503],{"class":543},[533,69695,69697,69700,69702],{"class":535,"line":69696},428,[533,69698,69699],{"class":543},"            [",[533,69701,1049],{"class":625},[533,69703,1533],{"class":543},[533,69705,69707,69709,69711],{"class":535,"line":69706},429,[533,69708,69699],{"class":543},[533,69710,1049],{"class":625},[533,69712,1533],{"class":543},[533,69714,69716,69719,69721,69723],{"class":535,"line":69715},430,[533,69717,69718],{"class":567},"            color",[533,69720,554],{"class":553},[533,69722,66086],{"class":625},[533,69724,1549],{"class":543},[533,69726,69728,69731,69733,69735],{"class":535,"line":69727},431,[533,69729,69730],{"class":567},"            linewidth",[533,69732,554],{"class":553},[533,69734,66140],{"class":625},[533,69736,1549],{"class":543},[533,69738,69740,69743,69745,69747],{"class":535,"line":69739},432,[533,69741,69742],{"class":567},"            label",[533,69744,554],{"class":553},[533,69746,69132],{"class":621},[533,69748,1549],{"class":543},[533,69750,69752],{"class":535,"line":69751},433,[533,69753,67505],{"class":543},[533,69755,69757,69759],{"class":535,"line":69756},434,[533,69758,69691],{"class":560},[533,69760,1503],{"class":543},[533,69762,69764,69766,69768],{"class":535,"line":69763},435,[533,69765,69699],{"class":543},[533,69767,1049],{"class":625},[533,69769,1533],{"class":543},[533,69771,69773,69775,69777],{"class":535,"line":69772},436,[533,69774,69699],{"class":543},[533,69776,1049],{"class":625},[533,69778,1533],{"class":543},[533,69780,69782,69784,69786,69788],{"class":535,"line":69781},437,[533,69783,69718],{"class":567},[533,69785,554],{"class":553},[533,69787,66096],{"class":625},[533,69789,1549],{"class":543},[533,69791,69793,69795,69797,69799],{"class":535,"line":69792},438,[533,69794,69730],{"class":567},[533,69796,554],{"class":553},[533,69798,66140],{"class":625},[533,69800,1549],{"class":543},[533,69802,69804,69806,69808,69810],{"class":535,"line":69803},439,[533,69805,69742],{"class":567},[533,69807,554],{"class":553},[533,69809,69190],{"class":621},[533,69811,1549],{"class":543},[533,69813,69815],{"class":535,"line":69814},440,[533,69816,67505],{"class":543},[533,69818,69820,69822],{"class":535,"line":69819},441,[533,69821,69691],{"class":560},[533,69823,1503],{"class":543},[533,69825,69827,69829,69831],{"class":535,"line":69826},442,[533,69828,69699],{"class":543},[533,69830,1049],{"class":625},[533,69832,1533],{"class":543},[533,69834,69836,69838,69840],{"class":535,"line":69835},443,[533,69837,69699],{"class":543},[533,69839,1049],{"class":625},[533,69841,1533],{"class":543},[533,69843,69845,69847,69849,69851],{"class":535,"line":69844},444,[533,69846,69718],{"class":567},[533,69848,554],{"class":553},[533,69850,66106],{"class":625},[533,69852,1549],{"class":543},[533,69854,69856,69858,69860,69862],{"class":535,"line":69855},445,[533,69857,69730],{"class":567},[533,69859,554],{"class":553},[533,69861,66150],{"class":625},[533,69863,1549],{"class":543},[533,69865,69867,69869,69871,69873,69875,69877,69879,69881,69883],{"class":535,"line":69866},446,[533,69868,69742],{"class":567},[533,69870,554],{"class":553},[533,69872,13035],{"class":539},[533,69874,69420],{"class":2387},[533,69876,69423],{"class":553},[533,69878,69426],{"class":2387},[533,69880,69429],{"class":553},[533,69882,69432],{"class":2387},[533,69884,1549],{"class":543},[533,69886,69888],{"class":535,"line":69887},447,[533,69889,67505],{"class":543},[533,69891,69893,69895],{"class":535,"line":69892},448,[533,69894,69691],{"class":560},[533,69896,1503],{"class":543},[533,69898,69900,69902,69904],{"class":535,"line":69899},449,[533,69901,69699],{"class":543},[533,69903,1049],{"class":625},[533,69905,1533],{"class":543},[533,69907,69909,69911,69913],{"class":535,"line":69908},450,[533,69910,69699],{"class":543},[533,69912,1049],{"class":625},[533,69914,1533],{"class":543},[533,69916,69918,69920,69922,69924],{"class":535,"line":69917},451,[533,69919,69718],{"class":567},[533,69921,554],{"class":553},[533,69923,66116],{"class":625},[533,69925,1549],{"class":543},[533,69927,69929,69931,69933,69935],{"class":535,"line":69928},452,[533,69930,69730],{"class":567},[533,69932,554],{"class":553},[533,69934,66150],{"class":625},[533,69936,1549],{"class":543},[533,69938,69940,69942,69944,69946,69948,69950,69952,69954,69956],{"class":535,"line":69939},453,[533,69941,69742],{"class":567},[533,69943,554],{"class":553},[533,69945,13035],{"class":539},[533,69947,69491],{"class":2387},[533,69949,69423],{"class":553},[533,69951,69426],{"class":2387},[533,69953,69429],{"class":553},[533,69955,69500],{"class":2387},[533,69957,1549],{"class":543},[533,69959,69961],{"class":535,"line":69960},454,[533,69962,67505],{"class":543},[533,69964,69966],{"class":535,"line":69965},455,[533,69967,66384],{"class":543},[533,69969,69971],{"class":535,"line":69970},456,[533,69972,891],{"emptyLinePlaceholder":790},[533,69974,69976,69979,69981],{"class":535,"line":69975},457,[533,69977,69978],{"class":543},"    bloch_axis.",[533,69980,13110],{"class":560},[533,69982,1503],{"class":543},[533,69984,69986,69989,69991],{"class":535,"line":69985},458,[533,69987,69988],{"class":567},"        handles",[533,69990,554],{"class":553},[533,69992,69993],{"class":543},"legend_handles,\n",[533,69995,69997,70000,70002,70004],{"class":535,"line":69996},459,[533,69998,69999],{"class":567},"        loc",[533,70001,554],{"class":553},[533,70003,66194],{"class":625},[533,70005,1549],{"class":543},[533,70007,70009,70012,70014,70016],{"class":535,"line":70008},460,[533,70010,70011],{"class":567},"        bbox_to_anchor",[533,70013,554],{"class":553},[533,70015,66204],{"class":625},[533,70017,1549],{"class":543},[533,70019,70021,70024,70026,70028],{"class":535,"line":70020},461,[533,70022,70023],{"class":567},"        frameon",[533,70025,554],{"class":553},[533,70027,1958],{"class":625},[533,70029,1549],{"class":543},[533,70031,70033,70036,70038,70040],{"class":535,"line":70032},462,[533,70034,70035],{"class":567},"        borderaxespad",[533,70037,554],{"class":553},[533,70039,2229],{"class":625},[533,70041,1549],{"class":543},[533,70043,70045],{"class":535,"line":70044},463,[533,70046,12340],{"class":543},[533,70048,70050],{"class":535,"line":70049},464,[533,70051,891],{"emptyLinePlaceholder":790},[533,70053,70055,70057,70059],{"class":535,"line":70054},465,[533,70056,12893],{"class":543},[533,70058,13120],{"class":560},[533,70060,1217],{"class":543},[533,70062,70064],{"class":535,"line":70063},466,[533,70065,891],{"emptyLinePlaceholder":790},[533,70067,70069,70071,70074],{"class":535,"line":70068},467,[533,70070,5724],{"class":539},[533,70072,70073],{"class":625}," BLOCH_PRINT_SUMMARY",[533,70075,544],{"class":543},[533,70077,70079,70082,70084,70087,70089],{"class":535,"line":70078},468,[533,70080,70081],{"class":543},"    resonant_axis ",[533,70083,554],{"class":553},[533,70085,70086],{"class":543}," resonant_trajectory[",[533,70088,69395],{"class":621},[533,70090,14965],{"class":543},[533,70092,70094,70097,70099,70102,70104],{"class":535,"line":70093},469,[533,70095,70096],{"class":543},"    detuned_axis ",[533,70098,554],{"class":553},[533,70100,70101],{"class":543}," detuned_trajectory[",[533,70103,69395],{"class":621},[533,70105,14965],{"class":543},[533,70107,70109],{"class":535,"line":70108},470,[533,70110,891],{"emptyLinePlaceholder":790},[533,70112,70114,70116,70118,70121],{"class":535,"line":70113},471,[533,70115,612],{"class":553},[533,70117,615],{"class":543},[533,70119,70120],{"class":621},"\"Bloch-sphere trajectory summary\"",[533,70122,637],{"class":543},[533,70124,70126,70128,70130,70132,70135,70138,70140,70142,70145],{"class":535,"line":70125},472,[533,70127,612],{"class":553},[533,70129,615],{"class":543},[533,70131,618],{"class":539},[533,70133,70134],{"class":621},"\"Natural transition frequency f0: ",[533,70136,70137],{"class":625},"{BLOCH_F0_GHZ",[533,70139,3739],{"class":539},[533,70141,632],{"class":625},[533,70143,70144],{"class":621}," GHz\"",[533,70146,637],{"class":543},[533,70148,70150,70152,70154,70156,70159,70161,70164,70166,70168,70170],{"class":535,"line":70149},473,[533,70151,612],{"class":553},[533,70153,615],{"class":543},[533,70155,618],{"class":539},[533,70157,70158],{"class":621},"\"Resonant drive frequency: ",[533,70160,626],{"class":625},[533,70162,70163],{"class":543},"resonant_drive_ghz",[533,70165,3739],{"class":539},[533,70167,632],{"class":625},[533,70169,70144],{"class":621},[533,70171,637],{"class":543},[533,70173,70175,70177,70179,70181,70184,70186,70189,70191,70193,70195],{"class":535,"line":70174},474,[533,70176,612],{"class":553},[533,70178,615],{"class":543},[533,70180,618],{"class":539},[533,70182,70183],{"class":621},"\"Detuned drive frequency: ",[533,70185,626],{"class":625},[533,70187,70188],{"class":543},"detuned_drive_ghz",[533,70190,3739],{"class":539},[533,70192,632],{"class":625},[533,70194,70144],{"class":621},[533,70196,637],{"class":543},[533,70198,70200,70202,70204,70206,70209,70212,70214,70216,70219],{"class":535,"line":70199},475,[533,70201,612],{"class":553},[533,70203,615],{"class":543},[533,70205,618],{"class":539},[533,70207,70208],{"class":621},"\"On-resonance Rabi rate: ",[533,70210,70211],{"class":625},"{BLOCH_OMEGA_ONRESONANCE_MHZ",[533,70213,42001],{"class":539},[533,70215,632],{"class":625},[533,70217,70218],{"class":621}," MHz\"",[533,70220,637],{"class":543},[533,70222,70224,70226,70228,70230,70233,70235,70238,70240,70242,70245],{"class":535,"line":70223},476,[533,70225,612],{"class":553},[533,70227,615],{"class":543},[533,70229,618],{"class":539},[533,70231,70232],{"class":621},"\"Plotted duration: ",[533,70234,626],{"class":625},[533,70236,70237],{"class":543},"bloch_duration_ns",[533,70239,42001],{"class":539},[533,70241,632],{"class":625},[533,70243,70244],{"class":621}," ns\"",[533,70246,637],{"class":543},[533,70248,70250,70252],{"class":535,"line":70249},477,[533,70251,612],{"class":553},[533,70253,1503],{"class":543},[533,70255,70257],{"class":535,"line":70256},478,[533,70258,70259],{"class":621},"        \"Resonant control axis n_res: \"\n",[533,70261,70263,70266,70269,70271,70274,70276,70278,70280,70282],{"class":535,"line":70262},479,[533,70264,70265],{"class":539},"        f",[533,70267,70268],{"class":621},"\"(",[533,70270,626],{"class":625},[533,70272,70273],{"class":543},"resonant_axis[",[533,70275,1049],{"class":625},[533,70277,30516],{"class":543},[533,70279,3739],{"class":539},[533,70281,632],{"class":625},[533,70283,70284],{"class":621},", \"\n",[533,70286,70288,70290,70292,70294,70296,70298,70300,70302,70304],{"class":535,"line":70287},480,[533,70289,70265],{"class":539},[533,70291,439],{"class":621},[533,70293,626],{"class":625},[533,70295,70273],{"class":543},[533,70297,1052],{"class":625},[533,70299,30516],{"class":543},[533,70301,3739],{"class":539},[533,70303,632],{"class":625},[533,70305,70284],{"class":621},[533,70307,70309,70311,70313,70315,70317,70319,70321,70323,70325],{"class":535,"line":70308},481,[533,70310,70265],{"class":539},[533,70312,439],{"class":621},[533,70314,626],{"class":625},[533,70316,70273],{"class":543},[533,70318,1140],{"class":625},[533,70320,30516],{"class":543},[533,70322,3739],{"class":539},[533,70324,632],{"class":625},[533,70326,70327],{"class":621},")\"\n",[533,70329,70331],{"class":535,"line":70330},482,[533,70332,12340],{"class":543},[533,70334,70336,70338],{"class":535,"line":70335},483,[533,70337,612],{"class":553},[533,70339,1503],{"class":543},[533,70341,70343],{"class":535,"line":70342},484,[533,70344,70345],{"class":621},"        \"Detuned control axis n_det: \"\n",[533,70347,70349,70351,70353,70355,70358,70360,70362,70364,70366],{"class":535,"line":70348},485,[533,70350,70265],{"class":539},[533,70352,70268],{"class":621},[533,70354,626],{"class":625},[533,70356,70357],{"class":543},"detuned_axis[",[533,70359,1049],{"class":625},[533,70361,30516],{"class":543},[533,70363,3739],{"class":539},[533,70365,632],{"class":625},[533,70367,70284],{"class":621},[533,70369,70371,70373,70375,70377,70379,70381,70383,70385,70387],{"class":535,"line":70370},486,[533,70372,70265],{"class":539},[533,70374,439],{"class":621},[533,70376,626],{"class":625},[533,70378,70357],{"class":543},[533,70380,1052],{"class":625},[533,70382,30516],{"class":543},[533,70384,3739],{"class":539},[533,70386,632],{"class":625},[533,70388,70284],{"class":621},[533,70390,70392,70394,70396,70398,70400,70402,70404,70406,70408],{"class":535,"line":70391},487,[533,70393,70265],{"class":539},[533,70395,439],{"class":621},[533,70397,626],{"class":625},[533,70399,70357],{"class":543},[533,70401,1140],{"class":625},[533,70403,30516],{"class":543},[533,70405,3739],{"class":539},[533,70407,632],{"class":625},[533,70409,70327],{"class":621},[533,70411,70413],{"class":535,"line":70412},488,[533,70414,12340],{"class":543},[533,70416,70418,70420],{"class":535,"line":70417},489,[533,70419,612],{"class":553},[533,70421,1503],{"class":543},[533,70423,70425],{"class":535,"line":70424},490,[533,70426,70427],{"class":621},"        \"Resonant final excited-state probability: \"\n",[533,70429,70431,70433,70435,70437,70439,70442,70444,70446,70448,70450,70452,70454],{"class":535,"line":70430},491,[533,70432,70265],{"class":539},[533,70434,439],{"class":621},[533,70436,626],{"class":625},[533,70438,69106],{"class":543},[533,70440,70441],{"class":621},"'excited_probability'",[533,70443,2682],{"class":543},[533,70445,2514],{"class":553},[533,70447,1052],{"class":625},[533,70449,30516],{"class":543},[533,70451,3739],{"class":539},[533,70453,632],{"class":625},[533,70455,43171],{"class":621},[533,70457,70459],{"class":535,"line":70458},492,[533,70460,12340],{"class":543},[533,70462,70464,70466],{"class":535,"line":70463},493,[533,70465,612],{"class":553},[533,70467,1503],{"class":543},[533,70469,70471],{"class":535,"line":70470},494,[533,70472,70473],{"class":621},"        \"Detuned final excited-state probability: \"\n",[533,70475,70477,70479,70481,70483,70485,70487,70489,70491,70493,70495,70497,70499],{"class":535,"line":70476},495,[533,70478,70265],{"class":539},[533,70480,439],{"class":621},[533,70482,626],{"class":625},[533,70484,69165],{"class":543},[533,70486,70441],{"class":621},[533,70488,2682],{"class":543},[533,70490,2514],{"class":553},[533,70492,1052],{"class":625},[533,70494,30516],{"class":543},[533,70496,3739],{"class":539},[533,70498,632],{"class":625},[533,70500,43171],{"class":621},[533,70502,70504],{"class":535,"line":70503},496,[533,70505,12340],{"class":543},[533,70507,70509,70511],{"class":535,"line":70508},497,[533,70510,612],{"class":553},[533,70512,1503],{"class":543},[533,70514,70516],{"class":535,"line":70515},498,[533,70517,70518],{"class":621},"        \"Detuned generalized Rabi frequency: \"\n",[533,70520,70522,70524,70526,70528,70530,70533,70535,70537,70539],{"class":535,"line":70521},499,[533,70523,70265],{"class":539},[533,70525,439],{"class":621},[533,70527,626],{"class":625},[533,70529,69165],{"class":543},[533,70531,70532],{"class":621},"'generalized_rabi_mhz'",[533,70534,30516],{"class":543},[533,70536,3739],{"class":539},[533,70538,632],{"class":625},[533,70540,70541],{"class":621}," MHz\"\n",[533,70543,70545],{"class":535,"line":70544},500,[533,70546,12340],{"class":543},[2175,70548],{"alt":70549,"src":70550},"Output 2 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-02.webp",[524,70552,70555],{"className":70553,"code":70554,"language":31773,"meta":529},[38897],"Bloch-sphere trajectory summary\nNatural transition frequency f0: 5.000000 GHz\nResonant drive frequency: 5.000000 GHz\nDetuned drive frequency: 5.040000 GHz\nOn-resonance Rabi rate: 20.000 MHz\nPlotted duration: 25.000 ns\nResonant control axis n_res: (1.000000, 0.000000, 0.000000)\nDetuned control axis n_det: (0.447214, 0.000000, 0.894427)\nResonant final excited-state probability: 1.000000\nDetuned final excited-state probability: 0.026264\nDetuned generalized Rabi frequency: 44.721360 MHz\n",[57,70556,70554],{"__ignoreMap":529},[524,70558,70560],{"className":526,"code":70559,"language":528,"meta":529,"style":529},"# --- High-resolution 3D surface with colormap & legend  ---\nfrom mpl_toolkits.mplot3d import Axes3D\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Controls for surface quality and appearance\nUPSAMPLE_FACTOR: int = 2           # 2=~4× more faces; try 3 for even smoother\nSURFACE_CMAP: str = 'inferno'      # e.g., 'viridis', 'plasma', 'magma', 'inferno'\nZ_MIN, Z_MAX = 0.0, 1.0            # clamp\u002Fnormalize expected Pe range\n\n# --- Bilinear upsampling (SciPy-free) ---\n# 1) Upsample frequency axis for each fixed τ\nfreq_hi = np.linspace(freq_ghz.min(), freq_ghz.max(),\n                      UPSAMPLE_FACTOR * (len(freq_ghz) - 1) + 1)\nPe_tau_f = np.empty((len(dur_ns), len(freq_hi)), dtype=float)\nfor i in range(len(dur_ns)):\n    Pe_tau_f[i, :] = np.interp(freq_hi, freq_ghz, Pe[i, :])\n\n# 2) Upsample τ axis for each fixed frequency\ndur_hi = np.linspace(dur_ns.min(), dur_ns.max(),\n                     UPSAMPLE_FACTOR * (len(dur_ns) - 1) + 1)\nPe_hi = np.empty((len(dur_hi), len(freq_hi)), dtype=float)\nfor j in range(len(freq_hi)):\n    Pe_hi[:, j] = np.interp(dur_hi, dur_ns, Pe_tau_f[:, j])\n\n# Mesh for plotting\nF_hi, T_hi = np.meshgrid(freq_hi, dur_hi, indexing='xy')\n\n# --- Plot ---\nfig = plt.figure(figsize=(8, 6), dpi=200)\nax = fig.add_subplot(111, projection='3d')\n\nsurf = ax.plot_surface(\n    F_hi, T_hi, Pe_hi,\n    rstride=1, cstride=1,             # use every row\u002Fcolumn (after upsampling)\n    linewidth=0, antialiased=True,\n    cmap=SURFACE_CMAP,\n    vmin=Z_MIN, vmax=Z_MAX,\n)\n\nax.set_xlabel('f (GHz)')\nax.set_ylabel(r'$\\tau$ (ns)')\nax.set_zlabel(r'$P_e$')\nax.set_title('Rabi $P_e$ surface')\n\n# Colorbar (legend for the colormap)\ncb = fig.colorbar(surf, ax=ax, shrink=0.7, pad=0.08)\ncb.set_label(r'$P_e$')\n\nfig.tight_layout()\nplt.show()\n",[57,70561,70562,70567,70579,70589,70599,70603,70608,70624,70641,70662,70666,70671,70676,70700,70726,70756,70773,70788,70792,70797,70820,70846,70874,70891,70905,70909,70914,70936,70940,70945,70980,71006,71010,71023,71028,71051,71071,71082,71101,71105,71109,71122,71150,71164,71177,71181,71186,71223,71238,71242,71250],{"__ignoreMap":529},[533,70563,70564],{"class":535,"line":536},[533,70565,70566],{"class":593},"# --- High-resolution 3D surface with colormap & legend  ---\n",[533,70568,70569,70571,70574,70576],{"class":535,"line":547},[533,70570,877],{"class":539},[533,70572,70573],{"class":543}," mpl_toolkits.mplot3d ",[533,70575,883],{"class":539},[533,70577,70578],{"class":543}," Axes3D\n",[533,70580,70581,70583,70585,70587],{"class":535,"line":575},[533,70582,883],{"class":539},[533,70584,11128],{"class":543},[533,70586,584],{"class":539},[533,70588,11133],{"class":543},[533,70590,70591,70593,70595,70597],{"class":535,"line":590},[533,70592,883],{"class":539},[533,70594,11140],{"class":543},[533,70596,584],{"class":539},[533,70598,11145],{"class":543},[533,70600,70601],{"class":535,"line":597},[533,70602,891],{"emptyLinePlaceholder":790},[533,70604,70605],{"class":535,"line":603},[533,70606,70607],{"class":593},"# Controls for surface quality and appearance\n",[533,70609,70610,70613,70615,70617,70619,70621],{"class":535,"line":609},[533,70611,70612],{"class":625},"UPSAMPLE_FACTOR",[533,70614,1389],{"class":543},[533,70616,4175],{"class":553},[533,70618,4899],{"class":553},[533,70620,11938],{"class":625},[533,70622,70623],{"class":593},"           # 2=~4× more faces; try 3 for even smoother\n",[533,70625,70626,70629,70631,70633,70635,70638],{"class":535,"line":640},[533,70627,70628],{"class":625},"SURFACE_CMAP",[533,70630,1389],{"class":543},[533,70632,39480],{"class":553},[533,70634,4899],{"class":553},[533,70636,70637],{"class":621}," 'inferno'",[533,70639,70640],{"class":593},"      # e.g., 'viridis', 'plasma', 'magma', 'inferno'\n",[533,70642,70643,70646,70648,70651,70653,70655,70657,70659],{"class":535,"line":646},[533,70644,70645],{"class":625},"Z_MIN",[533,70647,1133],{"class":543},[533,70649,70650],{"class":625},"Z_MAX",[533,70652,4899],{"class":553},[533,70654,11793],{"class":625},[533,70656,1133],{"class":543},[533,70658,2239],{"class":625},[533,70660,70661],{"class":593},"            # clamp\u002Fnormalize expected Pe range\n",[533,70663,70664],{"class":535,"line":658},[533,70665,891],{"emptyLinePlaceholder":790},[533,70667,70668],{"class":535,"line":680},[533,70669,70670],{"class":593},"# --- Bilinear upsampling (SciPy-free) ---\n",[533,70672,70673],{"class":535,"line":1536},[533,70674,70675],{"class":593},"# 1) Upsample frequency axis for each fixed τ\n",[533,70677,70678,70681,70683,70685,70687,70690,70692,70695,70697],{"class":535,"line":1552},[533,70679,70680],{"class":543},"freq_hi ",[533,70682,554],{"class":553},[533,70684,2911],{"class":543},[533,70686,12734],{"class":560},[533,70688,70689],{"class":543},"(freq_ghz.",[533,70691,2234],{"class":560},[533,70693,70694],{"class":543},"(), freq_ghz.",[533,70696,13480],{"class":560},[533,70698,70699],{"class":543},"(),\n",[533,70701,70702,70705,70707,70709,70711,70714,70716,70718,70720,70722,70724],{"class":535,"line":1911},[533,70703,70704],{"class":625},"                      UPSAMPLE_FACTOR",[533,70706,2254],{"class":553},[533,70708,5037],{"class":543},[533,70710,15006],{"class":553},[533,70712,70713],{"class":543},"(freq_ghz) ",[533,70715,2514],{"class":553},[533,70717,6353],{"class":625},[533,70719,7047],{"class":543},[533,70721,6350],{"class":553},[533,70723,6353],{"class":625},[533,70725,637],{"class":543},[533,70727,70728,70731,70733,70735,70737,70739,70741,70744,70746,70749,70751,70754],{"class":535,"line":1940},[533,70729,70730],{"class":543},"Pe_tau_f ",[533,70732,554],{"class":553},[533,70734,2911],{"class":543},[533,70736,13355],{"class":560},[533,70738,6219],{"class":543},[533,70740,15006],{"class":553},[533,70742,70743],{"class":543},"(dur_ns), ",[533,70745,15006],{"class":553},[533,70747,70748],{"class":543},"(freq_hi)), ",[533,70750,16210],{"class":567},[533,70752,70753],{"class":553},"=float",[533,70755,637],{"class":543},[533,70757,70758,70760,70762,70764,70766,70768,70770],{"class":535,"line":1968},[533,70759,3180],{"class":539},[533,70761,2971],{"class":543},[533,70763,2786],{"class":539},[533,70765,2976],{"class":553},[533,70767,615],{"class":543},[533,70769,15006],{"class":553},[533,70771,70772],{"class":543},"(dur_ns)):\n",[533,70774,70775,70778,70780,70782,70785],{"class":535,"line":1995},[533,70776,70777],{"class":543},"    Pe_tau_f[i, :] ",[533,70779,554],{"class":553},[533,70781,2911],{"class":543},[533,70783,70784],{"class":560},"interp",[533,70786,70787],{"class":543},"(freq_hi, freq_ghz, Pe[i, :])\n",[533,70789,70790],{"class":535,"line":4164},[533,70791,891],{"emptyLinePlaceholder":790},[533,70793,70794],{"class":535,"line":4199},[533,70795,70796],{"class":593},"# 2) Upsample τ axis for each fixed frequency\n",[533,70798,70799,70802,70804,70806,70808,70811,70813,70816,70818],{"class":535,"line":4206},[533,70800,70801],{"class":543},"dur_hi ",[533,70803,554],{"class":553},[533,70805,2911],{"class":543},[533,70807,12734],{"class":560},[533,70809,70810],{"class":543},"(dur_ns.",[533,70812,2234],{"class":560},[533,70814,70815],{"class":543},"(), dur_ns.",[533,70817,13480],{"class":560},[533,70819,70699],{"class":543},[533,70821,70822,70825,70827,70829,70831,70834,70836,70838,70840,70842,70844],{"class":535,"line":4214},[533,70823,70824],{"class":625},"                     UPSAMPLE_FACTOR",[533,70826,2254],{"class":553},[533,70828,5037],{"class":543},[533,70830,15006],{"class":553},[533,70832,70833],{"class":543},"(dur_ns) ",[533,70835,2514],{"class":553},[533,70837,6353],{"class":625},[533,70839,7047],{"class":543},[533,70841,6350],{"class":553},[533,70843,6353],{"class":625},[533,70845,637],{"class":543},[533,70847,70848,70851,70853,70855,70857,70859,70861,70864,70866,70868,70870,70872],{"class":535,"line":11296},[533,70849,70850],{"class":543},"Pe_hi ",[533,70852,554],{"class":553},[533,70854,2911],{"class":543},[533,70856,13355],{"class":560},[533,70858,6219],{"class":543},[533,70860,15006],{"class":553},[533,70862,70863],{"class":543},"(dur_hi), ",[533,70865,15006],{"class":553},[533,70867,70748],{"class":543},[533,70869,16210],{"class":567},[533,70871,70753],{"class":553},[533,70873,637],{"class":543},[533,70875,70876,70878,70880,70882,70884,70886,70888],{"class":535,"line":11302},[533,70877,3180],{"class":539},[533,70879,19913],{"class":543},[533,70881,2786],{"class":539},[533,70883,2976],{"class":553},[533,70885,615],{"class":543},[533,70887,15006],{"class":553},[533,70889,70890],{"class":543},"(freq_hi)):\n",[533,70892,70893,70896,70898,70900,70902],{"class":535,"line":11332},[533,70894,70895],{"class":543},"    Pe_hi[:, j] ",[533,70897,554],{"class":553},[533,70899,2911],{"class":543},[533,70901,70784],{"class":560},[533,70903,70904],{"class":543},"(dur_hi, dur_ns, Pe_tau_f[:, j])\n",[533,70906,70907],{"class":535,"line":11345},[533,70908,891],{"emptyLinePlaceholder":790},[533,70910,70911],{"class":535,"line":11372},[533,70912,70913],{"class":593},"# Mesh for plotting\n",[533,70915,70916,70919,70921,70923,70925,70928,70930,70932,70934],{"class":535,"line":11385},[533,70917,70918],{"class":543},"F_hi, T_hi ",[533,70920,554],{"class":553},[533,70922,2911],{"class":543},[533,70924,40547],{"class":560},[533,70926,70927],{"class":543},"(freq_hi, dur_hi, ",[533,70929,40553],{"class":567},[533,70931,554],{"class":553},[533,70933,65055],{"class":621},[533,70935,637],{"class":543},[533,70937,70938],{"class":535,"line":11390},[533,70939,891],{"emptyLinePlaceholder":790},[533,70941,70942],{"class":535,"line":11402},[533,70943,70944],{"class":593},"# --- Plot ---\n",[533,70946,70947,70950,70952,70954,70956,70958,70960,70962,70964,70966,70968,70970,70972,70974,70976,70978],{"class":535,"line":11407},[533,70948,70949],{"class":543},"fig ",[533,70951,554],{"class":553},[533,70953,19777],{"class":543},[533,70955,12896],{"class":560},[533,70957,615],{"class":543},[533,70959,12901],{"class":567},[533,70961,554],{"class":553},[533,70963,615],{"class":543},[533,70965,12908],{"class":625},[533,70967,1133],{"class":543},[533,70969,1967],{"class":625},[533,70971,3945],{"class":543},[533,70973,12917],{"class":567},[533,70975,554],{"class":553},[533,70977,39215],{"class":625},[533,70979,637],{"class":543},[533,70981,70982,70985,70987,70989,70991,70993,70995,70997,70999,71001,71004],{"class":535,"line":11412},[533,70983,70984],{"class":543},"ax ",[533,70986,554],{"class":553},[533,70988,41736],{"class":543},[533,70990,44934],{"class":560},[533,70992,615],{"class":543},[533,70994,3543],{"class":625},[533,70996,1133],{"class":543},[533,70998,44943],{"class":567},[533,71000,554],{"class":553},[533,71002,71003],{"class":621},"'3d'",[533,71005,637],{"class":543},[533,71007,71008],{"class":535,"line":11418},[533,71009,891],{"emptyLinePlaceholder":790},[533,71011,71012,71015,71017,71019,71021],{"class":535,"line":11423},[533,71013,71014],{"class":543},"surf ",[533,71016,554],{"class":553},[533,71018,41124],{"class":543},[533,71020,45095],{"class":560},[533,71022,1503],{"class":543},[533,71024,71025],{"class":535,"line":11467},[533,71026,71027],{"class":543},"    F_hi, T_hi, Pe_hi,\n",[533,71029,71030,71033,71035,71037,71039,71041,71043,71045,71048],{"class":535,"line":11473},[533,71031,71032],{"class":567},"    rstride",[533,71034,554],{"class":553},[533,71036,1052],{"class":625},[533,71038,1133],{"class":543},[533,71040,45128],{"class":567},[533,71042,554],{"class":553},[533,71044,1052],{"class":625},[533,71046,71047],{"class":543},",             ",[533,71049,71050],{"class":593},"# use every row\u002Fcolumn (after upsampling)\n",[533,71052,71053,71056,71058,71060,71062,71065,71067,71069],{"class":535,"line":11488},[533,71054,71055],{"class":567},"    linewidth",[533,71057,554],{"class":553},[533,71059,1049],{"class":625},[533,71061,1133],{"class":543},[533,71063,71064],{"class":567},"antialiased",[533,71066,554],{"class":553},[533,71068,1958],{"class":625},[533,71070,1549],{"class":543},[533,71072,71073,71076,71078,71080],{"class":535,"line":11505},[533,71074,71075],{"class":567},"    cmap",[533,71077,554],{"class":553},[533,71079,70628],{"class":625},[533,71081,1549],{"class":543},[533,71083,71084,71087,71089,71091,71093,71095,71097,71099],{"class":535,"line":11518},[533,71085,71086],{"class":567},"    vmin",[533,71088,554],{"class":553},[533,71090,70645],{"class":625},[533,71092,1133],{"class":543},[533,71094,41713],{"class":567},[533,71096,554],{"class":553},[533,71098,70650],{"class":625},[533,71100,1549],{"class":543},[533,71102,71103],{"class":535,"line":11523},[533,71104,637],{"class":543},[533,71106,71107],{"class":535,"line":11555},[533,71108,891],{"emptyLinePlaceholder":790},[533,71110,71111,71113,71115,71117,71120],{"class":535,"line":11561},[533,71112,27691],{"class":543},[533,71114,19871],{"class":560},[533,71116,615],{"class":543},[533,71118,71119],{"class":621},"'f (GHz)'",[533,71121,637],{"class":543},[533,71123,71124,71126,71128,71130,71132,71134,71137,71140,71142,71144,71146,71148],{"class":535,"line":11577},[533,71125,27691],{"class":543},[533,71127,19885],{"class":560},[533,71129,615],{"class":543},[533,71131,13035],{"class":539},[533,71133,13065],{"class":2387},[533,71135,71136],{"class":553},"\\t",[533,71138,71139],{"class":2387},"au$ ",[533,71141,615],{"class":625},[533,71143,56053],{"class":2387},[533,71145,2632],{"class":625},[533,71147,13048],{"class":2387},[533,71149,637],{"class":543},[533,71151,71152,71154,71156,71158,71160,71162],{"class":535,"line":11600},[533,71153,27691],{"class":543},[533,71155,45268],{"class":560},[533,71157,615],{"class":543},[533,71159,13035],{"class":539},[533,71161,65661],{"class":2387},[533,71163,637],{"class":543},[533,71165,71166,71168,71170,71172,71175],{"class":535,"line":11621},[533,71167,27691],{"class":543},[533,71169,19861],{"class":560},[533,71171,615],{"class":543},[533,71173,71174],{"class":621},"'Rabi $P_e$ surface'",[533,71176,637],{"class":543},[533,71178,71179],{"class":535,"line":11637},[533,71180,891],{"emptyLinePlaceholder":790},[533,71182,71183],{"class":535,"line":11672},[533,71184,71185],{"class":593},"# Colorbar (legend for the colormap)\n",[533,71187,71188,71190,71192,71194,71196,71199,71201,71203,71205,71208,71210,71212,71214,71216,71218,71221],{"class":535,"line":11689},[533,71189,65637],{"class":543},[533,71191,554],{"class":553},[533,71193,41736],{"class":543},[533,71195,13556],{"class":560},[533,71197,71198],{"class":543},"(surf, ",[533,71200,12651],{"class":567},[533,71202,554],{"class":553},[533,71204,41748],{"class":543},[533,71206,71207],{"class":567},"shrink",[533,71209,554],{"class":553},[533,71211,27708],{"class":625},[533,71213,1133],{"class":543},[533,71215,41761],{"class":567},[533,71217,554],{"class":553},[533,71219,71220],{"class":625},"0.08",[533,71222,637],{"class":543},[533,71224,71225,71228,71230,71232,71234,71236],{"class":535,"line":11697},[533,71226,71227],{"class":543},"cb.",[533,71229,41776],{"class":560},[533,71231,615],{"class":543},[533,71233,13035],{"class":539},[533,71235,65661],{"class":2387},[533,71237,637],{"class":543},[533,71239,71240],{"class":535,"line":11734},[533,71241,891],{"emptyLinePlaceholder":790},[533,71243,71244,71246,71248],{"class":535,"line":11766},[533,71245,65717],{"class":543},[533,71247,19953],{"class":560},[533,71249,1217],{"class":543},[533,71251,71252,71254,71256],{"class":535,"line":11806},[533,71253,12893],{"class":543},[533,71255,13120],{"class":560},[533,71257,1217],{"class":543},[2175,71259],{"alt":71260,"src":71261},"Output 3 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-03.webp",[524,71263,71265],{"className":526,"code":71264,"language":528,"meta":529,"style":529},"# @title Cross-sections\n# Slicing controls\nF_CROSS_GHZ: float = 5.000  # drive frequency slice [GHz]\nT_CROSS_NS: float = 100.0   # duration slice [ns]\n\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef _nearest_index(vec: np.ndarray, value: float, name: str) -> int:\n    \"\"\"Return nearest index to 'value' in 'vec'; clamp and notify if out of range.\"\"\"\n    vmin, vmax = float(vec.min()), float(vec.max())\n    if value \u003C vmin or value > vmax:\n        print(f\"[Note] {name}={value} is outside sweep; clamping to [{vmin}, {vmax}].\")\n        value = np.clip(value, vmin, vmax)\n    return int(np.argmin(np.abs(vec - value)))\n\n# --- Slice at f = F_CROSS_GHZ ---\nj = _nearest_index(freq_ghz, F_CROSS_GHZ, \"F_CROSS_GHZ\")\nPe_vs_tau = Pe[:, j]\n\nfig, ax = plt.subplots(figsize=(6, 3.5))\nax.plot(dur_ns, Pe_vs_tau, color='blue')\nax.set_xlabel(r'$\\tau$ (ns)')\nax.set_ylabel(r'$P_e$')\n# Avoid \\text{}; mix math for symbols and plain text for units\u002Fvalues\nax.set_title(r'$P_e(\\tau)$ at f = ' + f'{freq_ghz[j]:.6f} GHz')\nax.set_ylim(0.0, 1.0)\nfig.tight_layout()\nplt.show()\n\n# --- Slice at τ = T_CROSS_NS ---\ni = _nearest_index(dur_ns, T_CROSS_NS, \"T_CROSS_NS\")\nPe_vs_f = Pe[i, :]\n\nfig, ax = plt.subplots(figsize=(6, 3.5))\nax.plot(freq_ghz, Pe_vs_f, color='blue')\nax.set_xlabel('f (GHz)')\nax.set_ylabel(r'$P_e$')\nax.set_title(r'$P_e(f)$ at $\\tau$ = ' + f'{dur_ns[i]:.3f} ns')\nax.set_ylim(0.0, 1.0)\nfig.tight_layout()\nplt.show()\n",[57,71266,71267,71272,71277,71292,71307,71311,71321,71331,71335,71370,71375,71400,71421,71468,71482,71505,71509,71514,71535,71545,71549,71576,71593,71619,71633,71638,71683,71700,71708,71716,71720,71725,71746,71756,71760,71786,71803,71815,71829,71875,71891,71899],{"__ignoreMap":529},[533,71268,71269],{"class":535,"line":536},[533,71270,71271],{"class":593},"# @title Cross-sections\n",[533,71273,71274],{"class":535,"line":547},[533,71275,71276],{"class":593},"# Slicing controls\n",[533,71278,71279,71281,71283,71285,71287,71289],{"class":535,"line":575},[533,71280,64174],{"class":625},[533,71282,1389],{"class":543},[533,71284,11186],{"class":553},[533,71286,4899],{"class":553},[533,71288,64668],{"class":625},[533,71290,71291],{"class":593},"  # drive frequency slice [GHz]\n",[533,71293,71294,71296,71298,71300,71302,71304],{"class":535,"line":590},[533,71295,64273],{"class":625},[533,71297,1389],{"class":543},[533,71299,11186],{"class":553},[533,71301,4899],{"class":553},[533,71303,15300],{"class":625},[533,71305,71306],{"class":593},"   # duration slice [ns]\n",[533,71308,71309],{"class":535,"line":597},[533,71310,891],{"emptyLinePlaceholder":790},[533,71312,71313,71315,71317,71319],{"class":535,"line":603},[533,71314,883],{"class":539},[533,71316,11128],{"class":543},[533,71318,584],{"class":539},[533,71320,11133],{"class":543},[533,71322,71323,71325,71327,71329],{"class":535,"line":609},[533,71324,883],{"class":539},[533,71326,11140],{"class":543},[533,71328,584],{"class":539},[533,71330,11145],{"class":543},[533,71332,71333],{"class":535,"line":640},[533,71334,891],{"emptyLinePlaceholder":790},[533,71336,71337,71339,71342,71344,71347,71349,71352,71354,71356,71358,71360,71362,71364,71366,71368],{"class":535,"line":646},[533,71338,1754],{"class":539},[533,71340,71341],{"class":560}," _nearest_index",[533,71343,615],{"class":543},[533,71345,71346],{"class":1762},"vec",[533,71348,16135],{"class":543},[533,71350,71351],{"class":1762},"value",[533,71353,1389],{"class":543},[533,71355,11186],{"class":553},[533,71357,1133],{"class":543},[533,71359,7391],{"class":1762},[533,71361,1389],{"class":543},[533,71363,39480],{"class":553},[533,71365,11460],{"class":543},[533,71367,4175],{"class":553},[533,71369,544],{"class":543},[533,71371,71372],{"class":535,"line":658},[533,71373,71374],{"class":621},"    \"\"\"Return nearest index to 'value' in 'vec'; clamp and notify if out of range.\"\"\"\n",[533,71376,71377,71380,71382,71384,71387,71389,71392,71394,71396,71398],{"class":535,"line":680},[533,71378,71379],{"class":543},"    vmin, vmax ",[533,71381,554],{"class":553},[533,71383,66932],{"class":553},[533,71385,71386],{"class":543},"(vec.",[533,71388,2234],{"class":560},[533,71390,71391],{"class":543},"()), ",[533,71393,11186],{"class":553},[533,71395,71386],{"class":543},[533,71397,13480],{"class":560},[533,71399,932],{"class":543},[533,71401,71402,71404,71407,71409,71412,71414,71416,71418],{"class":535,"line":1536},[533,71403,1814],{"class":539},[533,71405,71406],{"class":543}," value ",[533,71408,2600],{"class":553},[533,71410,71411],{"class":543}," vmin ",[533,71413,44136],{"class":539},[533,71415,71406],{"class":543},[533,71417,2808],{"class":553},[533,71419,71420],{"class":543}," vmax:\n",[533,71422,71423,71425,71427,71429,71432,71434,71436,71438,71440,71442,71444,71446,71449,71451,71453,71455,71457,71459,71461,71463,71466],{"class":535,"line":1552},[533,71424,45979],{"class":553},[533,71426,615],{"class":543},[533,71428,618],{"class":539},[533,71430,71431],{"class":621},"\"[Note] ",[533,71433,626],{"class":625},[533,71435,7391],{"class":543},[533,71437,632],{"class":625},[533,71439,554],{"class":621},[533,71441,626],{"class":625},[533,71443,71351],{"class":543},[533,71445,632],{"class":625},[533,71447,71448],{"class":621}," is outside sweep; clamping to [",[533,71450,626],{"class":625},[533,71452,44825],{"class":543},[533,71454,632],{"class":625},[533,71456,1133],{"class":621},[533,71458,626],{"class":625},[533,71460,41713],{"class":543},[533,71462,632],{"class":625},[533,71464,71465],{"class":621},"].\"",[533,71467,637],{"class":543},[533,71469,71470,71473,71475,71477,71479],{"class":535,"line":1911},[533,71471,71472],{"class":543},"        value ",[533,71474,554],{"class":553},[533,71476,2911],{"class":543},[533,71478,13850],{"class":560},[533,71480,71481],{"class":543},"(value, vmin, vmax)\n",[533,71483,71484,71486,71488,71490,71493,71495,71497,71500,71502],{"class":535,"line":1940},[533,71485,1880],{"class":539},[533,71487,26885],{"class":553},[533,71489,5967],{"class":543},[533,71491,71492],{"class":560},"argmin",[533,71494,5967],{"class":543},[533,71496,12852],{"class":560},[533,71498,71499],{"class":543},"(vec ",[533,71501,2514],{"class":553},[533,71503,71504],{"class":543}," value)))\n",[533,71506,71507],{"class":535,"line":1968},[533,71508,891],{"emptyLinePlaceholder":790},[533,71510,71511],{"class":535,"line":1995},[533,71512,71513],{"class":593},"# --- Slice at f = F_CROSS_GHZ ---\n",[533,71515,71516,71519,71521,71523,71526,71528,71530,71533],{"class":535,"line":4164},[533,71517,71518],{"class":543},"j ",[533,71520,554],{"class":553},[533,71522,71341],{"class":560},[533,71524,71525],{"class":543},"(freq_ghz, ",[533,71527,64174],{"class":625},[533,71529,1133],{"class":543},[533,71531,71532],{"class":621},"\"F_CROSS_GHZ\"",[533,71534,637],{"class":543},[533,71536,71537,71540,71542],{"class":535,"line":4199},[533,71538,71539],{"class":543},"Pe_vs_tau ",[533,71541,554],{"class":553},[533,71543,71544],{"class":543}," Pe[:, j]\n",[533,71546,71547],{"class":535,"line":4206},[533,71548,891],{"emptyLinePlaceholder":790},[533,71550,71551,71553,71555,71557,71559,71561,71563,71565,71567,71569,71571,71574],{"class":535,"line":4214},[533,71552,27656],{"class":543},[533,71554,554],{"class":553},[533,71556,19777],{"class":543},[533,71558,19780],{"class":560},[533,71560,615],{"class":543},[533,71562,12901],{"class":567},[533,71564,554],{"class":553},[533,71566,615],{"class":543},[533,71568,1967],{"class":625},[533,71570,1133],{"class":543},[533,71572,71573],{"class":625},"3.5",[533,71575,1937],{"class":543},[533,71577,71578,71580,71582,71585,71587,71589,71591],{"class":535,"line":11296},[533,71579,27691],{"class":543},[533,71581,12932],{"class":560},[533,71583,71584],{"class":543},"(dur_ns, Pe_vs_tau, ",[533,71586,12978],{"class":567},[533,71588,554],{"class":553},[533,71590,12983],{"class":621},[533,71592,637],{"class":543},[533,71594,71595,71597,71599,71601,71603,71605,71607,71609,71611,71613,71615,71617],{"class":535,"line":11302},[533,71596,27691],{"class":543},[533,71598,19871],{"class":560},[533,71600,615],{"class":543},[533,71602,13035],{"class":539},[533,71604,13065],{"class":2387},[533,71606,71136],{"class":553},[533,71608,71139],{"class":2387},[533,71610,615],{"class":625},[533,71612,56053],{"class":2387},[533,71614,2632],{"class":625},[533,71616,13048],{"class":2387},[533,71618,637],{"class":543},[533,71620,71621,71623,71625,71627,71629,71631],{"class":535,"line":11332},[533,71622,27691],{"class":543},[533,71624,19885],{"class":560},[533,71626,615],{"class":543},[533,71628,13035],{"class":539},[533,71630,65661],{"class":2387},[533,71632,637],{"class":543},[533,71634,71635],{"class":535,"line":11345},[533,71636,71637],{"class":593},"# Avoid \\text{}; mix math for symbols and plain text for units\u002Fvalues\n",[533,71639,71640,71642,71644,71646,71648,71651,71653,71655,71658,71660,71663,71665,71667,71669,71671,71674,71676,71678,71681],{"class":535,"line":11372},[533,71641,27691],{"class":543},[533,71643,19861],{"class":560},[533,71645,615],{"class":543},[533,71647,13035],{"class":539},[533,71649,71650],{"class":2387},"'$P_e",[533,71652,615],{"class":625},[533,71654,71136],{"class":553},[533,71656,71657],{"class":2387},"au",[533,71659,2632],{"class":625},[533,71661,71662],{"class":2387},"$ at f = '",[533,71664,14257],{"class":553},[533,71666,42413],{"class":539},[533,71668,13048],{"class":621},[533,71670,626],{"class":625},[533,71672,71673],{"class":543},"freq_ghz[j]",[533,71675,3739],{"class":539},[533,71677,632],{"class":625},[533,71679,71680],{"class":621}," GHz'",[533,71682,637],{"class":543},[533,71684,71685,71687,71690,71692,71694,71696,71698],{"class":535,"line":11385},[533,71686,27691],{"class":543},[533,71688,71689],{"class":560},"set_ylim",[533,71691,615],{"class":543},[533,71693,2229],{"class":625},[533,71695,1133],{"class":543},[533,71697,2239],{"class":625},[533,71699,637],{"class":543},[533,71701,71702,71704,71706],{"class":535,"line":11390},[533,71703,65717],{"class":543},[533,71705,19953],{"class":560},[533,71707,1217],{"class":543},[533,71709,71710,71712,71714],{"class":535,"line":11402},[533,71711,12893],{"class":543},[533,71713,13120],{"class":560},[533,71715,1217],{"class":543},[533,71717,71718],{"class":535,"line":11407},[533,71719,891],{"emptyLinePlaceholder":790},[533,71721,71722],{"class":535,"line":11412},[533,71723,71724],{"class":593},"# --- Slice at τ = T_CROSS_NS ---\n",[533,71726,71727,71730,71732,71734,71737,71739,71741,71744],{"class":535,"line":11418},[533,71728,71729],{"class":543},"i ",[533,71731,554],{"class":553},[533,71733,71341],{"class":560},[533,71735,71736],{"class":543},"(dur_ns, ",[533,71738,64273],{"class":625},[533,71740,1133],{"class":543},[533,71742,71743],{"class":621},"\"T_CROSS_NS\"",[533,71745,637],{"class":543},[533,71747,71748,71751,71753],{"class":535,"line":11423},[533,71749,71750],{"class":543},"Pe_vs_f ",[533,71752,554],{"class":553},[533,71754,71755],{"class":543}," Pe[i, :]\n",[533,71757,71758],{"class":535,"line":11467},[533,71759,891],{"emptyLinePlaceholder":790},[533,71761,71762,71764,71766,71768,71770,71772,71774,71776,71778,71780,71782,71784],{"class":535,"line":11473},[533,71763,27656],{"class":543},[533,71765,554],{"class":553},[533,71767,19777],{"class":543},[533,71769,19780],{"class":560},[533,71771,615],{"class":543},[533,71773,12901],{"class":567},[533,71775,554],{"class":553},[533,71777,615],{"class":543},[533,71779,1967],{"class":625},[533,71781,1133],{"class":543},[533,71783,71573],{"class":625},[533,71785,1937],{"class":543},[533,71787,71788,71790,71792,71795,71797,71799,71801],{"class":535,"line":11488},[533,71789,27691],{"class":543},[533,71791,12932],{"class":560},[533,71793,71794],{"class":543},"(freq_ghz, Pe_vs_f, ",[533,71796,12978],{"class":567},[533,71798,554],{"class":553},[533,71800,12983],{"class":621},[533,71802,637],{"class":543},[533,71804,71805,71807,71809,71811,71813],{"class":535,"line":11505},[533,71806,27691],{"class":543},[533,71808,19871],{"class":560},[533,71810,615],{"class":543},[533,71812,71119],{"class":621},[533,71814,637],{"class":543},[533,71816,71817,71819,71821,71823,71825,71827],{"class":535,"line":11518},[533,71818,27691],{"class":543},[533,71820,19885],{"class":560},[533,71822,615],{"class":543},[533,71824,13035],{"class":539},[533,71826,65661],{"class":2387},[533,71828,637],{"class":543},[533,71830,71831,71833,71835,71837,71839,71841,71843,71845,71847,71850,71852,71855,71857,71859,71861,71863,71866,71868,71870,71873],{"class":535,"line":11523},[533,71832,27691],{"class":543},[533,71834,19861],{"class":560},[533,71836,615],{"class":543},[533,71838,13035],{"class":539},[533,71840,71650],{"class":2387},[533,71842,615],{"class":625},[533,71844,618],{"class":2387},[533,71846,2632],{"class":625},[533,71848,71849],{"class":2387},"$ at $",[533,71851,71136],{"class":553},[533,71853,71854],{"class":2387},"au$ = '",[533,71856,14257],{"class":553},[533,71858,42413],{"class":539},[533,71860,13048],{"class":621},[533,71862,626],{"class":625},[533,71864,71865],{"class":543},"dur_ns[i]",[533,71867,42001],{"class":539},[533,71869,632],{"class":625},[533,71871,71872],{"class":621}," ns'",[533,71874,637],{"class":543},[533,71876,71877,71879,71881,71883,71885,71887,71889],{"class":535,"line":11555},[533,71878,27691],{"class":543},[533,71880,71689],{"class":560},[533,71882,615],{"class":543},[533,71884,2229],{"class":625},[533,71886,1133],{"class":543},[533,71888,2239],{"class":625},[533,71890,637],{"class":543},[533,71892,71893,71895,71897],{"class":535,"line":11561},[533,71894,65717],{"class":543},[533,71896,19953],{"class":560},[533,71898,1217],{"class":543},[533,71900,71901,71903,71905],{"class":535,"line":11577},[533,71902,12893],{"class":543},[533,71904,13120],{"class":560},[533,71906,1217],{"class":543},[2175,71908],{"alt":71909,"src":71910},"Output 4 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-04.webp",[2175,71912],{"alt":71913,"src":71914},"Output 5 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-05.webp",[524,71916,71918],{"className":526,"code":71917,"language":528,"meta":529,"style":529},"# @title FFT of Rabi oscillations along tau (controls + computation)\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# -------- Control knobs (FFT & display) --------\nFFT_PAD: int = 8                 # zero-padding factor (2, 4, 8, ...)\nWINDOW: str = \"hann\"             # \"hann\", \"boxcar\"\nDETREND_MEAN: bool = True        # subtract mean along τ before FFT\nAMP_MODE: str = \"magnitude\"      # \"magnitude\" | \"power\" | \"db\"\nNORM_MODE: str = \"global\"        # \"global\" | \"per_f\" (column-wise)\nFREQ_UNITS: str = \"MHz\"          # \"MHz\" or \"GHz\" for Fourier axis\n\n# -------- Helpers --------\ndef _make_window(n: int, kind: str) -> np.ndarray:\n    if kind.lower() == \"hann\":\n        return np.hanning(n)\n    return np.ones(n, dtype=float)  # boxcar\n\ndef rfft_spectrogram(\n    Pe: np.ndarray,\n    dur_ns: np.ndarray,\n    pad: int = 8,\n    window: str = \"hann\",\n    detrend_mean: bool = True,\n    amp_mode: str = \"magnitude\",\n    norm_mode: str = \"global\",\n    freq_units: str = \"MHz\",\n) -> tuple[np.ndarray, np.ndarray]:\n    \"\"\"Compute RFFT along τ for each drive frequency column of Pe(τ, f).\n\n    Args:\n        Pe: array of shape (N_tau, N_f) with excited-state probabilities.\n        dur_ns: τ grid [ns], length N_tau, evenly spaced.\n        pad: zero-padding factor (≥1).\n        window: \"hann\" or \"boxcar\".\n        detrend_mean: subtract column-wise mean before FFT.\n        amp_mode: \"magnitude\", \"power\", or \"db\".\n        norm_mode: \"global\" (single max) or \"per_f\" (each column scaled to its max).\n        freq_units: \"MHz\" or \"GHz\" for the Fourier axis.\n\n    Returns:\n        f_fft: Fourier frequency axis [MHz or GHz] (length N_w),\n        S:     2D nonnegative spectrogram (N_w, N_f).\n    \"\"\"\n    Pe = np.asarray(Pe, float)\n    dur_ns = np.asarray(dur_ns, float)\n    assert Pe.shape[0] == dur_ns.size, \"Pe must be shaped (N_tau, N_f).\"\n\n    # Uniform sampling assumption (true for np.linspace)\n    dt = float(dur_ns[1] - dur_ns[0]) * 1e-9               # [s]\n    n_tau = dur_ns.size\n    nfft = int(2 ** int(np.ceil(np.log2(n_tau))) * max(1, pad))\n    w = _make_window(n_tau, window)\n\n    # Prepare output\n    S_list = []\n    X = Pe.copy()\n    if detrend_mean:\n        X = X - X.mean(axis=0, keepdims=True)\n    X *= w[:, None]\n\n    # Real FFT along τ (axis=0)\n    Xf = np.fft.rfft(X, n=nfft, axis=0)                     # shape (N_w, N_f)\n    f_fft_hz = np.fft.rfftfreq(nfft, d=dt)                  # [Hz]\n\n    # Amplitude selection\n    if amp_mode.lower() == \"power\":\n        S = np.abs(Xf) ** 2\n    else:\n        S = np.abs(Xf)\n\n    # Normalization\n    if norm_mode.lower() == \"per_f\":\n        col_max = np.maximum(S.max(axis=0, keepdims=True), 1e-15)\n        S = S \u002F col_max\n    else:\n        S = S \u002F max(S.max(), 1e-15)\n\n    if amp_mode.lower() == \"db\":\n        S = 20.0 * np.log10(np.maximum(S, 1e-12))  # dB, clipped floor\n\n    # Units\n    if freq_units.upper() == \"GHz\":\n        f_fft = f_fft_hz * 1e-9\n    else:\n        f_fft = f_fft_hz * 1e-6\n\n    return f_fft, S\n\n# Compute spectrogram with current grid\nf_fft_axis, S_fft = rfft_spectrogram(\n    Pe, dur_ns,\n    pad=FFT_PAD,\n    window=WINDOW,\n    detrend_mean=DETREND_MEAN,\n    amp_mode=AMP_MODE,\n    norm_mode=NORM_MODE,\n    freq_units=FREQ_UNITS,\n)\nprint(\"FFT grid:\", S_fft.shape, \"| Fourier freq range:\", f_fft_axis[0], \"→\", f_fft_axis[-1], FREQ_UNITS)\n",[57,71919,71920,71925,71935,71945,71949,71954,71970,71986,72002,72018,72034,72050,72054,72059,72085,72102,72114,72135,72139,72148,72155,72162,72177,72192,72207,72222,72237,72252,72257,72262,72266,72270,72275,72280,72285,72290,72295,72300,72305,72310,72314,72318,72323,72328,72332,72349,72366,72385,72389,72394,72426,72436,72478,72490,72494,72499,72508,72521,72528,72565,72578,72582,72587,72622,72648,72652,72657,72675,72693,72699,72712,72716,72721,72739,72779,72793,72799,72821,72825,72842,72871,72875,72880,72898,72912,72918,72931,72935,72942,72946,72951,72962,72967,72977,72987,72997,73007,73017,73027,73031],{"__ignoreMap":529},[533,71921,71922],{"class":535,"line":536},[533,71923,71924],{"class":593},"# @title FFT of Rabi oscillations along tau (controls + computation)\n",[533,71926,71927,71929,71931,71933],{"class":535,"line":547},[533,71928,883],{"class":539},[533,71930,11128],{"class":543},[533,71932,584],{"class":539},[533,71934,11133],{"class":543},[533,71936,71937,71939,71941,71943],{"class":535,"line":575},[533,71938,883],{"class":539},[533,71940,11140],{"class":543},[533,71942,584],{"class":539},[533,71944,11145],{"class":543},[533,71946,71947],{"class":535,"line":590},[533,71948,891],{"emptyLinePlaceholder":790},[533,71950,71951],{"class":535,"line":597},[533,71952,71953],{"class":593},"# -------- Control knobs (FFT & display) --------\n",[533,71955,71956,71958,71960,71962,71964,71967],{"class":535,"line":603},[533,71957,64390],{"class":625},[533,71959,1389],{"class":543},[533,71961,4175],{"class":553},[533,71963,4899],{"class":553},[533,71965,71966],{"class":625}," 8",[533,71968,71969],{"class":593},"                 # zero-padding factor (2, 4, 8, ...)\n",[533,71971,71972,71974,71976,71978,71980,71983],{"class":535,"line":609},[533,71973,64404],{"class":625},[533,71975,1389],{"class":543},[533,71977,39480],{"class":553},[533,71979,4899],{"class":553},[533,71981,71982],{"class":621}," \"hann\"",[533,71984,71985],{"class":593},"             # \"hann\", \"boxcar\"\n",[533,71987,71988,71990,71992,71994,71996,71999],{"class":535,"line":640},[533,71989,64419],{"class":625},[533,71991,1389],{"class":543},[533,71993,11281],{"class":553},[533,71995,4899],{"class":553},[533,71997,71998],{"class":625}," True",[533,72000,72001],{"class":593},"        # subtract mean along τ before FFT\n",[533,72003,72004,72006,72008,72010,72012,72015],{"class":535,"line":646},[533,72005,64433],{"class":625},[533,72007,1389],{"class":543},[533,72009,39480],{"class":553},[533,72011,4899],{"class":553},[533,72013,72014],{"class":621}," \"magnitude\"",[533,72016,72017],{"class":593},"      # \"magnitude\" | \"power\" | \"db\"\n",[533,72019,72020,72022,72024,72026,72028,72031],{"class":535,"line":658},[533,72021,64448],{"class":625},[533,72023,1389],{"class":543},[533,72025,39480],{"class":553},[533,72027,4899],{"class":553},[533,72029,72030],{"class":621}," \"global\"",[533,72032,72033],{"class":593},"        # \"global\" | \"per_f\" (column-wise)\n",[533,72035,72036,72038,72040,72042,72044,72047],{"class":535,"line":680},[533,72037,64463],{"class":625},[533,72039,1389],{"class":543},[533,72041,39480],{"class":553},[533,72043,4899],{"class":553},[533,72045,72046],{"class":621}," \"MHz\"",[533,72048,72049],{"class":593},"          # \"MHz\" or \"GHz\" for Fourier axis\n",[533,72051,72052],{"class":535,"line":1536},[533,72053,891],{"emptyLinePlaceholder":790},[533,72055,72056],{"class":535,"line":1552},[533,72057,72058],{"class":593},"# -------- Helpers --------\n",[533,72060,72061,72063,72066,72068,72070,72072,72074,72076,72079,72081,72083],{"class":535,"line":1911},[533,72062,1754],{"class":539},[533,72064,72065],{"class":560}," _make_window",[533,72067,615],{"class":543},[533,72069,30647],{"class":1762},[533,72071,1389],{"class":543},[533,72073,4175],{"class":553},[533,72075,1133],{"class":543},[533,72077,72078],{"class":1762},"kind",[533,72080,1389],{"class":543},[533,72082,39480],{"class":553},[533,72084,39985],{"class":543},[533,72086,72087,72089,72092,72094,72096,72098,72100],{"class":535,"line":1940},[533,72088,1814],{"class":539},[533,72090,72091],{"class":543}," kind.",[533,72093,39880],{"class":560},[533,72095,16535],{"class":543},[533,72097,2768],{"class":553},[533,72099,71982],{"class":621},[533,72101,544],{"class":543},[533,72103,72104,72106,72108,72111],{"class":535,"line":1968},[533,72105,4169],{"class":539},[533,72107,2911],{"class":543},[533,72109,72110],{"class":560},"hanning",[533,72112,72113],{"class":543},"(n)\n",[533,72115,72116,72118,72120,72123,72126,72128,72130,72132],{"class":535,"line":1995},[533,72117,1880],{"class":539},[533,72119,2911],{"class":543},[533,72121,72122],{"class":560},"ones",[533,72124,72125],{"class":543},"(n, ",[533,72127,16210],{"class":567},[533,72129,70753],{"class":553},[533,72131,16970],{"class":543},[533,72133,72134],{"class":593},"# boxcar\n",[533,72136,72137],{"class":535,"line":4164},[533,72138,891],{"emptyLinePlaceholder":790},[533,72140,72141,72143,72146],{"class":535,"line":4199},[533,72142,1754],{"class":539},[533,72144,72145],{"class":560}," rfft_spectrogram",[533,72147,1503],{"class":543},[533,72149,72150,72153],{"class":535,"line":4206},[533,72151,72152],{"class":1762},"    Pe",[533,72154,41421],{"class":543},[533,72156,72157,72160],{"class":535,"line":4214},[533,72158,72159],{"class":1762},"    dur_ns",[533,72161,41421],{"class":543},[533,72163,72164,72167,72169,72171,72173,72175],{"class":535,"line":11296},[533,72165,72166],{"class":1762},"    pad",[533,72168,1389],{"class":543},[533,72170,4175],{"class":553},[533,72172,4899],{"class":553},[533,72174,71966],{"class":625},[533,72176,1549],{"class":543},[533,72178,72179,72182,72184,72186,72188,72190],{"class":535,"line":11302},[533,72180,72181],{"class":1762},"    window",[533,72183,1389],{"class":543},[533,72185,39480],{"class":553},[533,72187,4899],{"class":553},[533,72189,71982],{"class":621},[533,72191,1549],{"class":543},[533,72193,72194,72197,72199,72201,72203,72205],{"class":535,"line":11332},[533,72195,72196],{"class":1762},"    detrend_mean",[533,72198,1389],{"class":543},[533,72200,11281],{"class":553},[533,72202,4899],{"class":553},[533,72204,71998],{"class":625},[533,72206,1549],{"class":543},[533,72208,72209,72212,72214,72216,72218,72220],{"class":535,"line":11345},[533,72210,72211],{"class":1762},"    amp_mode",[533,72213,1389],{"class":543},[533,72215,39480],{"class":553},[533,72217,4899],{"class":553},[533,72219,72014],{"class":621},[533,72221,1549],{"class":543},[533,72223,72224,72227,72229,72231,72233,72235],{"class":535,"line":11372},[533,72225,72226],{"class":1762},"    norm_mode",[533,72228,1389],{"class":543},[533,72230,39480],{"class":553},[533,72232,4899],{"class":553},[533,72234,72030],{"class":621},[533,72236,1549],{"class":543},[533,72238,72239,72242,72244,72246,72248,72250],{"class":535,"line":11385},[533,72240,72241],{"class":1762},"    freq_units",[533,72243,1389],{"class":543},[533,72245,39480],{"class":553},[533,72247,4899],{"class":553},[533,72249,72046],{"class":621},[533,72251,1549],{"class":543},[533,72253,72254],{"class":535,"line":11390},[533,72255,72256],{"class":543},") -> tuple[np.ndarray, np.ndarray]:\n",[533,72258,72259],{"class":535,"line":11402},[533,72260,72261],{"class":621},"    \"\"\"Compute RFFT along τ for each drive frequency column of Pe(τ, f).\n",[533,72263,72264],{"class":535,"line":11407},[533,72265,891],{"emptyLinePlaceholder":790},[533,72267,72268],{"class":535,"line":11412},[533,72269,64905],{"class":621},[533,72271,72272],{"class":535,"line":11418},[533,72273,72274],{"class":621},"        Pe: array of shape (N_tau, N_f) with excited-state probabilities.\n",[533,72276,72277],{"class":535,"line":11423},[533,72278,72279],{"class":621},"        dur_ns: τ grid [ns], length N_tau, evenly spaced.\n",[533,72281,72282],{"class":535,"line":11467},[533,72283,72284],{"class":621},"        pad: zero-padding factor (≥1).\n",[533,72286,72287],{"class":535,"line":11473},[533,72288,72289],{"class":621},"        window: \"hann\" or \"boxcar\".\n",[533,72291,72292],{"class":535,"line":11488},[533,72293,72294],{"class":621},"        detrend_mean: subtract column-wise mean before FFT.\n",[533,72296,72297],{"class":535,"line":11505},[533,72298,72299],{"class":621},"        amp_mode: \"magnitude\", \"power\", or \"db\".\n",[533,72301,72302],{"class":535,"line":11518},[533,72303,72304],{"class":621},"        norm_mode: \"global\" (single max) or \"per_f\" (each column scaled to its max).\n",[533,72306,72307],{"class":535,"line":11523},[533,72308,72309],{"class":621},"        freq_units: \"MHz\" or \"GHz\" for the Fourier axis.\n",[533,72311,72312],{"class":535,"line":11555},[533,72313,891],{"emptyLinePlaceholder":790},[533,72315,72316],{"class":535,"line":11561},[533,72317,64939],{"class":621},[533,72319,72320],{"class":535,"line":11577},[533,72321,72322],{"class":621},"        f_fft: Fourier frequency axis [MHz or GHz] (length N_w),\n",[533,72324,72325],{"class":535,"line":11600},[533,72326,72327],{"class":621},"        S:     2D nonnegative spectrogram (N_w, N_f).\n",[533,72329,72330],{"class":535,"line":11621},[533,72331,39472],{"class":621},[533,72333,72334,72337,72339,72341,72343,72345,72347],{"class":535,"line":11637},[533,72335,72336],{"class":543},"    Pe ",[533,72338,554],{"class":553},[533,72340,2911],{"class":543},[533,72342,39869],{"class":560},[533,72344,65289],{"class":543},[533,72346,11186],{"class":553},[533,72348,637],{"class":543},[533,72350,72351,72354,72356,72358,72360,72362,72364],{"class":535,"line":11672},[533,72352,72353],{"class":543},"    dur_ns ",[533,72355,554],{"class":553},[533,72357,2911],{"class":543},[533,72359,39869],{"class":560},[533,72361,71736],{"class":543},[533,72363,11186],{"class":553},[533,72365,637],{"class":543},[533,72367,72368,72370,72373,72375,72377,72379,72382],{"class":535,"line":11689},[533,72369,41531],{"class":539},[533,72371,72372],{"class":543}," Pe.shape[",[533,72374,1049],{"class":625},[533,72376,11314],{"class":543},[533,72378,2768],{"class":553},[533,72380,72381],{"class":543}," dur_ns.size, ",[533,72383,72384],{"class":621},"\"Pe must be shaped (N_tau, N_f).\"\n",[533,72386,72387],{"class":535,"line":11697},[533,72388,891],{"emptyLinePlaceholder":790},[533,72390,72391],{"class":535,"line":11734},[533,72392,72393],{"class":593},"    # Uniform sampling assumption (true for np.linspace)\n",[533,72395,72396,72399,72401,72403,72406,72408,72410,72412,72415,72417,72419,72421,72423],{"class":535,"line":11766},[533,72397,72398],{"class":543},"    dt ",[533,72400,554],{"class":553},[533,72402,66932],{"class":553},[533,72404,72405],{"class":543},"(dur_ns[",[533,72407,1052],{"class":625},[533,72409,11314],{"class":543},[533,72411,2514],{"class":553},[533,72413,72414],{"class":543}," dur_ns[",[533,72416,1049],{"class":625},[533,72418,39925],{"class":543},[533,72420,2469],{"class":553},[533,72422,28479],{"class":625},[533,72424,72425],{"class":593},"               # [s]\n",[533,72427,72428,72431,72433],{"class":535,"line":11806},[533,72429,72430],{"class":543},"    n_tau ",[533,72432,554],{"class":553},[533,72434,72435],{"class":543}," dur_ns.size\n",[533,72437,72438,72441,72443,72445,72447,72449,72452,72454,72456,72459,72461,72464,72467,72469,72471,72473,72475],{"class":535,"line":11826},[533,72439,72440],{"class":543},"    nfft ",[533,72442,554],{"class":553},[533,72444,26885],{"class":553},[533,72446,615],{"class":543},[533,72448,1140],{"class":625},[533,72450,72451],{"class":553}," **",[533,72453,26885],{"class":553},[533,72455,5967],{"class":543},[533,72457,72458],{"class":560},"ceil",[533,72460,5967],{"class":543},[533,72462,72463],{"class":560},"log2",[533,72465,72466],{"class":543},"(n_tau))) ",[533,72468,2469],{"class":553},[533,72470,2224],{"class":553},[533,72472,615],{"class":543},[533,72474,1052],{"class":625},[533,72476,72477],{"class":543},", pad))\n",[533,72479,72480,72483,72485,72487],{"class":535,"line":11831},[533,72481,72482],{"class":543},"    w ",[533,72484,554],{"class":553},[533,72486,72065],{"class":560},[533,72488,72489],{"class":543},"(n_tau, window)\n",[533,72491,72492],{"class":535,"line":11867},[533,72493,891],{"emptyLinePlaceholder":790},[533,72495,72496],{"class":535,"line":11873},[533,72497,72498],{"class":593},"    # Prepare output\n",[533,72500,72501,72504,72506],{"class":535,"line":11886},[533,72502,72503],{"class":543},"    S_list ",[533,72505,554],{"class":553},[533,72507,42383],{"class":543},[533,72509,72510,72512,72514,72517,72519],{"class":535,"line":11943},[533,72511,44699],{"class":543},[533,72513,554],{"class":553},[533,72515,72516],{"class":543}," Pe.",[533,72518,9013],{"class":560},[533,72520,1217],{"class":543},[533,72522,72523,72525],{"class":535,"line":12001},[533,72524,1814],{"class":539},[533,72526,72527],{"class":543}," detrend_mean:\n",[533,72529,72530,72533,72535,72538,72540,72543,72546,72548,72550,72552,72554,72556,72559,72561,72563],{"class":535,"line":12009},[533,72531,72532],{"class":543},"        X ",[533,72534,554],{"class":553},[533,72536,72537],{"class":543}," X ",[533,72539,2514],{"class":553},[533,72541,72542],{"class":543}," X.",[533,72544,72545],{"class":560},"mean",[533,72547,615],{"class":543},[533,72549,39969],{"class":567},[533,72551,554],{"class":553},[533,72553,1049],{"class":625},[533,72555,1133],{"class":543},[533,72557,72558],{"class":567},"keepdims",[533,72560,554],{"class":553},[533,72562,1958],{"class":625},[533,72564,637],{"class":543},[533,72566,72567,72569,72571,72574,72576],{"class":535,"line":12014},[533,72568,44699],{"class":543},[533,72570,2666],{"class":553},[533,72572,72573],{"class":543}," w[:, ",[533,72575,3838],{"class":625},[533,72577,14965],{"class":543},[533,72579,72580],{"class":535,"line":12033},[533,72581,891],{"emptyLinePlaceholder":790},[533,72583,72584],{"class":535,"line":12039},[533,72585,72586],{"class":593},"    # Real FFT along τ (axis=0)\n",[533,72588,72589,72592,72594,72597,72600,72603,72605,72607,72610,72612,72614,72616,72619],{"class":535,"line":12062},[533,72590,72591],{"class":543},"    Xf ",[533,72593,554],{"class":553},[533,72595,72596],{"class":543}," np.fft.",[533,72598,72599],{"class":560},"rfft",[533,72601,72602],{"class":543},"(X, ",[533,72604,30647],{"class":567},[533,72606,554],{"class":553},[533,72608,72609],{"class":543},"nfft, ",[533,72611,39969],{"class":567},[533,72613,554],{"class":553},[533,72615,1049],{"class":625},[533,72617,72618],{"class":543},")                     ",[533,72620,72621],{"class":593},"# shape (N_w, N_f)\n",[533,72623,72624,72627,72629,72631,72634,72637,72640,72642,72645],{"class":535,"line":12067},[533,72625,72626],{"class":543},"    f_fft_hz ",[533,72628,554],{"class":553},[533,72630,72596],{"class":543},[533,72632,72633],{"class":560},"rfftfreq",[533,72635,72636],{"class":543},"(nfft, ",[533,72638,72639],{"class":567},"d",[533,72641,554],{"class":553},[533,72643,72644],{"class":543},"dt)                  ",[533,72646,72647],{"class":593},"# [Hz]\n",[533,72649,72650],{"class":535,"line":12075},[533,72651,891],{"emptyLinePlaceholder":790},[533,72653,72654],{"class":535,"line":12088},[533,72655,72656],{"class":593},"    # Amplitude selection\n",[533,72658,72659,72661,72664,72666,72668,72670,72673],{"class":535,"line":12101},[533,72660,1814],{"class":539},[533,72662,72663],{"class":543}," amp_mode.",[533,72665,39880],{"class":560},[533,72667,16535],{"class":543},[533,72669,2768],{"class":553},[533,72671,72672],{"class":621}," \"power\"",[533,72674,544],{"class":543},[533,72676,72677,72680,72682,72684,72686,72689,72691],{"class":535,"line":12108},[533,72678,72679],{"class":543},"        S ",[533,72681,554],{"class":553},[533,72683,2911],{"class":543},[533,72685,12852],{"class":560},[533,72687,72688],{"class":543},"(Xf) ",[533,72690,11935],{"class":553},[533,72692,65163],{"class":625},[533,72694,72695,72697],{"class":535,"line":12119},[533,72696,67616],{"class":539},[533,72698,544],{"class":543},[533,72700,72701,72703,72705,72707,72709],{"class":535,"line":12130},[533,72702,72679],{"class":543},[533,72704,554],{"class":553},[533,72706,2911],{"class":543},[533,72708,12852],{"class":560},[533,72710,72711],{"class":543},"(Xf)\n",[533,72713,72714],{"class":535,"line":12135},[533,72715,891],{"emptyLinePlaceholder":790},[533,72717,72718],{"class":535,"line":12140},[533,72719,72720],{"class":593},"    # Normalization\n",[533,72722,72723,72725,72728,72730,72732,72734,72737],{"class":535,"line":12146},[533,72724,1814],{"class":539},[533,72726,72727],{"class":543}," norm_mode.",[533,72729,39880],{"class":560},[533,72731,16535],{"class":543},[533,72733,2768],{"class":553},[533,72735,72736],{"class":621}," \"per_f\"",[533,72738,544],{"class":543},[533,72740,72741,72744,72746,72748,72751,72754,72756,72758,72760,72762,72764,72766,72768,72770,72772,72774,72777],{"class":535,"line":12151},[533,72742,72743],{"class":543},"        col_max ",[533,72745,554],{"class":553},[533,72747,2911],{"class":543},[533,72749,72750],{"class":560},"maximum",[533,72752,72753],{"class":543},"(S.",[533,72755,13480],{"class":560},[533,72757,615],{"class":543},[533,72759,39969],{"class":567},[533,72761,554],{"class":553},[533,72763,1049],{"class":625},[533,72765,1133],{"class":543},[533,72767,72558],{"class":567},[533,72769,554],{"class":553},[533,72771,1958],{"class":625},[533,72773,3945],{"class":543},[533,72775,72776],{"class":625},"1e-15",[533,72778,637],{"class":543},[533,72780,72781,72783,72785,72788,72790],{"class":535,"line":12201},[533,72782,72679],{"class":543},[533,72784,554],{"class":553},[533,72786,72787],{"class":543}," S ",[533,72789,2941],{"class":553},[533,72791,72792],{"class":543}," col_max\n",[533,72794,72795,72797],{"class":535,"line":12210},[533,72796,67616],{"class":539},[533,72798,544],{"class":543},[533,72800,72801,72803,72805,72807,72809,72811,72813,72815,72817,72819],{"class":535,"line":12256},[533,72802,72679],{"class":543},[533,72804,554],{"class":553},[533,72806,72787],{"class":543},[533,72808,2941],{"class":553},[533,72810,2224],{"class":553},[533,72812,72753],{"class":543},[533,72814,13480],{"class":560},[533,72816,13473],{"class":543},[533,72818,72776],{"class":625},[533,72820,637],{"class":543},[533,72822,72823],{"class":535,"line":12285},[533,72824,891],{"emptyLinePlaceholder":790},[533,72826,72827,72829,72831,72833,72835,72837,72840],{"class":535,"line":12337},[533,72828,1814],{"class":539},[533,72830,72663],{"class":543},[533,72832,39880],{"class":560},[533,72834,16535],{"class":543},[533,72836,2768],{"class":553},[533,72838,72839],{"class":621}," \"db\"",[533,72841,544],{"class":543},[533,72843,72844,72846,72848,72850,72852,72854,72857,72859,72861,72864,72866,72868],{"class":535,"line":12343},[533,72845,72679],{"class":543},[533,72847,554],{"class":553},[533,72849,15270],{"class":625},[533,72851,2254],{"class":553},[533,72853,2911],{"class":543},[533,72855,72856],{"class":560},"log10",[533,72858,5967],{"class":543},[533,72860,72750],{"class":560},[533,72862,72863],{"class":543},"(S, ",[533,72865,14808],{"class":625},[533,72867,45657],{"class":543},[533,72869,72870],{"class":593},"# dB, clipped floor\n",[533,72872,72873],{"class":535,"line":12360},[533,72874,891],{"emptyLinePlaceholder":790},[533,72876,72877],{"class":535,"line":12365},[533,72878,72879],{"class":593},"    # Units\n",[533,72881,72882,72884,72887,72889,72891,72893,72896],{"class":535,"line":12412},[533,72883,1814],{"class":539},[533,72885,72886],{"class":543}," freq_units.",[533,72888,41834],{"class":560},[533,72890,16535],{"class":543},[533,72892,2768],{"class":553},[533,72894,72895],{"class":621}," \"GHz\"",[533,72897,544],{"class":543},[533,72899,72900,72903,72905,72908,72910],{"class":535,"line":12420},[533,72901,72902],{"class":543},"        f_fft ",[533,72904,554],{"class":553},[533,72906,72907],{"class":543}," f_fft_hz ",[533,72909,2469],{"class":553},[533,72911,15488],{"class":625},[533,72913,72914,72916],{"class":535,"line":12468},[533,72915,67616],{"class":539},[533,72917,544],{"class":543},[533,72919,72920,72922,72924,72926,72928],{"class":535,"line":12491},[533,72921,72902],{"class":543},[533,72923,554],{"class":553},[533,72925,72907],{"class":543},[533,72927,2469],{"class":553},[533,72929,72930],{"class":625}," 1e-6\n",[533,72932,72933],{"class":535,"line":12531},[533,72934,891],{"emptyLinePlaceholder":790},[533,72936,72937,72939],{"class":535,"line":12569},[533,72938,1880],{"class":539},[533,72940,72941],{"class":543}," f_fft, S\n",[533,72943,72944],{"class":535,"line":12574},[533,72945,891],{"emptyLinePlaceholder":790},[533,72947,72948],{"class":535,"line":12589},[533,72949,72950],{"class":593},"# Compute spectrogram with current grid\n",[533,72952,72953,72956,72958,72960],{"class":535,"line":12594},[533,72954,72955],{"class":543},"f_fft_axis, S_fft ",[533,72957,554],{"class":553},[533,72959,72145],{"class":560},[533,72961,1503],{"class":543},[533,72963,72964],{"class":535,"line":12600},[533,72965,72966],{"class":543},"    Pe, dur_ns,\n",[533,72968,72969,72971,72973,72975],{"class":535,"line":12641},[533,72970,72166],{"class":567},[533,72972,554],{"class":553},[533,72974,64390],{"class":625},[533,72976,1549],{"class":543},[533,72978,72979,72981,72983,72985],{"class":535,"line":12656},[533,72980,72181],{"class":567},[533,72982,554],{"class":553},[533,72984,64404],{"class":625},[533,72986,1549],{"class":543},[533,72988,72989,72991,72993,72995],{"class":535,"line":12672},[533,72990,72196],{"class":567},[533,72992,554],{"class":553},[533,72994,64419],{"class":625},[533,72996,1549],{"class":543},[533,72998,72999,73001,73003,73005],{"class":535,"line":12703},[533,73000,72211],{"class":567},[533,73002,554],{"class":553},[533,73004,64433],{"class":625},[533,73006,1549],{"class":543},[533,73008,73009,73011,73013,73015],{"class":535,"line":12708},[533,73010,72226],{"class":567},[533,73012,554],{"class":553},[533,73014,64448],{"class":625},[533,73016,1549],{"class":543},[533,73018,73019,73021,73023,73025],{"class":535,"line":12713},[533,73020,72241],{"class":567},[533,73022,554],{"class":553},[533,73024,64463],{"class":625},[533,73026,1549],{"class":543},[533,73028,73029],{"class":535,"line":12719},[533,73030,637],{"class":543},[533,73032,73033,73035,73037,73040,73043,73046,73049,73051,73053,73056,73058,73060,73062,73064,73066],{"class":535,"line":12724},[533,73034,917],{"class":553},[533,73036,615],{"class":543},[533,73038,73039],{"class":621},"\"FFT grid:\"",[533,73041,73042],{"class":543},", S_fft.shape, ",[533,73044,73045],{"class":621},"\"| Fourier freq range:\"",[533,73047,73048],{"class":543},", f_fft_axis[",[533,73050,1049],{"class":625},[533,73052,16316],{"class":543},[533,73054,73055],{"class":621},"\"→\"",[533,73057,73048],{"class":543},[533,73059,2514],{"class":553},[533,73061,1052],{"class":625},[533,73063,16316],{"class":543},[533,73065,64463],{"class":625},[533,73067,637],{"class":543},[524,73069,73072],{"className":73070,"code":73071,"language":31773,"meta":529},[38897],"FFT grid: (2049, 401) | Fourier freq range: 0.0 → 999.9999999999999 MHz\n",[57,73073,73071],{"__ignoreMap":529},[524,73075,73077],{"className":526,"code":73076,"language":528,"meta":529,"style":529},"# @title Theoretical Rabi ridge\nimport math\ntwo_pi = 2.0 * math.pi\nf0 = F0_GHZ * 1e9\ndelta_hz = two_pi * (freq_ghz*1e9 - f0)   # rad\u002Fs detuning\nomega_onres = two_pi * OMEGA_ONRESONANCE_MHZ * 1e6  # rad\u002Fs\nOmega_R = np.sqrt(omega_onres**2 + delta_hz**2)     # rad\u002Fs\nridge_hz = Omega_R \u002F (2.0 * math.pi)                # Hz\nif FREQ_UNITS.upper() == \"GHz\":\n    ridge_axis = ridge_hz * 1e-9\nelse:\n    ridge_axis = ridge_hz * 1e-6  # MHz\n",[57,73078,73079,73084,73090,73103,73117,73144,73164,73196,73219,73238,73252,73258],{"__ignoreMap":529},[533,73080,73081],{"class":535,"line":536},[533,73082,73083],{"class":593},"# @title Theoretical Rabi ridge\n",[533,73085,73086,73088],{"class":535,"line":547},[533,73087,883],{"class":539},[533,73089,11121],{"class":543},[533,73091,73092,73095,73097,73099,73101],{"class":535,"line":575},[533,73093,73094],{"class":543},"two_pi ",[533,73096,554],{"class":553},[533,73098,2251],{"class":625},[533,73100,2254],{"class":553},[533,73102,64962],{"class":543},[533,73104,73105,73108,73110,73113,73115],{"class":535,"line":590},[533,73106,73107],{"class":543},"f0 ",[533,73109,554],{"class":553},[533,73111,73112],{"class":625}," F0_GHZ",[533,73114,2254],{"class":553},[533,73116,64977],{"class":625},[533,73118,73119,73122,73124,73126,73128,73131,73133,73136,73138,73141],{"class":535,"line":597},[533,73120,73121],{"class":543},"delta_hz ",[533,73123,554],{"class":553},[533,73125,65015],{"class":543},[533,73127,2469],{"class":553},[533,73129,73130],{"class":543}," (freq_ghz",[533,73132,2469],{"class":553},[533,73134,73135],{"class":625},"1e9",[533,73137,11221],{"class":553},[533,73139,73140],{"class":543}," f0)   ",[533,73142,73143],{"class":593},"# rad\u002Fs detuning\n",[533,73145,73146,73149,73151,73153,73155,73158,73160,73162],{"class":535,"line":603},[533,73147,73148],{"class":543},"omega_onres ",[533,73150,554],{"class":553},[533,73152,65015],{"class":543},[533,73154,2469],{"class":553},[533,73156,73157],{"class":625}," OMEGA_ONRESONANCE_MHZ",[533,73159,2254],{"class":553},[533,73161,15528],{"class":625},[533,73163,65027],{"class":593},[533,73165,73166,73169,73171,73173,73175,73178,73180,73182,73184,73187,73189,73191,73194],{"class":535,"line":609},[533,73167,73168],{"class":543},"Omega_R ",[533,73170,554],{"class":553},[533,73172,2911],{"class":543},[533,73174,2262],{"class":560},[533,73176,73177],{"class":543},"(omega_onres",[533,73179,11935],{"class":553},[533,73181,1140],{"class":625},[533,73183,14257],{"class":553},[533,73185,73186],{"class":543}," delta_hz",[533,73188,11935],{"class":553},[533,73190,1140],{"class":625},[533,73192,73193],{"class":543},")     ",[533,73195,65079],{"class":593},[533,73197,73198,73201,73203,73205,73207,73209,73211,73213,73216],{"class":535,"line":640},[533,73199,73200],{"class":543},"ridge_hz ",[533,73202,554],{"class":553},[533,73204,65177],{"class":543},[533,73206,2941],{"class":553},[533,73208,5037],{"class":543},[533,73210,11726],{"class":625},[533,73212,2254],{"class":553},[533,73214,73215],{"class":543}," math.pi)                ",[533,73217,73218],{"class":593},"# Hz\n",[533,73220,73221,73223,73226,73228,73230,73232,73234,73236],{"class":535,"line":646},[533,73222,5724],{"class":539},[533,73224,73225],{"class":625}," FREQ_UNITS",[533,73227,114],{"class":543},[533,73229,41834],{"class":560},[533,73231,16535],{"class":543},[533,73233,2768],{"class":553},[533,73235,72895],{"class":621},[533,73237,544],{"class":543},[533,73239,73240,73243,73245,73248,73250],{"class":535,"line":658},[533,73241,73242],{"class":543},"    ridge_axis ",[533,73244,554],{"class":553},[533,73246,73247],{"class":543}," ridge_hz ",[533,73249,2469],{"class":553},[533,73251,15488],{"class":625},[533,73253,73254,73256],{"class":535,"line":680},[533,73255,7221],{"class":539},[533,73257,544],{"class":543},[533,73259,73260,73262,73264,73266,73268,73271],{"class":535,"line":1536},[533,73261,73242],{"class":543},[533,73263,554],{"class":553},[533,73265,73247],{"class":543},[533,73267,2469],{"class":553},[533,73269,73270],{"class":625}," 1e-6",[533,73272,73273],{"class":593},"  # MHz\n",[524,73275,73277],{"className":526,"code":73276,"language":528,"meta":529,"style":529},"# @title 2D heatmap\nfig, ax = plt.subplots(figsize=(7.5, 5.5))\nim = ax.pcolormesh(freq_ghz, f_fft_axis, S_fft, shading=\"auto\", cmap=\"inferno\")\ncb = fig.colorbar(im, ax=ax)\ncb.set_label(\"FFT amplitude\" + (\" (dB)\" if AMP_MODE.lower()==\"db\" else \" (arb.)\"))\n\nax.plot(freq_ghz, ridge_axis, \"--\", lw=1.5, label=r\"$\\Omega_R\u002F2\\pi$\")\nax.set_xlabel(\"Drive frequency f (GHz)\")\nax.set_ylabel(f\"Fourier frequency ({FREQ_UNITS})\")\nax.set_title(\"Fourier transform along pulse length: $|\\\\mathcal{F}_\\\\tau\\\\{P_e\\\\}|$\")\nax.legend(loc=\"upper right\")\nfig.tight_layout()\nplt.show()\n",[57,73278,73279,73284,73311,73342,73361,73403,73407,73450,73463,73484,73522,73539,73547],{"__ignoreMap":529},[533,73280,73281],{"class":535,"line":536},[533,73282,73283],{"class":593},"# @title 2D heatmap\n",[533,73285,73286,73288,73290,73292,73294,73296,73298,73300,73302,73304,73306,73309],{"class":535,"line":547},[533,73287,27656],{"class":543},[533,73289,554],{"class":553},[533,73291,19777],{"class":543},[533,73293,19780],{"class":560},[533,73295,615],{"class":543},[533,73297,12901],{"class":567},[533,73299,554],{"class":553},[533,73301,615],{"class":543},[533,73303,14895],{"class":625},[533,73305,1133],{"class":543},[533,73307,73308],{"class":625},"5.5",[533,73310,1937],{"class":543},[533,73312,73313,73316,73318,73320,73322,73325,73327,73329,73331,73333,73335,73337,73340],{"class":535,"line":575},[533,73314,73315],{"class":543},"im ",[533,73317,554],{"class":553},[533,73319,41124],{"class":543},[533,73321,65619],{"class":560},[533,73323,73324],{"class":543},"(freq_ghz, f_fft_axis, S_fft, ",[533,73326,65625],{"class":567},[533,73328,554],{"class":553},[533,73330,13528],{"class":621},[533,73332,1133],{"class":543},[533,73334,13541],{"class":567},[533,73336,554],{"class":553},[533,73338,73339],{"class":621},"\"inferno\"",[533,73341,637],{"class":543},[533,73343,73344,73346,73348,73350,73352,73354,73356,73358],{"class":535,"line":590},[533,73345,65637],{"class":543},[533,73347,554],{"class":553},[533,73349,41736],{"class":543},[533,73351,13556],{"class":560},[533,73353,41741],{"class":543},[533,73355,12651],{"class":567},[533,73357,554],{"class":553},[533,73359,73360],{"class":543},"ax)\n",[533,73362,73363,73365,73367,73369,73372,73374,73376,73379,73382,73385,73387,73389,73391,73393,73396,73398,73401],{"class":535,"line":597},[533,73364,71227],{"class":543},[533,73366,41776],{"class":560},[533,73368,615],{"class":543},[533,73370,73371],{"class":621},"\"FFT amplitude\"",[533,73373,14257],{"class":553},[533,73375,5037],{"class":543},[533,73377,73378],{"class":621},"\" (dB)\"",[533,73380,73381],{"class":539}," if",[533,73383,73384],{"class":625}," AMP_MODE",[533,73386,114],{"class":543},[533,73388,39880],{"class":560},[533,73390,41837],{"class":543},[533,73392,2768],{"class":553},[533,73394,73395],{"class":621},"\"db\"",[533,73397,13803],{"class":539},[533,73399,73400],{"class":621}," \" (arb.)\"",[533,73402,1937],{"class":543},[533,73404,73405],{"class":535,"line":603},[533,73406,891],{"emptyLinePlaceholder":790},[533,73408,73409,73411,73413,73416,73418,73420,73423,73425,73427,73429,73431,73433,73435,73437,73439,73442,73445,73448],{"class":535,"line":609},[533,73410,27691],{"class":543},[533,73412,12932],{"class":560},[533,73414,73415],{"class":543},"(freq_ghz, ridge_axis, ",[533,73417,12689],{"class":621},[533,73419,1133],{"class":543},[533,73421,73422],{"class":567},"lw",[533,73424,554],{"class":553},[533,73426,12633],{"class":625},[533,73428,1133],{"class":543},[533,73430,12942],{"class":567},[533,73432,554],{"class":553},[533,73434,13035],{"class":539},[533,73436,68945],{"class":2387},[533,73438,13596],{"class":553},[533,73440,73441],{"class":2387},"mega_R\u002F2",[533,73443,73444],{"class":553},"\\p",[533,73446,73447],{"class":2387},"i$\"",[533,73449,637],{"class":543},[533,73451,73452,73454,73456,73458,73461],{"class":535,"line":640},[533,73453,27691],{"class":543},[533,73455,19871],{"class":560},[533,73457,615],{"class":543},[533,73459,73460],{"class":621},"\"Drive frequency f (GHz)\"",[533,73462,637],{"class":543},[533,73464,73465,73467,73469,73471,73473,73476,73479,73482],{"class":535,"line":646},[533,73466,27691],{"class":543},[533,73468,19885],{"class":560},[533,73470,615],{"class":543},[533,73472,618],{"class":539},[533,73474,73475],{"class":621},"\"Fourier frequency (",[533,73477,73478],{"class":625},"{FREQ_UNITS}",[533,73480,73481],{"class":621},")\"",[533,73483,637],{"class":543},[533,73485,73486,73488,73490,73492,73495,73497,73499,73502,73505,73507,73510,73512,73515,73517,73520],{"class":535,"line":658},[533,73487,27691],{"class":543},[533,73489,19861],{"class":560},[533,73491,615],{"class":543},[533,73493,73494],{"class":621},"\"Fourier transform along pulse length: $|",[533,73496,65703],{"class":553},[533,73498,60304],{"class":621},[533,73500,73501],{"class":625},"{F}",[533,73503,73504],{"class":621},"_",[533,73506,65703],{"class":553},[533,73508,73509],{"class":621},"tau",[533,73511,65703],{"class":553},[533,73513,73514],{"class":621},"{P_e",[533,73516,65703],{"class":553},[533,73518,73519],{"class":621},"}|$\"",[533,73521,637],{"class":543},[533,73523,73524,73526,73528,73530,73532,73534,73537],{"class":535,"line":680},[533,73525,27691],{"class":543},[533,73527,13110],{"class":560},[533,73529,615],{"class":543},[533,73531,40759],{"class":567},[533,73533,554],{"class":553},[533,73535,73536],{"class":621},"\"upper right\"",[533,73538,637],{"class":543},[533,73540,73541,73543,73545],{"class":535,"line":1536},[533,73542,65717],{"class":543},[533,73544,19953],{"class":560},[533,73546,1217],{"class":543},[533,73548,73549,73551,73553],{"class":535,"line":1552},[533,73550,12893],{"class":543},[533,73552,13120],{"class":560},[533,73554,1217],{"class":543},[2175,73556],{"alt":73557,"src":73558},"Output 6 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-06.webp",[524,73560,73562],{"className":526,"code":73561,"language":528,"meta":529,"style":529},"# --- Adaptive high-res 3D surface ---\nfrom mpl_toolkits.mplot3d import Axes3D\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# ------ Control knobs ------\nUPSAMPLE_F_FREQ: int = 3       # try 2–3; upsample the drive-frequency axis only\nMAX_FACES: int = 300_000       # cap on triangles to avoid OOM \u002F crashes (≈300k–500k is OK)\nMIN_ROWS: int = 128            # keep at least this many Fourier-frequency rows\nMAX_ROWS: int = 1024           # hard cap for rows to keep plotting fast\n\n# Preserve global color limits so the legend stays consistent\nvmin = float(np.nanmin(S_fft))\nvmax = float(np.nanmax(S_fft))\n\n# Shapes\nn_rows, n_cols = S_fft.shape        # rows=Fourier freq (ν), cols=drive freq (f)\n\n# 1) Upsample along the typically smaller axis (drive frequency) only\nn_cols_up = min(UPSAMPLE_F_FREQ * (n_cols - 1) + 1, 1200)  # sensible upper bound\nfreq_hi = np.linspace(freq_ghz.min(), freq_ghz.max(), n_cols_up)\n\nS_up_f = np.empty((n_rows, n_cols_up), dtype=float)\nfor i in range(n_rows):\n    S_up_f[i, :] = np.interp(freq_hi, freq_ghz, S_fft[i, :])\n\n# 2) Determine how many Fourier rows we can afford for MAX_FACES\n# faces ≈ (n_rows_plot-1) * (n_cols_up-1)\nn_rows_cap = int(MAX_FACES \u002F max(n_cols_up - 1, 1)) + 1\nn_rows_plot = int(np.clip(n_rows_cap, MIN_ROWS, min(MAX_ROWS, n_rows)))\n\n# Down-sample ν-axis evenly to n_rows_plot\nrow_idx = np.linspace(0, n_rows - 1, n_rows_plot).astype(int)\nf_fft_plot = f_fft_axis[row_idx]\nS_final = S_up_f[row_idx, :]\n\n# Mesh for plotting\nF2_hi, FFOUR_hi = np.meshgrid(freq_hi, f_fft_plot, indexing=\"xy\")\n\n# 3) Plot (keeps 'inferno')\nfig = plt.figure(figsize=(8, 6), dpi=200)\nax = fig.add_subplot(111, projection=\"3d\")\nsurf = ax.plot_surface(\n    F2_hi, FFOUR_hi, S_final,\n    rstride=1, cstride=1,\n    linewidth=0, antialiased=True,\n    cmap=\"inferno\",\n    vmin=vmin, vmax=vmax\n)\n\nax.set_xlabel(\"f (GHz)\")\nax.set_ylabel(f\"Fourier freq ({FREQ_UNITS})\")\nax.set_zlabel(\"FFT amplitude\" + (\" (dB)\" if AMP_MODE.lower() == \"db\" else \" (arb.)\"))\nax.set_title(\"Rabi FFT surface (adaptive resolution)\")\nfig.colorbar(surf, ax=ax, shrink=0.7, pad=0.08, label=\"Amplitude\")\n\n# A clearer default view\nax.view_init(elev=25, azim=-60)\n\nfig.tight_layout()\nplt.show()\n",[57,73563,73564,73569,73579,73589,73599,73603,73608,73625,73642,73659,73676,73680,73685,73702,73718,73722,73727,73740,73744,73749,73787,73808,73812,73832,73845,73859,73863,73868,73873,73907,73936,73940,73945,73979,73989,73999,74003,74007,74033,74037,74042,74076,74100,74112,74122,74140,74158,74168,74184,74188,74192,74205,74224,74260,74273,74311,74315,74320,74344,74348,74356],{"__ignoreMap":529},[533,73565,73566],{"class":535,"line":536},[533,73567,73568],{"class":593},"# --- Adaptive high-res 3D surface ---\n",[533,73570,73571,73573,73575,73577],{"class":535,"line":547},[533,73572,877],{"class":539},[533,73574,70573],{"class":543},[533,73576,883],{"class":539},[533,73578,70578],{"class":543},[533,73580,73581,73583,73585,73587],{"class":535,"line":575},[533,73582,883],{"class":539},[533,73584,11128],{"class":543},[533,73586,584],{"class":539},[533,73588,11133],{"class":543},[533,73590,73591,73593,73595,73597],{"class":535,"line":590},[533,73592,883],{"class":539},[533,73594,11140],{"class":543},[533,73596,584],{"class":539},[533,73598,11145],{"class":543},[533,73600,73601],{"class":535,"line":597},[533,73602,891],{"emptyLinePlaceholder":790},[533,73604,73605],{"class":535,"line":603},[533,73606,73607],{"class":593},"# ------ Control knobs ------\n",[533,73609,73610,73613,73615,73617,73619,73622],{"class":535,"line":609},[533,73611,73612],{"class":625},"UPSAMPLE_F_FREQ",[533,73614,1389],{"class":543},[533,73616,4175],{"class":553},[533,73618,4899],{"class":553},[533,73620,73621],{"class":625}," 3",[533,73623,73624],{"class":593},"       # try 2–3; upsample the drive-frequency axis only\n",[533,73626,73627,73630,73632,73634,73636,73639],{"class":535,"line":640},[533,73628,73629],{"class":625},"MAX_FACES",[533,73631,1389],{"class":543},[533,73633,4175],{"class":553},[533,73635,4899],{"class":553},[533,73637,73638],{"class":625}," 300_000",[533,73640,73641],{"class":593},"       # cap on triangles to avoid OOM \u002F crashes (≈300k–500k is OK)\n",[533,73643,73644,73647,73649,73651,73653,73656],{"class":535,"line":646},[533,73645,73646],{"class":625},"MIN_ROWS",[533,73648,1389],{"class":543},[533,73650,4175],{"class":553},[533,73652,4899],{"class":553},[533,73654,73655],{"class":625}," 128",[533,73657,73658],{"class":593},"            # keep at least this many Fourier-frequency rows\n",[533,73660,73661,73664,73666,73668,73670,73673],{"class":535,"line":658},[533,73662,73663],{"class":625},"MAX_ROWS",[533,73665,1389],{"class":543},[533,73667,4175],{"class":553},[533,73669,4899],{"class":553},[533,73671,73672],{"class":625}," 1024",[533,73674,73675],{"class":593},"           # hard cap for rows to keep plotting fast\n",[533,73677,73678],{"class":535,"line":680},[533,73679,891],{"emptyLinePlaceholder":790},[533,73681,73682],{"class":535,"line":1536},[533,73683,73684],{"class":593},"# Preserve global color limits so the legend stays consistent\n",[533,73686,73687,73690,73692,73694,73696,73699],{"class":535,"line":1552},[533,73688,73689],{"class":543},"vmin ",[533,73691,554],{"class":553},[533,73693,66932],{"class":553},[533,73695,5967],{"class":543},[533,73697,73698],{"class":560},"nanmin",[533,73700,73701],{"class":543},"(S_fft))\n",[533,73703,73704,73707,73709,73711,73713,73716],{"class":535,"line":1911},[533,73705,73706],{"class":543},"vmax ",[533,73708,554],{"class":553},[533,73710,66932],{"class":553},[533,73712,5967],{"class":543},[533,73714,73715],{"class":560},"nanmax",[533,73717,73701],{"class":543},[533,73719,73720],{"class":535,"line":1940},[533,73721,891],{"emptyLinePlaceholder":790},[533,73723,73724],{"class":535,"line":1968},[533,73725,73726],{"class":593},"# Shapes\n",[533,73728,73729,73732,73734,73737],{"class":535,"line":1995},[533,73730,73731],{"class":543},"n_rows, n_cols ",[533,73733,554],{"class":553},[533,73735,73736],{"class":543}," S_fft.shape        ",[533,73738,73739],{"class":593},"# rows=Fourier freq (ν), cols=drive freq (f)\n",[533,73741,73742],{"class":535,"line":4164},[533,73743,891],{"emptyLinePlaceholder":790},[533,73745,73746],{"class":535,"line":4199},[533,73747,73748],{"class":593},"# 1) Upsample along the typically smaller axis (drive frequency) only\n",[533,73750,73751,73754,73756,73758,73760,73762,73764,73767,73769,73771,73773,73775,73777,73779,73782,73784],{"class":535,"line":4206},[533,73752,73753],{"class":543},"n_cols_up ",[533,73755,554],{"class":553},[533,73757,11811],{"class":553},[533,73759,615],{"class":543},[533,73761,73612],{"class":625},[533,73763,2254],{"class":553},[533,73765,73766],{"class":543}," (n_cols ",[533,73768,2514],{"class":553},[533,73770,6353],{"class":625},[533,73772,7047],{"class":543},[533,73774,6350],{"class":553},[533,73776,6353],{"class":625},[533,73778,1133],{"class":543},[533,73780,73781],{"class":625},"1200",[533,73783,16970],{"class":543},[533,73785,73786],{"class":593},"# sensible upper bound\n",[533,73788,73789,73791,73793,73795,73797,73799,73801,73803,73805],{"class":535,"line":4214},[533,73790,70680],{"class":543},[533,73792,554],{"class":553},[533,73794,2911],{"class":543},[533,73796,12734],{"class":560},[533,73798,70689],{"class":543},[533,73800,2234],{"class":560},[533,73802,70694],{"class":543},[533,73804,13480],{"class":560},[533,73806,73807],{"class":543},"(), n_cols_up)\n",[533,73809,73810],{"class":535,"line":11296},[533,73811,891],{"emptyLinePlaceholder":790},[533,73813,73814,73817,73819,73821,73823,73826,73828,73830],{"class":535,"line":11302},[533,73815,73816],{"class":543},"S_up_f ",[533,73818,554],{"class":553},[533,73820,2911],{"class":543},[533,73822,13355],{"class":560},[533,73824,73825],{"class":543},"((n_rows, n_cols_up), ",[533,73827,16210],{"class":567},[533,73829,70753],{"class":553},[533,73831,637],{"class":543},[533,73833,73834,73836,73838,73840,73842],{"class":535,"line":11332},[533,73835,3180],{"class":539},[533,73837,2971],{"class":543},[533,73839,2786],{"class":539},[533,73841,2976],{"class":553},[533,73843,73844],{"class":543},"(n_rows):\n",[533,73846,73847,73850,73852,73854,73856],{"class":535,"line":11345},[533,73848,73849],{"class":543},"    S_up_f[i, :] ",[533,73851,554],{"class":553},[533,73853,2911],{"class":543},[533,73855,70784],{"class":560},[533,73857,73858],{"class":543},"(freq_hi, freq_ghz, S_fft[i, :])\n",[533,73860,73861],{"class":535,"line":11372},[533,73862,891],{"emptyLinePlaceholder":790},[533,73864,73865],{"class":535,"line":11385},[533,73866,73867],{"class":593},"# 2) Determine how many Fourier rows we can afford for MAX_FACES\n",[533,73869,73870],{"class":535,"line":11390},[533,73871,73872],{"class":593},"# faces ≈ (n_rows_plot-1) * (n_cols_up-1)\n",[533,73874,73875,73878,73880,73882,73884,73886,73888,73890,73893,73895,73897,73899,73901,73903,73905],{"class":535,"line":11402},[533,73876,73877],{"class":543},"n_rows_cap ",[533,73879,554],{"class":553},[533,73881,26885],{"class":553},[533,73883,615],{"class":543},[533,73885,73629],{"class":625},[533,73887,11903],{"class":553},[533,73889,2224],{"class":553},[533,73891,73892],{"class":543},"(n_cols_up ",[533,73894,2514],{"class":553},[533,73896,6353],{"class":625},[533,73898,1133],{"class":543},[533,73900,1052],{"class":625},[533,73902,11986],{"class":543},[533,73904,6350],{"class":553},[533,73906,16942],{"class":625},[533,73908,73909,73912,73914,73916,73918,73920,73923,73925,73927,73929,73931,73933],{"class":535,"line":11407},[533,73910,73911],{"class":543},"n_rows_plot ",[533,73913,554],{"class":553},[533,73915,26885],{"class":553},[533,73917,5967],{"class":543},[533,73919,13850],{"class":560},[533,73921,73922],{"class":543},"(n_rows_cap, ",[533,73924,73646],{"class":625},[533,73926,1133],{"class":543},[533,73928,2234],{"class":553},[533,73930,615],{"class":543},[533,73932,73663],{"class":625},[533,73934,73935],{"class":543},", n_rows)))\n",[533,73937,73938],{"class":535,"line":11412},[533,73939,891],{"emptyLinePlaceholder":790},[533,73941,73942],{"class":535,"line":11418},[533,73943,73944],{"class":593},"# Down-sample ν-axis evenly to n_rows_plot\n",[533,73946,73947,73950,73952,73954,73956,73958,73960,73963,73965,73967,73970,73973,73975,73977],{"class":535,"line":11423},[533,73948,73949],{"class":543},"row_idx ",[533,73951,554],{"class":553},[533,73953,2911],{"class":543},[533,73955,12734],{"class":560},[533,73957,615],{"class":543},[533,73959,1049],{"class":625},[533,73961,73962],{"class":543},", n_rows ",[533,73964,2514],{"class":553},[533,73966,6353],{"class":625},[533,73968,73969],{"class":543},", n_rows_plot).",[533,73971,73972],{"class":560},"astype",[533,73974,615],{"class":543},[533,73976,4175],{"class":553},[533,73978,637],{"class":543},[533,73980,73981,73984,73986],{"class":535,"line":11467},[533,73982,73983],{"class":543},"f_fft_plot ",[533,73985,554],{"class":553},[533,73987,73988],{"class":543}," f_fft_axis[row_idx]\n",[533,73990,73991,73994,73996],{"class":535,"line":11473},[533,73992,73993],{"class":543},"S_final ",[533,73995,554],{"class":553},[533,73997,73998],{"class":543}," S_up_f[row_idx, :]\n",[533,74000,74001],{"class":535,"line":11488},[533,74002,891],{"emptyLinePlaceholder":790},[533,74004,74005],{"class":535,"line":11505},[533,74006,70913],{"class":593},[533,74008,74009,74012,74015,74017,74019,74021,74024,74026,74028,74031],{"class":535,"line":11518},[533,74010,74011],{"class":543},"F2_hi, ",[533,74013,74014],{"class":625},"FFOUR_hi",[533,74016,4899],{"class":553},[533,74018,2911],{"class":543},[533,74020,40547],{"class":560},[533,74022,74023],{"class":543},"(freq_hi, f_fft_plot, ",[533,74025,40553],{"class":567},[533,74027,554],{"class":553},[533,74029,74030],{"class":621},"\"xy\"",[533,74032,637],{"class":543},[533,74034,74035],{"class":535,"line":11523},[533,74036,891],{"emptyLinePlaceholder":790},[533,74038,74039],{"class":535,"line":11555},[533,74040,74041],{"class":593},"# 3) Plot (keeps 'inferno')\n",[533,74043,74044,74046,74048,74050,74052,74054,74056,74058,74060,74062,74064,74066,74068,74070,74072,74074],{"class":535,"line":11561},[533,74045,70949],{"class":543},[533,74047,554],{"class":553},[533,74049,19777],{"class":543},[533,74051,12896],{"class":560},[533,74053,615],{"class":543},[533,74055,12901],{"class":567},[533,74057,554],{"class":553},[533,74059,615],{"class":543},[533,74061,12908],{"class":625},[533,74063,1133],{"class":543},[533,74065,1967],{"class":625},[533,74067,3945],{"class":543},[533,74069,12917],{"class":567},[533,74071,554],{"class":553},[533,74073,39215],{"class":625},[533,74075,637],{"class":543},[533,74077,74078,74080,74082,74084,74086,74088,74090,74092,74094,74096,74098],{"class":535,"line":11577},[533,74079,70984],{"class":543},[533,74081,554],{"class":553},[533,74083,41736],{"class":543},[533,74085,44934],{"class":560},[533,74087,615],{"class":543},[533,74089,3543],{"class":625},[533,74091,1133],{"class":543},[533,74093,44943],{"class":567},[533,74095,554],{"class":553},[533,74097,44948],{"class":621},[533,74099,637],{"class":543},[533,74101,74102,74104,74106,74108,74110],{"class":535,"line":11600},[533,74103,71014],{"class":543},[533,74105,554],{"class":553},[533,74107,41124],{"class":543},[533,74109,45095],{"class":560},[533,74111,1503],{"class":543},[533,74113,74114,74117,74119],{"class":535,"line":11621},[533,74115,74116],{"class":543},"    F2_hi, ",[533,74118,74014],{"class":625},[533,74120,74121],{"class":543},", S_final,\n",[533,74123,74124,74126,74128,74130,74132,74134,74136,74138],{"class":535,"line":11637},[533,74125,71032],{"class":567},[533,74127,554],{"class":553},[533,74129,1052],{"class":625},[533,74131,1133],{"class":543},[533,74133,45128],{"class":567},[533,74135,554],{"class":553},[533,74137,1052],{"class":625},[533,74139,1549],{"class":543},[533,74141,74142,74144,74146,74148,74150,74152,74154,74156],{"class":535,"line":11672},[533,74143,71055],{"class":567},[533,74145,554],{"class":553},[533,74147,1049],{"class":625},[533,74149,1133],{"class":543},[533,74151,71064],{"class":567},[533,74153,554],{"class":553},[533,74155,1958],{"class":625},[533,74157,1549],{"class":543},[533,74159,74160,74162,74164,74166],{"class":535,"line":11689},[533,74161,71075],{"class":567},[533,74163,554],{"class":553},[533,74165,73339],{"class":621},[533,74167,1549],{"class":543},[533,74169,74170,74172,74174,74177,74179,74181],{"class":535,"line":11697},[533,74171,71086],{"class":567},[533,74173,554],{"class":553},[533,74175,74176],{"class":543},"vmin, ",[533,74178,41713],{"class":567},[533,74180,554],{"class":553},[533,74182,74183],{"class":543},"vmax\n",[533,74185,74186],{"class":535,"line":11734},[533,74187,637],{"class":543},[533,74189,74190],{"class":535,"line":11766},[533,74191,891],{"emptyLinePlaceholder":790},[533,74193,74194,74196,74198,74200,74203],{"class":535,"line":11806},[533,74195,27691],{"class":543},[533,74197,19871],{"class":560},[533,74199,615],{"class":543},[533,74201,74202],{"class":621},"\"f (GHz)\"",[533,74204,637],{"class":543},[533,74206,74207,74209,74211,74213,74215,74218,74220,74222],{"class":535,"line":11826},[533,74208,27691],{"class":543},[533,74210,19885],{"class":560},[533,74212,615],{"class":543},[533,74214,618],{"class":539},[533,74216,74217],{"class":621},"\"Fourier freq (",[533,74219,73478],{"class":625},[533,74221,73481],{"class":621},[533,74223,637],{"class":543},[533,74225,74226,74228,74230,74232,74234,74236,74238,74240,74242,74244,74246,74248,74250,74252,74254,74256,74258],{"class":535,"line":11831},[533,74227,27691],{"class":543},[533,74229,45268],{"class":560},[533,74231,615],{"class":543},[533,74233,73371],{"class":621},[533,74235,14257],{"class":553},[533,74237,5037],{"class":543},[533,74239,73378],{"class":621},[533,74241,73381],{"class":539},[533,74243,73384],{"class":625},[533,74245,114],{"class":543},[533,74247,39880],{"class":560},[533,74249,16535],{"class":543},[533,74251,2768],{"class":553},[533,74253,72839],{"class":621},[533,74255,13803],{"class":539},[533,74257,73400],{"class":621},[533,74259,1937],{"class":543},[533,74261,74262,74264,74266,74268,74271],{"class":535,"line":11867},[533,74263,27691],{"class":543},[533,74265,19861],{"class":560},[533,74267,615],{"class":543},[533,74269,74270],{"class":621},"\"Rabi FFT surface (adaptive resolution)\"",[533,74272,637],{"class":543},[533,74274,74275,74277,74279,74281,74283,74285,74287,74289,74291,74293,74295,74297,74299,74301,74303,74305,74307,74309],{"class":535,"line":11873},[533,74276,65717],{"class":543},[533,74278,13556],{"class":560},[533,74280,71198],{"class":543},[533,74282,12651],{"class":567},[533,74284,554],{"class":553},[533,74286,41748],{"class":543},[533,74288,71207],{"class":567},[533,74290,554],{"class":553},[533,74292,27708],{"class":625},[533,74294,1133],{"class":543},[533,74296,41761],{"class":567},[533,74298,554],{"class":553},[533,74300,71220],{"class":625},[533,74302,1133],{"class":543},[533,74304,12942],{"class":567},[533,74306,554],{"class":553},[533,74308,19890],{"class":621},[533,74310,637],{"class":543},[533,74312,74313],{"class":535,"line":11886},[533,74314,891],{"emptyLinePlaceholder":790},[533,74316,74317],{"class":535,"line":11943},[533,74318,74319],{"class":593},"# A clearer default view\n",[533,74321,74322,74324,74326,74328,74330,74332,74334,74336,74338,74340,74342],{"class":535,"line":12001},[533,74323,27691],{"class":543},[533,74325,44957],{"class":560},[533,74327,615],{"class":543},[533,74329,44962],{"class":567},[533,74331,554],{"class":553},[533,74333,7565],{"class":625},[533,74335,1133],{"class":543},[533,74337,44970],{"class":567},[533,74339,46102],{"class":553},[533,74341,42072],{"class":625},[533,74343,637],{"class":543},[533,74345,74346],{"class":535,"line":12009},[533,74347,891],{"emptyLinePlaceholder":790},[533,74349,74350,74352,74354],{"class":535,"line":12014},[533,74351,65717],{"class":543},[533,74353,19953],{"class":560},[533,74355,1217],{"class":543},[533,74357,74358,74360,74362],{"class":535,"line":12033},[533,74359,12893],{"class":543},[533,74361,13120],{"class":560},[533,74363,1217],{"class":543},[2175,74365],{"alt":74366,"src":74367},"Output 7 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-07.webp",[524,74369,74371],{"className":526,"code":74370,"language":528,"meta":529,"style":529},"# @title Slices: amplitude vs Fourier freq (at f*) and vs f (at ν*)\nF_STAR_GHZ: float = float(F0_GHZ)   # slice near resonance\nNU_STAR = float(ridge_axis[np.argmin(np.abs(freq_ghz - F_STAR_GHZ))])  # near Ω_R\u002F2π\n\n# Slice at f = F_STAR_GHZ\nj = int(np.argmin(np.abs(freq_ghz - F_STAR_GHZ)))\nfig, ax = plt.subplots(figsize=(6.0, 3.8))\nax.plot(f_fft_axis, S_fft[:, j], color='blue')\nax.axvline(ridge_axis[j], ls=\"--\", lw=1.0, label=r\"$\\Omega_R\u002F2\\pi$\")\nax.set_xlabel(f\"Fourier frequency ({FREQ_UNITS})\")\nax.set_ylabel(\"FFT amplitude\" + (\" (dB)\" if AMP_MODE.lower()==\"db\" else \" (arb.)\"))\nax.set_title(fr\"Slice at $f={freq_ghz[j]:.6f}$ GHz\")\nax.legend()\nfig.tight_layout(); plt.show()\n\n# Slice at ν = NU_STAR\ni = int(np.argmin(np.abs(f_fft_axis - NU_STAR)))\nfig, ax = plt.subplots(figsize=(6.0, 3.8))\nax.plot(freq_ghz, S_fft[i, :], color='blue')\nax.set_xlabel(\"Drive frequency f (GHz)\")\nax.set_ylabel(\"FFT amplitude\" + (\" (dB)\" if AMP_MODE.lower()==\"db\" else \" (arb.)\"))\nax.set_title(fr\"Slice at Fourier freq ≈ {f_fft_axis[i]:.3f} {FREQ_UNITS}\")\nfig.tight_layout(); plt.show()\n",[57,74372,74373,74378,74401,74433,74437,74442,74466,74494,74511,74555,74573,74609,74636,74644,74657,74661,74666,74692,74718,74735,74747,74783,74812],{"__ignoreMap":529},[533,74374,74375],{"class":535,"line":536},[533,74376,74377],{"class":593},"# @title Slices: amplitude vs Fourier freq (at f*) and vs f (at ν*)\n",[533,74379,74380,74383,74385,74387,74389,74391,74393,74395,74398],{"class":535,"line":547},[533,74381,74382],{"class":625},"F_STAR_GHZ",[533,74384,1389],{"class":543},[533,74386,11186],{"class":553},[533,74388,4899],{"class":553},[533,74390,66932],{"class":553},[533,74392,615],{"class":543},[533,74394,63916],{"class":625},[533,74396,74397],{"class":543},")   ",[533,74399,74400],{"class":593},"# slice near resonance\n",[533,74402,74403,74406,74408,74410,74413,74415,74417,74419,74422,74424,74427,74430],{"class":535,"line":575},[533,74404,74405],{"class":625},"NU_STAR",[533,74407,4899],{"class":553},[533,74409,66932],{"class":553},[533,74411,74412],{"class":543},"(ridge_axis[np.",[533,74414,71492],{"class":560},[533,74416,5967],{"class":543},[533,74418,12852],{"class":560},[533,74420,74421],{"class":543},"(freq_ghz ",[533,74423,2514],{"class":553},[533,74425,74426],{"class":625}," F_STAR_GHZ",[533,74428,74429],{"class":543},"))])  ",[533,74431,74432],{"class":593},"# near Ω_R\u002F2π\n",[533,74434,74435],{"class":535,"line":590},[533,74436,891],{"emptyLinePlaceholder":790},[533,74438,74439],{"class":535,"line":597},[533,74440,74441],{"class":593},"# Slice at f = F_STAR_GHZ\n",[533,74443,74444,74446,74448,74450,74452,74454,74456,74458,74460,74462,74464],{"class":535,"line":603},[533,74445,71518],{"class":543},[533,74447,554],{"class":553},[533,74449,26885],{"class":553},[533,74451,5967],{"class":543},[533,74453,71492],{"class":560},[533,74455,5967],{"class":543},[533,74457,12852],{"class":560},[533,74459,74421],{"class":543},[533,74461,2514],{"class":553},[533,74463,74426],{"class":625},[533,74465,46192],{"class":543},[533,74467,74468,74470,74472,74474,74476,74478,74480,74482,74484,74487,74489,74492],{"class":535,"line":609},[533,74469,27656],{"class":543},[533,74471,554],{"class":553},[533,74473,19777],{"class":543},[533,74475,19780],{"class":560},[533,74477,615],{"class":543},[533,74479,12901],{"class":567},[533,74481,554],{"class":553},[533,74483,615],{"class":543},[533,74485,74486],{"class":625},"6.0",[533,74488,1133],{"class":543},[533,74490,74491],{"class":625},"3.8",[533,74493,1937],{"class":543},[533,74495,74496,74498,74500,74503,74505,74507,74509],{"class":535,"line":640},[533,74497,27691],{"class":543},[533,74499,12932],{"class":560},[533,74501,74502],{"class":543},"(f_fft_axis, S_fft[:, j], ",[533,74504,12978],{"class":567},[533,74506,554],{"class":553},[533,74508,12983],{"class":621},[533,74510,637],{"class":543},[533,74512,74513,74515,74517,74520,74523,74525,74527,74529,74531,74533,74535,74537,74539,74541,74543,74545,74547,74549,74551,74553],{"class":535,"line":646},[533,74514,27691],{"class":543},[533,74516,12678],{"class":560},[533,74518,74519],{"class":543},"(ridge_axis[j], ",[533,74521,74522],{"class":567},"ls",[533,74524,554],{"class":553},[533,74526,12689],{"class":621},[533,74528,1133],{"class":543},[533,74530,73422],{"class":567},[533,74532,554],{"class":553},[533,74534,2239],{"class":625},[533,74536,1133],{"class":543},[533,74538,12942],{"class":567},[533,74540,554],{"class":553},[533,74542,13035],{"class":539},[533,74544,68945],{"class":2387},[533,74546,13596],{"class":553},[533,74548,73441],{"class":2387},[533,74550,73444],{"class":553},[533,74552,73447],{"class":2387},[533,74554,637],{"class":543},[533,74556,74557,74559,74561,74563,74565,74567,74569,74571],{"class":535,"line":658},[533,74558,27691],{"class":543},[533,74560,19871],{"class":560},[533,74562,615],{"class":543},[533,74564,618],{"class":539},[533,74566,73475],{"class":621},[533,74568,73478],{"class":625},[533,74570,73481],{"class":621},[533,74572,637],{"class":543},[533,74574,74575,74577,74579,74581,74583,74585,74587,74589,74591,74593,74595,74597,74599,74601,74603,74605,74607],{"class":535,"line":680},[533,74576,27691],{"class":543},[533,74578,19885],{"class":560},[533,74580,615],{"class":543},[533,74582,73371],{"class":621},[533,74584,14257],{"class":553},[533,74586,5037],{"class":543},[533,74588,73378],{"class":621},[533,74590,73381],{"class":539},[533,74592,73384],{"class":625},[533,74594,114],{"class":543},[533,74596,39880],{"class":560},[533,74598,41837],{"class":543},[533,74600,2768],{"class":553},[533,74602,73395],{"class":621},[533,74604,13803],{"class":539},[533,74606,73400],{"class":621},[533,74608,1937],{"class":543},[533,74610,74611,74613,74615,74617,74620,74623,74625,74627,74629,74631,74634],{"class":535,"line":1536},[533,74612,27691],{"class":543},[533,74614,19861],{"class":560},[533,74616,615],{"class":543},[533,74618,74619],{"class":539},"fr",[533,74621,74622],{"class":621},"\"Slice at $f=",[533,74624,626],{"class":625},[533,74626,71673],{"class":543},[533,74628,3739],{"class":539},[533,74630,632],{"class":625},[533,74632,74633],{"class":621},"$ GHz\"",[533,74635,637],{"class":543},[533,74637,74638,74640,74642],{"class":535,"line":1552},[533,74639,27691],{"class":543},[533,74641,13110],{"class":560},[533,74643,1217],{"class":543},[533,74645,74646,74648,74650,74653,74655],{"class":535,"line":1911},[533,74647,65717],{"class":543},[533,74649,19953],{"class":560},[533,74651,74652],{"class":543},"(); plt.",[533,74654,13120],{"class":560},[533,74656,1217],{"class":543},[533,74658,74659],{"class":535,"line":1940},[533,74660,891],{"emptyLinePlaceholder":790},[533,74662,74663],{"class":535,"line":1968},[533,74664,74665],{"class":593},"# Slice at ν = NU_STAR\n",[533,74667,74668,74670,74672,74674,74676,74678,74680,74682,74685,74687,74690],{"class":535,"line":1995},[533,74669,71729],{"class":543},[533,74671,554],{"class":553},[533,74673,26885],{"class":553},[533,74675,5967],{"class":543},[533,74677,71492],{"class":560},[533,74679,5967],{"class":543},[533,74681,12852],{"class":560},[533,74683,74684],{"class":543},"(f_fft_axis ",[533,74686,2514],{"class":553},[533,74688,74689],{"class":625}," NU_STAR",[533,74691,46192],{"class":543},[533,74693,74694,74696,74698,74700,74702,74704,74706,74708,74710,74712,74714,74716],{"class":535,"line":4164},[533,74695,27656],{"class":543},[533,74697,554],{"class":553},[533,74699,19777],{"class":543},[533,74701,19780],{"class":560},[533,74703,615],{"class":543},[533,74705,12901],{"class":567},[533,74707,554],{"class":553},[533,74709,615],{"class":543},[533,74711,74486],{"class":625},[533,74713,1133],{"class":543},[533,74715,74491],{"class":625},[533,74717,1937],{"class":543},[533,74719,74720,74722,74724,74727,74729,74731,74733],{"class":535,"line":4199},[533,74721,27691],{"class":543},[533,74723,12932],{"class":560},[533,74725,74726],{"class":543},"(freq_ghz, S_fft[i, :], ",[533,74728,12978],{"class":567},[533,74730,554],{"class":553},[533,74732,12983],{"class":621},[533,74734,637],{"class":543},[533,74736,74737,74739,74741,74743,74745],{"class":535,"line":4206},[533,74738,27691],{"class":543},[533,74740,19871],{"class":560},[533,74742,615],{"class":543},[533,74744,73460],{"class":621},[533,74746,637],{"class":543},[533,74748,74749,74751,74753,74755,74757,74759,74761,74763,74765,74767,74769,74771,74773,74775,74777,74779,74781],{"class":535,"line":4214},[533,74750,27691],{"class":543},[533,74752,19885],{"class":560},[533,74754,615],{"class":543},[533,74756,73371],{"class":621},[533,74758,14257],{"class":553},[533,74760,5037],{"class":543},[533,74762,73378],{"class":621},[533,74764,73381],{"class":539},[533,74766,73384],{"class":625},[533,74768,114],{"class":543},[533,74770,39880],{"class":560},[533,74772,41837],{"class":543},[533,74774,2768],{"class":553},[533,74776,73395],{"class":621},[533,74778,13803],{"class":539},[533,74780,73400],{"class":621},[533,74782,1937],{"class":543},[533,74784,74785,74787,74789,74791,74793,74796,74798,74801,74803,74805,74808,74810],{"class":535,"line":11296},[533,74786,27691],{"class":543},[533,74788,19861],{"class":560},[533,74790,615],{"class":543},[533,74792,74619],{"class":539},[533,74794,74795],{"class":621},"\"Slice at Fourier freq ≈ ",[533,74797,626],{"class":625},[533,74799,74800],{"class":543},"f_fft_axis[i]",[533,74802,42001],{"class":539},[533,74804,632],{"class":625},[533,74806,74807],{"class":625}," {FREQ_UNITS}",[533,74809,439],{"class":621},[533,74811,637],{"class":543},[533,74813,74814,74816,74818,74820,74822],{"class":535,"line":11302},[533,74815,65717],{"class":543},[533,74817,19953],{"class":560},[533,74819,74652],{"class":543},[533,74821,13120],{"class":560},[533,74823,1217],{"class":543},[2175,74825],{"alt":74826,"src":74827},"Output 8 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-08.webp",[2175,74829],{"alt":74830,"src":74831},"Output 9 of the notebook code above","\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-09.webp",[25,74833,74835],{"id":74834},"run-it-yourself","Run it yourself",[12,74837,74838,74839,354,74841,114],{},"Get ",[19,74840,9410],{"href":49062},[19,74842,74844],{"href":74843},"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FOJB-Quantum\u002FQC-Hardware-How-To\u002Fblob\u002Fmain\u002FJupyter%20Notebook%20Scripts\u002FRabi_Oscillation_Visualization_for_Excited_State_Probability.ipynb","open it in Colab",[773,74846,74847],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}",{"title":529,"searchDepth":547,"depth":547,"links":74849},[74850,74851,74852,74853,74854,74855,74856,74857,74858,74859,74860,74861,74862,74863,74864],{"id":49240,"depth":547,"text":49241},{"id":50712,"depth":547,"text":50713},{"id":51501,"depth":547,"text":51502},{"id":52841,"depth":547,"text":52842},{"id":53970,"depth":547,"text":53971},{"id":56450,"depth":547,"text":56451},{"id":56967,"depth":547,"text":56968},{"id":58066,"depth":547,"text":58067},{"id":59671,"depth":547,"text":59672},{"id":60044,"depth":547,"text":60045},{"id":61038,"depth":547,"text":61039},{"id":62216,"depth":547,"text":62217},{"id":63395,"depth":547,"text":63396},{"id":63889,"depth":547,"text":63890},{"id":74834,"depth":547,"text":74835},[4349,4637,16782,74866],"Rabi oscillations",[74868],{"username":6135,"name":6133,"role":16786,"bio":16787,"links":74869},[74870,74871],{"label":4363,"href":16790},{"label":16792,"href":49062},{"username":6135,"name":6133,"role":16794},"A primer on the quantum dynamics of a driven two-level system, visualizing excited-state probability under the rotating-wave approximation (RWA).",{},"\u002F_content\u002Fimages\u002Frabi-oscillation-visualization\u002Foutput-01.png","\u002Fblog\u002Fexpert-notes\u002Frabi-oscillation-visualization","2026-07-15","6 min read",[],{"title":49052,"description":74873},"blog\u002Fexpert-notes\u002Frabi-oscillation-visualization",[16806,16807],"LjeniaANpMh5PBSqtcLJjo80Ss4wXS8_lEN0xlm8bcY",{"id":74885,"title":74886,"authors":74887,"body":74888,"breadcrumb":79443,"builders":79445,"byline":79450,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":7,"description":79451,"draft":786,"extension":787,"eyebrow":16796,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4370,"lessonCount":7,"meta":79452,"navigation":790,"newsItems":7,"next":7,"ogImage":79453,"order":7,"outcomes":7,"path":79454,"publishDate":74877,"readingTime":5206,"related":79455,"relatedProjects":7,"seo":79456,"stem":79457,"tags":79458,"track":7,"trackName":7,"__hash__":79459},"blog\u002Fblog\u002Fexpert-notes\u002Fsampling-budget-qubit-classifications.md","A Sampling-Budget & Bit-String Analogy for Qubit Classifications",[6135],{"type":9,"value":74889,"toc":79439},[74890,74897,79281,79287,79290,79293,79299,79305,79307,79309,79427,79429,79436],[12,74891,74892],{},[9404,74893,9406,74894,9411],{},[19,74895,9410],{"href":74896},"https:\u002F\u002Fgithub.com\u002FOJB-Quantum\u002FNotebooks-for-Ideas\u002Fblob\u002Fmain\u002FSampling_Budget_Analogy_for_Qubit_Classifications.ipynb",[524,74898,74900],{"className":526,"code":74899,"language":528,"meta":529,"style":529},"# This script builds a small simulation toolkit, runs it with sensible defaults,\n# generates tables and figures, so you can iterate further.\n#\n# Contents created in the current directory:\n#  - Sampling_Budget_Qubit_Bitstrings.ipynb      (Colab notebook)\n#  - summary.csv                                 (summary table)\n#  - bitstrings_\u003CMODEL>.csv                      (raw bit-strings per model)\n#  - fig_ones_fraction.png                       (bar chart with Wilson CI)\n#  - fig_required_shots.png                      (required shots for ±ε)\n#  - simulation_config.json                      (run parameters)\n\nimport json\nimport math\nfrom dataclasses import dataclass\nfrom typing import List, Dict, Tuple\n\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom IPython.display import display, Markdown\nimport nbformat as nbf\n\nplt.rcParams['figure.dpi'] = 200\n\n# ---------- Helper math ----------\n\ndef wilson_ci(k: int, n: int, z: float = 1.96) -> Tuple[float, float]:\n    \"\"\"\n    Wilson score interval for binomial proportion with confidence ~95% at z=1.96.\n    Returns (low, high). Works for edge cases k=0 or k=n.\n    \"\"\"\n    if n == 0:\n        return (0.0, 1.0)\n    p_hat = k \u002F n\n    denom = 1.0 + (z ** 2) \u002F n\n    center = (p_hat + (z ** 2) \u002F (2 * n)) \u002F denom\n    span = (z * math.sqrt((p_hat * (1 - p_hat) \u002F n) + (z ** 2) \u002F (4 * n ** 2))) \u002F denom\n    return (max(0.0, center - span), min(1.0, center + span))\n\n\ndef shots_for_epsilon(p: float, epsilon: float = 0.01, z: float = 1.96) -> int:\n    \"\"\"\n    Approximate shots needed to estimate a Bernoulli mean p within ±epsilon (absolute error)\n    at ~95% confidence using normal approximation. Clamps to at least 1 shot.\n    \"\"\"\n    p = min(max(p, 0.0), 1.0)\n    var = p * (1.0 - p)\n    if var == 0.0:\n        return 1\n    n = (z ** 2) * var \u002F (epsilon ** 2)\n    return max(1, int(math.ceil(n)))\n\n\n# ---------- Domain model ----------\n\n@dataclass(frozen=True)\nclass QubitModel:\n    name: str\n    satisfaction_prob: float  # Probability a single shot meets the analytical criterion (bit = 1)\n    description: str\n\n\nDEFAULT_MODELS: List[QubitModel] = [\n    QubitModel(\n        \"Toy working qubit\",\n        0.50,\n        \"Simple demonstrator; about half shots meet the criterion.\"\n    ),\n    QubitModel(\n        \"NISQ qubit\",\n        0.60,\n        \"Noisy Intermediate-Scale Quantum device; modest success rate above chance.\"\n    ),\n    QubitModel(\n        \"Fault-tolerant (logical)\",\n        0.90,\n        \"Error-corrected logical qubit; high single-shot success probability.\"\n    ),\n    QubitModel(\n        \"Topologically protected\",\n        0.98,\n        \"Intrinsic protection; very high single-shot success probability.\"\n    ),\n    QubitModel(\n        \"Ideal qubit\",\n        1.00,\n        \"Theoretical perfect qubit; always successful in a single shot.\"\n    ),\n]\n\n# ---------- Simulation configuration ----------\n\nCONFIG: Dict = {\n    \"random_seed\": 123456,\n    \"shots_per_model\": 10000,\n    \"epsilons\": [0.02, 0.01, 0.005],  # ±2%, ±1%, ±0.5% targets\n    \"cost_model\": {\n        \"default_cost_per_shot_usd\": 0.00005,\n        \"fixed_overhead_usd\": 0.10\n    },\n    \"timing\": {\n        \"time_per_shot_seconds\": 2e-6\n    }\n}\n\nrng = np.random.default_rng(CONFIG[\"random_seed\"])\n\n\n# ---------- Core simulation ----------\n\ndef simulate_bitstring(p: float, shots: int, rng_: np.random.Generator) -> np.ndarray:\n    \"\"\"\n    Generate a 0\u002F1 bitstring for given per-shot success probability p and shot count.\n    \"\"\"\n    return rng_.binomial(1, p, size=shots).astype(int)\n\n\ndef summarize_model(model: QubitModel, bits: np.ndarray, epsilons: List[float]) -> Dict:\n    \"\"\"\n    Calculate summary statistics for a given model and its simulated bitstring.\n    \"\"\"\n    n = int(bits.size)\n    ones = int(bits.sum())\n    zeros = int(n - ones)\n    frac = ones \u002F n if n > 0 else float(\"nan\")\n    lo, hi = wilson_ci(ones, n)\n\n    row = {\n        \"Model\": model.name,\n        \"Description\": model.description,\n        \"Configured p (target)\": model.satisfaction_prob,\n        \"Shots\": n,\n        \"Ones (successes)\": ones,\n        \"Zeros (failures)\": zeros,\n        \"Ones fraction (observed)\": frac,\n        \"Wilson CI 95% low\": lo,\n        \"Wilson CI 95% high\": hi,\n        \"CI width (95%)\": hi - lo,\n    }\n    for eps in epsilons:\n        row[f\"Required shots for ±{int(eps*100)}%\"] = shots_for_epsilon(model.satisfaction_prob, eps)\n    return row\n\n\ndef apply_costs(shots: int, cost_per_shot: float, fixed_overhead: float) -> float:\n    \"\"\"\n    Calculate illustrative cost based on shots and cost model.\n    \"\"\"\n    return fixed_overhead + shots * cost_per_shot\n\n\n# ---------- Run the simulation ----------\n\nall_bitstrings: Dict[str, np.ndarray] = {}\nsummary_rows: List[Dict] = []\n\nprint(\"Running simulation...\")\nfor m in DEFAULT_MODELS:\n    bits = simulate_bitstring(m.satisfaction_prob, CONFIG[\"shots_per_model\"], rng)\n    all_bitstrings[m.name] = bits\n    summary_rows.append(summarize_model(m, bits, CONFIG[\"epsilons\"]))\n\nsummary_df = pd.DataFrame(summary_rows)\n\n# Add cost estimates\ncps = CONFIG[\"cost_model\"][\"default_cost_per_shot_usd\"]\nover = CONFIG[\"cost_model\"][\"fixed_overhead_usd\"]\nif cps > 0 or over > 0:\n    summary_df[\"Illustrative cost (USD)\"] = [\n        apply_costs(int(row[\"Shots\"]), cps, over)\n        for _, row in summary_df.iterrows()\n    ]\n\n# ---------- Save artifacts ----------\n\n# Save raw bitstrings and summary CSV\nfor name, arr in all_bitstrings.items():\n    out_path = f\"bitstrings_{name.replace(' ', '_')}.csv\"\n    pd.DataFrame({\"bit\": arr}).to_csv(out_path, index=False)\n\nsummary_csv_path = \"summary.csv\"\nsummary_df.to_csv(summary_csv_path, index=False)\n\n# Save config JSON\nwith open(\"simulation_config.json\", \"w\") as f:\n    json.dump(CONFIG, f, indent=2)\n\nprint(\"Saved data to CSV and JSON files.\")\n\n# ---------- Visualizations ----------\n\n# Figure 1: Observed ones fraction with Wilson CI\nplt.style.use('seaborn-v0_8-whitegrid')\nplt.figure(figsize=(10, 6))\nx = np.arange(len(summary_df))\ny = summary_df[\"Ones fraction (observed)\"].to_numpy()\n\n# --- FIX APPLIED HERE ---\n# Take the absolute value to prevent tiny negative numbers from floating-point\n# inaccuracies from causing a ValueError in the errorbar plot.\nlower_error = y - summary_df[\"Wilson CI 95% low\"].to_numpy()\nupper_error = summary_df[\"Wilson CI 95% high\"].to_numpy() - y\nyerr = np.vstack([np.abs(lower_error), np.abs(upper_error)])\n# --- END OF FIX ---\n\nplt.bar(x, y, color='skyblue', edgecolor='black')\nplt.errorbar(x, y, yerr=yerr, fmt=\"none\", capsize=5, color=\"black\", elinewidth=1.5)\nplt.xticks(x, summary_df[\"Model\"].tolist(), rotation=25, ha=\"right\")\nplt.ylabel(\"Observed Ones Fraction\")\nplt.title(\"Observed Single-Shot Success Rates with 95% Wilson CI\", fontsize=14)\nplt.tight_layout()\nfig1_path = \"fig_ones_fraction.png\"\nplt.savefig(fig1_path, dpi=200, bbox_inches='tight')\nplt.show()\n\n# Figure 2: Required shots at several ±epsilon targets\nplt.figure(figsize=(10, 6))\nwidth = 0.2\nx = np.arange(len(DEFAULT_MODELS))\ncolors = ['#ff9999','#66b3ff','#99ff99']\n\nfor i, eps in enumerate(CONFIG[\"epsilons\"]):\n    req = [shots_for_epsilon(m.satisfaction_prob, eps) for m in DEFAULT_MODELS]\n    plt.bar(x + i * width, req, width, label=f\"±{eps:.1%}\", color=colors[i], edgecolor='black')\n\nplt.xticks(x + width, [m.name for m in DEFAULT_MODELS], rotation=25, ha=\"right\")\nplt.ylabel(\"Required Shots (Log Scale)\")\nplt.title(\"Approximate Shots to Estimate Success Rate within ±ε\", fontsize=14)\nplt.yscale('log')\nplt.legend(title=\"Error Tolerance\")\nplt.tight_layout()\nfig2_path = \"fig_required_shots.png\"\nplt.savefig(fig2_path, dpi=200, bbox_inches='tight')\nplt.show()\n\nprint(\"Generated and saved plots.\")\n\n# ---------- Display interactive table ----------\n\ndisplay(Markdown(\"##  Qubit Sampling Budget - Summary\"))\ndisplay(summary_df.style.format({\n    \"Configured p (target)\": \"{:.2f}\",\n    \"Ones fraction (observed)\": \"{:.4f}\",\n    \"Wilson CI 95% low\": \"{:.4f}\",\n    \"Wilson CI 95% high\": \"{:.4f}\",\n    \"CI width (95%)\": \"{:.4f}\",\n    \"Illustrative cost (USD)\": \"${:.2f}\"\n}))\n\n\n# ---------- Build a ready-to-run Colab notebook ----------\n\nmd_intro = r\"\"\"\n# Sampling Budget & Bit-String Analogy for Qubit Classes\n\n**High school level (concise):** We treat each measurement (“single shot”) as a bit: `1` if the outcome matches the analytical prediction, `0` if it does not. Different qubit types have different chances of landing a `1`. We simulate many shots, show how often we get `1`s, and estimate how many shots we need for a target accuracy.\n\n**Graduate level (concise):** We model single-shot “threshold of satisfaction” as a Bernoulli process with success probability $p$ per qubit class: toy, NISQ (noisy intermediate-scale quantum), fault-tolerant (logical), topologically protected, and ideal. We report Wilson score intervals (95%) for observed proportions and estimate the required shot budget $n \\approx z^2\\,p(1-p)\u002F\\epsilon^2$ to bound absolute error by ±$\\epsilon$ at ~95% confidence.\n\"\"\"\n\ncode_config = r\"\"\"\n# @title Configuration\nfrom dataclasses import dataclass\nfrom typing import List, Dict\nimport numpy as np\n\nRANDOM_SEED = 579345  # @param {type:\"number\"}\nSHOTS_PER_MODEL = 10000  # @param {type:\"number\"}\nEPSILONS = [0.02, 0.01, 0.005]  # @param\nCOST_PER_SHOT_USD = 0.00005  # @param {type:\"number\"}\nFIXED_OVERHEAD_USD = 0.10    # @param {type:\"number\"}\n\n@dataclass(frozen=True)\nclass QubitModel:\n    name: str\n    satisfaction_prob: float\n    description: str\n\nMODELS: List[QubitModel] = [\n    QubitModel(\"Toy working qubit\", 0.50, \"Simple demonstrator\"),\n    QubitModel(\"NISQ qubit\", 0.60, \"Noisy Intermediate-Scale Quantum device\"),\n    QubitModel(\"Fault-tolerant (logical)\", 0.90, \"Error-corrected logical qubit\"),\n    QubitModel(\"Topologically protected\", 0.98, \"Intrinsic protection\"),\n    QubitModel(\"Ideal qubit\", 1.00, \"Theoretical perfect qubit\"),\n]\n\nrng = np.random.default_rng(RANDOM_SEED)\n\"\"\"\n\ncode_lib_and_run = r\"\"\"\n# @title Run Simulation & Display Results\nimport math\nfrom typing import Tuple, Dict\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom IPython.display import display, Markdown\n\ndef wilson_ci(k: int, n: int, z: float = 1.96) -> Tuple[float, float]:\n    if n == 0: return (0.0, 1.0)\n    p_hat, z2_n = k \u002F n, z**2 \u002F n\n    denom = 1.0 + z2_n\n    center = (p_hat + z2_n \u002F 2) \u002F denom\n    span = (z * math.sqrt(p_hat * (1 - p_hat) \u002F n + z**2 \u002F (4 * n**2))) \u002F denom\n    return (max(0.0, center - span), min(1.0, center + span))\n\ndef shots_for_epsilon(p: float, epsilon: float = 0.01, z: float = 1.96) -> int:\n    if p * (1-p) == 0: return 1\n    return max(1, int(math.ceil((z**2 * p * (1-p)) \u002F (epsilon**2))))\n\ndef summarize_model(model, bits: np.ndarray, epsilons) -> Dict:\n    n = len(bits)\n    ones = sum(bits)\n    lo, hi = wilson_ci(ones, n)\n    row = {\n        \"Model\": model.name, \"p (target)\": model.satisfaction_prob, \"Shots\": n,\n        \"Ones\": ones, \"p (observed)\": ones \u002F n if n > 0 else 0,\n        \"CI 95% low\": lo, \"CI 95% high\": hi, \"CI width\": hi - lo,\n    }\n    for eps in epsilons:\n        row[f\"Shots for ±{eps:.1%}\"] = shots_for_epsilon(model.satisfaction_prob, eps)\n    return row\n\n# --- Run Simulation ---\nsummary_rows = [summarize_model(m, rng.binomial(1, m.satisfaction_prob, SHOTS_PER_MODEL), EPSILONS) for m in MODELS]\nsummary_df = pd.DataFrame(summary_rows)\nif COST_PER_SHOT_USD > 0 or FIXED_OVERHEAD_USD > 0:\n    summary_df[\"Cost (USD)\"] = FIXED_OVERHEAD_USD + summary_df[\"Shots\"] * COST_PER_SHOT_USD\n\ndisplay(Markdown(\"### Simulation Summary\"))\ndisplay(summary_df.style.format(precision=4).background_gradient(cmap='viridis', subset=['p (observed)', 'CI width']))\n\n# --- Plotting ---\nplt.style.use('seaborn-v0_8-whitegrid')\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 6))\n\n# Plot 1\ny = summary_df[\"p (observed)\"].to_numpy()\nlower_error = y - summary_df[\"CI 95% low\"]\nupper_error = summary_df[\"CI 95% high\"] - y\nyerr = np.vstack([np.abs(lower_error), np.abs(upper_error)])\n\nax1.bar(summary_df[\"Model\"], y, yerr=yerr, capsize=5, color='skyblue', edgecolor='black', ecolor='black')\nax1.set_title(\"Observed Success Rate (95% Wilson CI)\", fontsize=14)\nax1.tick_params(axis='x', rotation=30, labelsize=10)\n\n# Plot 2\nwidth = 0.2\nx = np.arange(len(MODELS))\ncolors = ['#ff9999','#66b3ff','#99ff99']\nfor i, eps in enumerate(EPSILONS):\n    req = summary_df[f\"Shots for ±{eps:.1%}\"]\n    ax2.bar(x + i * width, req, width, label=f\"±{eps:.1%}\", color=colors[i], edgecolor='black')\n\nax2.set_xticks(x + width, summary_df[\"Model\"])\nax2.set_ylabel(\"Required Shots (Log Scale)\")\nax2.set_yscale('log')\nax2.set_title(\"Shots Needed for ±ε Tolerance\", fontsize=14)\nax2.tick_params(axis='x', rotation=30, labelsize=10)\nax2.legend(title=\"Tolerance\")\n\nplt.tight_layout()\nplt.show()\n\"\"\"\n\nnb = nbf.v4.new_notebook()\nnb[\"cells\"] = [\n    nbf.v4.new_markdown_cell(md_intro),\n    nbf.v4.new_code_cell(code_config),\n    nbf.v4.new_code_cell(code_lib_and_run),\n]\n\nnb_path = \"Sampling_Budget_Qubit_Bitstrings.ipynb\"\nwith open(nb_path, \"w\", encoding=\"utf-8\") as f:\n    nbf.write(nb, f)\n\n# ---------- Final confirmation ----------\nprint(\"\\n\" + \"=\"*50)\nprint(\"SCRIPT COMPLETE\")\nprint(\"=\"*50)\nprint(f\"Google Colab notebook saved to: {nb_path}\")\nprint(f\"Summary data saved to: {summary_csv_path}\")\nprint(f\"Plots saved to: {fig1_path}, {fig2_path}\")\n",[57,74901,74902,74907,74912,74917,74922,74927,74932,74937,74942,74947,74952,74956,74963,74969,74979,74990,74994,75004,75014,75024,75035,75047,75051,75063,75067,75072,75076,75122,75126,75131,75136,75140,75153,75167,75182,75205,75241,75306,75339,75343,75347,75393,75397,75402,75407,75411,75434,75454,75467,75473,75502,75524,75528,75532,75537,75541,75557,75566,75574,75584,75591,75595,75599,75611,75618,75625,75632,75637,75642,75648,75655,75662,75667,75671,75677,75684,75691,75696,75700,75706,75713,75720,75725,75729,75735,75742,75749,75754,75758,75762,75766,75771,75775,75787,75799,75811,75838,75846,75858,75868,75873,75880,75890,75894,75898,75902,75925,75929,75933,75938,75942,75973,75977,75982,75986,76018,76022,76026,76057,76061,76066,76070,76081,76097,76113,76146,76158,76162,76171,76179,76187,76195,76203,76211,76219,76227,76241,76254,76267,76271,76282,76318,76325,76329,76333,76372,76376,76381,76385,76401,76405,76409,76414,76418,76433,76442,76446,76457,76471,76493,76503,76528,76532,76546,76550,76555,76577,76597,76620,76634,76652,76669,76673,76677,76682,76686,76691,76707,76744,76775,76779,76789,76807,76811,76816,76841,76865,76869,76880,76884,76889,76893,76898,76913,76935,76952,76973,76977,76982,76987,76992,77019,77045,77068,77073,77077,77105,77158,77194,77207,77229,77237,77247,77275,77283,77287,77292,77314,77323,77343,77367,77371,77393,77418,77473,77477,77516,77529,77550,77564,77581,77589,77599,77624,77632,77636,77647,77651,77656,77660,77675,77687,77706,77726,77749,77771,77790,77807,77812,77816,77820,77825,77829,77841,77846,77850,77881,77885,77966,77970,77974,77985,77990,77995,78000,78005,78009,78017,78024,78035,78042,78049,78053,78064,78069,78074,78079,78084,78088,78102,78107,78112,78117,78122,78127,78131,78135,78147,78151,78155,78166,78171,78176,78181,78186,78190,78195,78200,78204,78224,78236,78246,78256,78276,78336,78367,78371,78386,78402,78452,78456,78471,78482,78493,78505,78510,78525,78540,78545,78549,78554,78572,78577,78581,78586,78594,78606,78611,78635,78639,78654,78681,78685,78690,78701,78728,78732,78737,78750,78758,78769,78777,78781,78799,78821,78833,78837,78842,78847,78863,78871,78885,78893,78919,78923,78940,78961,78972,78984,78995,79007,79011,79018,79025,79029,79033,79048,79062,79073,79083,79092,79096,79100,79110,79137,79148,79152,79157,79180,79191,79206,79228,79250],{"__ignoreMap":529},[533,74903,74904],{"class":535,"line":536},[533,74905,74906],{"class":593},"# This script builds a small simulation toolkit, runs it with sensible defaults,\n",[533,74908,74909],{"class":535,"line":547},[533,74910,74911],{"class":593},"# generates tables and figures, so you can iterate further.\n",[533,74913,74914],{"class":535,"line":575},[533,74915,74916],{"class":593},"#\n",[533,74918,74919],{"class":535,"line":590},[533,74920,74921],{"class":593},"# Contents created in the current directory:\n",[533,74923,74924],{"class":535,"line":597},[533,74925,74926],{"class":593},"#  - Sampling_Budget_Qubit_Bitstrings.ipynb      (Colab notebook)\n",[533,74928,74929],{"class":535,"line":603},[533,74930,74931],{"class":593},"#  - summary.csv                                 (summary table)\n",[533,74933,74934],{"class":535,"line":609},[533,74935,74936],{"class":593},"#  - bitstrings_\u003CMODEL>.csv                      (raw bit-strings per model)\n",[533,74938,74939],{"class":535,"line":640},[533,74940,74941],{"class":593},"#  - fig_ones_fraction.png                       (bar chart with Wilson CI)\n",[533,74943,74944],{"class":535,"line":646},[533,74945,74946],{"class":593},"#  - fig_required_shots.png                      (required shots for ±ε)\n",[533,74948,74949],{"class":535,"line":658},[533,74950,74951],{"class":593},"#  - simulation_config.json                      (run parameters)\n",[533,74953,74954],{"class":535,"line":680},[533,74955,891],{"emptyLinePlaceholder":790},[533,74957,74958,74960],{"class":535,"line":1536},[533,74959,883],{"class":539},[533,74961,74962],{"class":543}," json\n",[533,74964,74965,74967],{"class":535,"line":1552},[533,74966,883],{"class":539},[533,74968,11121],{"class":543},[533,74970,74971,74973,74975,74977],{"class":535,"line":1911},[533,74972,877],{"class":539},[533,74974,11097],{"class":543},[533,74976,883],{"class":539},[533,74978,11102],{"class":543},[533,74980,74981,74983,74985,74987],{"class":535,"line":1940},[533,74982,877],{"class":539},[533,74984,11109],{"class":543},[533,74986,883],{"class":539},[533,74988,74989],{"class":543}," List, Dict, Tuple\n",[533,74991,74992],{"class":535,"line":1968},[533,74993,891],{"emptyLinePlaceholder":790},[533,74995,74996,74998,75000,75002],{"class":535,"line":1995},[533,74997,883],{"class":539},[533,74999,11128],{"class":543},[533,75001,584],{"class":539},[533,75003,11133],{"class":543},[533,75005,75006,75008,75010,75012],{"class":535,"line":4164},[533,75007,883],{"class":539},[533,75009,64558],{"class":543},[533,75011,584],{"class":539},[533,75013,64563],{"class":543},[533,75015,75016,75018,75020,75022],{"class":535,"line":4199},[533,75017,883],{"class":539},[533,75019,11140],{"class":543},[533,75021,584],{"class":539},[533,75023,11145],{"class":543},[533,75025,75026,75028,75030,75032],{"class":535,"line":4206},[533,75027,877],{"class":539},[533,75029,39367],{"class":543},[533,75031,883],{"class":539},[533,75033,75034],{"class":543}," display, Markdown\n",[533,75036,75037,75039,75042,75044],{"class":535,"line":4214},[533,75038,883],{"class":539},[533,75040,75041],{"class":543}," nbformat ",[533,75043,584],{"class":539},[533,75045,75046],{"class":543}," nbf\n",[533,75048,75049],{"class":535,"line":11296},[533,75050,891],{"emptyLinePlaceholder":790},[533,75052,75053,75055,75057,75059,75061],{"class":535,"line":11302},[533,75054,16903],{"class":543},[533,75056,16906],{"class":621},[533,75058,11314],{"class":543},[533,75060,554],{"class":553},[533,75062,16913],{"class":625},[533,75064,75065],{"class":535,"line":11332},[533,75066,891],{"emptyLinePlaceholder":790},[533,75068,75069],{"class":535,"line":11345},[533,75070,75071],{"class":593},"# ---------- Helper math ----------\n",[533,75073,75074],{"class":535,"line":11372},[533,75075,891],{"emptyLinePlaceholder":790},[533,75077,75078,75080,75083,75085,75087,75089,75091,75093,75095,75097,75099,75101,75103,75105,75107,75109,75112,75114,75116,75118,75120],{"class":535,"line":11385},[533,75079,1754],{"class":539},[533,75081,75082],{"class":560}," wilson_ci",[533,75084,615],{"class":543},[533,75086,41905],{"class":1762},[533,75088,1389],{"class":543},[533,75090,4175],{"class":553},[533,75092,1133],{"class":543},[533,75094,30647],{"class":1762},[533,75096,1389],{"class":543},[533,75098,4175],{"class":553},[533,75100,1133],{"class":543},[533,75102,1632],{"class":1762},[533,75104,1389],{"class":543},[533,75106,11186],{"class":553},[533,75108,4899],{"class":553},[533,75110,75111],{"class":625}," 1.96",[533,75113,11855],{"class":543},[533,75115,11186],{"class":553},[533,75117,1133],{"class":543},[533,75119,11186],{"class":553},[533,75121,11864],{"class":543},[533,75123,75124],{"class":535,"line":11390},[533,75125,39472],{"class":621},[533,75127,75128],{"class":535,"line":11402},[533,75129,75130],{"class":621},"    Wilson score interval for binomial proportion with confidence ~95% at z=1.96.\n",[533,75132,75133],{"class":535,"line":11407},[533,75134,75135],{"class":621},"    Returns (low, high). Works for edge cases k=0 or k=n.\n",[533,75137,75138],{"class":535,"line":11412},[533,75139,39472],{"class":621},[533,75141,75142,75144,75147,75149,75151],{"class":535,"line":11418},[533,75143,1814],{"class":539},[533,75145,75146],{"class":543}," n ",[533,75148,2768],{"class":553},[533,75150,26839],{"class":625},[533,75152,544],{"class":543},[533,75154,75155,75157,75159,75161,75163,75165],{"class":535,"line":11423},[533,75156,4169],{"class":539},[533,75158,5037],{"class":543},[533,75160,2229],{"class":625},[533,75162,1133],{"class":543},[533,75164,2239],{"class":625},[533,75166,637],{"class":543},[533,75168,75169,75172,75174,75177,75179],{"class":535,"line":11467},[533,75170,75171],{"class":543},"    p_hat ",[533,75173,554],{"class":553},[533,75175,75176],{"class":543}," k ",[533,75178,2941],{"class":553},[533,75180,75181],{"class":543}," n\n",[533,75183,75184,75186,75188,75190,75192,75195,75197,75199,75201,75203],{"class":535,"line":11473},[533,75185,14392],{"class":543},[533,75187,554],{"class":553},[533,75189,11894],{"class":625},[533,75191,14257],{"class":553},[533,75193,75194],{"class":543}," (z ",[533,75196,11935],{"class":553},[533,75198,11938],{"class":625},[533,75200,7047],{"class":543},[533,75202,2941],{"class":553},[533,75204,75181],{"class":543},[533,75206,75207,75210,75212,75215,75217,75219,75221,75223,75225,75227,75229,75231,75233,75236,75238],{"class":535,"line":11488},[533,75208,75209],{"class":543},"    center ",[533,75211,554],{"class":553},[533,75213,75214],{"class":543}," (p_hat ",[533,75216,6350],{"class":553},[533,75218,75194],{"class":543},[533,75220,11935],{"class":553},[533,75222,11938],{"class":625},[533,75224,7047],{"class":543},[533,75226,2941],{"class":553},[533,75228,5037],{"class":543},[533,75230,1140],{"class":625},[533,75232,2254],{"class":553},[533,75234,75235],{"class":543}," n)) ",[533,75237,2941],{"class":553},[533,75239,75240],{"class":543}," denom\n",[533,75242,75243,75246,75248,75250,75252,75254,75256,75259,75261,75263,75265,75267,75270,75272,75275,75277,75279,75281,75283,75285,75287,75289,75291,75293,75295,75297,75299,75302,75304],{"class":535,"line":11505},[533,75244,75245],{"class":543},"    span ",[533,75247,554],{"class":553},[533,75249,75194],{"class":543},[533,75251,2469],{"class":553},[533,75253,11714],{"class":543},[533,75255,2262],{"class":560},[533,75257,75258],{"class":543},"((p_hat ",[533,75260,2469],{"class":553},[533,75262,5037],{"class":543},[533,75264,1052],{"class":625},[533,75266,11221],{"class":553},[533,75268,75269],{"class":543}," p_hat) ",[533,75271,2941],{"class":553},[533,75273,75274],{"class":543}," n) ",[533,75276,6350],{"class":553},[533,75278,75194],{"class":543},[533,75280,11935],{"class":553},[533,75282,11938],{"class":625},[533,75284,7047],{"class":543},[533,75286,2941],{"class":553},[533,75288,5037],{"class":543},[533,75290,1183],{"class":625},[533,75292,2254],{"class":553},[533,75294,75146],{"class":543},[533,75296,11935],{"class":553},[533,75298,11938],{"class":625},[533,75300,75301],{"class":543},"))) ",[533,75303,2941],{"class":553},[533,75305,75240],{"class":543},[533,75307,75308,75310,75312,75314,75316,75318,75321,75323,75326,75328,75330,75332,75334,75336],{"class":535,"line":11518},[533,75309,1880],{"class":539},[533,75311,5037],{"class":543},[533,75313,13480],{"class":553},[533,75315,615],{"class":543},[533,75317,2229],{"class":625},[533,75319,75320],{"class":543},", center ",[533,75322,2514],{"class":553},[533,75324,75325],{"class":543}," span), ",[533,75327,2234],{"class":553},[533,75329,615],{"class":543},[533,75331,2239],{"class":625},[533,75333,75320],{"class":543},[533,75335,6350],{"class":553},[533,75337,75338],{"class":543}," span))\n",[533,75340,75341],{"class":535,"line":11523},[533,75342,891],{"emptyLinePlaceholder":790},[533,75344,75345],{"class":535,"line":11555},[533,75346,891],{"emptyLinePlaceholder":790},[533,75348,75349,75351,75354,75356,75358,75360,75362,75364,75367,75369,75371,75373,75375,75377,75379,75381,75383,75385,75387,75389,75391],{"class":535,"line":11561},[533,75350,1754],{"class":539},[533,75352,75353],{"class":560}," shots_for_epsilon",[533,75355,615],{"class":543},[533,75357,12],{"class":1762},[533,75359,1389],{"class":543},[533,75361,11186],{"class":553},[533,75363,1133],{"class":543},[533,75365,75366],{"class":1762},"epsilon",[533,75368,1389],{"class":543},[533,75370,11186],{"class":553},[533,75372,4899],{"class":553},[533,75374,2811],{"class":625},[533,75376,1133],{"class":543},[533,75378,1632],{"class":1762},[533,75380,1389],{"class":543},[533,75382,11186],{"class":553},[533,75384,4899],{"class":553},[533,75386,75111],{"class":625},[533,75388,11460],{"class":543},[533,75390,4175],{"class":553},[533,75392,544],{"class":543},[533,75394,75395],{"class":535,"line":11577},[533,75396,39472],{"class":621},[533,75398,75399],{"class":535,"line":11600},[533,75400,75401],{"class":621},"    Approximate shots needed to estimate a Bernoulli mean p within ±epsilon (absolute error)\n",[533,75403,75404],{"class":535,"line":11621},[533,75405,75406],{"class":621},"    at ~95% confidence using normal approximation. Clamps to at least 1 shot.\n",[533,75408,75409],{"class":535,"line":11637},[533,75410,39472],{"class":621},[533,75412,75413,75415,75417,75419,75421,75423,75426,75428,75430,75432],{"class":535,"line":11672},[533,75414,2219],{"class":543},[533,75416,554],{"class":553},[533,75418,11811],{"class":553},[533,75420,615],{"class":543},[533,75422,13480],{"class":553},[533,75424,75425],{"class":543},"(p, ",[533,75427,2229],{"class":625},[533,75429,3945],{"class":543},[533,75431,2239],{"class":625},[533,75433,637],{"class":543},[533,75435,75436,75439,75441,75443,75445,75447,75449,75451],{"class":535,"line":11689},[533,75437,75438],{"class":543},"    var ",[533,75440,554],{"class":553},[533,75442,42483],{"class":543},[533,75444,2469],{"class":553},[533,75446,5037],{"class":543},[533,75448,2239],{"class":625},[533,75450,11221],{"class":553},[533,75452,75453],{"class":543}," p)\n",[533,75455,75456,75458,75461,75463,75465],{"class":535,"line":11697},[533,75457,1814],{"class":539},[533,75459,75460],{"class":543}," var ",[533,75462,2768],{"class":553},[533,75464,11793],{"class":625},[533,75466,544],{"class":543},[533,75468,75469,75471],{"class":535,"line":11734},[533,75470,4169],{"class":539},[533,75472,16942],{"class":625},[533,75474,75475,75477,75479,75481,75483,75485,75487,75489,75491,75493,75496,75498,75500],{"class":535,"line":11766},[533,75476,44512],{"class":543},[533,75478,554],{"class":553},[533,75480,75194],{"class":543},[533,75482,11935],{"class":553},[533,75484,11938],{"class":625},[533,75486,7047],{"class":543},[533,75488,2469],{"class":553},[533,75490,75460],{"class":543},[533,75492,2941],{"class":553},[533,75494,75495],{"class":543}," (epsilon ",[533,75497,11935],{"class":553},[533,75499,11938],{"class":625},[533,75501,637],{"class":543},[533,75503,75504,75506,75508,75510,75512,75514,75516,75519,75521],{"class":535,"line":11806},[533,75505,1880],{"class":539},[533,75507,2224],{"class":553},[533,75509,615],{"class":543},[533,75511,1052],{"class":625},[533,75513,1133],{"class":543},[533,75515,4175],{"class":553},[533,75517,75518],{"class":543},"(math.",[533,75520,72458],{"class":560},[533,75522,75523],{"class":543},"(n)))\n",[533,75525,75526],{"class":535,"line":11826},[533,75527,891],{"emptyLinePlaceholder":790},[533,75529,75530],{"class":535,"line":11831},[533,75531,891],{"emptyLinePlaceholder":790},[533,75533,75534],{"class":535,"line":11867},[533,75535,75536],{"class":593},"# ---------- Domain model ----------\n",[533,75538,75539],{"class":535,"line":11873},[533,75540,891],{"emptyLinePlaceholder":790},[533,75542,75543,75546,75548,75551,75553,75555],{"class":535,"line":11886},[533,75544,75545],{"class":560},"@dataclass",[533,75547,615],{"class":543},[533,75549,75550],{"class":567},"frozen",[533,75552,554],{"class":553},[533,75554,1958],{"class":625},[533,75556,637],{"class":543},[533,75558,75559,75561,75564],{"class":535,"line":11943},[533,75560,11173],{"class":539},[533,75562,75563],{"class":2393}," QubitModel",[533,75565,544],{"class":543},[533,75567,75568,75571],{"class":535,"line":12001},[533,75569,75570],{"class":543},"    name: ",[533,75572,75573],{"class":553},"str\n",[533,75575,75576,75579,75581],{"class":535,"line":12009},[533,75577,75578],{"class":543},"    satisfaction_prob: ",[533,75580,11186],{"class":553},[533,75582,75583],{"class":593},"  # Probability a single shot meets the analytical criterion (bit = 1)\n",[533,75585,75586,75589],{"class":535,"line":12014},[533,75587,75588],{"class":543},"    description: ",[533,75590,75573],{"class":553},[533,75592,75593],{"class":535,"line":12033},[533,75594,891],{"emptyLinePlaceholder":790},[533,75596,75597],{"class":535,"line":12039},[533,75598,891],{"emptyLinePlaceholder":790},[533,75600,75601,75604,75607,75609],{"class":535,"line":12062},[533,75602,75603],{"class":625},"DEFAULT_MODELS",[533,75605,75606],{"class":543},": List[QubitModel] ",[533,75608,554],{"class":553},[533,75610,26997],{"class":543},[533,75612,75613,75616],{"class":535,"line":12067},[533,75614,75615],{"class":560},"    QubitModel",[533,75617,1503],{"class":543},[533,75619,75620,75623],{"class":535,"line":12075},[533,75621,75622],{"class":621},"        \"Toy working qubit\"",[533,75624,1549],{"class":543},[533,75626,75627,75630],{"class":535,"line":12088},[533,75628,75629],{"class":625},"        0.50",[533,75631,1549],{"class":543},[533,75633,75634],{"class":535,"line":12101},[533,75635,75636],{"class":621},"        \"Simple demonstrator; about half shots meet the criterion.\"\n",[533,75638,75639],{"class":535,"line":12108},[533,75640,75641],{"class":543},"    ),\n",[533,75643,75644,75646],{"class":535,"line":12119},[533,75645,75615],{"class":560},[533,75647,1503],{"class":543},[533,75649,75650,75653],{"class":535,"line":12130},[533,75651,75652],{"class":621},"        \"NISQ qubit\"",[533,75654,1549],{"class":543},[533,75656,75657,75660],{"class":535,"line":12135},[533,75658,75659],{"class":625},"        0.60",[533,75661,1549],{"class":543},[533,75663,75664],{"class":535,"line":12140},[533,75665,75666],{"class":621},"        \"Noisy Intermediate-Scale Quantum device; modest success rate above chance.\"\n",[533,75668,75669],{"class":535,"line":12146},[533,75670,75641],{"class":543},[533,75672,75673,75675],{"class":535,"line":12151},[533,75674,75615],{"class":560},[533,75676,1503],{"class":543},[533,75678,75679,75682],{"class":535,"line":12201},[533,75680,75681],{"class":621},"        \"Fault-tolerant (logical)\"",[533,75683,1549],{"class":543},[533,75685,75686,75689],{"class":535,"line":12210},[533,75687,75688],{"class":625},"        0.90",[533,75690,1549],{"class":543},[533,75692,75693],{"class":535,"line":12256},[533,75694,75695],{"class":621},"        \"Error-corrected logical qubit; high single-shot success probability.\"\n",[533,75697,75698],{"class":535,"line":12285},[533,75699,75641],{"class":543},[533,75701,75702,75704],{"class":535,"line":12337},[533,75703,75615],{"class":560},[533,75705,1503],{"class":543},[533,75707,75708,75711],{"class":535,"line":12343},[533,75709,75710],{"class":621},"        \"Topologically protected\"",[533,75712,1549],{"class":543},[533,75714,75715,75718],{"class":535,"line":12360},[533,75716,75717],{"class":625},"        0.98",[533,75719,1549],{"class":543},[533,75721,75722],{"class":535,"line":12365},[533,75723,75724],{"class":621},"        \"Intrinsic protection; very high single-shot success probability.\"\n",[533,75726,75727],{"class":535,"line":12412},[533,75728,75641],{"class":543},[533,75730,75731,75733],{"class":535,"line":12420},[533,75732,75615],{"class":560},[533,75734,1503],{"class":543},[533,75736,75737,75740],{"class":535,"line":12468},[533,75738,75739],{"class":621},"        \"Ideal qubit\"",[533,75741,1549],{"class":543},[533,75743,75744,75747],{"class":535,"line":12491},[533,75745,75746],{"class":625},"        1.00",[533,75748,1549],{"class":543},[533,75750,75751],{"class":535,"line":12531},[533,75752,75753],{"class":621},"        \"Theoretical perfect qubit; always successful in a single shot.\"\n",[533,75755,75756],{"class":535,"line":12569},[533,75757,75641],{"class":543},[533,75759,75760],{"class":535,"line":12574},[533,75761,14965],{"class":543},[533,75763,75764],{"class":535,"line":12589},[533,75765,891],{"emptyLinePlaceholder":790},[533,75767,75768],{"class":535,"line":12594},[533,75769,75770],{"class":593},"# ---------- Simulation configuration ----------\n",[533,75772,75773],{"class":535,"line":12600},[533,75774,891],{"emptyLinePlaceholder":790},[533,75776,75777,75780,75783,75785],{"class":535,"line":12641},[533,75778,75779],{"class":625},"CONFIG",[533,75781,75782],{"class":543},": Dict ",[533,75784,554],{"class":553},[533,75786,39739],{"class":543},[533,75788,75789,75792,75794,75797],{"class":535,"line":12656},[533,75790,75791],{"class":621},"    \"random_seed\"",[533,75793,1389],{"class":543},[533,75795,75796],{"class":625},"123456",[533,75798,1549],{"class":543},[533,75800,75801,75804,75806,75809],{"class":535,"line":12672},[533,75802,75803],{"class":621},"    \"shots_per_model\"",[533,75805,1389],{"class":543},[533,75807,75808],{"class":625},"10000",[533,75810,1549],{"class":543},[533,75812,75813,75816,75819,75822,75824,75827,75829,75832,75835],{"class":535,"line":12703},[533,75814,75815],{"class":621},"    \"epsilons\"",[533,75817,75818],{"class":543},": [",[533,75820,75821],{"class":625},"0.02",[533,75823,1133],{"class":543},[533,75825,75826],{"class":625},"0.01",[533,75828,1133],{"class":543},[533,75830,75831],{"class":625},"0.005",[533,75833,75834],{"class":543},"],  ",[533,75836,75837],{"class":593},"# ±2%, ±1%, ±0.5% targets\n",[533,75839,75840,75843],{"class":535,"line":12708},[533,75841,75842],{"class":621},"    \"cost_model\"",[533,75844,75845],{"class":543},": {\n",[533,75847,75848,75851,75853,75856],{"class":535,"line":12713},[533,75849,75850],{"class":621},"        \"default_cost_per_shot_usd\"",[533,75852,1389],{"class":543},[533,75854,75855],{"class":625},"0.00005",[533,75857,1549],{"class":543},[533,75859,75860,75863,75865],{"class":535,"line":12719},[533,75861,75862],{"class":621},"        \"fixed_overhead_usd\"",[533,75864,1389],{"class":543},[533,75866,75867],{"class":625},"0.10\n",[533,75869,75870],{"class":535,"line":12724},[533,75871,75872],{"class":543},"    },\n",[533,75874,75875,75878],{"class":535,"line":12750},[533,75876,75877],{"class":621},"    \"timing\"",[533,75879,75845],{"class":543},[533,75881,75882,75885,75887],{"class":535,"line":12775},[533,75883,75884],{"class":621},"        \"time_per_shot_seconds\"",[533,75886,1389],{"class":543},[533,75888,75889],{"class":625},"2e-6\n",[533,75891,75892],{"class":535,"line":12780},[533,75893,39858],{"class":543},[533,75895,75896],{"class":535,"line":12812},[533,75897,1405],{"class":543},[533,75899,75900],{"class":535,"line":12842},[533,75901,891],{"emptyLinePlaceholder":790},[533,75903,75904,75907,75909,75911,75914,75916,75918,75920,75923],{"class":535,"line":12879},[533,75905,75906],{"class":543},"rng ",[533,75908,554],{"class":553},[533,75910,2996],{"class":543},[533,75912,75913],{"class":560},"default_rng",[533,75915,615],{"class":543},[533,75917,75779],{"class":625},[533,75919,1522],{"class":543},[533,75921,75922],{"class":621},"\"random_seed\"",[533,75924,3272],{"class":543},[533,75926,75927],{"class":535,"line":12884},[533,75928,891],{"emptyLinePlaceholder":790},[533,75930,75931],{"class":535,"line":12890},[533,75932,891],{"emptyLinePlaceholder":790},[533,75934,75935],{"class":535,"line":12927},[533,75936,75937],{"class":593},"# ---------- Core simulation ----------\n",[533,75939,75940],{"class":535,"line":12988},[533,75941,891],{"emptyLinePlaceholder":790},[533,75943,75944,75946,75949,75951,75953,75955,75957,75959,75961,75963,75965,75967,75970],{"class":535,"line":13011},[533,75945,1754],{"class":539},[533,75947,75948],{"class":560}," simulate_bitstring",[533,75950,615],{"class":543},[533,75952,12],{"class":1762},[533,75954,1389],{"class":543},[533,75956,11186],{"class":553},[533,75958,1133],{"class":543},[533,75960,269],{"class":1762},[533,75962,1389],{"class":543},[533,75964,4175],{"class":553},[533,75966,1133],{"class":543},[533,75968,75969],{"class":1762},"rng_",[533,75971,75972],{"class":543},": np.random.Generator) -> np.ndarray:\n",[533,75974,75975],{"class":535,"line":13025},[533,75976,39472],{"class":621},[533,75978,75979],{"class":535,"line":13053},[533,75980,75981],{"class":621},"    Generate a 0\u002F1 bitstring for given per-shot success probability p and shot count.\n",[533,75983,75984],{"class":535,"line":13084},[533,75985,39472],{"class":621},[533,75987,75988,75990,75993,75996,75998,76000,76003,76006,76008,76010,76012,76014,76016],{"class":535,"line":13105},[533,75989,1880],{"class":539},[533,75991,75992],{"class":543}," rng_.",[533,75994,75995],{"class":560},"binomial",[533,75997,615],{"class":543},[533,75999,1052],{"class":625},[533,76001,76002],{"class":543},", p, ",[533,76004,76005],{"class":567},"size",[533,76007,554],{"class":553},[533,76009,3985],{"class":543},[533,76011,73972],{"class":560},[533,76013,615],{"class":543},[533,76015,4175],{"class":553},[533,76017,637],{"class":543},[533,76019,76020],{"class":535,"line":13115},[533,76021,891],{"emptyLinePlaceholder":790},[533,76023,76024],{"class":535,"line":13125},[533,76025,891],{"emptyLinePlaceholder":790},[533,76027,76028,76030,76033,76035,76038,76041,76044,76046,76049,76052,76054],{"class":535,"line":13130},[533,76029,1754],{"class":539},[533,76031,76032],{"class":560}," summarize_model",[533,76034,615],{"class":543},[533,76036,76037],{"class":1762},"model",[533,76039,76040],{"class":543},": QubitModel, ",[533,76042,76043],{"class":1762},"bits",[533,76045,16135],{"class":543},[533,76047,76048],{"class":1762},"epsilons",[533,76050,76051],{"class":543},": List[",[533,76053,11186],{"class":553},[533,76055,76056],{"class":543},"]) -> Dict:\n",[533,76058,76059],{"class":535,"line":13136},[533,76060,39472],{"class":621},[533,76062,76063],{"class":535,"line":13167},[533,76064,76065],{"class":621},"    Calculate summary statistics for a given model and its simulated bitstring.\n",[533,76067,76068],{"class":535,"line":13213},[533,76069,39472],{"class":621},[533,76071,76072,76074,76076,76078],{"class":535,"line":13234},[533,76073,44512],{"class":543},[533,76075,554],{"class":553},[533,76077,26885],{"class":553},[533,76079,76080],{"class":543},"(bits.size)\n",[533,76082,76083,76086,76088,76090,76093,76095],{"class":535,"line":13245},[533,76084,76085],{"class":543},"    ones ",[533,76087,554],{"class":553},[533,76089,26885],{"class":553},[533,76091,76092],{"class":543},"(bits.",[533,76094,2946],{"class":560},[533,76096,932],{"class":543},[533,76098,76099,76102,76104,76106,76108,76110],{"class":535,"line":13268},[533,76100,76101],{"class":543},"    zeros ",[533,76103,554],{"class":553},[533,76105,26885],{"class":553},[533,76107,6900],{"class":543},[533,76109,2514],{"class":553},[533,76111,76112],{"class":543}," ones)\n",[533,76114,76115,76118,76120,76123,76125,76127,76129,76131,76133,76135,76137,76139,76141,76144],{"class":535,"line":13295},[533,76116,76117],{"class":543},"    frac ",[533,76119,554],{"class":553},[533,76121,76122],{"class":543}," ones ",[533,76124,2941],{"class":553},[533,76126,75146],{"class":543},[533,76128,5724],{"class":539},[533,76130,75146],{"class":543},[533,76132,2808],{"class":553},[533,76134,26839],{"class":625},[533,76136,13803],{"class":539},[533,76138,66932],{"class":553},[533,76140,615],{"class":543},[533,76142,76143],{"class":621},"\"nan\"",[533,76145,637],{"class":543},[533,76147,76148,76151,76153,76155],{"class":535,"line":13316},[533,76149,76150],{"class":543},"    lo, hi ",[533,76152,554],{"class":553},[533,76154,75082],{"class":560},[533,76156,76157],{"class":543},"(ones, n)\n",[533,76159,76160],{"class":535,"line":13325},[533,76161,891],{"emptyLinePlaceholder":790},[533,76163,76164,76167,76169],{"class":535,"line":13334},[533,76165,76166],{"class":543},"    row ",[533,76168,554],{"class":553},[533,76170,39739],{"class":543},[533,76172,76173,76176],{"class":535,"line":13339},[533,76174,76175],{"class":621},"        \"Model\"",[533,76177,76178],{"class":543},": model.name,\n",[533,76180,76181,76184],{"class":535,"line":13345},[533,76182,76183],{"class":621},"        \"Description\"",[533,76185,76186],{"class":543},": model.description,\n",[533,76188,76189,76192],{"class":535,"line":13370},[533,76190,76191],{"class":621},"        \"Configured p (target)\"",[533,76193,76194],{"class":543},": model.satisfaction_prob,\n",[533,76196,76197,76200],{"class":535,"line":13389},[533,76198,76199],{"class":621},"        \"Shots\"",[533,76201,76202],{"class":543},": n,\n",[533,76204,76205,76208],{"class":535,"line":13407},[533,76206,76207],{"class":621},"        \"Ones (successes)\"",[533,76209,76210],{"class":543},": ones,\n",[533,76212,76213,76216],{"class":535,"line":13420},[533,76214,76215],{"class":621},"        \"Zeros (failures)\"",[533,76217,76218],{"class":543},": zeros,\n",[533,76220,76221,76224],{"class":535,"line":13425},[533,76222,76223],{"class":621},"        \"Ones fraction (observed)\"",[533,76225,76226],{"class":543},": frac,\n",[533,76228,76229,76232,76235,76238],{"class":535,"line":13456},[533,76230,76231],{"class":621},"        \"Wilson CI 95",[533,76233,76234],{"class":625},"% lo",[533,76236,76237],{"class":621},"w\"",[533,76239,76240],{"class":543},": lo,\n",[533,76242,76243,76245,76248,76251],{"class":535,"line":13502},[533,76244,76231],{"class":621},[533,76246,76247],{"class":625},"% hi",[533,76249,76250],{"class":621},"gh\"",[533,76252,76253],{"class":543},": hi,\n",[533,76255,76256,76259,76262,76264],{"class":535,"line":13551},[533,76257,76258],{"class":621},"        \"CI width (95%)\"",[533,76260,76261],{"class":543},": hi ",[533,76263,2514],{"class":553},[533,76265,76266],{"class":543}," lo,\n",[533,76268,76269],{"class":535,"line":13583},[533,76270,39858],{"class":543},[533,76272,76273,76275,76277,76279],{"class":535,"line":13612},[533,76274,12659],{"class":539},[533,76276,11913],{"class":543},[533,76278,2786],{"class":539},[533,76280,76281],{"class":543}," epsilons:\n",[533,76283,76284,76287,76289,76292,76294,76296,76299,76301,76303,76305,76307,76309,76311,76313,76315],{"class":535,"line":13635},[533,76285,76286],{"class":543},"        row[",[533,76288,618],{"class":539},[533,76290,76291],{"class":621},"\"Required shots for ±",[533,76293,626],{"class":625},[533,76295,4175],{"class":553},[533,76297,76298],{"class":543},"(eps",[533,76300,2469],{"class":553},[533,76302,4528],{"class":625},[533,76304,2632],{"class":543},[533,76306,632],{"class":625},[533,76308,7140],{"class":621},[533,76310,11314],{"class":543},[533,76312,554],{"class":553},[533,76314,75353],{"class":560},[533,76316,76317],{"class":543},"(model.satisfaction_prob, eps)\n",[533,76319,76320,76322],{"class":535,"line":13679},[533,76321,1880],{"class":539},[533,76323,76324],{"class":543}," row\n",[533,76326,76327],{"class":535,"line":13688},[533,76328,891],{"emptyLinePlaceholder":790},[533,76330,76331],{"class":535,"line":13693},[533,76332,891],{"emptyLinePlaceholder":790},[533,76334,76335,76337,76340,76342,76344,76346,76348,76350,76353,76355,76357,76359,76362,76364,76366,76368,76370],{"class":535,"line":13699},[533,76336,1754],{"class":539},[533,76338,76339],{"class":560}," apply_costs",[533,76341,615],{"class":543},[533,76343,269],{"class":1762},[533,76345,1389],{"class":543},[533,76347,4175],{"class":553},[533,76349,1133],{"class":543},[533,76351,76352],{"class":1762},"cost_per_shot",[533,76354,1389],{"class":543},[533,76356,11186],{"class":553},[533,76358,1133],{"class":543},[533,76360,76361],{"class":1762},"fixed_overhead",[533,76363,1389],{"class":543},[533,76365,11186],{"class":553},[533,76367,11460],{"class":543},[533,76369,11186],{"class":553},[533,76371,544],{"class":543},[533,76373,76374],{"class":535,"line":13715},[533,76375,39472],{"class":621},[533,76377,76378],{"class":535,"line":13732},[533,76379,76380],{"class":621},"    Calculate illustrative cost based on shots and cost model.\n",[533,76382,76383],{"class":535,"line":13745},[533,76384,39472],{"class":621},[533,76386,76387,76389,76392,76394,76396,76398],{"class":535,"line":13762},[533,76388,1880],{"class":539},[533,76390,76391],{"class":543}," fixed_overhead ",[533,76393,6350],{"class":553},[533,76395,7194],{"class":543},[533,76397,2469],{"class":553},[533,76399,76400],{"class":543}," cost_per_shot\n",[533,76402,76403],{"class":535,"line":13774},[533,76404,891],{"emptyLinePlaceholder":790},[533,76406,76407],{"class":535,"line":13809},[533,76408,891],{"emptyLinePlaceholder":790},[533,76410,76411],{"class":535,"line":13814},[533,76412,76413],{"class":593},"# ---------- Run the simulation ----------\n",[533,76415,76416],{"class":535,"line":13840},[533,76417,891],{"emptyLinePlaceholder":790},[533,76419,76420,76423,76425,76428,76430],{"class":535,"line":13861},[533,76421,76422],{"class":543},"all_bitstrings: Dict[",[533,76424,39480],{"class":553},[533,76426,76427],{"class":543},", np.ndarray] ",[533,76429,554],{"class":553},[533,76431,76432],{"class":543}," {}\n",[533,76434,76435,76438,76440],{"class":535,"line":13866},[533,76436,76437],{"class":543},"summary_rows: List[Dict] ",[533,76439,554],{"class":553},[533,76441,42383],{"class":543},[533,76443,76444],{"class":535,"line":13897},[533,76445,891],{"emptyLinePlaceholder":790},[533,76447,76448,76450,76452,76455],{"class":535,"line":13930},[533,76449,917],{"class":553},[533,76451,615],{"class":543},[533,76453,76454],{"class":621},"\"Running simulation...\"",[533,76456,637],{"class":543},[533,76458,76459,76461,76464,76466,76469],{"class":535,"line":13967},[533,76460,3180],{"class":539},[533,76462,76463],{"class":543}," m ",[533,76465,2786],{"class":539},[533,76467,76468],{"class":625}," DEFAULT_MODELS",[533,76470,544],{"class":543},[533,76472,76473,76476,76478,76480,76483,76485,76487,76490],{"class":535,"line":13994},[533,76474,76475],{"class":543},"    bits ",[533,76477,554],{"class":553},[533,76479,75948],{"class":560},[533,76481,76482],{"class":543},"(m.satisfaction_prob, ",[533,76484,75779],{"class":625},[533,76486,1522],{"class":543},[533,76488,76489],{"class":621},"\"shots_per_model\"",[533,76491,76492],{"class":543},"], rng)\n",[533,76494,76495,76498,76500],{"class":535,"line":14017},[533,76496,76497],{"class":543},"    all_bitstrings[m.name] ",[533,76499,554],{"class":553},[533,76501,76502],{"class":543}," bits\n",[533,76504,76505,76508,76510,76512,76515,76518,76520,76522,76525],{"class":535,"line":14057},[533,76506,76507],{"class":543},"    summary_rows.",[533,76509,6216],{"class":560},[533,76511,615],{"class":543},[533,76513,76514],{"class":560},"summarize_model",[533,76516,76517],{"class":543},"(m, bits, ",[533,76519,75779],{"class":625},[533,76521,1522],{"class":543},[533,76523,76524],{"class":621},"\"epsilons\"",[533,76526,76527],{"class":543},"]))\n",[533,76529,76530],{"class":535,"line":45868},[533,76531,891],{"emptyLinePlaceholder":790},[533,76533,76534,76537,76539,76541,76543],{"class":535,"line":45873},[533,76535,76536],{"class":543},"summary_df ",[533,76538,554],{"class":553},[533,76540,65409],{"class":543},[533,76542,65412],{"class":560},[533,76544,76545],{"class":543},"(summary_rows)\n",[533,76547,76548],{"class":535,"line":45888},[533,76549,891],{"emptyLinePlaceholder":790},[533,76551,76552],{"class":535,"line":45921},[533,76553,76554],{"class":593},"# Add cost estimates\n",[533,76556,76557,76560,76562,76565,76567,76570,76572,76575],{"class":535,"line":45927},[533,76558,76559],{"class":543},"cps ",[533,76561,554],{"class":553},[533,76563,76564],{"class":625}," CONFIG",[533,76566,1522],{"class":543},[533,76568,76569],{"class":621},"\"cost_model\"",[533,76571,2682],{"class":543},[533,76573,76574],{"class":621},"\"default_cost_per_shot_usd\"",[533,76576,14965],{"class":543},[533,76578,76579,76582,76584,76586,76588,76590,76592,76595],{"class":535,"line":45939},[533,76580,76581],{"class":543},"over ",[533,76583,554],{"class":553},[533,76585,76564],{"class":625},[533,76587,1522],{"class":543},[533,76589,76569],{"class":621},[533,76591,2682],{"class":543},[533,76593,76594],{"class":621},"\"fixed_overhead_usd\"",[533,76596,14965],{"class":543},[533,76598,76599,76601,76604,76606,76608,76611,76614,76616,76618],{"class":535,"line":45957},[533,76600,5724],{"class":539},[533,76602,76603],{"class":543}," cps ",[533,76605,2808],{"class":553},[533,76607,26839],{"class":625},[533,76609,76610],{"class":539}," or",[533,76612,76613],{"class":543}," over ",[533,76615,2808],{"class":553},[533,76617,26839],{"class":625},[533,76619,544],{"class":543},[533,76621,76622,76625,76628,76630,76632],{"class":535,"line":45976},[533,76623,76624],{"class":543},"    summary_df[",[533,76626,76627],{"class":621},"\"Illustrative cost (USD)\"",[533,76629,11314],{"class":543},[533,76631,554],{"class":553},[533,76633,26997],{"class":543},[533,76635,76636,76639,76641,76643,76646,76649],{"class":535,"line":45999},[533,76637,76638],{"class":560},"        apply_costs",[533,76640,615],{"class":543},[533,76642,4175],{"class":553},[533,76644,76645],{"class":543},"(row[",[533,76647,76648],{"class":621},"\"Shots\"",[533,76650,76651],{"class":543},"]), cps, over)\n",[533,76653,76654,76656,76659,76661,76664,76667],{"class":535,"line":46008},[533,76655,66356],{"class":539},[533,76657,76658],{"class":543}," _, row ",[533,76660,2786],{"class":539},[533,76662,76663],{"class":543}," summary_df.",[533,76665,76666],{"class":560},"iterrows",[533,76668,1217],{"class":543},[533,76670,76671],{"class":535,"line":46013},[533,76672,66384],{"class":543},[533,76674,76675],{"class":535,"line":46018},[533,76676,891],{"emptyLinePlaceholder":790},[533,76678,76679],{"class":535,"line":46024},[533,76680,76681],{"class":593},"# ---------- Save artifacts ----------\n",[533,76683,76684],{"class":535,"line":46039},[533,76685,891],{"emptyLinePlaceholder":790},[533,76687,76688],{"class":535,"line":46050},[533,76689,76690],{"class":593},"# Save raw bitstrings and summary CSV\n",[533,76692,76693,76695,76698,76700,76703,76705],{"class":535,"line":46087},[533,76694,3180],{"class":539},[533,76696,76697],{"class":543}," name, arr ",[533,76699,2786],{"class":539},[533,76701,76702],{"class":543}," all_bitstrings.",[533,76704,2792],{"class":560},[533,76706,2795],{"class":543},[533,76708,76709,76712,76714,76716,76719,76721,76724,76727,76729,76732,76734,76737,76739,76741],{"class":535,"line":46109},[533,76710,76711],{"class":543},"    out_path ",[533,76713,554],{"class":553},[533,76715,42413],{"class":539},[533,76717,76718],{"class":621},"\"bitstrings_",[533,76720,626],{"class":625},[533,76722,76723],{"class":543},"name.",[533,76725,76726],{"class":560},"replace",[533,76728,615],{"class":543},[533,76730,76731],{"class":621},"' '",[533,76733,1133],{"class":543},[533,76735,76736],{"class":621},"'_'",[533,76738,2632],{"class":543},[533,76740,632],{"class":625},[533,76742,76743],{"class":621},".csv\"\n",[533,76745,76746,76749,76751,76754,76757,76760,76763,76766,76769,76771,76773],{"class":535,"line":46120},[533,76747,76748],{"class":543},"    pd.",[533,76750,65412],{"class":560},[533,76752,76753],{"class":543},"({",[533,76755,76756],{"class":621},"\"bit\"",[533,76758,76759],{"class":543},": arr}).",[533,76761,76762],{"class":560},"to_csv",[533,76764,76765],{"class":543},"(out_path, ",[533,76767,76768],{"class":567},"index",[533,76770,554],{"class":553},[533,76772,1930],{"class":625},[533,76774,637],{"class":543},[533,76776,76777],{"class":535,"line":46137},[533,76778,891],{"emptyLinePlaceholder":790},[533,76780,76781,76784,76786],{"class":535,"line":46149},[533,76782,76783],{"class":543},"summary_csv_path ",[533,76785,554],{"class":553},[533,76787,76788],{"class":621}," \"summary.csv\"\n",[533,76790,76791,76794,76796,76799,76801,76803,76805],{"class":535,"line":46154},[533,76792,76793],{"class":543},"summary_df.",[533,76795,76762],{"class":560},[533,76797,76798],{"class":543},"(summary_csv_path, ",[533,76800,76768],{"class":567},[533,76802,554],{"class":553},[533,76804,1930],{"class":625},[533,76806,637],{"class":543},[533,76808,76809],{"class":535,"line":46159},[533,76810,891],{"emptyLinePlaceholder":790},[533,76812,76813],{"class":535,"line":67371},[533,76814,76815],{"class":593},"# Save config JSON\n",[533,76817,76818,76821,76824,76826,76829,76831,76834,76836,76838],{"class":535,"line":67376},[533,76819,76820],{"class":539},"with",[533,76822,76823],{"class":553}," open",[533,76825,615],{"class":543},[533,76827,76828],{"class":621},"\"simulation_config.json\"",[533,76830,1133],{"class":543},[533,76832,76833],{"class":621},"\"w\"",[533,76835,7047],{"class":543},[533,76837,584],{"class":539},[533,76839,76840],{"class":543}," f:\n",[533,76842,76843,76846,76849,76851,76853,76856,76859,76861,76863],{"class":535,"line":67387},[533,76844,76845],{"class":543},"    json.",[533,76847,76848],{"class":560},"dump",[533,76850,615],{"class":543},[533,76852,75779],{"class":625},[533,76854,76855],{"class":543},", f, ",[533,76857,76858],{"class":567},"indent",[533,76860,554],{"class":553},[533,76862,1140],{"class":625},[533,76864,637],{"class":543},[533,76866,76867],{"class":535,"line":67395},[533,76868,891],{"emptyLinePlaceholder":790},[533,76870,76871,76873,76875,76878],{"class":535,"line":67405},[533,76872,917],{"class":553},[533,76874,615],{"class":543},[533,76876,76877],{"class":621},"\"Saved data to CSV and JSON files.\"",[533,76879,637],{"class":543},[533,76881,76882],{"class":535,"line":67410},[533,76883,891],{"emptyLinePlaceholder":790},[533,76885,76886],{"class":535,"line":67415},[533,76887,76888],{"class":593},"# ---------- Visualizations ----------\n",[533,76890,76891],{"class":535,"line":67420},[533,76892,891],{"emptyLinePlaceholder":790},[533,76894,76895],{"class":535,"line":67427},[533,76896,76897],{"class":593},"# Figure 1: Observed ones fraction with Wilson CI\n",[533,76899,76900,76903,76906,76908,76911],{"class":535,"line":67443},[533,76901,76902],{"class":543},"plt.style.",[533,76904,76905],{"class":560},"use",[533,76907,615],{"class":543},[533,76909,76910],{"class":621},"'seaborn-v0_8-whitegrid'",[533,76912,637],{"class":543},[533,76914,76915,76917,76919,76921,76923,76925,76927,76929,76931,76933],{"class":535,"line":67452},[533,76916,12893],{"class":543},[533,76918,12896],{"class":560},[533,76920,615],{"class":543},[533,76922,12901],{"class":567},[533,76924,554],{"class":553},[533,76926,615],{"class":543},[533,76928,1579],{"class":625},[533,76930,1133],{"class":543},[533,76932,1967],{"class":625},[533,76934,1937],{"class":543},[533,76936,76937,76939,76941,76943,76945,76947,76949],{"class":535,"line":67461},[533,76938,14994],{"class":543},[533,76940,554],{"class":553},[533,76942,2911],{"class":543},[533,76944,15001],{"class":560},[533,76946,615],{"class":543},[533,76948,15006],{"class":553},[533,76950,76951],{"class":543},"(summary_df))\n",[533,76953,76954,76957,76959,76962,76965,76968,76971],{"class":535,"line":67470},[533,76955,76956],{"class":543},"y ",[533,76958,554],{"class":553},[533,76960,76961],{"class":543}," summary_df[",[533,76963,76964],{"class":621},"\"Ones fraction (observed)\"",[533,76966,76967],{"class":543},"].",[533,76969,76970],{"class":560},"to_numpy",[533,76972,1217],{"class":543},[533,76974,76975],{"class":535,"line":67479},[533,76976,891],{"emptyLinePlaceholder":790},[533,76978,76979],{"class":535,"line":67502},[533,76980,76981],{"class":593},"# --- FIX APPLIED HERE ---\n",[533,76983,76984],{"class":535,"line":67508},[533,76985,76986],{"class":593},"# Take the absolute value to prevent tiny negative numbers from floating-point\n",[533,76988,76989],{"class":535,"line":67513},[533,76990,76991],{"class":593},"# inaccuracies from causing a ValueError in the errorbar plot.\n",[533,76993,76994,76997,76999,77002,77004,77006,77009,77011,77013,77015,77017],{"class":535,"line":67518},[533,76995,76996],{"class":543},"lower_error ",[533,76998,554],{"class":553},[533,77000,77001],{"class":543}," y ",[533,77003,2514],{"class":553},[533,77005,76961],{"class":543},[533,77007,77008],{"class":621},"\"Wilson CI 95",[533,77010,76234],{"class":625},[533,77012,76237],{"class":621},[533,77014,76967],{"class":543},[533,77016,76970],{"class":560},[533,77018,1217],{"class":543},[533,77020,77021,77024,77026,77028,77030,77032,77034,77036,77038,77040,77042],{"class":535,"line":67523},[533,77022,77023],{"class":543},"upper_error ",[533,77025,554],{"class":553},[533,77027,76961],{"class":543},[533,77029,77008],{"class":621},[533,77031,76247],{"class":625},[533,77033,76250],{"class":621},[533,77035,76967],{"class":543},[533,77037,76970],{"class":560},[533,77039,16535],{"class":543},[533,77041,2514],{"class":553},[533,77043,77044],{"class":543}," y\n",[533,77046,77047,77050,77052,77054,77056,77058,77060,77063,77065],{"class":535,"line":67533},[533,77048,77049],{"class":543},"yerr ",[533,77051,554],{"class":553},[533,77053,2911],{"class":543},[533,77055,67320],{"class":560},[533,77057,5902],{"class":543},[533,77059,12852],{"class":560},[533,77061,77062],{"class":543},"(lower_error), np.",[533,77064,12852],{"class":560},[533,77066,77067],{"class":543},"(upper_error)])\n",[533,77069,77070],{"class":535,"line":67542},[533,77071,77072],{"class":593},"# --- END OF FIX ---\n",[533,77074,77075],{"class":535,"line":67551},[533,77076,891],{"emptyLinePlaceholder":790},[533,77078,77079,77081,77083,77086,77088,77090,77093,77095,77098,77100,77103],{"class":535,"line":67556},[533,77080,12893],{"class":543},[533,77082,15016],{"class":560},[533,77084,77085],{"class":543},"(x, y, ",[533,77087,12978],{"class":567},[533,77089,554],{"class":553},[533,77091,77092],{"class":621},"'skyblue'",[533,77094,1133],{"class":543},[533,77096,77097],{"class":567},"edgecolor",[533,77099,554],{"class":553},[533,77101,77102],{"class":621},"'black'",[533,77104,637],{"class":543},[533,77106,77107,77109,77112,77114,77117,77119,77122,77125,77127,77129,77131,77134,77136,77138,77140,77142,77144,77147,77149,77152,77154,77156],{"class":535,"line":67562},[533,77108,12893],{"class":543},[533,77110,77111],{"class":560},"errorbar",[533,77113,77085],{"class":543},[533,77115,77116],{"class":567},"yerr",[533,77118,554],{"class":553},[533,77120,77121],{"class":543},"yerr, ",[533,77123,77124],{"class":567},"fmt",[533,77126,554],{"class":553},[533,77128,41213],{"class":621},[533,77130,1133],{"class":543},[533,77132,77133],{"class":567},"capsize",[533,77135,554],{"class":553},[533,77137,1220],{"class":625},[533,77139,1133],{"class":543},[533,77141,12978],{"class":567},[533,77143,554],{"class":553},[533,77145,77146],{"class":621},"\"black\"",[533,77148,1133],{"class":543},[533,77150,77151],{"class":567},"elinewidth",[533,77153,554],{"class":553},[533,77155,12633],{"class":625},[533,77157,637],{"class":543},[533,77159,77160,77162,77164,77167,77170,77172,77175,77177,77180,77182,77184,77186,77188,77190,77192],{"class":535,"line":67577},[533,77161,12893],{"class":543},[533,77163,15026],{"class":560},[533,77165,77166],{"class":543},"(x, summary_df[",[533,77168,77169],{"class":621},"\"Model\"",[533,77171,76967],{"class":543},[533,77173,77174],{"class":560},"tolist",[533,77176,13473],{"class":543},[533,77178,77179],{"class":567},"rotation",[533,77181,554],{"class":553},[533,77183,7565],{"class":625},[533,77185,1133],{"class":543},[533,77187,40832],{"class":567},[533,77189,554],{"class":553},[533,77191,40886],{"class":621},[533,77193,637],{"class":543},[533,77195,77196,77198,77200,77202,77205],{"class":535,"line":67588},[533,77197,12893],{"class":543},[533,77199,13058],{"class":560},[533,77201,615],{"class":543},[533,77203,77204],{"class":621},"\"Observed Ones Fraction\"",[533,77206,637],{"class":543},[533,77208,77209,77211,77213,77215,77218,77220,77222,77224,77227],{"class":535,"line":67603},[533,77210,12893],{"class":543},[533,77212,8639],{"class":560},[533,77214,615],{"class":543},[533,77216,77217],{"class":621},"\"Observed Single-Shot Success Rates with 95% Wilson CI\"",[533,77219,1133],{"class":543},[533,77221,41152],{"class":567},[533,77223,554],{"class":553},[533,77225,77226],{"class":625},"14",[533,77228,637],{"class":543},[533,77230,77231,77233,77235],{"class":535,"line":67613},[533,77232,12893],{"class":543},[533,77234,19953],{"class":560},[533,77236,1217],{"class":543},[533,77238,77239,77242,77244],{"class":535,"line":67621},[533,77240,77241],{"class":543},"fig1_path ",[533,77243,554],{"class":553},[533,77245,77246],{"class":621}," \"fig_ones_fraction.png\"\n",[533,77248,77249,77251,77254,77257,77259,77261,77263,77265,77268,77270,77273],{"class":535,"line":67630},[533,77250,12893],{"class":543},[533,77252,77253],{"class":560},"savefig",[533,77255,77256],{"class":543},"(fig1_path, ",[533,77258,12917],{"class":567},[533,77260,554],{"class":553},[533,77262,39215],{"class":625},[533,77264,1133],{"class":543},[533,77266,77267],{"class":567},"bbox_inches",[533,77269,554],{"class":553},[533,77271,77272],{"class":621},"'tight'",[533,77274,637],{"class":543},[533,77276,77277,77279,77281],{"class":535,"line":67635},[533,77278,12893],{"class":543},[533,77280,13120],{"class":560},[533,77282,1217],{"class":543},[533,77284,77285],{"class":535,"line":67656},[533,77286,891],{"emptyLinePlaceholder":790},[533,77288,77289],{"class":535,"line":67661},[533,77290,77291],{"class":593},"# Figure 2: Required shots at several ±epsilon targets\n",[533,77293,77294,77296,77298,77300,77302,77304,77306,77308,77310,77312],{"class":535,"line":67677},[533,77295,12893],{"class":543},[533,77297,12896],{"class":560},[533,77299,615],{"class":543},[533,77301,12901],{"class":567},[533,77303,554],{"class":553},[533,77305,615],{"class":543},[533,77307,1579],{"class":625},[533,77309,1133],{"class":543},[533,77311,1967],{"class":625},[533,77313,1937],{"class":543},[533,77315,77316,77319,77321],{"class":535,"line":67694},[533,77317,77318],{"class":543},"width ",[533,77320,554],{"class":553},[533,77322,11694],{"class":625},[533,77324,77325,77327,77329,77331,77333,77335,77337,77339,77341],{"class":535,"line":67699},[533,77326,14994],{"class":543},[533,77328,554],{"class":553},[533,77330,2911],{"class":543},[533,77332,15001],{"class":560},[533,77334,615],{"class":543},[533,77336,15006],{"class":553},[533,77338,615],{"class":543},[533,77340,75603],{"class":625},[533,77342,1937],{"class":543},[533,77344,77345,77348,77350,77352,77355,77357,77360,77362,77365],{"class":535,"line":67712},[533,77346,77347],{"class":543},"colors ",[533,77349,554],{"class":553},[533,77351,13464],{"class":543},[533,77353,77354],{"class":621},"'#ff9999'",[533,77356,2464],{"class":543},[533,77358,77359],{"class":621},"'#66b3ff'",[533,77361,2464],{"class":543},[533,77363,77364],{"class":621},"'#99ff99'",[533,77366,14965],{"class":543},[533,77368,77369],{"class":535,"line":67725},[533,77370,891],{"emptyLinePlaceholder":790},[533,77372,77373,77375,77378,77380,77382,77384,77386,77388,77390],{"class":535,"line":67730},[533,77374,3180],{"class":539},[533,77376,77377],{"class":543}," i, eps ",[533,77379,2786],{"class":539},[533,77381,13380],{"class":553},[533,77383,615],{"class":543},[533,77385,75779],{"class":625},[533,77387,1522],{"class":543},[533,77389,76524],{"class":621},[533,77391,77392],{"class":543},"]):\n",[533,77394,77395,77398,77400,77402,77405,77408,77410,77412,77414,77416],{"class":535,"line":67738},[533,77396,77397],{"class":543},"    req ",[533,77399,554],{"class":553},[533,77401,13464],{"class":543},[533,77403,77404],{"class":560},"shots_for_epsilon",[533,77406,77407],{"class":543},"(m.satisfaction_prob, eps) ",[533,77409,3180],{"class":539},[533,77411,76463],{"class":543},[533,77413,2786],{"class":539},[533,77415,76468],{"class":625},[533,77417,14965],{"class":543},[533,77419,77420,77422,77424,77427,77429,77431,77433,77436,77438,77440,77442,77445,77447,77449,77452,77454,77456,77458,77460,77462,77465,77467,77469,77471],{"class":535,"line":67743},[533,77421,42168],{"class":543},[533,77423,15016],{"class":560},[533,77425,77426],{"class":543},"(x ",[533,77428,6350],{"class":553},[533,77430,2971],{"class":543},[533,77432,2469],{"class":553},[533,77434,77435],{"class":543}," width, req, width, ",[533,77437,12942],{"class":567},[533,77439,554],{"class":553},[533,77441,618],{"class":539},[533,77443,77444],{"class":621},"\"±",[533,77446,626],{"class":625},[533,77448,11449],{"class":543},[533,77450,77451],{"class":539},":.1%",[533,77453,632],{"class":625},[533,77455,439],{"class":621},[533,77457,1133],{"class":543},[533,77459,12978],{"class":567},[533,77461,554],{"class":553},[533,77463,77464],{"class":543},"colors[i], ",[533,77466,77097],{"class":567},[533,77468,554],{"class":553},[533,77470,77102],{"class":621},[533,77472,637],{"class":543},[533,77474,77475],{"class":535,"line":67748},[533,77476,891],{"emptyLinePlaceholder":790},[533,77478,77479,77481,77483,77485,77487,77490,77492,77494,77496,77498,77500,77502,77504,77506,77508,77510,77512,77514],{"class":535,"line":67758},[533,77480,12893],{"class":543},[533,77482,15026],{"class":560},[533,77484,77426],{"class":543},[533,77486,6350],{"class":553},[533,77488,77489],{"class":543}," width, [m.name ",[533,77491,3180],{"class":539},[533,77493,76463],{"class":543},[533,77495,2786],{"class":539},[533,77497,76468],{"class":625},[533,77499,16316],{"class":543},[533,77501,77179],{"class":567},[533,77503,554],{"class":553},[533,77505,7565],{"class":625},[533,77507,1133],{"class":543},[533,77509,40832],{"class":567},[533,77511,554],{"class":553},[533,77513,40886],{"class":621},[533,77515,637],{"class":543},[533,77517,77518,77520,77522,77524,77527],{"class":535,"line":67766},[533,77519,12893],{"class":543},[533,77521,13058],{"class":560},[533,77523,615],{"class":543},[533,77525,77526],{"class":621},"\"Required Shots (Log Scale)\"",[533,77528,637],{"class":543},[533,77530,77531,77533,77535,77537,77540,77542,77544,77546,77548],{"class":535,"line":67774},[533,77532,12893],{"class":543},[533,77534,8639],{"class":560},[533,77536,615],{"class":543},[533,77538,77539],{"class":621},"\"Approximate Shots to Estimate Success Rate within ±ε\"",[533,77541,1133],{"class":543},[533,77543,41152],{"class":567},[533,77545,554],{"class":553},[533,77547,77226],{"class":625},[533,77549,637],{"class":543},[533,77551,77552,77554,77557,77559,77562],{"class":535,"line":67786},[533,77553,12893],{"class":543},[533,77555,77556],{"class":560},"yscale",[533,77558,615],{"class":543},[533,77560,77561],{"class":621},"'log'",[533,77563,637],{"class":543},[533,77565,77566,77568,77570,77572,77574,77576,77579],{"class":535,"line":67798},[533,77567,12893],{"class":543},[533,77569,13110],{"class":560},[533,77571,615],{"class":543},[533,77573,8639],{"class":567},[533,77575,554],{"class":553},[533,77577,77578],{"class":621},"\"Error Tolerance\"",[533,77580,637],{"class":543},[533,77582,77583,77585,77587],{"class":535,"line":67807},[533,77584,12893],{"class":543},[533,77586,19953],{"class":560},[533,77588,1217],{"class":543},[533,77590,77591,77594,77596],{"class":535,"line":67813},[533,77592,77593],{"class":543},"fig2_path ",[533,77595,554],{"class":553},[533,77597,77598],{"class":621}," \"fig_required_shots.png\"\n",[533,77600,77601,77603,77605,77608,77610,77612,77614,77616,77618,77620,77622],{"class":535,"line":67823},[533,77602,12893],{"class":543},[533,77604,77253],{"class":560},[533,77606,77607],{"class":543},"(fig2_path, ",[533,77609,12917],{"class":567},[533,77611,554],{"class":553},[533,77613,39215],{"class":625},[533,77615,1133],{"class":543},[533,77617,77267],{"class":567},[533,77619,554],{"class":553},[533,77621,77272],{"class":621},[533,77623,637],{"class":543},[533,77625,77626,77628,77630],{"class":535,"line":67833},[533,77627,12893],{"class":543},[533,77629,13120],{"class":560},[533,77631,1217],{"class":543},[533,77633,77634],{"class":535,"line":67842},[533,77635,891],{"emptyLinePlaceholder":790},[533,77637,77638,77640,77642,77645],{"class":535,"line":67851},[533,77639,917],{"class":553},[533,77641,615],{"class":543},[533,77643,77644],{"class":621},"\"Generated and saved plots.\"",[533,77646,637],{"class":543},[533,77648,77649],{"class":535,"line":67862},[533,77650,891],{"emptyLinePlaceholder":790},[533,77652,77653],{"class":535,"line":67874},[533,77654,77655],{"class":593},"# ---------- Display interactive table ----------\n",[533,77657,77658],{"class":535,"line":67885},[533,77659,891],{"emptyLinePlaceholder":790},[533,77661,77662,77664,77666,77668,77670,77673],{"class":535,"line":67890},[533,77663,43513],{"class":560},[533,77665,615],{"class":543},[533,77667,9168],{"class":560},[533,77669,615],{"class":543},[533,77671,77672],{"class":621},"\"##  Qubit Sampling Budget - Summary\"",[533,77674,1937],{"class":543},[533,77676,77677,77679,77682,77685],{"class":535,"line":67895},[533,77678,43513],{"class":560},[533,77680,77681],{"class":543},"(summary_df.style.",[533,77683,77684],{"class":560},"format",[533,77686,39205],{"class":543},[533,77688,77689,77692,77694,77696,77698,77700,77702,77704],{"class":535,"line":67900},[533,77690,77691],{"class":621},"    \"Configured p (target)\"",[533,77693,1389],{"class":543},[533,77695,439],{"class":621},[533,77697,626],{"class":625},[533,77699,43134],{"class":539},[533,77701,632],{"class":625},[533,77703,439],{"class":621},[533,77705,1549],{"class":543},[533,77707,77708,77711,77713,77715,77717,77720,77722,77724],{"class":535,"line":67910},[533,77709,77710],{"class":621},"    \"Ones fraction (observed)\"",[533,77712,1389],{"class":543},[533,77714,439],{"class":621},[533,77716,626],{"class":625},[533,77718,77719],{"class":539},":.4f",[533,77721,632],{"class":625},[533,77723,439],{"class":621},[533,77725,1549],{"class":543},[533,77727,77728,77731,77733,77735,77737,77739,77741,77743,77745,77747],{"class":535,"line":67917},[533,77729,77730],{"class":621},"    \"Wilson CI 95",[533,77732,76234],{"class":625},[533,77734,76237],{"class":621},[533,77736,1389],{"class":543},[533,77738,439],{"class":621},[533,77740,626],{"class":625},[533,77742,77719],{"class":539},[533,77744,632],{"class":625},[533,77746,439],{"class":621},[533,77748,1549],{"class":543},[533,77750,77751,77753,77755,77757,77759,77761,77763,77765,77767,77769],{"class":535,"line":67925},[533,77752,77730],{"class":621},[533,77754,76247],{"class":625},[533,77756,76250],{"class":621},[533,77758,1389],{"class":543},[533,77760,439],{"class":621},[533,77762,626],{"class":625},[533,77764,77719],{"class":539},[533,77766,632],{"class":625},[533,77768,439],{"class":621},[533,77770,1549],{"class":543},[533,77772,77773,77776,77778,77780,77782,77784,77786,77788],{"class":535,"line":67936},[533,77774,77775],{"class":621},"    \"CI width (95%)\"",[533,77777,1389],{"class":543},[533,77779,439],{"class":621},[533,77781,626],{"class":625},[533,77783,77719],{"class":539},[533,77785,632],{"class":625},[533,77787,439],{"class":621},[533,77789,1549],{"class":543},[533,77791,77792,77795,77797,77799,77801,77803,77805],{"class":535,"line":67947},[533,77793,77794],{"class":621},"    \"Illustrative cost (USD)\"",[533,77796,1389],{"class":543},[533,77798,68945],{"class":621},[533,77800,626],{"class":625},[533,77802,43134],{"class":539},[533,77804,632],{"class":625},[533,77806,43171],{"class":621},[533,77808,77809],{"class":535,"line":67956},[533,77810,77811],{"class":543},"}))\n",[533,77813,77814],{"class":535,"line":67962},[533,77815,891],{"emptyLinePlaceholder":790},[533,77817,77818],{"class":535,"line":67972},[533,77819,891],{"emptyLinePlaceholder":790},[533,77821,77822],{"class":535,"line":67982},[533,77823,77824],{"class":593},"# ---------- Build a ready-to-run Colab notebook ----------\n",[533,77826,77827],{"class":535,"line":67991},[533,77828,891],{"emptyLinePlaceholder":790},[533,77830,77831,77834,77836,77839],{"class":535,"line":68000},[533,77832,77833],{"class":543},"md_intro ",[533,77835,554],{"class":553},[533,77837,77838],{"class":539}," r",[533,77840,39090],{"class":2387},[533,77842,77843],{"class":535,"line":68009},[533,77844,77845],{"class":593},"# Sampling Budget & Bit-String Analogy for Qubit Classes\n",[533,77847,77848],{"class":535,"line":68021},[533,77849,891],{"emptyLinePlaceholder":790},[533,77851,77852,77854,77857,77859,77862,77864,77866,77868,77871,77873,77876,77878],{"class":535,"line":68033},[533,77853,11935],{"class":625},[533,77855,77856],{"class":2387},"High school level ",[533,77858,615],{"class":625},[533,77860,77861],{"class":2387},"concise",[533,77863,2632],{"class":625},[533,77865,38724],{"class":2387},[533,77867,11935],{"class":625},[533,77869,77870],{"class":2387}," We treat each measurement ",[533,77872,615],{"class":625},[533,77874,77875],{"class":2387},"“single shot”",[533,77877,2632],{"class":625},[533,77879,77880],{"class":2387}," as a bit: `1` if the outcome matches the analytical prediction, `0` if it does not. Different qubit types have different chances of landing a `1`. We simulate many shots, show how often we get `1`s, and estimate how many shots we need for a target accuracy.\n",[533,77882,77883],{"class":535,"line":68042},[533,77884,891],{"emptyLinePlaceholder":790},[533,77886,77887,77889,77892,77894,77896,77898,77900,77902,77905,77907,77910,77912,77915,77917,77920,77922,77925,77927,77930,77932,77935,77938,77941,77944,77946,77948,77951,77953,77955,77958,77961,77963],{"class":535,"line":68047},[533,77888,11935],{"class":625},[533,77890,77891],{"class":2387},"Graduate level ",[533,77893,615],{"class":625},[533,77895,77861],{"class":2387},[533,77897,2632],{"class":625},[533,77899,38724],{"class":2387},[533,77901,11935],{"class":625},[533,77903,77904],{"class":2387}," We model single-shot “threshold of satisfaction” as a Bernoulli process with success probability $p$ per qubit class: toy, NISQ ",[533,77906,615],{"class":625},[533,77908,77909],{"class":2387},"noisy intermediate-scale quantum",[533,77911,2632],{"class":625},[533,77913,77914],{"class":2387},", fault-tolerant ",[533,77916,615],{"class":625},[533,77918,77919],{"class":2387},"logical",[533,77921,2632],{"class":625},[533,77923,77924],{"class":2387},", topologically protected, and ideal. We report Wilson score intervals ",[533,77926,615],{"class":625},[533,77928,77929],{"class":2387},"95%",[533,77931,2632],{"class":625},[533,77933,77934],{"class":2387}," for observed proportions and estimate the required shot budget $n ",[533,77936,77937],{"class":553},"\\a",[533,77939,77940],{"class":2387},"pprox z^2",[533,77942,77943],{"class":553},"\\,",[533,77945,12],{"class":2387},[533,77947,615],{"class":625},[533,77949,77950],{"class":2387},"1-p",[533,77952,2632],{"class":625},[533,77954,2941],{"class":2387},[533,77956,77957],{"class":553},"\\e",[533,77959,77960],{"class":2387},"psilon^2$ to bound absolute error by ±$",[533,77962,77957],{"class":553},[533,77964,77965],{"class":2387},"psilon$ at ~95% confidence.\n",[533,77967,77968],{"class":535,"line":68052},[533,77969,39090],{"class":2387},[533,77971,77972],{"class":535,"line":68057},[533,77973,891],{"emptyLinePlaceholder":790},[533,77975,77976,77979,77981,77983],{"class":535,"line":68067},[533,77977,77978],{"class":543},"code_config ",[533,77980,554],{"class":553},[533,77982,77838],{"class":539},[533,77984,39090],{"class":2387},[533,77986,77987],{"class":535,"line":68074},[533,77988,77989],{"class":593},"# @title Configuration\n",[533,77991,77992],{"class":535,"line":68081},[533,77993,77994],{"class":2387},"from dataclasses import dataclass\n",[533,77996,77997],{"class":535,"line":68092},[533,77998,77999],{"class":2387},"from typing import List, Dict\n",[533,78001,78002],{"class":535,"line":68103},[533,78003,78004],{"class":2387},"import numpy as np\n",[533,78006,78007],{"class":535,"line":68112},[533,78008,891],{"emptyLinePlaceholder":790},[533,78010,78011,78014],{"class":535,"line":68118},[533,78012,78013],{"class":2387},"RANDOM_SEED = 579345  ",[533,78015,78016],{"class":593},"# @param {type:\"number\"}\n",[533,78018,78019,78022],{"class":535,"line":68128},[533,78020,78021],{"class":2387},"SHOTS_PER_MODEL = 10000  ",[533,78023,78016],{"class":593},[533,78025,78026,78029,78032],{"class":535,"line":68136},[533,78027,78028],{"class":2387},"EPSILONS = ",[533,78030,78031],{"class":625},"[0.02, 0.01, 0.005]",[533,78033,78034],{"class":593},"  # @param\n",[533,78036,78037,78040],{"class":535,"line":68143},[533,78038,78039],{"class":2387},"COST_PER_SHOT_USD = 0.00005  ",[533,78041,78016],{"class":593},[533,78043,78044,78047],{"class":535,"line":68150},[533,78045,78046],{"class":2387},"FIXED_OVERHEAD_USD = 0.10    ",[533,78048,78016],{"class":593},[533,78050,78051],{"class":535,"line":68159},[533,78052,891],{"emptyLinePlaceholder":790},[533,78054,78055,78057,78059,78062],{"class":535,"line":68168},[533,78056,75545],{"class":2387},[533,78058,615],{"class":625},[533,78060,78061],{"class":2387},"frozen=True",[533,78063,637],{"class":625},[533,78065,78066],{"class":535,"line":68177},[533,78067,78068],{"class":2387},"class QubitModel:\n",[533,78070,78071],{"class":535,"line":68186},[533,78072,78073],{"class":2387},"    name: str\n",[533,78075,78076],{"class":535,"line":68197},[533,78077,78078],{"class":2387},"    satisfaction_prob: float\n",[533,78080,78081],{"class":535,"line":68209},[533,78082,78083],{"class":2387},"    description: str\n",[533,78085,78086],{"class":535,"line":68221},[533,78087,891],{"emptyLinePlaceholder":790},[533,78089,78090,78093,78096,78099],{"class":535,"line":68230},[533,78091,78092],{"class":2387},"MODELS: List",[533,78094,78095],{"class":625},"[QubitModel]",[533,78097,78098],{"class":2387}," = ",[533,78100,78101],{"class":625},"[\n",[533,78103,78104],{"class":535,"line":68235},[533,78105,78106],{"class":625},"    QubitModel(\"Toy working qubit\", 0.50, \"Simple demonstrator\"),\n",[533,78108,78109],{"class":535,"line":68240},[533,78110,78111],{"class":625},"    QubitModel(\"NISQ qubit\", 0.60, \"Noisy Intermediate-Scale Quantum device\"),\n",[533,78113,78114],{"class":535,"line":68245},[533,78115,78116],{"class":625},"    QubitModel(\"Fault-tolerant (logical)\", 0.90, \"Error-corrected logical qubit\"),\n",[533,78118,78119],{"class":535,"line":68255},[533,78120,78121],{"class":625},"    QubitModel(\"Topologically protected\", 0.98, \"Intrinsic protection\"),\n",[533,78123,78124],{"class":535,"line":68262},[533,78125,78126],{"class":625},"    QubitModel(\"Ideal qubit\", 1.00, \"Theoretical perfect qubit\"),\n",[533,78128,78129],{"class":535,"line":68269},[533,78130,14965],{"class":625},[533,78132,78133],{"class":535,"line":68281},[533,78134,891],{"emptyLinePlaceholder":790},[533,78136,78137,78140,78142,78145],{"class":535,"line":68292},[533,78138,78139],{"class":2387},"rng = np.random.default_rng",[533,78141,615],{"class":625},[533,78143,78144],{"class":2387},"RANDOM_SEED",[533,78146,637],{"class":625},[533,78148,78149],{"class":535,"line":68301},[533,78150,39090],{"class":2387},[533,78152,78153],{"class":535,"line":68307},[533,78154,891],{"emptyLinePlaceholder":790},[533,78156,78157,78160,78162,78164],{"class":535,"line":68323},[533,78158,78159],{"class":543},"code_lib_and_run ",[533,78161,554],{"class":553},[533,78163,77838],{"class":539},[533,78165,39090],{"class":2387},[533,78167,78168],{"class":535,"line":68328},[533,78169,78170],{"class":593},"# @title Run Simulation & Display Results\n",[533,78172,78173],{"class":535,"line":68337},[533,78174,78175],{"class":2387},"import math\n",[533,78177,78178],{"class":535,"line":68347},[533,78179,78180],{"class":2387},"from typing import Tuple, Dict\n",[533,78182,78183],{"class":535,"line":68356},[533,78184,78185],{"class":2387},"import pandas as pd\n",[533,78187,78188],{"class":535,"line":68365},[533,78189,78004],{"class":2387},[533,78191,78192],{"class":535,"line":68371},[533,78193,78194],{"class":2387},"import matplotlib.pyplot as plt\n",[533,78196,78197],{"class":535,"line":68380},[533,78198,78199],{"class":2387},"from IPython.display import display, Markdown\n",[533,78201,78202],{"class":535,"line":68391},[533,78203,891],{"emptyLinePlaceholder":790},[533,78205,78206,78209,78211,78214,78216,78219,78222],{"class":535,"line":68403},[533,78207,78208],{"class":2387},"def wilson_ci",[533,78210,615],{"class":625},[533,78212,78213],{"class":2387},"k: int, n: int, z: float = 1.96",[533,78215,2632],{"class":625},[533,78217,78218],{"class":2387}," -> Tuple",[533,78220,78221],{"class":625},"[float, float]",[533,78223,544],{"class":2387},[533,78225,78226,78229,78231,78234],{"class":535,"line":68415},[533,78227,78228],{"class":2387},"    if n == 0: return ",[533,78230,615],{"class":625},[533,78232,78233],{"class":2387},"0.0, 1.0",[533,78235,637],{"class":625},[533,78237,78238,78241,78243],{"class":535,"line":68420},[533,78239,78240],{"class":2387},"    p_hat, z2_n = k \u002F n, z",[533,78242,11935],{"class":625},[533,78244,78245],{"class":2387},"2 \u002F n\n",[533,78247,78248,78251,78253],{"class":535,"line":68425},[533,78249,78250],{"class":2387},"    denom = 1.0 ",[533,78252,6350],{"class":625},[533,78254,78255],{"class":2387}," z2_n\n",[533,78257,78258,78261,78263,78266,78268,78271,78273],{"class":535,"line":68430},[533,78259,78260],{"class":2387},"    center = ",[533,78262,615],{"class":625},[533,78264,78265],{"class":2387},"p_hat ",[533,78267,6350],{"class":625},[533,78269,78270],{"class":2387}," z2_n \u002F 2",[533,78272,2632],{"class":625},[533,78274,78275],{"class":2387}," \u002F denom\n",[533,78277,78278,78281,78283,78286,78288,78291,78293,78295,78297,78299,78302,78304,78307,78309,78312,78314,78317,78319,78322,78324,78327,78329,78331,78334],{"class":535,"line":68448},[533,78279,78280],{"class":2387},"    span = ",[533,78282,615],{"class":625},[533,78284,78285],{"class":2387},"z ",[533,78287,2469],{"class":625},[533,78289,78290],{"class":2387}," math.sqrt",[533,78292,615],{"class":625},[533,78294,78265],{"class":2387},[533,78296,2469],{"class":625},[533,78298,5037],{"class":625},[533,78300,78301],{"class":2387},"1 - p_hat",[533,78303,2632],{"class":625},[533,78305,78306],{"class":2387}," \u002F n ",[533,78308,6350],{"class":625},[533,78310,78311],{"class":2387}," z",[533,78313,11935],{"class":625},[533,78315,78316],{"class":2387},"2 \u002F ",[533,78318,615],{"class":625},[533,78320,78321],{"class":2387},"4 ",[533,78323,2469],{"class":625},[533,78325,78326],{"class":2387}," n",[533,78328,11935],{"class":625},[533,78330,1140],{"class":2387},[533,78332,78333],{"class":625},")))",[533,78335,78275],{"class":2387},[533,78337,78338,78341,78343,78345,78347,78350,78352,78355,78357,78360,78362,78365],{"class":535,"line":68454},[533,78339,78340],{"class":2387},"    return ",[533,78342,615],{"class":625},[533,78344,13480],{"class":2387},[533,78346,615],{"class":625},[533,78348,78349],{"class":2387},"0.0, center - span",[533,78351,2632],{"class":625},[533,78353,78354],{"class":2387},", min",[533,78356,615],{"class":625},[533,78358,78359],{"class":2387},"1.0, center ",[533,78361,6350],{"class":625},[533,78363,78364],{"class":2387}," span",[533,78366,1937],{"class":625},[533,78368,78369],{"class":535,"line":68463},[533,78370,891],{"emptyLinePlaceholder":790},[533,78372,78373,78376,78378,78381,78383],{"class":535,"line":68470},[533,78374,78375],{"class":2387},"def shots_for_epsilon",[533,78377,615],{"class":625},[533,78379,78380],{"class":2387},"p: float, epsilon: float = 0.01, z: float = 1.96",[533,78382,2632],{"class":625},[533,78384,78385],{"class":2387}," -> int:\n",[533,78387,78388,78391,78393,78395,78397,78399],{"class":535,"line":68477},[533,78389,78390],{"class":2387},"    if p ",[533,78392,2469],{"class":625},[533,78394,5037],{"class":625},[533,78396,77950],{"class":2387},[533,78398,2632],{"class":625},[533,78400,78401],{"class":2387}," == 0: return 1\n",[533,78403,78404,78407,78409,78412,78414,78417,78419,78421,78423,78426,78428,78430,78432,78434,78436,78438,78441,78443,78445,78447,78449],{"class":535,"line":68485},[533,78405,78406],{"class":2387},"    return max",[533,78408,615],{"class":625},[533,78410,78411],{"class":2387},"1, int",[533,78413,615],{"class":625},[533,78415,78416],{"class":2387},"math.ceil",[533,78418,6219],{"class":625},[533,78420,1632],{"class":2387},[533,78422,11935],{"class":625},[533,78424,78425],{"class":2387},"2 ",[533,78427,2469],{"class":625},[533,78429,42483],{"class":2387},[533,78431,2469],{"class":625},[533,78433,5037],{"class":625},[533,78435,77950],{"class":2387},[533,78437,14555],{"class":625},[533,78439,78440],{"class":2387}," \u002F ",[533,78442,615],{"class":625},[533,78444,75366],{"class":2387},[533,78446,11935],{"class":625},[533,78448,1140],{"class":2387},[533,78450,78451],{"class":625},"))))\n",[533,78453,78454],{"class":535,"line":68496},[533,78455,891],{"emptyLinePlaceholder":790},[533,78457,78458,78461,78463,78466,78468],{"class":535,"line":68507},[533,78459,78460],{"class":2387},"def summarize_model",[533,78462,615],{"class":625},[533,78464,78465],{"class":2387},"model, bits: np.ndarray, epsilons",[533,78467,2632],{"class":625},[533,78469,78470],{"class":2387}," -> Dict:\n",[533,78472,78473,78476,78478,78480],{"class":535,"line":68518},[533,78474,78475],{"class":2387},"    n = len",[533,78477,615],{"class":625},[533,78479,76043],{"class":2387},[533,78481,637],{"class":625},[533,78483,78484,78487,78489,78491],{"class":535,"line":68523},[533,78485,78486],{"class":2387},"    ones = sum",[533,78488,615],{"class":625},[533,78490,76043],{"class":2387},[533,78492,637],{"class":625},[533,78494,78495,78498,78500,78503],{"class":535,"line":68532},[533,78496,78497],{"class":2387},"    lo, hi = wilson_ci",[533,78499,615],{"class":625},[533,78501,78502],{"class":2387},"ones, n",[533,78504,637],{"class":625},[533,78506,78507],{"class":535,"line":68539},[533,78508,78509],{"class":2387},"    row = {\n",[533,78511,78512,78515,78517,78520,78522],{"class":535,"line":68546},[533,78513,78514],{"class":2387},"        \"Model\": model.name, \"p ",[533,78516,615],{"class":625},[533,78518,78519],{"class":2387},"target",[533,78521,2632],{"class":625},[533,78523,78524],{"class":2387},"\": model.satisfaction_prob, \"Shots\": n,\n",[533,78526,78527,78530,78532,78535,78537],{"class":535,"line":68554},[533,78528,78529],{"class":2387},"        \"Ones\": ones, \"p ",[533,78531,615],{"class":625},[533,78533,78534],{"class":2387},"observed",[533,78536,2632],{"class":625},[533,78538,78539],{"class":2387},"\": ones \u002F n if n > 0 else 0,\n",[533,78541,78542],{"class":535,"line":68575},[533,78543,78544],{"class":2387},"        \"CI 95% low\": lo, \"CI 95% high\": hi, \"CI width\": hi - lo,\n",[533,78546,78547],{"class":535,"line":68586},[533,78548,39858],{"class":2387},[533,78550,78551],{"class":535,"line":68597},[533,78552,78553],{"class":2387},"    for eps in epsilons:\n",[533,78555,78556,78559,78562,78565,78567,78570],{"class":535,"line":68608},[533,78557,78558],{"class":2387},"        row",[533,78560,78561],{"class":625},"[f\"Shots for ±{eps:.1%}\"]",[533,78563,78564],{"class":2387}," = shots_for_epsilon",[533,78566,615],{"class":625},[533,78568,78569],{"class":2387},"model.satisfaction_prob, eps",[533,78571,637],{"class":625},[533,78573,78574],{"class":535,"line":68619},[533,78575,78576],{"class":2387},"    return row\n",[533,78578,78579],{"class":535,"line":68624},[533,78580,891],{"emptyLinePlaceholder":790},[533,78582,78583],{"class":535,"line":68629},[533,78584,78585],{"class":593},"# --- Run Simulation ---\n",[533,78587,78588,78591],{"class":535,"line":68634},[533,78589,78590],{"class":2387},"summary_rows = ",[533,78592,78593],{"class":625},"[summarize_model(m, rng.binomial(1, m.satisfaction_prob, SHOTS_PER_MODEL), EPSILONS) for m in MODELS]\n",[533,78595,78596,78599,78601,78604],{"class":535,"line":68648},[533,78597,78598],{"class":2387},"summary_df = pd.DataFrame",[533,78600,615],{"class":625},[533,78602,78603],{"class":2387},"summary_rows",[533,78605,637],{"class":625},[533,78607,78608],{"class":535,"line":68660},[533,78609,78610],{"class":2387},"if COST_PER_SHOT_USD > 0 or FIXED_OVERHEAD_USD > 0:\n",[533,78612,78613,78616,78619,78622,78624,78627,78630,78632],{"class":535,"line":68666},[533,78614,78615],{"class":2387},"    summary_df",[533,78617,78618],{"class":625},"[\"Cost (USD)\"]",[533,78620,78621],{"class":2387}," = FIXED_OVERHEAD_USD ",[533,78623,6350],{"class":625},[533,78625,78626],{"class":2387}," summary_df",[533,78628,78629],{"class":625},"[\"Shots\"]",[533,78631,2254],{"class":625},[533,78633,78634],{"class":2387}," COST_PER_SHOT_USD\n",[533,78636,78637],{"class":535,"line":68671},[533,78638,891],{"emptyLinePlaceholder":790},[533,78640,78641,78643,78645,78647,78649,78651],{"class":535,"line":68678},[533,78642,43513],{"class":2387},[533,78644,615],{"class":625},[533,78646,9168],{"class":2387},[533,78648,615],{"class":625},[533,78650,439],{"class":2387},[533,78652,78653],{"class":593},"### Simulation Summary\"))\n",[533,78655,78656,78658,78660,78663,78665,78668,78670,78673,78675,78678],{"class":535,"line":68688},[533,78657,43513],{"class":2387},[533,78659,615],{"class":625},[533,78661,78662],{"class":2387},"summary_df.style.format",[533,78664,615],{"class":625},[533,78666,78667],{"class":2387},"precision=4",[533,78669,2632],{"class":625},[533,78671,78672],{"class":2387},".background_gradient",[533,78674,615],{"class":625},[533,78676,78677],{"class":2387},"cmap='viridis', subset=",[533,78679,78680],{"class":625},"['p (observed)', 'CI width']))\n",[533,78682,78683],{"class":535,"line":68693},[533,78684,891],{"emptyLinePlaceholder":790},[533,78686,78687],{"class":535,"line":68705},[533,78688,78689],{"class":593},"# --- Plotting ---\n",[533,78691,78692,78695,78697,78699],{"class":535,"line":68716},[533,78693,78694],{"class":2387},"plt.style.use",[533,78696,615],{"class":625},[533,78698,76910],{"class":2387},[533,78700,637],{"class":625},[533,78702,78703,78706,78708,78711,78713,78716,78718,78721,78723,78726],{"class":535,"line":68726},[533,78704,78705],{"class":2387},"fig, ",[533,78707,615],{"class":625},[533,78709,78710],{"class":2387},"ax1, ax2",[533,78712,2632],{"class":625},[533,78714,78715],{"class":2387}," = plt.subplots",[533,78717,615],{"class":625},[533,78719,78720],{"class":2387},"1, 2, figsize=",[533,78722,615],{"class":625},[533,78724,78725],{"class":2387},"16, 6",[533,78727,1937],{"class":625},[533,78729,78730],{"class":535,"line":68737},[533,78731,891],{"emptyLinePlaceholder":790},[533,78733,78734],{"class":535,"line":68742},[533,78735,78736],{"class":593},"# Plot 1\n",[533,78738,78739,78742,78745,78748],{"class":535,"line":68747},[533,78740,78741],{"class":2387},"y = summary_df",[533,78743,78744],{"class":625},"[\"p (observed)\"]",[533,78746,78747],{"class":2387},".to_numpy",[533,78749,1217],{"class":625},[533,78751,78752,78755],{"class":535,"line":68759},[533,78753,78754],{"class":2387},"lower_error = y - summary_df",[533,78756,78757],{"class":625},"[\"CI 95% low\"]\n",[533,78759,78760,78763,78766],{"class":535,"line":68770},[533,78761,78762],{"class":2387},"upper_error = summary_df",[533,78764,78765],{"class":625},"[\"CI 95% high\"]",[533,78767,78768],{"class":2387}," - y\n",[533,78770,78771,78774],{"class":535,"line":68779},[533,78772,78773],{"class":2387},"yerr = np.vstack",[533,78775,78776],{"class":625},"([np.abs(lower_error), np.abs(upper_error)])\n",[533,78778,78779],{"class":535,"line":68790},[533,78780,891],{"emptyLinePlaceholder":790},[533,78782,78783,78786,78788,78791,78794,78797],{"class":535,"line":68795},[533,78784,78785],{"class":2387},"ax1.bar",[533,78787,615],{"class":625},[533,78789,78790],{"class":2387},"summary_df",[533,78792,78793],{"class":625},"[\"Model\"]",[533,78795,78796],{"class":2387},", y, yerr=yerr, capsize=5, color='skyblue', edgecolor='black', ecolor='black'",[533,78798,637],{"class":625},[533,78800,78801,78804,78806,78809,78811,78814,78816,78819],{"class":535,"line":68800},[533,78802,78803],{"class":2387},"ax1.set_title",[533,78805,615],{"class":625},[533,78807,78808],{"class":2387},"\"Observed Success Rate ",[533,78810,615],{"class":625},[533,78812,78813],{"class":2387},"95% Wilson CI",[533,78815,2632],{"class":625},[533,78817,78818],{"class":2387},"\", fontsize=14",[533,78820,637],{"class":625},[533,78822,78823,78826,78828,78831],{"class":535,"line":68810},[533,78824,78825],{"class":2387},"ax1.tick_params",[533,78827,615],{"class":625},[533,78829,78830],{"class":2387},"axis='x', rotation=30, labelsize=10",[533,78832,637],{"class":625},[533,78834,78835],{"class":535,"line":68816},[533,78836,891],{"emptyLinePlaceholder":790},[533,78838,78839],{"class":535,"line":68830},[533,78840,78841],{"class":593},"# Plot 2\n",[533,78843,78844],{"class":535,"line":68835},[533,78845,78846],{"class":2387},"width = 0.2\n",[533,78848,78849,78852,78854,78856,78858,78861],{"class":535,"line":68845},[533,78850,78851],{"class":2387},"x = np.arange",[533,78853,615],{"class":625},[533,78855,15006],{"class":2387},[533,78857,615],{"class":625},[533,78859,78860],{"class":2387},"MODELS",[533,78862,1937],{"class":625},[533,78864,78865,78868],{"class":535,"line":68850},[533,78866,78867],{"class":2387},"colors = ",[533,78869,78870],{"class":625},"['#ff9999','#66b3ff','#99ff99']\n",[533,78872,78873,78876,78878,78881,78883],{"class":535,"line":68862},[533,78874,78875],{"class":2387},"for i, eps in enumerate",[533,78877,615],{"class":625},[533,78879,78880],{"class":2387},"EPSILONS",[533,78882,2632],{"class":625},[533,78884,544],{"class":2387},[533,78886,78887,78890],{"class":535,"line":68867},[533,78888,78889],{"class":2387},"    req = summary_df",[533,78891,78892],{"class":625},"[f\"Shots for ±{eps:.1%}\"]\n",[533,78894,78895,78898,78900,78902,78904,78906,78908,78911,78914,78917],{"class":535,"line":68872},[533,78896,78897],{"class":2387},"    ax2.bar",[533,78899,615],{"class":625},[533,78901,14994],{"class":2387},[533,78903,6350],{"class":625},[533,78905,2971],{"class":2387},[533,78907,2469],{"class":625},[533,78909,78910],{"class":2387}," width, req, width, label=f\"±{eps:.1%}\", color=colors",[533,78912,78913],{"class":625},"[i]",[533,78915,78916],{"class":2387},", edgecolor='black'",[533,78918,637],{"class":625},[533,78920,78921],{"class":535,"line":68894},[533,78922,891],{"emptyLinePlaceholder":790},[533,78924,78925,78928,78930,78932,78934,78937],{"class":535,"line":68899},[533,78926,78927],{"class":2387},"ax2.set_xticks",[533,78929,615],{"class":625},[533,78931,14994],{"class":2387},[533,78933,6350],{"class":625},[533,78935,78936],{"class":2387}," width, summary_df",[533,78938,78939],{"class":625},"[\"Model\"])\n",[533,78941,78942,78945,78947,78950,78952,78955,78957,78959],{"class":535,"line":68922},[533,78943,78944],{"class":2387},"ax2.set_ylabel",[533,78946,615],{"class":625},[533,78948,78949],{"class":2387},"\"Required Shots ",[533,78951,615],{"class":625},[533,78953,78954],{"class":2387},"Log Scale",[533,78956,2632],{"class":625},[533,78958,439],{"class":2387},[533,78960,637],{"class":625},[533,78962,78963,78966,78968,78970],{"class":535,"line":68933},[533,78964,78965],{"class":2387},"ax2.set_yscale",[533,78967,615],{"class":625},[533,78969,77561],{"class":2387},[533,78971,637],{"class":625},[533,78973,78974,78977,78979,78982],{"class":535,"line":68972},[533,78975,78976],{"class":2387},"ax2.set_title",[533,78978,615],{"class":625},[533,78980,78981],{"class":2387},"\"Shots Needed for ±ε Tolerance\", fontsize=14",[533,78983,637],{"class":625},[533,78985,78986,78989,78991,78993],{"class":535,"line":68982},[533,78987,78988],{"class":2387},"ax2.tick_params",[533,78990,615],{"class":625},[533,78992,78830],{"class":2387},[533,78994,637],{"class":625},[533,78996,78997,79000,79002,79005],{"class":535,"line":68992},[533,78998,78999],{"class":2387},"ax2.legend",[533,79001,615],{"class":625},[533,79003,79004],{"class":2387},"title=\"Tolerance\"",[533,79006,637],{"class":625},[533,79008,79009],{"class":535,"line":69011},[533,79010,891],{"emptyLinePlaceholder":790},[533,79012,79013,79016],{"class":535,"line":69029},[533,79014,79015],{"class":2387},"plt.tight_layout",[533,79017,1217],{"class":625},[533,79019,79020,79023],{"class":535,"line":69034},[533,79021,79022],{"class":2387},"plt.show",[533,79024,1217],{"class":625},[533,79026,79027],{"class":535,"line":69039},[533,79028,39090],{"class":2387},[533,79030,79031],{"class":535,"line":69051},[533,79032,891],{"emptyLinePlaceholder":790},[533,79034,79035,79038,79040,79043,79046],{"class":535,"line":69061},[533,79036,79037],{"class":543},"nb ",[533,79039,554],{"class":553},[533,79041,79042],{"class":543}," nbf.v4.",[533,79044,79045],{"class":560},"new_notebook",[533,79047,1217],{"class":543},[533,79049,79050,79053,79056,79058,79060],{"class":535,"line":69071},[533,79051,79052],{"class":543},"nb[",[533,79054,79055],{"class":621},"\"cells\"",[533,79057,11314],{"class":543},[533,79059,554],{"class":553},[533,79061,26997],{"class":543},[533,79063,79064,79067,79070],{"class":535,"line":69076},[533,79065,79066],{"class":543},"    nbf.v4.",[533,79068,79069],{"class":560},"new_markdown_cell",[533,79071,79072],{"class":543},"(md_intro),\n",[533,79074,79075,79077,79080],{"class":535,"line":69081},[533,79076,79066],{"class":543},[533,79078,79079],{"class":560},"new_code_cell",[533,79081,79082],{"class":543},"(code_config),\n",[533,79084,79085,79087,79089],{"class":535,"line":69089},[533,79086,79066],{"class":543},[533,79088,79079],{"class":560},[533,79090,79091],{"class":543},"(code_lib_and_run),\n",[533,79093,79094],{"class":535,"line":69099},[533,79095,14965],{"class":543},[533,79097,79098],{"class":535,"line":69114},[533,79099,891],{"emptyLinePlaceholder":790},[533,79101,79102,79105,79107],{"class":535,"line":69125},[533,79103,79104],{"class":543},"nb_path ",[533,79106,554],{"class":553},[533,79108,79109],{"class":621}," \"Sampling_Budget_Qubit_Bitstrings.ipynb\"\n",[533,79111,79112,79114,79116,79119,79121,79123,79126,79128,79131,79133,79135],{"class":535,"line":69137},[533,79113,76820],{"class":539},[533,79115,76823],{"class":553},[533,79117,79118],{"class":543},"(nb_path, ",[533,79120,76833],{"class":621},[533,79122,1133],{"class":543},[533,79124,79125],{"class":567},"encoding",[533,79127,554],{"class":553},[533,79129,79130],{"class":621},"\"utf-8\"",[533,79132,7047],{"class":543},[533,79134,584],{"class":539},[533,79136,76840],{"class":543},[533,79138,79139,79142,79145],{"class":535,"line":69142},[533,79140,79141],{"class":543},"    nbf.",[533,79143,79144],{"class":560},"write",[533,79146,79147],{"class":543},"(nb, f)\n",[533,79149,79150],{"class":535,"line":69149},[533,79151,891],{"emptyLinePlaceholder":790},[533,79153,79154],{"class":535,"line":69158},[533,79155,79156],{"class":593},"# ---------- Final confirmation ----------\n",[533,79158,79159,79161,79163,79165,79167,79169,79171,79174,79176,79178],{"class":535,"line":69172},[533,79160,917],{"class":553},[533,79162,615],{"class":543},[533,79164,439],{"class":621},[533,79166,7117],{"class":553},[533,79168,439],{"class":621},[533,79170,14257],{"class":553},[533,79172,79173],{"class":621}," \"=\"",[533,79175,2469],{"class":553},[533,79177,56355],{"class":625},[533,79179,637],{"class":543},[533,79181,79182,79184,79186,79189],{"class":535,"line":69183},[533,79183,917],{"class":553},[533,79185,615],{"class":543},[533,79187,79188],{"class":621},"\"SCRIPT COMPLETE\"",[533,79190,637],{"class":543},[533,79192,79193,79195,79197,79200,79202,79204],{"class":535,"line":69195},[533,79194,917],{"class":553},[533,79196,615],{"class":543},[533,79198,79199],{"class":621},"\"=\"",[533,79201,2469],{"class":553},[533,79203,56355],{"class":625},[533,79205,637],{"class":543},[533,79207,79208,79210,79212,79214,79217,79219,79222,79224,79226],{"class":535,"line":69200},[533,79209,917],{"class":553},[533,79211,615],{"class":543},[533,79213,618],{"class":539},[533,79215,79216],{"class":621},"\"Google Colab notebook saved to: ",[533,79218,626],{"class":625},[533,79220,79221],{"class":543},"nb_path",[533,79223,632],{"class":625},[533,79225,439],{"class":621},[533,79227,637],{"class":543},[533,79229,79230,79232,79234,79236,79239,79241,79244,79246,79248],{"class":535,"line":69205},[533,79231,917],{"class":553},[533,79233,615],{"class":543},[533,79235,618],{"class":539},[533,79237,79238],{"class":621},"\"Summary data saved to: ",[533,79240,626],{"class":625},[533,79242,79243],{"class":543},"summary_csv_path",[533,79245,632],{"class":625},[533,79247,439],{"class":621},[533,79249,637],{"class":543},[533,79251,79252,79254,79256,79258,79261,79263,79266,79268,79270,79272,79275,79277,79279],{"class":535,"line":69215},[533,79253,917],{"class":553},[533,79255,615],{"class":543},[533,79257,618],{"class":539},[533,79259,79260],{"class":621},"\"Plots saved to: ",[533,79262,626],{"class":625},[533,79264,79265],{"class":543},"fig1_path",[533,79267,632],{"class":625},[533,79269,1133],{"class":621},[533,79271,626],{"class":625},[533,79273,79274],{"class":543},"fig2_path",[533,79276,632],{"class":625},[533,79278,439],{"class":621},[533,79280,637],{"class":543},[524,79282,79285],{"className":79283,"code":79284,"language":31773,"meta":529},[38897],"Running simulation...\nSaved data to CSV and JSON files.\n",[57,79286,79284],{"__ignoreMap":529},[2175,79288],{"alt":65732,"src":79289},"\u002F_content\u002Fimages\u002Fsampling-budget-qubit-classifications\u002Foutput-01.webp",[2175,79291],{"alt":70549,"src":79292},"\u002F_content\u002Fimages\u002Fsampling-budget-qubit-classifications\u002Foutput-02.webp",[524,79294,79297],{"className":79295,"code":79296,"language":31773,"meta":529},[38897],"Generated and saved plots.\n",[57,79298,79296],{"__ignoreMap":529},[524,79300,79303],{"className":79301,"code":79302,"language":31773,"meta":529},[38897],"==================================================\nSCRIPT COMPLETE\n==================================================\nGoogle Colab notebook saved to: Sampling_Budget_Qubit_Bitstrings.ipynb\nSummary data saved to: summary.csv\nPlots saved to: fig_ones_fraction.png, fig_required_shots.png\n",[57,79304,79302],{"__ignoreMap":529},[10993,79306],{},[25,79308,10998],{"id":10997},[1267,79310,79311,79318,79325,79332,79339,79346,79353,79360,79367,79374,79381,79388,79395,79406,79413,79420],{},[756,79312,79313,79314,79317],{},"Agresti, A. and Coull, B.A. (1998) 'Approximate is better than “exact” for interval estimation of binomial proportions', ",[9404,79315,79316],{},"The American Statistician",", 52(2), pp. 119-126.",[756,79319,79320,79321,79324],{},"Brown, L.D., Cai, T.T. and DasGupta, A. (2001) 'Interval Estimation for a Binomial Proportion', ",[9404,79322,79323],{},"Statistical Science",", 16(2), pp. 101-133.",[756,79326,79327,79328,79331],{},"Cochran, W.G. (1977) ",[9404,79329,79330],{},"Sampling Techniques",". 3rd edn. New York: John Wiley & Sons.",[756,79333,79334,79335,79338],{},"Gottesman, D. (2009) 'An introduction to quantum error correction and fault-tolerant quantum computation', in ",[9404,79336,79337],{},"Quantum Information Science and Its Contributions to Mathematics, Proceedings of Symposia in Applied Mathematics",", 72, pp. 13-58.",[756,79340,79341,79342,79345],{},"Harris, C.R., Millman, K.J., van der Walt, S.J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N.J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M.H., Brett, M., Haldane, A., del Río, J.F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy, T., Weckesser, W., Abbasi, H., Gohlke, C. and Oliphant, T.E. (2020) 'Array programming with NumPy', ",[9404,79343,79344],{},"Nature",", 585, pp. 357–362.",[756,79347,79348,79349,79352],{},"Hunter, J.D. (2007) 'Matplotlib: A 2D Graphics Environment', ",[9404,79350,79351],{},"Computing in Science & Engineering",", 9(3), pp. 90-95.",[756,79354,79355,79356,79359],{},"Kitaev, A.Y. (2003) 'Fault-tolerant quantum computation by anyons', ",[9404,79357,79358],{},"Annals of Physics",", 303(1), pp. 2-30.",[756,79361,79362,79363,79366],{},"McKinney, W. (2010) 'Data Structures for Statistical Computing in Python', in ",[9404,79364,79365],{},"Proceedings of the 9th Python in Science Conference",", pp. 56-61.",[756,79368,79369,79370,79373],{},"Nayak, C., Simon, S.H., Stern, A., Freedman, M. and Das Sarma, S. (2008) 'Non-Abelian anyons and topological quantum computation', ",[9404,79371,79372],{},"Reviews of Modern Physics",", 80(3), pp. 1083-1159.",[756,79375,79376,79377,79380],{},"Newman, M. (2013) ",[9404,79378,79379],{},"Computational Physics",". CreateSpace Independent Publishing Platform.",[756,79382,79383,79384,79387],{},"Nielsen, M.A. and Chuang, I.L. (2010) ",[9404,79385,79386],{},"Quantum Computation and Quantum Information: 10th Anniversary Edition",". Cambridge: Cambridge University Press.",[756,79389,79390,79391,79394],{},"Preskill, J. (2018) 'Quantum Computing in the NISQ era and beyond', ",[9404,79392,79393],{},"Quantum",", 2, p. 79.",[756,79396,79397,79398,79401,79402,114],{},"The pandas development team (2020) ",[9404,79399,79400],{},"pandas-dev\u002Fpandas: Pandas",". Zenodo. Available at: ",[19,79403,79405],{"href":79404},"https:\u002F\u002Fwww.google.com\u002Fsearch?q=https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.3509134","https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.3509134",[756,79407,79408,79409,79412],{},"Virtanen, P., Gommers, R., Oliphant, T.E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., van der Walt, S.J., Brett, M., Wilson, J., Millman, K.J., Mayorov, N., Nelson, A.R.J., Jones, E., Kern, R., Larson, E., Carey, C.J., Polat, İ., Feng, Y., Moore, E.W., VanderPlas, J., Laxalde, D., Perktold, J., Cimrman, R., Henriksen, I., Quintero, E.A., Harris, C.R., Archibald, A.M., Ribeiro, A.H., Pedregosa, F., van Mulbregt, P. and SciPy 1.0 Contributors (2020) 'SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python', ",[9404,79410,79411],{},"Nature Methods",", 17, pp. 261–272.",[756,79414,79415,79416,79419],{},"Wilde, M.M. (2017) ",[9404,79417,79418],{},"Quantum Information Theory",". 2nd edn. Cambridge: Cambridge University Press.",[756,79421,79422,79423,79426],{},"Wilson, E.B. (1927) 'Probable inference, the law of succession, and statistical inference', ",[9404,79424,79425],{},"Journal of the American Statistical Association",", 22(158), pp. 209-212.",[25,79428,74835],{"id":74834},[12,79430,74838,79431,354,79433,114],{},[19,79432,9410],{"href":74896},[19,79434,74844],{"href":79435},"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FOJB-Quantum\u002FNotebooks-for-Ideas\u002Fblob\u002Fmain\u002FSampling_Budget_Analogy_for_Qubit_Classifications.ipynb",[773,79437,79438],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":79440},[79441,79442],{"id":10997,"depth":547,"text":10998},{"id":74834,"depth":547,"text":74835},[4349,4637,16782,79444],"Sampling budget",[79446],{"username":6135,"name":6133,"role":16786,"bio":16787,"links":79447},[79448,79449],{"label":4363,"href":16790},{"label":16792,"href":74896},{"username":6135,"name":6133,"role":16794},"A Sampling-Budget & Bit-String Analogy for Qubit Classifications. A notebook by Onri Jay Benally, republished with permission.",{},"\u002F_content\u002Fimages\u002Fsampling-budget-qubit-classifications\u002Foutput-01.png","\u002Fblog\u002Fexpert-notes\u002Fsampling-budget-qubit-classifications",[],{"title":74886,"description":79451},"blog\u002Fexpert-notes\u002Fsampling-budget-qubit-classifications",[16806,4383],"7DGuUZlBTzSWPcKt1TBSWfu7O3YbeK4q_mR9lMqJzes",{"id":79461,"title":79462,"authors":79463,"body":79464,"breadcrumb":79760,"builders":79762,"byline":7,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":79763,"description":79764,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":7,"lessonCount":7,"meta":79765,"navigation":790,"newsItems":7,"next":7,"ogImage":79766,"order":7,"outcomes":7,"path":79767,"publishDate":79768,"readingTime":7,"related":79769,"relatedProjects":7,"seo":79770,"stem":79773,"tags":79774,"track":7,"trackName":7,"__hash__":79777},"blog\u002Fblog\u002Fchangelog.md","What's new on Qollab",[1037],{"type":9,"value":79465,"toc":79758},[79466,79506,79522,79557,79573,79587,79593,79609,79645,79652,79668,79679,79694,79705,79712,79719,79726,79733,79741,79748],[79467,79468,79472,79482],"log-entry",{"date":79469,"tag":79470,"title":79471},"August 30, 2026","Editor","Create and edit projects in place",[12,79473,4657,79474,79477,79478,79481],{},[57,79475,79476],{},"\u002Fedit"," wizard is gone. Your project page is the editor: open it with ",[57,79479,79480],{},"?edit=1",", or Edit Project from the header menu, and the write-up, code, tags and contributors edit in place with autosave.",[753,79483,79484,79497],{},[756,79485,79486,79487,5037,79490,79492,79493,79496],{},"Publish tags the draft as the next ",[57,79488,79489],{},"v\u003Cmajor>.\u003Cminor>",[57,79491,8775],{},", then ",[57,79494,79495],{},"v1.1",") and makes it the public version. Versions can be set as default, hidden or deleted; title and slug are renamed from Settings.",[756,79498,79499,79500,1576,79503,79505],{},"New Project is a modal (title, description, Python or JS) that lands you in the editor. ",[57,79501,79502],{},"\u002Fnew",[57,79504,79476],{}," redirect.",[79467,79507,79509],{"date":79469,"tag":8038,"title":79508},"Project page rebuilt",[12,79510,79511,79512,1133,79515,1576,79518,79521],{},"Three tabs: Project Card, Code and Discussions. The card is the write-up with a table of contents, plus About, Contributors, Tags, Versions and Repositories in a sidebar; Code has code panes with Python and JS run views. Views are addressable as ",[57,79513,79514],{},"#code",[57,79516,79517],{},"#run",[57,79519,79520],{},"#discussions",". The project page and the forum have light and dark themes; the toggle is in the nav and follows your system setting until you pick one.",[79467,79523,79526,79535],{"date":79469,"tag":79524,"title":79525},"Runtime","matplotlib in the Playground",[12,79527,79528,1576,79531,79534],{},[57,79529,79530],{},"plt.show()",[57,79532,79533],{},"savefig()"," render in the output pane, in every format matplotlib can write, from anything that plots through pyplot, not only Qiskit's drawers.",[753,79536,79537,79548,79554],{},[756,79538,79539,79540,79543,79544,79547],{},"A figure saved and then shown renders once, and ",[57,79541,79542],{},"show()"," is one-shot per figure. ",[57,79545,79546],{},"savefig(path)"," renders the figure, with a download in the format you asked for, instead of writing it to the virtual filesystem.",[756,79549,79550,79553],{},[57,79551,79552],{},"circuit.draw('mpl')"," renders once; the Qiskit fork's MPLShim is gone.",[756,79555,79556],{},"Pyodide 314.0.6, qiskit-ibm-runtime 0.49.0, qiskit-braket-provider 0.23.1.",[79467,79558,79561],{"date":79469,"tag":79559,"title":79560},"Community","Forum rebuilt around the thread stream",[12,79562,79563,79566,79567,79570,79571,114],{},[57,79564,79565],{},"\u002Fforum"," is the stream of threads, newest first, loading as you scroll; categories are a scope strip above it. A topic page names the project the thread is about and has a share link. ",[57,79568,79569],{},"\u002Fforum\u002Flatest"," redirects to ",[57,79572,79565],{},[79467,79574,79577],{"date":79575,"tag":79576,"title":79576},"August 15, 2026","Search",[12,79578,79579,79580,79582,79583,79586],{},"Search from the nav (",[57,79581,2941],{}," focuses it): tags, projects and creators autocomplete as you type, and Enter opens ",[57,79584,79585],{},"\u002Fsearch",". That page is a fulltext search over project titles, descriptions, write-ups and code, with match excerpts, filters (framework, tags, last updated) and pagination. An empty search box shows popular projects, trending creators, popular tags and your recent searches, stored in your browser.",[79467,79588,79590],{"date":79575,"tag":79524,"title":79589},"Qiskit 2.5.2 and Pyodide 314.0.4",[12,79591,79592],{},"Qiskit 2.5.2 (fork rebased), PySCF 2.14.0, qiskit-ibm-runtime 0.48.0, qiskit-braket-provider 0.21.0 and Pyodide 314.0.4. rustworkx installs from PyPI, which ships a wasm32 wheel since 0.18.1.",[79467,79594,79596],{"date":79575,"tag":8038,"title":79595},"Math in project write-ups",[12,79597,79598,79599,1133,79602,79605,79606,79608],{},"TeX in project write-ups is rendered before the markdown pass, not after, so ",[57,79600,79601],{},"align",[57,79603,79604],{},"cases",", matrices and ",[57,79607,65703],{}," row breaks no longer come out as KaTeX errors.",[79467,79610,79614],{"date":79611,"tag":79612,"title":79613},"August 1, 2026","Site","Explore, Learn, Programs, Forum",[12,79615,79616,79617,79619,79620,79623,79624,79627,79628,689,79630,1133,79633,1133,79636,1133,79639,1576,79642,79505],{},"New top-level sections: ",[57,79618,4636],{}," (articles, showcases, expert notes, news and this changelog), ",[57,79621,79622],{},"\u002Flearn"," (courses) and ",[57,79625,79626],{},"\u002Fprograms",", home of the Grant Program (up to $20,000 in IonQ compute credits per project, rolling review). The forum is at ",[57,79629,79565],{},[57,79631,79632],{},"\u002Fcommunity",[57,79634,79635],{},"\u002Fchallenges",[57,79637,79638],{},"\u002Ftopics",[57,79640,79641],{},"\u002Ftags",[57,79643,79644],{},"\u002Frfp",[79467,79646,79649],{"date":79647,"tag":79648,"title":7560},"July 25, 2026","Backends",[12,79650,79651],{},"The AWS Braket local simulator is selectable as a backend, alongside qiskit-aer.",[79467,79653,79657],{"date":79654,"tag":79655,"title":79656},"July 8, 2026","Performance","Playground simulation ~2.6x faster",[12,79658,79659,79660,79663,79664,79667],{},"qiskit-aer was being compiled with ",[57,79661,79662],{},"-Oz",". Rebuilding it with ",[57,79665,79666],{},"-O2"," made statevector simulation about 2.67x faster, and Aer's AVX2 kernels now run on wasm through Emscripten's SIMD128 emulation.",[79467,79669,79672],{"date":79670,"tag":79524,"title":79671},"June 30, 2026","Python 3.14 in the browser",[12,79673,79674,79675,79678],{},"The in-browser runtime moved from Pyodide 0.29.4 to 314.0.1: Python 3.14, Emscripten 5.0.3, and the ",[57,79676,79677],{},"pyemscripten_2026"," wheel set.",[79467,79680,79683,79686],{"date":79681,"tag":79559,"title":79682},"June 29, 2026","Forum and project discussions",[12,79684,79685],{},"The Qollab forum is live, and every project page has a Community tab backed by it.",[753,79687,79688,79691],{},[756,79689,79690],{},"Discourse-backed, with avatars synced from your Qollab profile.",[756,79692,79693],{},"Author-deleted posts are hidden from search and excluded from comment counts.",[79467,79695,79699],{"date":79696,"tag":79697,"title":79698},"June 22, 2026","Profiles","Contributor directory and platform stats",[12,79700,79701,79704],{},[57,79702,79703],{},"\u002Fcontributor"," lists everyone building on Qollab. The homepage carries platform stats and a top-creator leaderboard, and both the gallery and profile pages paginate.",[79467,79706,79709],{"date":79707,"tag":79524,"title":79708},"June 9, 2026","qiskit-aer runs in the browser",[12,79710,79711],{},"qiskit-aer is built as a Pyodide\u002FEmscripten wheel and linked against OpenBLAS, so simulation runs locally with no backend round-trip. High-depth circuits now warn before you run them.",[79467,79713,79716],{"date":79714,"tag":79648,"title":79715},"June 6, 2026","IBM simulator backends",[12,79717,79718],{},"IBM simulators are selectable as backends, alongside the Qiskit sampler.",[79467,79720,79723],{"date":79721,"tag":79470,"title":79722},"May 13, 2026","Autosave and coauthors",[12,79724,79725],{},"Project content and code autosave as you work. Projects can list coauthors, so multi-builder work credits everyone.",[79467,79727,79730],{"date":79728,"tag":79470,"title":79729},"April 26, 2026","Video embeds in project write-ups",[12,79731,79732],{},"Project write-ups support YouTube and self-hosted video embeds.",[79467,79734,79738],{"date":79735,"tag":79736,"title":79737},"April 22, 2026","Playground","Run without an account",[12,79739,79740],{},"Circuits run without signing in. Sign in when you want to save or publish.",[79467,79742,79745],{"date":79743,"tag":5152,"title":79744},"February 22, 2026","Runs on real quantum hardware",[12,79746,79747],{},"Circuits run on real quantum hardware, not only simulators.",[48692,79749,79755],{"dark":529,"f1":79750,"f2":79751,"l1":79752,"l2":79753,"title":79754},"https:\u002F\u002Fqollab.xyz","https:\u002F\u002Fgithub.com\u002Fqollabxyz","Open the Playground","Follow on GitHub","Releases ship every week or two.",[12,79756,79757],{},"Source, issues, and release tags are on GitHub.",{"title":529,"searchDepth":547,"depth":547,"links":79759},[],[4349,4637,79761],"Product updates",[],"What shipped, when. Runtime and backend changes, Playground performance, and project tooling.","What shipped on Qollab: runtime and backend changes, Playground performance, the community forum, and project tooling. Updated as we release.",{},"\u002F_content\u002Fimages\u002Fog\u002Fqollab-og.png","\u002Fblog\u002Fchangelog","2026-07-10",[],{"title":79771,"description":79772},"Qollab changelog: runtime, backends, and Playground updates","What shipped on Qollab: the rebuilt project page with in-place editing, search, matplotlib in the Playground, Pyodide 314 \u002F Python 3.14, and the forum.","blog\u002Fchangelog",[79775,79776],"changelog","product","4Fe1L1PuYfXNS2fJHn2uoB18Sqv3DwFxNGPRs2PJF4k",{"id":79779,"title":79780,"authors":79781,"body":79782,"breadcrumb":80396,"builders":80397,"byline":80417,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":80418,"description":80419,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":80421,"hero":80423,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":80426,"navigation":790,"newsItems":7,"next":7,"ogImage":80427,"order":7,"outcomes":7,"path":80428,"publishDate":80429,"readingTime":74878,"related":80430,"relatedProjects":80431,"seo":80446,"stem":80449,"tags":80450,"track":7,"trackName":7,"__hash__":80453},"blog\u002Fblog\u002Fentangled-body.md","Project Showcase: Entangled Body",[2329],{"type":9,"value":79783,"toc":80389},[79784,79787,79790,79799,79803,79806,79813,79816,79820,79823,79828,79836,79842,79847,79851,79854,79858,79861,80335,80340,80343,80347,80350,80355,80358,80366,80371,80374,80377,80386],[12,79785,79786],{},"Entangled Body is a point-cloud human figure whose parts respond to each other across distance. Touch one region and somewhere else reacts; move your viewpoint and the body reveals itself differently.",[12,79788,79789],{},"Body regions are mapped to qubits. Measured bits, count distributions and correlations drive how the body activates and how strongly regions connect. They also decide how it resolves from scattered particles into a more stable form.",[79791,79792,79796],"pull-quote",{"avatar":79793,"name":79794,"role":79795,"username":2329},"\u002F_content\u002Fimages\u002Fbuilders\u002Fluke-shim.webp","Luke Shim","Developer, Entangled Body",[12,79797,79798],{},"Once I built my own BB84 simulator and could see how measurement, basis choice, and eavesdropping affected outcomes, quantum mechanics stopped feeling like abstract physics and started feeling like a new computational medium.",[25,79800,79802],{"id":79801},"an-unseen-connection","An unseen connection",[12,79804,79805],{},"For Chanhyuk, the way in wasn't an equation. It was a memory of a traditional Chinese medicine clinic, and the strange logic of treating one part of the body by touching another.",[79791,79807,79810],{"avatar":529,"name":79808,"role":79809,"username":529},"Chanhyuk Park","Project lead, Entangled Body",[12,79811,79812],{},"I went because my wrist hurt, but the practitioner placed an acupuncture needle around my ankle. I am not making a medical claim from that experience, but it stayed with me as a metaphor for unseen connections inside the body.",[12,79814,79815],{},"Entanglement gave that intuition a name: a way to think about invisible relationships between separate things. The project grew out of that pairing, a felt idea about the body, and a quantum phenomenon that made it concrete.",[25,79817,79819],{"id":79818},"a-body-made-of-relations","A body made of relations",[12,79821,79822],{},"The figure they chose is a point-cloud astronaut on the moon, rendered as drifting particles rather than a solid form.",[79791,79824,79825],{"avatar":529,"name":79808,"role":79809,"username":529},[12,79826,79827],{},"An astronaut cannot exist alone in space; the body depends on the suit, life-support systems, communication signals, and the surrounding environment. Rendered as a point cloud, the astronaut becomes a temporary body made of data and particles, present but constantly dissolving and re-forming.",[12,79829,79830,79831,79835],{},"The visual language borrows from the artist ",[19,79832,79834],{"href":79833},"https:\u002F\u002Farchive.bridgesmathart.org\u002F2010\u002Fbridges2010-3.pdf","Julian Voss-Andreae",", whose sculptures appear or disappear depending on where you stand. That idea, that observation changes what becomes visible, is the heart of the piece.",[2175,79837],{"caption":79838,"no":79839,"alt":79840,"src":79841},"_Quantum Man_ (2006) by Julian Voss-Andreae, the same sculpture from three viewpoints. Built from vertical steel sheets, it reads as a solid body head-on and nearly vanishes edge-on. Photo by the artist, [CC BY 2.5](https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F2.5\u002F).","Fig. 1","The same steel sculpture of a walking figure photographed from three angles: solid and legible head-on, breaking into stacked slats from an angle, and almost transparent edge-on","\u002F_content\u002Fimages\u002Fentangled-body\u002Fvoss-andreae-quantum-man.webp",[79791,79843,79844],{"avatar":529,"name":79808,"role":79809,"username":529},[12,79845,79846],{},"Entangled Body also explores how observation changes what becomes visible. We did not want it to feel like a science diagram; we wanted it to feel like an artwork first.",[25,79848,79850],{"id":79849},"how-the-quantum-drives-the-body","How the quantum drives the body",[12,79852,79853],{},"The quantum layer isn't only a theme; it shapes what you see. And they ran it on real hardware rather than a clean simulator.",[2175,79855],{"caption":79856,"no":79857,"poster":2179,"video":2180},"A touch on the point cloud rippling through the body graph as the circuit re-runs on real hardware. Press play, sound on.","Fig. 2",[12,79859,79860],{},"The function that turns a touch into a circuit is compact enough to read in one sitting:",[519,79862,79863],{"name":2191,"run-href":692,"tag":522},[524,79864,79867],{"className":526,"code":79865,"language":528,"meta":79866,"style":529},"# How a touch becomes a circuit. Excerpt from entangled_body_demo.py.\nfrom qiskit import QuantumCircuit\n\ndef build_ops(region, intensity, interaction):\n    \"\"\"Ops for the graph-collapse circuit anchored on the touched region.\"\"\"\n    observed = region if region in QUBIT_OF else \"torso\"\n    distances = spatial_graph_distances(observed)   # Dijkstra through the body graph\n    max_distance = max(d for d in distances.values() if d != float(\"inf\"))\n    ops = []\n    for rid, qubit, _ in REGIONS:\n        prob = _target_probability(observed, rid, distances[rid], max_distance, intensity, interaction)\n        ops.append((\"ry\", qubit, _prob_to_ry(prob)))\n    for src, tgt, strength in _ranked_links(distances, interaction):\n        s = max(0.05, min(1.0, strength))\n        ops.append((\"rzz\", QUBIT_OF[src], QUBIT_OF[tgt], _edge_angle(s, interaction)))\n    return ops\n\ndef build_circuit(ops, measure=True):\n    qc = QuantumCircuit(QUBIT_COUNT, QUBIT_COUNT)\n    for op in ops:\n        if op[0] == \"ry\":\n            qc.ry(op[2], op[1])\n        elif op[0] == \"rzz\":\n            qc.rzz(op[3], op[1], op[2])\n    if measure:\n        qc.measure(range(QUBIT_COUNT), range(QUBIT_COUNT))\n    return qc\n","· excerpt",[57,79868,79869,79874,79884,79888,79912,79917,79941,79957,79998,80007,80021,80034,80070,80082,80105,80140,80147,80151,80172,80201,80213,80231,80250,80267,80287,80294,80328],{"__ignoreMap":529},[533,79870,79871],{"class":535,"line":536},[533,79872,79873],{"class":593},"# How a touch becomes a circuit. Excerpt from entangled_body_demo.py.\n",[533,79875,79876,79878,79880,79882],{"class":535,"line":547},[533,79877,877],{"class":539},[533,79879,880],{"class":543},[533,79881,883],{"class":539},[533,79883,1106],{"class":543},[533,79885,79886],{"class":535,"line":575},[533,79887,891],{"emptyLinePlaceholder":790},[533,79889,79890,79892,79895,79897,79900,79902,79905,79907,79910],{"class":535,"line":590},[533,79891,1754],{"class":539},[533,79893,79894],{"class":560}," build_ops",[533,79896,615],{"class":543},[533,79898,79899],{"class":1762},"region",[533,79901,1133],{"class":543},[533,79903,79904],{"class":1762},"intensity",[533,79906,1133],{"class":543},[533,79908,79909],{"class":1762},"interaction",[533,79911,1771],{"class":543},[533,79913,79914],{"class":535,"line":597},[533,79915,79916],{"class":621},"    \"\"\"Ops for the graph-collapse circuit anchored on the touched region.\"\"\"\n",[533,79918,79919,79922,79924,79927,79929,79931,79933,79936,79938],{"class":535,"line":603},[533,79920,79921],{"class":543},"    observed ",[533,79923,554],{"class":553},[533,79925,79926],{"class":543}," region ",[533,79928,5724],{"class":539},[533,79930,79926],{"class":543},[533,79932,2786],{"class":539},[533,79934,79935],{"class":625}," QUBIT_OF",[533,79937,13803],{"class":539},[533,79939,79940],{"class":621}," \"torso\"\n",[533,79942,79943,79946,79948,79951,79954],{"class":535,"line":609},[533,79944,79945],{"class":543},"    distances ",[533,79947,554],{"class":553},[533,79949,79950],{"class":560}," spatial_graph_distances",[533,79952,79953],{"class":543},"(observed)   ",[533,79955,79956],{"class":593},"# Dijkstra through the body graph\n",[533,79958,79959,79962,79964,79966,79969,79971,79973,79975,79978,79980,79982,79984,79986,79989,79991,79993,79996],{"class":535,"line":640},[533,79960,79961],{"class":543},"    max_distance ",[533,79963,554],{"class":553},[533,79965,2224],{"class":553},[533,79967,79968],{"class":543},"(d ",[533,79970,3180],{"class":539},[533,79972,12802],{"class":543},[533,79974,2786],{"class":539},[533,79976,79977],{"class":543}," distances.",[533,79979,2924],{"class":560},[533,79981,16535],{"class":543},[533,79983,5724],{"class":539},[533,79985,12802],{"class":543},[533,79987,79988],{"class":553},"!=",[533,79990,66932],{"class":553},[533,79992,615],{"class":543},[533,79994,79995],{"class":621},"\"inf\"",[533,79997,1937],{"class":543},[533,79999,80000,80003,80005],{"class":535,"line":646},[533,80001,80002],{"class":543},"    ops ",[533,80004,554],{"class":553},[533,80006,42383],{"class":543},[533,80008,80009,80011,80014,80016,80019],{"class":535,"line":658},[533,80010,12659],{"class":539},[533,80012,80013],{"class":543}," rid, qubit, _ ",[533,80015,2786],{"class":539},[533,80017,80018],{"class":625}," REGIONS",[533,80020,544],{"class":543},[533,80022,80023,80026,80028,80031],{"class":535,"line":680},[533,80024,80025],{"class":543},"        prob ",[533,80027,554],{"class":553},[533,80029,80030],{"class":560}," _target_probability",[533,80032,80033],{"class":543},"(observed, rid, distances[rid], max_distance, intensity, interaction)\n",[533,80035,80036,80039,80041,80043,80046,80049,80052,80055,80068],{"class":535,"line":1536},[533,80037,80038],{"class":543},"        ops.",[533,80040,6216],{"class":560},[533,80042,6219],{"class":543},[533,80044,80045],{"class":621},"\"ry\"",[533,80047,80048],{"class":543},", qubit, ",[533,80050,80051],{"class":560},"_prob_to_ry",[533,80053,80054],{"class":543},"(prob)))",[533,80056,80059,80060],{"class":80057,"tabindex":80058},"qg-help",0,"?",[533,80061,80064,80067],{"class":80062,"role":80063},"qg-help__tip","tooltip",[974,80065,80066],{},"One qubit per region."," The Ry angle sets how \"on\" that region should be: near-certain at the touched point, less certain the further it sits in the anatomical graph.",[533,80069,1113],{},[533,80071,80072,80074,80076,80078,80080],{"class":535,"line":1552},[533,80073,12659],{"class":539},[533,80075,6171],{"class":543},[533,80077,2786],{"class":539},[533,80079,6176],{"class":560},[533,80081,6179],{"class":543},[533,80083,80084,80087,80089,80091,80093,80095,80097,80099,80101,80103],{"class":535,"line":1911},[533,80085,80086],{"class":543},"        s ",[533,80088,554],{"class":553},[533,80090,2224],{"class":553},[533,80092,615],{"class":543},[533,80094,6195],{"class":625},[533,80096,1133],{"class":543},[533,80098,2234],{"class":553},[533,80100,615],{"class":543},[533,80102,2239],{"class":625},[533,80104,6206],{"class":543},[533,80106,80107,80109,80111,80113,80115,80117,80119,80121,80123,80125,80127,80130,80138],{"class":535,"line":1940},[533,80108,80038],{"class":543},[533,80110,6216],{"class":560},[533,80112,6219],{"class":543},[533,80114,6222],{"class":621},[533,80116,1133],{"class":543},[533,80118,6227],{"class":625},[533,80120,6230],{"class":543},[533,80122,6227],{"class":625},[533,80124,6235],{"class":543},[533,80126,6238],{"class":560},[533,80128,80129],{"class":543},"(s, interaction)))",[533,80131,80059,80132],{"class":80057,"tabindex":80058},[533,80133,80134,80137],{"class":80062,"role":80063},[974,80135,80136],{},"Anatomical entanglement."," Rzz couples two qubits with a strength taken from the real body graph: head-to-chest is a strong link, torso-to-left-foot has no direct edge at all.",[533,80139,1113],{},[533,80141,80142,80144],{"class":535,"line":1968},[533,80143,1880],{"class":539},[533,80145,80146],{"class":543}," ops\n",[533,80148,80149],{"class":535,"line":1995},[533,80150,891],{"emptyLinePlaceholder":790},[533,80152,80153,80155,80158,80160,80162,80164,80166,80168,80170],{"class":535,"line":4164},[533,80154,1754],{"class":539},[533,80156,80157],{"class":560}," build_circuit",[533,80159,615],{"class":543},[533,80161,3824],{"class":1762},[533,80163,1133],{"class":543},[533,80165,1164],{"class":1762},[533,80167,554],{"class":543},[533,80169,1958],{"class":625},[533,80171,1771],{"class":543},[533,80173,80174,80176,80178,80180,80182,80185,80187,80189,80191,80199],{"class":535,"line":4199},[533,80175,1778],{"class":543},[533,80177,554],{"class":553},[533,80179,1126],{"class":560},[533,80181,615],{"class":543},[533,80183,80184],{"class":625},"QUBIT_COUNT",[533,80186,1133],{"class":543},[533,80188,80184],{"class":625},[533,80190,2632],{"class":543},[533,80192,80059,80193],{"class":80057,"tabindex":80058},[533,80194,80195,80198],{"class":80062,"role":80063},[974,80196,80197],{},"14 qubits, 14 regions."," Head to left foot, every body part the installation tracks lives in one entangled circuit, not 14 separate ones.",[533,80200,1113],{},[533,80202,80203,80205,80208,80210],{"class":535,"line":4206},[533,80204,12659],{"class":539},[533,80206,80207],{"class":543}," op ",[533,80209,2786],{"class":539},[533,80211,80212],{"class":543}," ops:\n",[533,80214,80215,80217,80220,80222,80224,80226,80229],{"class":535,"line":4214},[533,80216,2762],{"class":539},[533,80218,80219],{"class":543}," op[",[533,80221,1049],{"class":625},[533,80223,11314],{"class":543},[533,80225,2768],{"class":553},[533,80227,80228],{"class":621}," \"ry\"",[533,80230,544],{"class":543},[533,80232,80233,80236,80238,80241,80243,80246,80248],{"class":535,"line":11296},[533,80234,80235],{"class":543},"            qc.",[533,80237,1652],{"class":560},[533,80239,80240],{"class":543},"(op[",[533,80242,1140],{"class":625},[533,80244,80245],{"class":543},"], op[",[533,80247,1052],{"class":625},[533,80249,3272],{"class":543},[533,80251,80252,80254,80256,80258,80260,80262,80265],{"class":535,"line":11302},[533,80253,2863],{"class":539},[533,80255,80219],{"class":543},[533,80257,1049],{"class":625},[533,80259,11314],{"class":543},[533,80261,2768],{"class":553},[533,80263,80264],{"class":621}," \"rzz\"",[533,80266,544],{"class":543},[533,80268,80269,80271,80273,80275,80277,80279,80281,80283,80285],{"class":535,"line":11332},[533,80270,80235],{"class":543},[533,80272,1675],{"class":560},[533,80274,80240],{"class":543},[533,80276,1157],{"class":625},[533,80278,80245],{"class":543},[533,80280,1052],{"class":625},[533,80282,80245],{"class":543},[533,80284,1140],{"class":625},[533,80286,3272],{"class":543},[533,80288,80289,80291],{"class":535,"line":11345},[533,80290,1814],{"class":539},[533,80292,80293],{"class":543}," measure:\n",[533,80295,80296,80298,80300,80302,80304,80306,80308,80310,80312,80314,80316,80318,80326],{"class":535,"line":11372},[533,80297,1824],{"class":543},[533,80299,1164],{"class":560},[533,80301,615],{"class":543},[533,80303,6692],{"class":553},[533,80305,615],{"class":543},[533,80307,80184],{"class":625},[533,80309,3945],{"class":543},[533,80311,6692],{"class":553},[533,80313,615],{"class":543},[533,80315,80184],{"class":625},[533,80317,14555],{"class":543},[533,80319,80059,80320],{"class":80057,"tabindex":80058},[533,80321,80322,80325],{"class":80062,"role":80063},[974,80323,80324],{},"The noise stays in."," Run on real IonQ hardware, this measurement carries genuine hardware noise. Luke and Chanhyuk kept it rather than smoothing it away, since the body is meant to always be becoming, not fixed.",[533,80327,1113],{},[533,80329,80330,80332],{"class":535,"line":11385},[533,80331,1880],{"class":539},[533,80333,80334],{"class":543}," qc\n",[79791,80336,80337],{"avatar":79793,"name":79794,"role":79795,"username":2329},[12,80338,80339],{},"For Entangled Body, that unpredictability was actually valuable. The project explores the idea that a digital body is constantly becoming rather than remaining fixed. Hardware noise and probabilistic measurement outcomes contributed to that feeling. Instead of treating quantum uncertainty as a problem, we treated it as part of the artistic and interactive experience.",[12,80341,80342],{},"That is the move that gives the piece its texture: the noise isn't hidden or normalized away. The body is always becoming, dissolving and re-forming, precisely because the measurements vary from run to run.",[25,80344,80346],{"id":80345},"where-it-could-go","Where it could go",[12,80348,80349],{},"Entangled Body is open for forking, and both builders want to push the connection between quantum behavior and the body further. For Luke, the direction is structural.",[79791,80351,80352],{"avatar":79793,"name":79794,"role":79795,"username":2329},[12,80353,80354],{},"The core idea is treating quantum mechanics as part of the engine itself rather than simply a theme. I'd love to see multi-user entangled bodies that influence each other through shared quantum states, or artwork that continuously responds to live quantum measurements.",[12,80356,80357],{},"Chanhyuk wants it to leave the screen entirely: with gesture input, motion tracking, or spatial sound, the audience's own body could begin to affect the point-cloud body and become part of the work, turning it into an interactive installation or performance.",[12,80359,80360,80361,80365],{},"For developers coming from outside quantum, his advice is to start visual and small: tools like ",[19,80362,80364],{"href":80363},"https:\u002F\u002Fthreejs.org","Three.js",", p5.js, and shaders for intuition about systems and state, paired with IonQ's docs, IBM Quantum Learning, Qiskit, and PennyLane, and to pick one idea, like measurement or entanglement, and build a small visual experiment around it.",[79791,80367,80368],{"avatar":529,"name":79808,"role":79809,"username":529},[12,80369,80370],{},"You do not always have to enter a field through its most technical door. Quantum became less intimidating when I stopped thinking of it only as equations and started seeing it as a way to think about invisible relationships, how separate parts of a body, or even separate people, can still affect one another.",[25,80372,80373],{"id":4321},"Make it yours",[12,80375,80376],{},"If you want to see entanglement as something a body does rather than something an equation describes, Entangled Body is a good place to start. It is open for forking on Qollab and GitHub, with a live experience you can move through right now.",[4321,80378,80381],{"fork-href":692,"live-href":80379,"title":80380},"https:\u002F\u002Fentangledbody.com","See the body that only exists in relation.",[12,80382,80383,80384],{},"Fork Entangled Body, map your own regions to qubits, and let real measurements shape the figure. ",[974,80385,4329],{},[773,80387,80388],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":80390},[80391,80392,80393,80394,80395],{"id":79801,"depth":547,"text":79802},{"id":79818,"depth":547,"text":79819},{"id":79849,"depth":547,"text":79850},{"id":80345,"depth":547,"text":80346},{"id":4321,"depth":547,"text":80373},[4349,4637,2330],[80398,80407],{"name":79808,"role":80399,"avatar":529,"bio":80400,"links":80401},"Project lead · University of Hong Kong","A computer-engineering student at the University of Hong Kong working in frontend systems, real-time rendering, and cloud infrastructure. On Entangled Body he led the interactive layer, the point-cloud visualization, the interaction design, and how the body behaves. He came to quantum through a collaboration and a personal memory, not a physics course.",[80402,80405],{"label":80403,"href":80404},"LinkedIn ↗","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fchanhyuk-park77177",{"label":4363,"href":80406},"https:\u002F\u002Fgithub.com\u002FStree0408",{"username":2329,"name":79794,"role":80408,"avatar":79793,"bio":80409,"links":80410},"Developer · National University of Singapore","A computer-science student at the National University of Singapore focused on quantum computing and algorithm design, with QKD prototypes (BB84, E91) on GitHub. On Entangled Body he built the system architecture and the generative logic that shapes the body's structure, relationships, and state transitions. He likes turning abstract physics into interactive systems.",[80411,80413,80415],{"label":4360,"href":80412},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Flukeshim",{"label":80403,"href":80414},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Flukeshim030408\u002F",{"label":4363,"href":80416},"https:\u002F\u002Fgithub.com\u002Flukeshim03",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Chanhyuk Park and Luke Shim built a point-cloud body whose parts respond to each other across distance, entanglement you can see.","Chanhyuk Park and Luke Shim built a point-cloud human figure whose parts respond across distance: entanglement you can see. A Qollab Creative Challenge project.","Quantum Creative Challenge · Spring 2026",{"href":692,"label":80422},"Fork Entangled Body",{"image":2179,"alt":80424,"liveUrl":80379},"Entangled Body: a point-cloud astronaut on the moon, its right arm node mapped to a 14-qubit RY→RZZ→measure circuit running on the IonQ simulator","news",{},"\u002F_content\u002Fimages\u002Fentangled-body\u002Fhero.jpg","\u002Fblog\u002Fentangled-body","2026-07-05",[],[80432,80436,80443],{"username":6804,"project":80433,"title":6805,"category":80434,"thumb":6806,"to":80435},"quantum-butterfly-field","Art","\u002Fexplore\u002Fquantum-butterfly-field",{"username":80437,"project":80438,"title":80439,"category":80440,"thumb":80441,"to":80442},"incomputable","francisco","Superposition Sequencer","Music","\u002F_content\u002Fimages\u002Fsuperposition-sequencer\u002Fscreenshot.webp","\u002Fexplore\u002Fsuperposition-sequencer",{"username":3092,"project":80444,"title":3093,"category":80440,"thumb":2743,"to":80445},"musiq","\u002Fexplore\u002Fmusiq",{"title":80447,"description":80448},"Quantum Creative Project Showcase: Entangled Body","A point-cloud body whose parts respond to each other across distance. Built by Chanhyuk Park and Luke Shim for Qollab's Creative Challenge.","blog\u002Fentangled-body",[80451,4383,80452],"art","generative","4bS6PdJv6wooK-qnAN4OyLWY177s7kKi20DNmND7xwM",{"id":80455,"title":80456,"authors":80457,"body":80458,"breadcrumb":80462,"builders":80464,"byline":7,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":80465,"description":80466,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":80467,"navigation":790,"newsItems":80468,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":80497,"publishDate":80429,"readingTime":7,"related":80498,"relatedProjects":7,"seo":80499,"stem":80502,"tags":80503,"track":7,"trackName":7,"__hash__":80504},"blog\u002Fblog\u002Fnews.md","News & open calls",[1037],{"type":9,"value":80459,"toc":80460},[],{"title":529,"searchDepth":547,"depth":547,"links":80461},[],[4349,4637,80463],"News",[],"Open calls, programs, and what's new on Qollab. Get funded, get involved, and keep up with the platform.","Open calls, programs, and product updates from Qollab. Apply to the Creative Challenge, become an ambassador, and see what's new on the platform.",{},[80469,80475,80480,80486,80492],{"title":80470,"desc":80471,"date":80472,"href":80473,"cta":80474},"Google withheld an ECDSA circuit","A forged zero-knowledge proof, an independent reconstruction, and an agent-driven leaderboard. What the episode says about checkable work.","August 26, 2026","\u002Fexplore\u002Fgoogle-ecdsa-circuit-nine-weeks","Read the piece",{"title":79462,"desc":80476,"date":80477,"href":80478,"cta":80479},"Playground upgrades, new features, and shipped improvements. The running changelog.","June 24, 2026","\u002Fexplore\u002Fchangelog","See the changelog",{"title":80481,"desc":80482,"date":80483,"href":80484,"cta":80485},"Meet the Spring 2026 cohort","13 teams building on real IonQ hardware: tools, music, visualizations, and games. The lineup, project by project.","May 5, 2026","\u002Fexplore\u002Fspring-2026-cohort","Read the roundup",{"title":80487,"desc":80488,"date":80489,"href":80490,"cta":80491},"Become a Qollab Ambassador","Champion quantum in your community and earn monthly IonQ hardware credits.","May 1, 2026","\u002Fexplore\u002Fambassadors","Learn more",{"title":80493,"desc":80494,"date":80495,"href":80496,"cta":80491},"Creative Challenge: submissions closed","Grants and IonQ compute credits for open-source quantum projects. The call is closed — see what the funded teams built.","April 7, 2026","\u002Fexplore\u002Fcreative-challenge","\u002Fblog\u002Fnews",[],{"title":80500,"description":80501},"What's Happening on Qollab","Open calls, programs, and product updates from the quantum developer community.","blog\u002Fnews",[80425,4383],"70KfgXn1_W2jzN8Gswgcmc5YWN76oADetfI-bNY0Py8",{"id":80506,"title":80507,"authors":80508,"body":80509,"breadcrumb":81093,"builders":81094,"byline":81108,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":81109,"description":81110,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":81111,"hero":81113,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":81115,"navigation":790,"newsItems":7,"next":7,"ogImage":81116,"order":7,"outcomes":7,"path":81117,"publishDate":80429,"readingTime":74878,"related":81118,"relatedProjects":81119,"seo":81130,"stem":81133,"tags":81134,"track":7,"trackName":7,"__hash__":81137},"blog\u002Fblog\u002Fsuperposition-sequencer.md","Project Showcase: Superposition Sequencer",[80437],{"type":9,"value":80510,"toc":81086},[80511,80514,80517,80520,80528,80532,80535,80538,80541,80546,80549,80552,80555,80559,80562,80565,80570,80573,80576,80580,80583,81044,81048,81051,81054,81059,81062,81066,81069,81071,81074,81083],[12,80512,80513],{},"Superposition Sequencer is a web-based quantum music tool that turns superposition and entanglement into something you can hear.",[12,80515,80516],{},"The interface looks like a normal sequencer, with drums, percussion, chords, and melodies. But the notes are not programmed directly, they are generated by running quantum circuits live on IonQ hardware, with a simulator as a fallback. You design a circuit in a visual editor, and its measured output drives the pattern: pitch, rhythm, velocity, timbre.",[12,80518,80519],{},"We're building Qollab with one question in mind: what does quantum computing look like outside the lab, in practical use across different industries? Superposition Sequencer answers that nicely for the music industry.",[79791,80521,80525],{"avatar":80522,"name":80523,"role":80524,"username":80437},"\u002F_content\u002Fimages\u002Fbuilders\u002Ffrancisco-estivallet.webp","Francisco Estivallet","Creator, Superposition Sequencer",[12,80526,80527],{},"I don't work with quantum regularly, but every few years I go back to it, study it a little, and get my mind blown. Then I forget about it, come back, and it happens again.",[25,80529,80531],{"id":80530},"an-instrument-not-an-experiment","An instrument, not an experiment",[12,80533,80534],{},"Francisco's way in wasn't physics; it was history. The early days of computing and electronics, he points out, came with a wave of musical exploration that opened entirely new ways to make sound, with outsized cultural influence.",[12,80536,80537],{},"Francisco believes that quantum is in a similar moment, and that the way to meet it is to make it less intimidating. Of all his quantum-and-music ideas, a sequencer felt like the most approachable first step.",[12,80539,80540],{},"Here the composer builds the circuit, and the quantum hardware is the instrument. Superposition Sequencer also leans into something most engineers spend their time trying to eliminate.",[79791,80542,80543],{"avatar":80522,"name":80523,"role":80524,"username":80437},[12,80544,80545],{},"In sound design, people are always looking for ways to make things sound a little imperfect. That little bit of noise is also a characteristic of quantum computers, so it could bring a new personality to the sound itself.",[12,80547,80548],{},"The sequencer is built for producers to generate full tracks, not just fragments. You can export a run as MIDI and drop it straight into Ableton or any other music software.",[12,80550,80551],{},"Circuits and the patterns they generate can be exported, saved, loaded, and reused, so you build up a personal library of quantum musical ideas, much like a hardware synth's patch memory.",[12,80553,80554],{},"A downloadable library of pre-executed sequences even lets musicians use the output without their own hardware access.",[25,80556,80558],{"id":80557},"how-francisco-built-it","How Francisco built it",[12,80560,80561],{},"Francisco's first prototype looked nothing like a sequencer. It was a rotating sphere whose cursor struck different notes as it turned, leaning on the geometric way we usually picture quantum states. It didn't fit the metaphors he was after, so he went back to something more familiar: a step sequencer where each track line is a single shot of the circuit.",[12,80563,80564],{},"Under the hood, Qiskit builds the circuits and each run, on IonQ or the local simulator, produces probability distributions or entangled measurement outcomes that map onto musical parameters: pitch selection, rhythm, velocity, timbre. The circuits are fully parameterized, so you can modify them without a full recompile and explore how each change reshapes the sound. Entanglement has its own audible signature: the sounds of two entangled qubits are ring-modulated against each other. A correlation you would otherwise read off a chart becomes something you hear.",[79791,80566,80567],{"avatar":80522,"name":80523,"role":80524,"username":80437},[12,80568,80569],{},"Each line is one shot of the circuit. It's that randomness and change between shots that creates the beat.",[12,80571,80572],{},"On the audio side, Tone.js handles sample-accurate scheduling, synthesis, and effects, all fed by the quantum-generated modulations. The app is fully serverless: a SvelteKit front end (with Threlte and Three.js driving the live Bloch spheres) talks to a stateless FastAPI service running Qiskit, which builds the circuit, extracts each qubit's Bloch vector layer by layer, and samples outcomes from the full statevector. Qiskit Aer and IonQ sit behind the same API.",[12,80574,80575],{},"To keep it responsive, frequently-used patterns are precomputed and cached while rare or highly-parameterized circuits trigger fresh hardware runs, balancing hardware cost against live interactivity.",[2175,80577],{"caption":80578,"no":79839,"poster":80441,"video":80579},"Building a circuit in the visual editor and hearing it drive the sequencer. Press play, sound on.","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F2b1e9e5e-f28d-4ce2-8374-c59cdb281806",[12,80581,80582],{},"The same circuit renders to music outside the browser, too. This is the gist of the script you can copy onto Qollab's Playground to turn a circuit into a MIDI file: each qubit is a track, each shot is a beat, and a separate track writes how entangled each pair of qubits is as a MIDI control signal.",[519,80584,80588],{"name":80585,"run-href":80586,"tag":80587},"render_midi.py","\u002Fu\u002Fincomputable\u002Fsuperposition-sequencer","Python",[524,80589,80591],{"className":526,"code":80590,"language":528,"meta":529,"style":529},"# 'backend' is pre-created as a global on Qollab\nfrom qiskit import QuantumCircuit\nfrom qiskit.providers.jobstatus import JobStatus\nimport time, random\n\nNUM_QUBITS = 4\nBPM = 104\nSHOTS = 104  # 104 shots ≈ one minute at 104 BPM\n\n# qubit index → instrument (each qubit is a track)\nSOUNDS = {0: \"clap\", 1: \"clap\", 2: \"bell\", 3: \"tom\"}\n\n# Build the circuit. Each layer (column of gates) is a beat.\ncircuit = QuantumCircuit(NUM_QUBITS, NUM_QUBITS)\ncircuit.h(0)\ncircuit.h(2)\ncircuit.ry(0.976411, 3)\ncircuit.cx(0, 1)\ncircuit.measure(range(NUM_QUBITS), range(NUM_QUBITS))\n\ndef main(shots=SHOTS):\n    job = backend.run(circuit, shots=shots)\n    while job.status() is not JobStatus.DONE:\n        time.sleep(10)\n    counts = job.get_counts()\n\n    # Each shot is one beat. Rebuild an ordered shot list from the counts,\n    # then shuffle so identical outcomes aren't clumped at the start.\n    shots = []\n    for bits, c in counts.items():\n        shots.extend([bits.replace(\" \", \"\")] * c)\n    random.shuffle(shots)\n    write_midi(shots)\n",[57,80592,80593,80598,80608,80620,80627,80631,80640,80650,80663,80667,80672,80716,80720,80725,80743,80765,80777,80801,80827,80851,80855,80872,80901,80925,80939,80952,80956,80961,80966,80975,80990,81020,81029],{"__ignoreMap":529},[533,80594,80595],{"class":535,"line":536},[533,80596,80597],{"class":593},"# 'backend' is pre-created as a global on Qollab\n",[533,80599,80600,80602,80604,80606],{"class":535,"line":547},[533,80601,877],{"class":539},[533,80603,880],{"class":543},[533,80605,883],{"class":539},[533,80607,1106],{"class":543},[533,80609,80610,80612,80615,80617],{"class":535,"line":575},[533,80611,877],{"class":539},[533,80613,80614],{"class":543}," qiskit.providers.jobstatus ",[533,80616,883],{"class":539},[533,80618,80619],{"class":543}," JobStatus\n",[533,80621,80622,80624],{"class":535,"line":590},[533,80623,883],{"class":539},[533,80625,80626],{"class":543}," time, random\n",[533,80628,80629],{"class":535,"line":597},[533,80630,891],{"emptyLinePlaceholder":790},[533,80632,80633,80635,80637],{"class":535,"line":603},[533,80634,6570],{"class":625},[533,80636,4899],{"class":553},[533,80638,80639],{"class":625}," 4\n",[533,80641,80642,80645,80647],{"class":535,"line":609},[533,80643,80644],{"class":625},"BPM",[533,80646,4899],{"class":553},[533,80648,80649],{"class":625}," 104\n",[533,80651,80652,80655,80657,80660],{"class":535,"line":640},[533,80653,80654],{"class":625},"SHOTS",[533,80656,4899],{"class":553},[533,80658,80659],{"class":625}," 104",[533,80661,80662],{"class":593},"  # 104 shots ≈ one minute at 104 BPM\n",[533,80664,80665],{"class":535,"line":646},[533,80666,891],{"emptyLinePlaceholder":790},[533,80668,80669],{"class":535,"line":658},[533,80670,80671],{"class":593},"# qubit index → instrument (each qubit is a track)\n",[533,80673,80674,80677,80679,80681,80683,80685,80688,80690,80692,80694,80696,80698,80700,80702,80705,80707,80709,80711,80714],{"class":535,"line":680},[533,80675,80676],{"class":625},"SOUNDS",[533,80678,4899],{"class":553},[533,80680,1383],{"class":543},[533,80682,1049],{"class":625},[533,80684,1389],{"class":543},[533,80686,80687],{"class":621},"\"clap\"",[533,80689,1133],{"class":543},[533,80691,1052],{"class":625},[533,80693,1389],{"class":543},[533,80695,80687],{"class":621},[533,80697,1133],{"class":543},[533,80699,1140],{"class":625},[533,80701,1389],{"class":543},[533,80703,80704],{"class":621},"\"bell\"",[533,80706,1133],{"class":543},[533,80708,1157],{"class":625},[533,80710,1389],{"class":543},[533,80712,80713],{"class":621},"\"tom\"",[533,80715,1405],{"class":543},[533,80717,80718],{"class":535,"line":1536},[533,80719,891],{"emptyLinePlaceholder":790},[533,80721,80722],{"class":535,"line":1552},[533,80723,80724],{"class":593},"# Build the circuit. Each layer (column of gates) is a beat.\n",[533,80726,80727,80729,80731,80733,80735,80737,80739,80741],{"class":535,"line":1911},[533,80728,3146],{"class":543},[533,80730,554],{"class":553},[533,80732,1126],{"class":560},[533,80734,615],{"class":543},[533,80736,6570],{"class":625},[533,80738,1133],{"class":543},[533,80740,6570],{"class":625},[533,80742,637],{"class":543},[533,80744,80745,80747,80749,80751,80753,80755,80763],{"class":535,"line":1940},[533,80746,3225],{"class":543},[533,80748,1148],{"class":560},[533,80750,615],{"class":543},[533,80752,1049],{"class":625},[533,80754,2632],{"class":543},[533,80756,80059,80757],{"class":80057,"tabindex":80058},[533,80758,80759,80762],{"class":80062,"role":80063},[974,80760,80761],{},"Superposition."," About a 50% chance this track fires on any given beat.",[533,80764,1113],{},[533,80766,80767,80769,80771,80773,80775],{"class":535,"line":1968},[533,80768,3225],{"class":543},[533,80770,1148],{"class":560},[533,80772,615],{"class":543},[533,80774,1140],{"class":625},[533,80776,637],{"class":543},[533,80778,80779,80781,80783,80785,80788,80790,80792,80794,80799],{"class":535,"line":1995},[533,80780,3225],{"class":543},[533,80782,1652],{"class":560},[533,80784,615],{"class":543},[533,80786,80787],{"class":625},"0.976411",[533,80789,1133],{"class":543},[533,80791,1157],{"class":625},[533,80793,2632],{"class":543},[533,80795,80059,80796],{"class":80057,"tabindex":80058},[533,80797,80798],{"class":80062,"role":80063},"A rotation tunes how often this track hits: the \"how often\" knob.",[533,80800,1113],{},[533,80802,80803,80805,80807,80809,80811,80813,80815,80817,80825],{"class":535,"line":4164},[533,80804,3225],{"class":543},[533,80806,4936],{"class":560},[533,80808,615],{"class":543},[533,80810,1049],{"class":625},[533,80812,1133],{"class":543},[533,80814,1052],{"class":625},[533,80816,2632],{"class":543},[533,80818,80059,80819],{"class":80057,"tabindex":80058},[533,80820,80821,80824],{"class":80062,"role":80063},[974,80822,80823],{},"Entanglement."," Tracks 0 and 1 fire together, though each one alone still looks like a coin flip.",[533,80826,1113],{},[533,80828,80829,80831,80833,80835,80837,80839,80841,80843,80845,80847,80849],{"class":535,"line":4199},[533,80830,3225],{"class":543},[533,80832,1164],{"class":560},[533,80834,615],{"class":543},[533,80836,6692],{"class":553},[533,80838,615],{"class":543},[533,80840,6570],{"class":625},[533,80842,3945],{"class":543},[533,80844,6692],{"class":553},[533,80846,615],{"class":543},[533,80848,6570],{"class":625},[533,80850,1937],{"class":543},[533,80852,80853],{"class":535,"line":4206},[533,80854,891],{"emptyLinePlaceholder":790},[533,80856,80857,80859,80862,80864,80866,80868,80870],{"class":535,"line":4214},[533,80858,1754],{"class":539},[533,80860,80861],{"class":560}," main",[533,80863,615],{"class":543},[533,80865,269],{"class":1762},[533,80867,554],{"class":543},[533,80869,80654],{"class":625},[533,80871,1771],{"class":543},[533,80873,80874,80876,80878,80880,80882,80884,80886,80888,80891,80899],{"class":535,"line":11296},[533,80875,550],{"class":543},[533,80877,554],{"class":553},[533,80879,557],{"class":543},[533,80881,561],{"class":560},[533,80883,564],{"class":543},[533,80885,269],{"class":567},[533,80887,554],{"class":553},[533,80889,80890],{"class":543},"shots)",[533,80892,80059,80893],{"class":80057,"tabindex":80058},[533,80894,80895,80896,80898],{"class":80062,"role":80063},"Runs on a trapped-ion IonQ machine through Qollab. ",[57,80897,907],{}," is provided for you.",[533,80900,1113],{},[533,80902,80903,80906,80908,80911,80913,80915,80917,80920,80923],{"class":535,"line":11302},[533,80904,80905],{"class":539},"    while",[533,80907,5414],{"class":543},[533,80909,80910],{"class":560},"status",[533,80912,16535],{"class":543},[533,80914,3900],{"class":539},[533,80916,3903],{"class":539},[533,80918,80919],{"class":543}," JobStatus.",[533,80921,80922],{"class":625},"DONE",[533,80924,544],{"class":543},[533,80926,80927,80930,80933,80935,80937],{"class":535,"line":11332},[533,80928,80929],{"class":543},"        time.",[533,80931,80932],{"class":560},"sleep",[533,80934,615],{"class":543},[533,80936,1579],{"class":625},[533,80938,637],{"class":543},[533,80940,80941,80944,80946,80948,80950],{"class":535,"line":11345},[533,80942,80943],{"class":543},"    counts ",[533,80945,554],{"class":553},[533,80947,5414],{"class":543},[533,80949,1214],{"class":560},[533,80951,1217],{"class":543},[533,80953,80954],{"class":535,"line":11372},[533,80955,891],{"emptyLinePlaceholder":790},[533,80957,80958],{"class":535,"line":11385},[533,80959,80960],{"class":593},"    # Each shot is one beat. Rebuild an ordered shot list from the counts,\n",[533,80962,80963],{"class":535,"line":11390},[533,80964,80965],{"class":593},"    # then shuffle so identical outcomes aren't clumped at the start.\n",[533,80967,80968,80971,80973],{"class":535,"line":11402},[533,80969,80970],{"class":543},"    shots ",[533,80972,554],{"class":553},[533,80974,42383],{"class":543},[533,80976,80977,80979,80982,80984,80986,80988],{"class":535,"line":11407},[533,80978,12659],{"class":539},[533,80980,80981],{"class":543}," bits, c ",[533,80983,2786],{"class":539},[533,80985,4188],{"class":543},[533,80987,2792],{"class":560},[533,80989,2795],{"class":543},[533,80991,80992,80995,80998,81001,81003,81005,81008,81010,81012,81015,81017],{"class":535,"line":11412},[533,80993,80994],{"class":543},"        shots.",[533,80996,80997],{"class":560},"extend",[533,80999,81000],{"class":543},"([bits.",[533,81002,76726],{"class":560},[533,81004,615],{"class":543},[533,81006,81007],{"class":621},"\" \"",[533,81009,1133],{"class":543},[533,81011,41862],{"class":621},[533,81013,81014],{"class":543},")] ",[533,81016,2469],{"class":553},[533,81018,81019],{"class":543}," c)\n",[533,81021,81022,81025,81027],{"class":535,"line":11418},[533,81023,81024],{"class":543},"    random.",[533,81026,6705],{"class":560},[533,81028,4161],{"class":543},[533,81030,81031,81034,81037,81042],{"class":535,"line":11423},[533,81032,81033],{"class":560},"    write_midi",[533,81035,81036],{"class":543},"(shots)",[533,81038,80059,81039],{"class":80057,"tabindex":80058},[533,81040,81041],{"class":80062,"role":80063},"Writes one MIDI track per qubit, plus an entanglement track where each pair's mutual information becomes a MIDI control signal.",[533,81043,1113],{},[25,81045,81047],{"id":81046},"learning-by-ear","Learning by ear",[12,81049,81050],{},"Beyond making music, the project is a way into quantum thinking. Concepts like superposition, measurement, and entanglement become tangible when they are mapped to something you can hear: experiment with a circuit, watch the probability distribution shift, and listen to the pattern change with it.",[12,81052,81053],{},"Francisco's hope is specific. Just as synthesizers once pulled artists into electronics and then software in search of new sounds, building real intuition along the way, he wants this to do the same for quantum.",[79791,81055,81056],{"avatar":80522,"name":80523,"role":80524,"username":80437},[12,81057,81058],{},"Even if it doesn't necessarily explain a lot to you, it makes it less scary. You play with it and think, okay, this is not scary anymore. And then you feel more comfortable to go deeper.",[12,81060,81061],{},"Francisco is building Superposition Sequencer as an open-source project, including the circuits, the front-end code, example projects, and documentation. Developers can extend it into new domains, artists can remix it, and educators can adapt it for workshops, lowering the barrier to quantum while showing a genuinely new way to interact with it.",[25,81063,81065],{"id":81064},"where-its-headed","Where it's headed",[12,81067,81068],{},"Francisco has a long list of where this goes: richer preset circuits built with quantum researchers, richer compositions and sound design with musicians, and a physical version you could play like a real instrument, something he is already eyeing for festivals. On the software side, he wants external signal inputs, a plugin for music software, and quantum-generated scales, chords, and instruments.",[25,81070,80373],{"id":4321},[12,81072,81073],{},"If you want to hear what a quantum circuit sounds like, this is a good place to start. Superposition Sequencer is open for forking on both Qollab and GitHub, and there is a live demo you can play with right now.",[4321,81075,81078],{"fork-href":80586,"live-href":81076,"title":81077},"https:\u002F\u002Fsuperposition-sequencer.incomputable.io","Play a quantum circuit.",[12,81079,81080,81081],{},"Fork the sequencer, build a circuit, and hear it run on real hardware. ",[974,81082,4329],{},[773,81084,81085],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":81087},[81088,81089,81090,81091,81092],{"id":80530,"depth":547,"text":80531},{"id":80557,"depth":547,"text":80558},{"id":81046,"depth":547,"text":81047},{"id":81064,"depth":547,"text":81065},{"id":4321,"depth":547,"text":80373},[4349,4637,80439],[81095],{"username":80437,"name":80523,"role":81096,"avatar":80522,"bio":81097,"links":81098},"Creative technologist · Incomputable","Francisco is a mechatronics engineer and creative technologist with 15+ years across robotics, industrial automation, data products, and interactive installations. Through his Barcelona practice Incomputable, he builds tools and prototypes for artists, designers, and research labs, recently with six installations at Dubai's Sikka Art Festival and a prototype for the EU S+T+Arts residency. He is faculty at IAAC and came to quantum from the creative-coding and sonification side rather than physics.",[81099,81101,81104,81106],{"label":4360,"href":81100},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fincomputable",{"label":81102,"href":81103},"Incomputable ↗","https:\u002F\u002Fwww.incomputable.io\u002F",{"label":80403,"href":81105},"https:\u002F\u002Flinkedin.com\u002Fin\u002Ffranciscoestivallet",{"label":4363,"href":81107},"https:\u002F\u002Fgithub.com\u002Fchicoe",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Francisco Estivallet built a music sequencer where every note comes from a quantum circuit you design, turning a quantum computer into a playable instrument.","Francisco Estivallet built a quantum music sequencer where every note comes from a circuit you design. A Qollab Creative Challenge project.",{"href":80586,"label":81112},"Fork the sequencer",{"image":80441,"alt":81114,"liveUrl":81076},"The Superposition Sequencer studio: gate toolbox and quantum circuit up top, driving the per-qubit sequencer tracks and mixer below",{},"\u002F_content\u002Fimages\u002Fsuperposition-sequencer\u002Fscreenshot.jpg","\u002Fblog\u002Fsuperposition-sequencer",[],[81120,81123,81126],{"username":6624,"project":81121,"title":6625,"category":80440,"thumb":6626,"to":81122},"quantum-patterns","\u002Fexplore\u002Fquantum-patterns",{"username":2329,"project":81124,"title":2330,"category":80434,"thumb":2332,"to":81125},"entangled-body","\u002Fexplore\u002Fentangled-body",{"username":3791,"project":81127,"title":3792,"category":81128,"thumb":3327,"to":81129},"qave","Education","\u002Fexplore\u002Fqave",{"title":81131,"description":81132},"Quantum Creative Project Showcase: Superposition Sequencer","A quantum music sequencer where the notes come from circuits you build, run on real IonQ hardware. Built by Francisco Estivallet for Qollab's Creative Challenge.","blog\u002Fsuperposition-sequencer",[81135,4383,81136],"music","creative-coding","NhIgPBIgJakoE1ldgBGFtmGk92c1trpMCdXdKUBR9Dc",{"id":81139,"title":81140,"authors":81141,"body":81142,"breadcrumb":81450,"builders":81451,"byline":81452,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":81453,"description":81454,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":81455,"lessonCount":7,"meta":81456,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":81457,"publishDate":81458,"readingTime":81459,"related":81460,"relatedProjects":7,"seo":81461,"stem":81464,"tags":81465,"track":7,"trackName":7,"__hash__":81466},"blog\u002Fblog\u002Fart.md","Can a Quantum Computer Make Art?",[1037],{"type":9,"value":81143,"toc":81439},[81144,81147,81150,81157,81161,81164,81167,81171,81174,81242,81246,81262,81265,81272,81275,81279,81283,81286,81292,81310,81318,81321,81328,81332,81335,81339,81342,81347,81351,81355,81358,81361,81363,81369,81373,81377,81380,81383,81386,81391,81395,81398,81401,81404,81408,81411,81414,81418,81422,81425],[12,81145,81146],{},"A quantum computer does not draw pictures. Its raw output is a probability distribution, a spread of numbers with no obvious shape. Turning that spread into something you can see and feel is one of the more direct ways to make quantum behavior real to a person, instead of a proof on a page.",[12,81148,81149],{},"This is a story about three artworks that do exactly that. They came out of Qollab's Quantum Creative Challenge, and each one takes the strangest idea in quantum physics, entanglement, and grows it inside something living: a field of butterflies, a garden, and a human body. None of them asks you to know any physics first.",[79791,81151,81154],{"avatar":529,"name":81152,"role":81153,"username":529},"Carlo Rovelli","Helgoland",[12,81155,81156],{},"You look at a butterfly and see the color of its wings. In relation to me, a relation is established between you and the butterfly: the butterfly and you are now in an entangled state. Everything in the world does not exist other than in this web of entanglement.",[25,81158,81160],{"id":81159},"what-is-quantum-art","What is quantum art?",[12,81162,81163],{},"Quantum art is art made with a quantum computer. The machine runs a circuit, and what the circuit returns decides what you see. A painting inspired by quantum physics is a different thing, and so is a piece that only uses a quantum chip as a random-number generator.",[12,81165,81166],{},"The field is small, and 2025 gave it a spotlight when the United Nations named it the International Year of Quantum Science and Technology. What Qollab adds is access. Three teams from its Creative Challenge built three artworks you can open in a browser, run on real hardware, and take apart: butterflies that heal after damage, a garden that grows from measurement, and a body whose parts answer each other across distance.",[25,81168,81170],{"id":81169},"at-a-glance","At a glance",[12,81172,81173],{},"Three teams, three living forms, one shared idea: let entanglement happen somewhere you can watch it. Here is who built what.",[30,81175,81176,81195],{},[33,81177,81178],{},[36,81179,81180,81183,81186,81189,81192],{},[39,81181,81182],{},"Project",[39,81184,81185],{},"The idea",[39,81187,81188],{},"Runs on",[39,81190,81191],{},"What you see",[39,81193,81194],{},"Built by",[49,81196,81197,81212,81227],{},[36,81198,81199,81201,81204,81207,81210],{},[54,81200,6805],{},[54,81202,81203],{},"Healing",[54,81205,81206],{},"IonQ Forte hardware",[54,81208,81209],{},"Five qubits scramble into one field; one is damaged, then recovered",[54,81211,6802],{},[36,81213,81214,81216,81219,81222,81225],{},[54,81215,516],{},[54,81217,81218],{},"Growth",[54,81220,81221],{},"IonQ hardware, from a pool of runs",[54,81223,81224],{},"Plants whose form is fixed by real quantum measurements",[54,81226,3312],{},[36,81228,81229,81231,81234,81237,81240],{},[54,81230,2330],{},[54,81232,81233],{},"Connection",[54,81235,81236],{},"IonQ hardware (added later)",[54,81238,81239],{},"A point-cloud body whose parts respond across distance",[54,81241,2331],{},[25,81243,81245],{"id":81244},"why-something-living","Why something living?",[12,81247,81248,81249,81253,81254,81257,81258,81261],{},"Entanglement is famously hard to picture. Two particles can share a single state so completely that neither has one of its own, and measuring one tells you about the other, however far apart they sit. Artists have reached for living forms to get that across before. ",[19,81250,81252],{"href":81251},"https:\u002F\u002Fscheringstiftung.de\u002Fen\u002Fprojektraum\u002Flibby-heaney\u002F","Libby Heaney"," staged entanglement inside a version of Bosch's ",[9404,81255,81256],{},"Garden of Earthly Delights",", and the sculptor Julian Voss-Andreae has been building quantum states into the human figure since his ",[9404,81259,81260],{},"Quantum Man"," in 2006.",[12,81263,81264],{},"The three works on this page run a circuit underneath the form, and its measurements do the work: a measured purity sets how sharp a butterfly's wings are, a measured outcome fixes what a plant becomes, and a measured correlation decides how strongly two parts of a body respond to each other.",[79791,81266,81269],{"avatar":81267,"name":6802,"role":81268,"username":6804},"\u002F_content\u002Fimages\u002Fbuilders\u002Fxinyi-zhang.webp","Creator, Quantum Butterfly Field",[12,81270,81271],{},"This quantum resilience resonates with the Native Hawaiian concept of lōkahi, unity and wholeness, where individual wellbeing is maintained through the integrity of our relationships within a web of the interconnected whole.",[12,81273,81274],{},"Chanhyuk Park, who built Entangled Body, arrived at the same place from the body's side rather than the physics.",[79791,81276,81277],{"avatar":529,"name":79808,"role":79809,"username":529},[12,81278,79827],{},[25,81280,81282],{"id":81281},"the-opportunity","The opportunity",[12,81284,81285],{},"For most of its history, making art with a quantum computer meant institutional access: a lab, a university, a research partnership. The machines lived behind those doors.",[12,81287,81288,81289,81291],{},"Cloud quantum computers you can reach from a browser tab changed that only recently, and ",[974,81290,4349],{}," is a community and coding platform built around that shift: a place to write quantum code and run it on IonQ's trapped-ion hardware, with no lab or affiliation required. In spring 2026, Qollab and IonQ funded a Creative Challenge on top of it, compute credits, cash, and mentorship for open, original projects from anyone with an idea. Quantum Butterfly Field and Entangled Body came out of that round, and Quantum Garden from the one before. All three are open source, and none was built only by physicists.",[12,81293,81294,81295,81299,81300,81304,81305,81309],{},"The wider art world is paying attention too. In 2025, Science Gallery London opened a six-month show called ",[19,81296,81298],{"href":81297},"https:\u002F\u002Flondon.sciencegallery.com\u002Fquantum","Quantum Untangled",", Tokyo's Museum of Contemporary Art exhibited ",[19,81301,81303],{"href":81302},"https:\u002F\u002Fwww.mot-art-museum.jp\u002Fen\u002Fexhibitions\u002Fmission-infinity\u002F","what it billed as the first artwork made with a Japanese quantum computer",", and the LAS Art Foundation's ",[19,81306,81308],{"href":81307},"https:\u002F\u002Fwww.las-art.foundation\u002Fexplore\u002Fsensing-quantum","Sensing Quantum"," program won a Grand Prize at the EU's S+T+ARTS Awards. The question under all of it is when a work is really quantum and when the word is decoration. These three answer it by showing their circuits.",[79791,81311,81315],{"avatar":81312,"name":81313,"role":81314,"username":3311},"\u002F_content\u002Fimages\u002Fbuilders\u002Famber-wang.webp","Amber Wang","Co-creator, Quantum Garden",[12,81316,81317],{},"You don't need to be a physicist to do something meaningful with quantum; you need a strong concept about time, uncertainty, or connection, and a willingness to collaborate with technical partners. Think of quantum as a new storytelling and interaction medium, not just a buzzword or a black box.",[12,81319,81320],{},"Justin Pincar, who built Quantum Garden with her, spent years thinking quantum was out of reach. What changed his mind was simply being able to reach it.",[79791,81322,81325],{"avatar":81323,"name":81324,"role":81314,"username":3311},"\u002F_content\u002Fimages\u002Fbuilders\u002Fjustin-pincar.webp","Justin Pincar",[12,81326,81327],{},"I realized that through platforms like Qollab and IonQ, you can access real quantum hardware as simply as spinning up any other cloud service. That was the moment it clicked and I realized that it was actually accessible now, not just theoretical.",[25,81329,81331],{"id":81330},"where-this-goes","Where this goes",[12,81333,81334],{},"What exists today is a first pass. Each piece maps one circuit to one experience. The builders are already thinking bigger.",[79791,81336,81337],{"avatar":79793,"name":79794,"role":79795,"username":2329},[12,81338,80354],{},[12,81340,81341],{},"For Amber, the direction is to treat the quantum behavior itself as the medium, the way a painter treats paint.",[79791,81343,81344],{"avatar":81312,"name":81313,"role":81314,"username":3311},[12,81345,81346],{},"Designing for quantum means treating concepts like superposition, entanglement, and probabilistic measurement as actual creative materials, not just technical details. Instead of thinking, \"What output do I want?\" you're asking, \"What distribution of possible states do I want, and how should people encounter those states over time?\"",[25,81348,81350],{"id":81349},"quantum-butterfly-field-five-qubits-one-field","Quantum Butterfly Field: five qubits, one field",[81352,81353],"chapter-meta",{"fork":81354,"showcase":80435,"who":6802},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fxinyi\u002Fquantum-butterfly-field",[12,81356,81357],{},"Quantum Butterfly Field is an interactive artwork by Xinyi Zhang, an artist and technologist with computer-science degrees from MIT and the University of British Columbia. Five butterflies are five qubits. As a circuit runs, it scrambles their identities into one entangled field, until no single butterfly holds its own state anymore. Then one is damaged: the circuit entangles it with a throwaway qubit and discards that qubit, cutting the butterfly off from the field.",[12,81359,81360],{},"In a classical chaotic system the damage would spread and the original would be gone for good. Here the circuit runs the scramble backward, and because the butterfly's state was spread across the correlations the other four still hold, it comes back almost completely, with a small residual trace. The physics is a 2020 result by Yan and Sinitsyn known as the anti-butterfly effect, and Zhang stages it as healing. Everything you see is computed from the circuit as it runs: purity sets how sharp a wing is, mutual information draws the threads between butterflies, and the recovered fidelity sets the glow of the healed one. No numbers ever appear on screen.",[2175,81362],{"alt":6636,"caption":529,"no":529,"poster":6638,"video":6639},[79791,81364,81366],{"avatar":81267,"name":6802,"role":81365,"username":6804},"Artist statement",[12,81367,81368],{},"What does it mean to heal in a quantum world?",[25,81370,81372],{"id":81371},"quantum-garden-grown-from-measurement","Quantum Garden: grown from measurement",[81352,81374],{"fork":81375,"showcase":81376,"who":3312},"https:\u002F\u002Fqollab.xyz\u002Fu\u002FAmberPincar\u002Fquantum-garden","\u002Fexplore\u002Fquantum-garden",[12,81378,81379],{},"Quantum Garden is a living digital garden by Amber Wang, a data scientist, and Justin Pincar, a software engineer. Every plant gets its form, color, and behavior from a quantum measurement, drawn from a pool of 500 results run on IonQ hardware in advance, and that result is fixed into the plant the first time you look at it.",[12,81381,81382],{},"Some plants are entangled with others across the garden, so observing one tells you something about a plant you have not visited yet. And the garden keeps its own time, germinating and fading whether or not anyone is watching. The hardware's slowness, once a problem, became the reason the garden has seasons.",[2175,81384],{"alt":6291,"caption":529,"no":529,"src":81385},"\u002F_content\u002Fimages\u002Fquantum-garden\u002Fhero-creative-challenge.webp",[79791,81387,81388],{"avatar":81323,"name":81324,"role":81314,"username":3311},[12,81389,81390],{},"Working with quantum requires a different way of thinking. Classical programming is deterministic, and you get the output you expect. With quantum, you're dealing with probabilities and superpositions, not exactly random, but similar in practice.",[25,81392,81394],{"id":81393},"entangled-body-entanglement-you-can-touch","Entangled Body: entanglement you can touch",[81352,81396],{"fork":81397,"showcase":81125,"who":2331},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Flukeshim\u002Fentangled-body",[12,81399,81400],{},"Entangled Body, by Chanhyuk Park and Luke Shim, is a point-cloud human figure whose parts respond to each other across distance. Touch one region and somewhere else reacts; move your view and the body resolves and dissolves. Fourteen body regions map to fourteen qubits, coupled along a real anatomical graph, so a touch ripples through the figure the way entanglement ripples through a circuit.",[12,81402,81403],{},"A touch sets how strongly each region's qubit turns on, near-certain where you touched and weaker the further a region sits in the graph, and pairs of qubits are coupled with strengths taken from the anatomy: head to chest is a strong link, torso to left foot has no direct edge. The idea came before the circuit, and the measurements come back from IonQ hardware with the noise left in, so the figure never resolves the same way twice.",[79791,81405,81406],{"avatar":529,"name":79808,"role":79809,"username":529},[12,81407,79846],{},[2175,81409],{"alt":81410,"caption":529,"no":529,"poster":2179,"video":2180},"Entangled Body: a point-cloud astronaut whose regions are coupled like entangled qubits",[12,81412,81413],{},"Luke Shim, who built the system underneath, treats that uncertainty as the material rather than a flaw.",[79791,81415,81416],{"avatar":79793,"name":79794,"role":79795,"username":2329},[12,81417,80339],{},[25,81419,81421],{"id":81420},"try-one-yourself","Try one yourself",[12,81423,81424],{},"Every artwork here is open source, and you can run one in your browser right now. Fork the circuit behind it, change the parameters, and see what happens on real hardware. Start with whichever one pulled you in.",[81426,81427,81434],"fork-row",{"c1":81428,"c2":81429,"c3":81430,"f1":81354,"f2":81375,"f3":81397,"l1":81431,"l2":81432,"l3":80422,"title":81433},"#ff78b6","#e254c6","#9660f0","Fork Butterfly Field","Fork Quantum Garden","Make your own.",[12,81435,81436,81437],{},"Fork any of the three, run its circuit on real IonQ hardware, and make it yours. ",[974,81438,4329],{},{"title":529,"searchDepth":547,"depth":547,"links":81440},[81441,81442,81443,81444,81445,81446,81447,81448,81449],{"id":81159,"depth":547,"text":81160},{"id":81169,"depth":547,"text":81170},{"id":81244,"depth":547,"text":81245},{"id":81281,"depth":547,"text":81282},{"id":81330,"depth":547,"text":81331},{"id":81349,"depth":547,"text":81350},{"id":81371,"depth":547,"text":81372},{"id":81393,"depth":547,"text":81394},{"id":81420,"depth":547,"text":81421},[4349,4637,80434],[],{"username":1037,"name":4354,"role":4355,"avatar":4356},"Three teams from Qollab's Creative Challenge answered yes, on real IonQ hardware: a field of butterflies that heal after damage, a garden grown from quantum measurements, and a human body whose parts respond across distance. Here is what quantum art is, in the work of the people making it.","Three teams from Qollab made art on real IonQ quantum hardware: healing butterflies, a garden grown from measurement, a body you can touch. Open and forkable.","topic",{},"\u002Fblog\u002Fart","2026-07-04","8 min read",[],{"title":81462,"description":81463},"Art Made With a Quantum Computer","Three teams from Qollab's Quantum Creative Challenge made art on real IonQ quantum hardware. Open source and forkable.","blog\u002Fart",[80451,4383],"xkkluzSMDzSz4mysaqcXcyDyJqO9-4gRjzvXZnO4wYM",{"id":81468,"title":81469,"authors":81470,"body":81471,"breadcrumb":81786,"builders":81787,"byline":81788,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":81789,"description":81790,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":81455,"lessonCount":7,"meta":81791,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":81792,"publishDate":81458,"readingTime":81459,"related":81793,"relatedProjects":7,"seo":81794,"stem":81797,"tags":81798,"track":7,"trackName":7,"__hash__":81799},"blog\u002Fblog\u002Feducation.md","See a Quantum Computer Actually Work",[1037],{"type":9,"value":81472,"toc":81773},[81473,81476,81479,81483,81486,81493,81500,81504,81513,81515,81632,81636,81639,81642,81649,81653,81657,81660,81668,81672,81676,81679,81687,81691,81695,81698,81705,81709,81713,81716,81720,81724,81727,81735,81739,81747,81750,81758,81760,81763],[12,81474,81475],{},"A quantum computer's inner life is invisible. The thing doing the actual work, a state spread across many possibilities at once, never shows up on a screen. You are usually asked to take it on faith, or on math.",[12,81477,81478],{},"The six projects on this page refuse that. Each one takes something you normally cannot see, an algorithm running, a molecule forming, a quantum computer racing an ordinary one, and turns it into something on screen you can poke at. Four of the six send real work to a real quantum computer. All six are free, and all six are open for anyone to copy and change.",[25,81480,81482],{"id":81481},"start-here","Start here",[12,81484,81485],{},"If you have never heard of Qollab or this challenge, you are exactly who this page is for. Two quick things to know before the tools.",[81487,81488],"fact-grid",{"b1":81489,"b2":81490,"t1":81491,"t2":81492},"A place to build quantum software in the open. You write a small quantum program in your browser, run it on a real quantum computer over the internet, and publish it so anyone can open it, copy it, and build on it. No lab and no hardware of your own required.","In spring 2026, Qollab teamed up with IonQ, a company that builds real quantum computers, and funded people around the world to make small open-source quantum projects, with time on IonQ's hardware. The results were grouped into four themes: music, art, finance, and this one.","What Qollab is","What the Creative Challenge was",[12,81494,81495,81496,81499],{},"The teams behind these six range from students to working quantum researchers. You will also see the phrase ",[974,81497,81498],{},"trapped-ion"," below. It is just one way of building a quantum computer, the kind IonQ makes, and the practical point is that four of these six tools run on the real machine and show you what comes back, noise and all. What ties all six together is a single instinct: rather than explain quantum computing, show it.",[25,81501,81503],{"id":81502},"what-are-these-six-tools","What are these six tools?",[81505,81506,81507,81510],"quick-answer",{},[12,81508,81509],{},"They are interactive quantum computing tools, things you operate rather than read. You step through an algorithm, build a circuit by hand, or run one on a real quantum computer and watch the result come back. All six came out of Qollab's Creative Challenge, all run in a browser, and all are open source.",[12,81511,81512],{},"QAVE animates an algorithm's state gate by gate. QuantumCanvas lets you drag and drop your own circuit. Quantum Courier is a game you play against a quantum solver. Quantum Advantage Lab races quantum against classical. qOrbital builds a molecule from a real quantum-chemistry run. QCFlows maps the correlations inside a circuit. Four run on real IonQ hardware. Pick whichever matches how you like to learn: watch, play, or build.",[25,81514,81170],{"id":81169},[30,81516,81517,81533],{},[33,81518,81519],{},[36,81520,81521,81523,81526,81529,81531],{},[39,81522,81182],{},[39,81524,81525],{},"Type",[39,81527,81528],{},"What you do with it",[39,81530,81188],{},[39,81532,81194],{},[49,81534,81535,81550,81567,81583,81599,81615],{},[36,81536,81537,81539,81542,81545,81548],{},[54,81538,3792],{},[54,81540,81541],{},"Algorithm viewer",[54,81543,81544],{},"Step through an algorithm and watch its state evolve",[54,81546,81547],{},"Simulator",[54,81549,3793],{},[36,81551,81552,81555,81558,81561,81564],{},[54,81553,81554],{},"QuantumCanvas",[54,81556,81557],{},"Circuit sandbox",[54,81559,81560],{},"Drag and drop operations into a working circuit",[54,81562,81563],{},"IonQ hardware or simulator",[54,81565,81566],{},"Shivani Mayekar",[36,81568,81569,81572,81575,81578,81580],{},[54,81570,81571],{},"Quantum Courier",[54,81573,81574],{},"Game",[54,81576,81577],{},"Beat, or lose to, a quantum solver at route planning",[54,81579,81563],{},[54,81581,81582],{},"Dr. Siti Fariya",[36,81584,81585,81588,81591,81594,81596],{},[54,81586,81587],{},"Quantum Advantage Lab",[54,81589,81590],{},"Quantum vs classical",[54,81592,81593],{},"Race four algorithms against their classical rivals",[54,81595,81563],{},[54,81597,81598],{},"Hossein Sadeghi",[36,81600,81601,81604,81607,81610,81612],{},[54,81602,81603],{},"qOrbital",[54,81605,81606],{},"Chemistry viewer",[54,81608,81609],{},"Watch a molecule's orbital build up, noise and all",[54,81611,81563],{},[54,81613,81614],{},"Aryan Bawa & Arnav Singh",[36,81616,81617,81620,81623,81626,81629],{},[54,81618,81619],{},"QCFlows",[54,81621,81622],{},"Correlation viewer",[54,81624,81625],{},"See entanglement form and shift across a circuit",[54,81627,81628],{},"Simulator (IonQ tomography planned)",[54,81630,81631],{},"Paulo Itaboraí, Iosifina Angelidi & Kostas Blekos",[25,81633,81635],{"id":81634},"qave-watch-an-algorithm-run","QAVE: watch an algorithm run",[81352,81637],{"fork":81638,"showcase":81129,"who":3793},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fq-inho\u002Fqave",[12,81640,81641],{},"Start with the tool the whole category grew out of. QAVE, short for Quantum Algorithm Visualization Engine, was a winner of Qollab's very first challenge back in 2025. It takes a quantum algorithm and animates every step at once: the state, the underlying math, and the effect of each operation, all moving together as the algorithm runs. Most people are told what a quantum algorithm does. QAVE lets you watch it happen, and you can replay any circuit as many times as you like. It was built by Inho Choi, a quantum-information researcher, and it runs on a simulator, so nothing here needs special access.",[79791,81643,81646],{"avatar":81644,"name":3793,"role":81645,"username":3791},"\u002F_content\u002Fimages\u002Fbuilders\u002Finho-choi.webp","Creator, QAVE",[12,81647,81648],{},"The most interesting thing for me has been seeing how much more understandable a quantum circuit and density matrix becomes once the evolution is made visible step by step. Many ideas in quantum computing feel difficult not only because of the math, but also because we often lack the right way to see them.",[25,81650,81652],{"id":81651},"quantumcanvas-build-one-by-hand","QuantumCanvas: build one by hand",[81352,81654],{"fork":81655,"showcase":81656,"who":81566},"https:\u002F\u002Fqollab.xyz\u002Fu\u002FShivaniMayekar\u002Fquantum-canvas","\u002Fexplore\u002Fquantum-canvas",[12,81658,81659],{},"QuantumCanvas is for the moment right after a tutorial, when you understand the idea but building a new circuit from scratch still feels like a wall. Instead of writing code, you drag and drop operations onto a grid, shake a qubit into superposition, link two together, and watch the circuit and its state react as you go. When you are ready, it runs the result on a real quantum computer, with no linear algebra required to begin. Shivani Mayekar, a researcher at Georgia Tech who has run quantum workshops for hundreds of people, built it around a single observation about how people click with the subject.",[79791,81661,81665],{"avatar":81662,"name":81566,"role":81663,"username":81664},"\u002F_content\u002Fimages\u002Fbuilders\u002Fshivani-mayekar.webp","Creator, QuantumCanvas","ShivaniMayekar",[12,81666,81667],{},"I love seeing the moment when something clicks. Someone who initially finds quantum computing intimidating suddenly becomes curious and engaged. Watching people discover that quantum is something they can explore rather than just admire from a distance is incredibly rewarding.",[25,81669,81671],{"id":81670},"quantum-courier-play-against-a-quantum-computer","Quantum Courier: play against a quantum computer",[81352,81673],{"fork":81674,"showcase":81675,"who":81582},"https:\u002F\u002Fqollab.xyz\u002Fu\u002FSitifar\u002Fquantum-game-pizza-race","\u002Fexplore\u002Fquantum-courier",[12,81677,81678],{},"Quantum Courier makes its case by letting you lose to a quantum computer. It is a browser game that turns delivery routing into a five-stage race: you draw your own routes, then a classical solver and a real quantum one both try to beat you, and the game shows honestly who wins each round and why. Quantum takes one stage on real IonQ hardware, while the classical solver still wins the routing rounds. Dr. Siti Fariya, who spent two years optimizing real traffic at the Port of Dover before moving into quantum, left every result in, wins and losses both, which is the honest thing to do and rarer than it should be.",[79791,81680,81684],{"avatar":81681,"name":81582,"role":81682,"username":81683},"\u002F_content\u002Fimages\u002Fbuilders\u002Fsiti-fariya.webp","Creator, Quantum Courier","Sitifar",[12,81685,81686],{},"Quantum people are looking for real cases to solve, but they don't really understand the real problems in industry, like logistics. I want to be a bridge between the two.",[25,81688,81690],{"id":81689},"quantum-advantage-lab-watch-the-speedup-honestly","Quantum Advantage Lab: watch the speedup, honestly",[81352,81692],{"fork":81693,"showcase":81694,"who":81598},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fhsadeghi\u002Fquantum-advantage-lab","\u002Fexplore\u002Fquantum-advantage-lab",[12,81696,81697],{},"Everyone hears that quantum computers are faster. Far fewer ever see why. Quantum Advantage Lab runs four famous quantum algorithms side by side with the ordinary methods that solve the same problems, and streams the state of each one as it goes, so the reason a speedup exists becomes something you watch rather than a claim you accept. It is also refreshingly honest: at the small sizes today's hardware can handle, the quantum side does not actually win on a stopwatch, and the Lab says so out loud. Hossein Sadeghi, who spent a decade building quantum software at companies including D-Wave, built it on his own.",[79791,81699,81702],{"avatar":529,"name":81598,"role":81700,"username":81701},"Creator, Quantum Advantage Lab","hsadeghi",[12,81703,81704],{},"Quantum advantage is usually explained with asymptotic notation, which is technically correct but not persuasive for most people. I built this to make the speedup something users can watch unfold, not just read about. Though currently no such speedup exists in practice.",[25,81706,81708],{"id":81707},"qorbital-chemistry-noise-and-all","qOrbital: chemistry, noise and all",[81352,81710],{"fork":81711,"showcase":81712,"who":81614},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fbawa27\u002Fqorbital","\u002Fexplore\u002Fqorbital",[12,81714,81715],{},"qOrbital is the most chemistry-flavored of the six, and the most quietly radical. It runs a real quantum-chemistry calculation on IonQ hardware and draws the resulting molecule two different ways at once. Then it does something almost no visualizer does: instead of cleaning up the result into one tidy number, it overlays many real hardware runs so you can see exactly where the quantum computer is sure and where it is not. The noise is the exhibit, not something to hide. It was built by two Dartmouth physics students, Aryan Bawa and Arnav Singh.",[25,81717,81719],{"id":81718},"qcflows-see-the-correlations","QCFlows: see the correlations",[81352,81721],{"fork":81722,"showcase":81723,"who":81631},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fitaborala\u002Fqcflows","\u002Fexplore\u002Fqcflows",[12,81725,81726],{},"QCFlows is the one to reach for once the others have hooked you. A normal circuit diagram shows the gates but says nothing about the thing that makes a circuit quantum: the web of correlations between qubits that forms and shifts as it runs. QCFlows draws that web live, as a graph you can scrub through layer by layer, so something usually left to equations becomes visible. It comes from three researchers in the QUEST group at the Cyprus Institute, and it is deliberately built to be taken apart, so you can fork the whole dashboard or lift out just the one measurement you need.",[79791,81728,81732],{"avatar":529,"name":81729,"role":81730,"username":81731},"Paulo Itaboraí","Project lead, QCFlows","itaborala",[12,81733,81734],{},"We keep coming back to how difficult it actually is to visualize entanglement. The project is based on quantum tomography ideas, but those often stay on the academic side and don't get across to a general audience. We're trying to bring the visualization of correlations between qubits to a general audience.",[25,81736,81738],{"id":81737},"why-this-is-unusual","Why this is unusual",[12,81740,81741,81742,81746],{},"Learning quantum computing is not hard to find. ",[19,81743,81745],{"href":81744},"https:\u002F\u002Flearning.quantum.ibm.com","IBM",", Microsoft, PennyLane, Brilliant, and a shelf of university courses will all teach you the theory, and most are free. Almost all of it, though, is something you read or a course you sit through.",[12,81748,81749],{},"Tools you actually operate are rarer, and the good ones are scattered and often half-abandoned: a circuit editor here, a frozen game there, a simulator whose makers moved on. A curated set of them, built by named people, open to fork, and mostly running on real quantum hardware, is hard to find anywhere else.",[12,81751,81752,81753,81757],{},"That is what this page is. Six tools, six teams, one challenge. IonQ funds the hardware through its ",[19,81754,81756],{"href":81755},"https:\u002F\u002Fwww.ionq.com\u002Fnews\u002Fionq-partners-with-qollabs-creative-challenge-advancing-creative-quantum-innovation","partnership with Qollab",", and every project is open source, so the surest way to understand any of them is to open it and change something.",[25,81759,81421],{"id":81420},[12,81761,81762],{},"Every tool here runs in your browser, and every one is open to fork. Pick whichever one pulled you in, open it, and change something. That is usually the moment it clicks.",[81426,81764,81768],{"f1":81765,"l1":81766,"title":81767},"\u002Fexplore\u002F","Browse the full gallery","Open one and run it.",[12,81769,81770,81771],{},"Six tools, all open source, most on real IonQ hardware. Fork the one that caught your eye, or browse the full gallery. ",[974,81772,4329],{},{"title":529,"searchDepth":547,"depth":547,"links":81774},[81775,81776,81777,81778,81779,81780,81781,81782,81783,81784,81785],{"id":81481,"depth":547,"text":81482},{"id":81502,"depth":547,"text":81503},{"id":81169,"depth":547,"text":81170},{"id":81634,"depth":547,"text":81635},{"id":81651,"depth":547,"text":81652},{"id":81670,"depth":547,"text":81671},{"id":81689,"depth":547,"text":81690},{"id":81707,"depth":547,"text":81708},{"id":81718,"depth":547,"text":81719},{"id":81737,"depth":547,"text":81738},{"id":81420,"depth":547,"text":81421},[4349,4637,81128],[],{"username":1037,"name":4354,"role":4355,"avatar":4356},"Quantum computing is famously hard to picture. Six people from Qollab's Creative Challenge each built a tool that fixes that a different way, something you open in a browser and watch, play, or take apart. Here is what they made, who made it, and how it works.","Six interactive quantum computing tools from Qollab's challenge, for newcomers: visualizers, a browser game, a circuit sandbox. Most run on real IonQ hardware.",{},"\u002Fblog\u002Feducation",[],{"title":81795,"description":81796},"Interactive Quantum Computing Tools","Six tools from Qollab's Creative Challenge that let you watch quantum computing happen and run it yourself. Written for people new to quantum.","blog\u002Feducation",[4382,4383],"_u7dLoOsAhnJ6tckoGKZqDeP1z3jx8OldPVoWjZrQKg",{"id":81801,"title":81802,"authors":81803,"body":81804,"breadcrumb":82367,"builders":82369,"byline":82370,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":82371,"description":82372,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":81455,"lessonCount":7,"meta":82373,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":82374,"publishDate":82375,"readingTime":16801,"related":82376,"relatedProjects":7,"seo":82377,"stem":82380,"tags":82381,"track":7,"trackName":7,"__hash__":82385},"blog\u002Fblog\u002Ffinance.md","What Can Quantum Computing Do in Finance?",[1037],{"type":9,"value":81805,"toc":82357},[81806,81809,81812,81816,81819,81897,81901,81909,81927,81935,82001,82005,82008,82122,82125,82129,82142,82160,82173,82177,82185,82198,82211,82214,82218,82221,82224,82229,82238,82242,82246,82249,82252,82307,82315,82318,82322,82325,82332,82336,82343,82346],[12,81807,81808],{},"Quantum computing is further along in finance than in almost any other field, and further from paying off than the headlines suggest. The theory is a decade deep, the largest banks run dedicated research teams, and there is still no quantum computer that beats an ordinary one at a real financial task.",[12,81810,81811],{},"This page is a map of that gap. What quantum finance actually is, the handful of algorithms it rests on, what the banks have really shown, and an honest answer to whether it works yet. Then the part almost nobody offers: three open, forkable projects from Qollab's Spring 2026 challenge that let you run a piece of it yourself.",[25,81813,81815],{"id":81814},"the-three-projects","The three projects",[12,81817,81818],{},"Three open-source quantum finance projects came out of the Spring 2026 challenge, each taking on a different classic problem. Quantum Systemic Oracle runs a portfolio-optimization circuit on IonQ and publishes the result on-chain as a risk score. Quantum Regime Radar uses quantum kernels to match live markets against historical stress regimes. Quantum Market Game turns the prisoner's dilemma into a two-qubit game where entanglement changes the outcome. All three are forkable, run on real hardware, and are candid about where quantum helps and where it does not.",[30,81820,81821,81835],{},[33,81822,81823],{},[36,81824,81825,81827,81830,81833],{},[39,81826,81182],{},[39,81828,81829],{},"What it does",[39,81831,81832],{},"Under the hood",[39,81834],{},[49,81836,81837,81858,81878],{},[36,81838,81839,81846,81849,81852],{},[54,81840,81841,81845],{},[19,81842,81844],{"href":81843},"\u002Fexplore\u002Fquantum-systemic-oracle","Quantum Systemic Oracle"," · Jamie Dominguez",[54,81847,81848],{},"A daily systemic-risk score from a portfolio-optimization circuit, published on-chain for smart contracts to read.",[54,81850,81851],{},"14-qubit QAOA, Qiskit + IonQ, Chainlink oracle",[54,81853,81854],{},[19,81855,81857],{"href":81856},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fjamie\u002Fsystemic-oracle","Fork ⎆",[36,81859,81860,81867,81870,81873],{},[54,81861,81862,81866],{},[19,81863,81865],{"href":81864},"\u002Fexplore\u002Fquantum-regime-radar","Quantum Regime Radar"," · Alireza Khodaei",[54,81868,81869],{},"Scores a live market against five volatility regimes taken from real history, by quantum-kernel overlap.",[54,81871,81872],{},"12-qubit kernel, amplitude encoding, IonQ Forte",[54,81874,81875],{},[19,81876,81857],{"href":81877},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Falireza\u002Fquantum-regime-radar",[36,81879,81880,81886,81889,81892],{},[54,81881,81882,81885],{},[19,81883,5830],{"href":81884},"\u002Fexplore\u002Fquantum-market-game"," · Aadarsh Venkat Ramanan",[54,81887,81888],{},"The prisoner's dilemma as two entangled qubits, reaching outcomes classical game theory cannot.",[54,81890,81891],{},"2-qubit circuit, Qiskit + Streamlit, IonQ",[54,81893,81894],{},[19,81895,81857],{"href":81896},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fq-aad\u002Fquantum-market-game-theory-sim",[25,81898,81900],{"id":81899},"where-quantum-finance-comes-from","Where quantum finance comes from",[12,81902,81903,81904,81908],{},"The idea is older than the hardware. In 1999, physicists Eisert, Wilkens, and Lewenstein showed that if you let players use ",[19,81905,81907],{"href":81906},"https:\u002F\u002Farxiv.org\u002Fabs\u002Fquant-ph\u002F9806088","quantum strategies",", the prisoner's dilemma stops being a dilemma. The result comes with a caveat worth keeping: it holds only for a restricted set of strategies, and later work showed it does not survive once every quantum move is allowed. It was a hint, not a proof of advantage.",[12,81910,81911,81912,81916,81917,81921,81922,81926],{},"The finance-specific theory arrived in the 2010s. Ashley Montanaro proved a ",[19,81913,81915],{"href":81914},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1504.06987","near-quadratic quantum speedup"," for Monte Carlo estimation, the workhorse behind pricing and risk. Rebentrost and colleagues turned that into the ",[19,81918,81920],{"href":81919},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1805.00109","first quantum derivatives-pricing algorithm"," in 2018, and the 2019 ",[19,81923,81925],{"href":81924},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.03890","Orus, Mugel, and Lizaso survey"," mapped the field: annealers for portfolios, arbitrage, and credit scoring, and amplitude estimation for pricing and risk.",[12,81928,81929,81930,81934],{},"Industry followed the theory. D-Wave, IBM, and IonQ put real machines within reach, and by 2020 a JPMorgan and IBM team had published a method to ",[19,81931,81933],{"href":81932},"https:\u002F\u002Fquantum-journal.org\u002Fpapers\u002Fq-2020-07-06-291\u002F","price options on a gate-based quantum computer",". That short arc, from a game-theory curiosity to a bank paper, is the whole prehistory.",[81936,81937,81939],"repo-spec",{"lead":81938},"A short timeline of the field.",[30,81940,81941,81951],{},[33,81942,81943],{},[36,81944,81945,81948],{},[39,81946,81947],{},"Field",[39,81949,81950],{},"Detail",[49,81952,81953,81961,81969,81977,81985,81993],{},[36,81954,81955,81958],{},[54,81956,81957],{},"1999",[54,81959,81960],{},"Quantum game theory: entangled strategies change the prisoner's dilemma.",[36,81962,81963,81966],{},[54,81964,81965],{},"2015",[54,81967,81968],{},"Montanaro proves a near-quadratic quantum speedup for Monte Carlo.",[36,81970,81971,81974],{},[54,81972,81973],{},"2018",[54,81975,81976],{},"Rebentrost et al. give the first quantum algorithm for derivatives pricing.",[36,81978,81979,81982],{},[54,81980,81981],{},"2019",[54,81983,81984],{},"The Orus survey maps quantum finance into its now-standard use cases.",[36,81986,81987,81990],{},[54,81988,81989],{},"2020",[54,81991,81992],{},"JPMorgan and IBM publish option pricing on a gate-based quantum computer.",[36,81994,81995,81998],{},[54,81996,81997],{},"2021",[54,81999,82000],{},"The Chakrabarti threshold paper estimates how far off real advantage is.",[25,82002,82004],{"id":82003},"what-quantum-computers-might-do-in-finance","What quantum computers might do in finance",[12,82006,82007],{},"The use cases are well mapped, and each rests on one of a few quantum algorithms. The honest-status column is the part most write-ups leave out. Read it as promise, not product: most of these are quadratic speedups that only pay off on fault-tolerant machines far larger than today's, and on the machine-learning side, classical methods often keep pace.",[30,82009,82010,82023],{},[33,82011,82012],{},[36,82013,82014,82017,82020],{},[39,82015,82016],{},"Use case",[39,82018,82019],{},"Quantum approach",[39,82021,82022],{},"Honest status",[49,82024,82025,82039,82050,82061,82072,82086,82100,82111],{},[36,82026,82027,82033,82036],{},[54,82028,82029],{},[19,82030,82032],{"href":82031},"#a-risk-score-smart-contracts-can-read","Portfolio optimization",[54,82034,82035],{},"QAOA, quantum annealing, VQE",[54,82037,82038],{},"Small hardware demos; no edge over classical solvers yet.",[36,82040,82041,82044,82047],{},[54,82042,82043],{},"Derivatives pricing",[54,82045,82046],{},"Quantum amplitude estimation",[54,82048,82049],{},"A quadratic speedup in theory; needs fault-tolerant machines far beyond today's.",[36,82051,82052,82055,82058],{},[54,82053,82054],{},"Risk analysis (VaR, CVaR)",[54,82056,82057],{},"Amplitude estimation",[54,82059,82060],{},"Same quadratic speedup, same fault-tolerance requirement.",[36,82062,82063,82066,82069],{},[54,82064,82065],{},"Fraud and credit scoring",[54,82067,82068],{},"Quantum kernels, QSVM",[54,82070,82071],{},"Runs now at small scale; classical methods usually match it.",[36,82073,82074,82080,82083],{},[54,82075,82076],{},[19,82077,82079],{"href":82078},"#which-kind-of-market-is-this","Market-regime detection",[54,82081,82082],{},"Quantum kernels",[54,82084,82085],{},"Active research; honest projects show where it helps and where it does not.",[36,82087,82088,82094,82097],{},[54,82089,82090],{},[19,82091,82093],{"href":82092},"#game-theory-entangled","Game theory",[54,82095,82096],{},"Entangled multi-qubit games",[54,82098,82099],{},"A teaching lens more than a trading tool; entanglement shifts the equilibria.",[36,82101,82102,82105,82108],{},[54,82103,82104],{},"Synthetic market data",[54,82106,82107],{},"QCBM, QGAN",[54,82109,82110],{},"Research demos generate correlated returns for backtesting.",[36,82112,82113,82116,82119],{},[54,82114,82115],{},"Security",[54,82117,82118],{},"Post-quantum cryptography",[54,82120,82121],{},"The near-term reality: banks are migrating to quantum-safe encryption.",[12,82123,82124],{},"Two patterns run through the table. The pricing and risk methods, built on amplitude estimation and quantum Monte Carlo, are real and provable, but the speedup is quadratic rather than exponential and needs error-corrected hardware. The learning methods, quantum kernels and QSVM, run on today's machines, yet on ordinary financial data a well-tuned classical model usually matches them, a pattern researchers call dequantization. The one exception that already matters is security, and it is a threat rather than a speedup.",[25,82126,82128],{"id":82127},"who-is-actually-doing-it","Who is actually doing it",[12,82130,82131,82132,82136,82137,82141],{},"The clearest tell about quantum finance is that the bank doing the most is also the one publishing the doubts. JPMorgan's applied-research group, led by Marco Pistoia, co-wrote the 2020 option-pricing paper and keeps ",[19,82133,82135],{"href":82134},"https:\u002F\u002Fwww.cnbc.com\u002F2025\u002F07\u002F21\u002Fjpmorgan-quantum-computing-leadership-state-street-exec.html","investing in the area",". The same group also published ",[19,82138,82140],{"href":82139},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.16551","numerical evidence against"," quantum-kernel advantage on classical data. A team that argues against its own hype is a good signal.",[12,82143,82144,82145,82149,82150,82154,82155,82159],{},"Others are running real experiments at small scale. IBM and HSBC co-authored a 2023 study using ",[19,82146,82148],{"href":82147},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.00260","quantum kernels for fraud and credit classification",", and in 2025 HSBC reported what it called the ",[19,82151,82153],{"href":82152},"https:\u002F\u002Fwww.hsbc.com\u002Fnews-and-views\u002Fnews\u002Fmedia-releases\u002F2025\u002Fhsbc-demonstrates-worlds-first-known-quantum-enabled-algorithmic-trading-with-ibm","first known quantum-enabled algorithmic bond trading"," trial. IonQ and Fidelity's applied-technology center generated ",[19,82156,82158],{"href":82157},"https:\u002F\u002Fwww.ionq.com\u002Fresources\u002Fgenerative-quantum-machine-learning-for-finance","synthetic market data"," on trapped-ion hardware. In every case the authors call the results early and scale-limited.",[12,82161,82162,82163,82167,82168,82172],{},"Not everyone is leaning in. More than fifteen banks have ",[19,82164,82166],{"href":82165},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F03\u002F27\u002F15-plus-global-banks-probing-the-wonderful-world-of-quantum-technologies\u002F","active quantum programs",", but the commitment varies, and Goldman Sachs, a co-author of the field's key resource-estimate paper, has ",[19,82169,82171],{"href":82170},"https:\u002F\u002Fwww.bloomberg.com\u002Fnews\u002Ffeatures\u002F2026-04-26\u002Fwall-street-s-quantum-computing-divide-goldman-retreats-jpmorgan-invests","reportedly scaled back"," its quantum team. The common thread is that all of this lives inside corporate research. None of it ships to a developer.",[25,82174,82176],{"id":82175},"does-it-work-yet-an-honest-answer","Does it work yet? An honest answer",[12,82178,82179,82180,82184],{},"No, not in the sense that matters. There is no demonstrated production quantum advantage in finance today. The speedups that do exist are quadratic, not exponential, and they need fault-tolerant machines far beyond current noisy hardware. The most-cited estimate, a 2021 ",[19,82181,82183],{"href":82182},"https:\u002F\u002Fquantum-journal.org\u002Fpapers\u002Fq-2021-06-01-463\u002F","threshold paper"," from Goldman Sachs and IBM authors, put pricing a real derivative at roughly 8,000 logical qubits and a circuit depth in the tens of millions, and called it out of reach of current systems. A 2024 method trimmed that estimate, but not to anything you can run this decade.",[12,82186,82187,82188,82192,82193,82197],{},"The machine-learning side has its own reality check. When researchers, including JPMorgan's own, test quantum kernels on ordinary financial data, a well-tuned classical model tends to catch up, and a 2024 ",[19,82189,82191],{"href":82190},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2407.12618","review of quantum ML for finance"," concedes there is no provable exponential advantage for the near-term methods. Large value projections exist, such as BCG's estimate of up to ",[19,82194,82196],{"href":82195},"https:\u002F\u002Fwww.bcg.com\u002Fpress\u002F18july2024-quantum-computing-create-up-to-850-billion-of-economic-value-2040","$850 billion in economic value by 2040",", but that is a forecast across industries, not revenue anyone is earning now.",[12,82199,82200,82201,82205,82206,82210],{},"One area is already real, and it is a threat rather than a speedup. A future quantum computer could break the encryption that protects transactions, so data harvested today could be decrypted later. That is why banks are starting to adopt the ",[19,82202,82204],{"href":82203},"https:\u002F\u002Fwww.nist.gov\u002Fnews-events\u002Fnews\u002F2024\u002F08\u002Fnist-releases-first-3-finalized-post-quantum-encryption-standards","post-quantum encryption standards"," NIST finalized in 2024. One warning on names: a “quantum financial system” (QFS) and “Quantum AI” auto-trading platforms are ",[19,82207,82209],{"href":82208},"https:\u002F\u002Fpostquantum.com\u002Fquantum-snake-oil\u002Fquantum-financial-system\u002F","scams and conspiracy theories",", with no connection to any of the research above.",[12,82212,82213],{},"So where does that leave a developer who wants to touch this rather than read another projection? Not inside a bank lab. The three projects below are the accessible counterpoint, and together they map the whole on-ramp: a PhD whose dissertation is quantum finance, a bank data-governance veteran who had never run a quantum job, and a high schooler with a good mentor. None of them claims an advantage. Each is honest about its limits, which is exactly what makes them worth running.",[25,82215,82217],{"id":82216},"a-risk-score-smart-contracts-can-read","A risk score smart contracts can read",[12,82219,82220],{},"Jamie Dominguez spent more than a decade in enterprise data governance at a global bank. The Quantum Systemic Oracle was his first QPU job and his first Qiskit run. It takes a portfolio-optimization circuit, runs it on IonQ, distills the result into a single systemic-risk index in basis points, and publishes that number on-chain through a Chainlink-shaped interface, so any smart contract can read it the way it reads a price feed.",[12,82222,82223],{},"The framing, in his own words, is quantum compute as an on-chain primitive: not a dashboard people look at, but a number other code is built on. He is candid that AI pair-programming is what closed the gap between his finance background and the unfamiliar quantum and blockchain stacks, and he treats that as the point, a working loop you learn from by running it.",[2175,82225],{"caption":82226,"no":79839,"poster":82227,"video":82228},"One daily run end to end: live market data in, a QAOA job on IonQ, a systemic-risk index in basis points, and the on-chain publication. Press play.","\u002F_content\u002Fimages\u002Fsystemic-oracle\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002Fe2405685-d94e-4678-95ff-78c4a081aa9c",[79791,82230,82235],{"avatar":82231,"name":82232,"role":82233,"username":82234},"\u002F_content\u002Fimages\u002Fbuilders\u002Fjamie-dominguez.webp","Jamie Dominguez","Creator, Quantum Systemic Oracle","jamie",[12,82236,82237],{},"Given that quantum advancements are showing promise for financial applications like portfolio optimization, it was a perfect use case to blend my interests.",[81352,82239],{"fork":81856,"fork-label":82240,"showcase":81843,"showcase-label":82241},"Fork the oracle ⎆","Read the full story →",[25,82243,82245],{"id":82244},"which-kind-of-market-is-this","Which kind of market is this?",[12,82247,82248],{},"A volatility model fitted in a calm market breaks in a crisis, so Alireza Khodaei built a tool that answers the prior question: which kind of market is this? Quantum Regime Radar scores live equity returns against five volatility regimes taken from real history, episodes like the 2017 melt-up or the run-up to the SVB collapse. Each regime is encoded as a quantum state, and a quantum kernel measures how strongly today's market overlaps each one. His doctoral research put exactly this GARCH estimation on quantum hardware, so the reference library rests on real backtesting rather than hype.",[12,82250,82251],{},"What sets the project apart is the honesty. Before claiming anything for the quantum side, the team built the classical case against themselves, a plain correlation study that topped out too weak to use, and shipped it in the project so you can see the baseline for yourself.",[81936,82253,82255],{"lead":82254},"Five reference regimes, each anchored to a real market episode.",[30,82256,82257,82265],{},[33,82258,82259],{},[36,82260,82261,82263],{},[39,82262,81947],{},[39,82264,81950],{},[49,82266,82267,82275,82283,82291,82299],{},[36,82268,82269,82272],{},[54,82270,82271],{},"Complacency",[54,82273,82274],{},"SPY 2017, the low-volatility melt-up.",[36,82276,82277,82280],{},[54,82278,82279],{},"Pre-crisis",[54,82281,82282],{},"KRE 2023, the buildup to the SVB collapse.",[36,82284,82285,82288],{},[54,82286,82287],{},"Hyper-crisis",[54,82289,82290],{},"SPY 2020, the COVID crash.",[36,82292,82293,82296],{},[54,82294,82295],{},"Leverage crisis",[54,82297,82298],{},"SPY 2020, the long COVID grind that followed.",[36,82300,82301,82304],{},[54,82302,82303],{},"Recovery",[54,82305,82306],{},"SPY late 2022, the climb back from that year's rout.",[79791,82308,82312],{"avatar":529,"name":82309,"role":82310,"username":82311},"Alireza Khodaei","Creator, Quantum Regime Radar","alireza",[12,82313,82314],{},"With any quantum algorithm, especially in finance, the first question you get is: everything is fine with classical, why even bother with quantum? We wanted to show, in one picture, that classical is not delivering a tangible advantage here.",[81352,82316],{"fork":81877,"fork-label":82317,"showcase":81864,"showcase-label":82241},"Fork Regime Radar ⎆",[25,82319,82321],{"id":82320},"game-theory-entangled","Game theory, entangled",[12,82323,82324],{},"Aadarsh Venkat Ramanan built his Quantum Market Game as a rising high-school senior, between a summer of quantum research at UT Dallas and independent work on option pricing and market-stress detection. It takes the classic prisoner's dilemma and runs it on a quantum computer: two traders are two qubits, each in a superposition of buy and sell, and an optional entangling gate links their choices. Turn entanglement on and the game settles into outcomes classical game theory cannot reach.",[12,82326,82327,82328,82331],{},"That idea has a serious lineage. The ",[19,82329,82330],{"href":81906},"Eisert-Wilkens-Lewenstein scheme"," showed in 1999 that a quantum prisoner's dilemma opens up equilibria the classical game never had. Aadarsh keeps his version deliberately small, a two-qubit circuit you can read in one sitting, because it is built as a teaching object: superposition is the trader who has not decided, entanglement is the toggle that ties two fates together.",[2175,82333],{"caption":82334,"no":79857,"poster":5643,"video":5644,"alt":82335},"The Quantum Market Game: set each trader's buy\u002Fsell odds, toggle entanglement, then run the market and read the payoffs.","The Quantum Market Game simulator: two traders, Bull and Bear, each choosing a quantum strategy angle before the entangled game runs",[79791,82337,82340],{"avatar":82338,"name":5827,"role":82339,"username":5829},"\u002F_content\u002Fimages\u002Fbuilders\u002Faadarsh-venkat-ramanan.webp","Creator, Quantum Market Game",[12,82341,82342],{},"This is a baseline for future quantum use cases in finance, and it lets people learn the basic principles of quantum mechanics in an intuitive way, creating curiosity and further learning.",[81352,82344],{"fork":81896,"fork-label":82345,"showcase":81884,"showcase-label":82241},"Fork the game ⎆",[81426,82347,82351],{"f1":82348,"l1":82349,"title":82350},"https:\u002F\u002Fqollab.xyz\u002Fnew","Start a project","Pick a problem in finance. Run it on real hardware.",[12,82352,82353,82354],{},"Every project here is open, forkable, and yours to build on. Start from one of these, or bring your own idea to the next challenge. ",[974,82355,82356],{},"Everything runs on real quantum hardware through Qollab.",{"title":529,"searchDepth":547,"depth":547,"links":82358},[82359,82360,82361,82362,82363,82364,82365,82366],{"id":81814,"depth":547,"text":81815},{"id":81899,"depth":547,"text":81900},{"id":82003,"depth":547,"text":82004},{"id":82127,"depth":547,"text":82128},{"id":82175,"depth":547,"text":82176},{"id":82216,"depth":547,"text":82217},{"id":82244,"depth":547,"text":82245},{"id":82320,"depth":547,"text":82321},[4349,4637,82368],"Finance",[],{"username":1037,"name":4354,"role":4355,"avatar":4356},"Banks have chased quantum finance for a decade, and it still cannot beat an ordinary computer at a real money problem. Here is the honest state of the field, from portfolio risk to market games, and three Spring 2026 projects that let you run a piece of it yourself.","Quantum computing in finance, explained honestly: the history, the algorithms, what JPMorgan and HSBC have shown, and three open projects you can run yourself.",{},"\u002Fblog\u002Ffinance","2026-07-03",[],{"title":82378,"description":82379},"Quantum Computing in Finance: A Practical, Honest Guide","The history, the real use cases and their algorithms, what banks like JPMorgan and HSBC have actually shown, and an honest read on quantum advantage.","blog\u002Ffinance",[82382,4383,82383,82384],"finance","optimization","machine-learning","EGDGkGbMvTNCh6qq07PdrDX3jLyMpyUAvZCCxtpWihw",{"id":82387,"title":82388,"authors":82389,"body":82390,"breadcrumb":82686,"builders":82687,"byline":82688,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":82689,"description":82690,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":81455,"lessonCount":7,"meta":82691,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":82692,"publishDate":82375,"readingTime":81459,"related":82693,"relatedProjects":7,"seo":82694,"stem":82696,"tags":82697,"track":7,"trackName":7,"__hash__":82698},"blog\u002Fblog\u002Fmusic.md","What Does a Quantum Computer Sound Like?",[1037],{"type":9,"value":82391,"toc":82675},[82392,82395,82398,82402,82405,82408,82410,82413,82476,82480,82483,82486,82489,82492,82500,82503,82507,82509,82517,82520,82533,82539,82542,82545,82553,82555,82558,82563,82566,82569,82573,82576,82579,82584,82589,82592,82597,82601,82604,82611,82616,82619,82622,82625,82631,82635,82638,82645,82649,82652,82656,82658,82661],[12,82393,82394],{},"A quantum computer's raw output is a probability distribution: a spread of numbers with no obvious shape. Turning that spread into sound is one of the more direct ways to make quantum behavior something you can actually perceive, not just calculate.",[12,82396,82397],{},"It is also not a new idea. Quantum computer music has been a real field for years, mostly out of reach unless you had lab access or a physics PhD. Three teams from Qollab's Spring 2026 Creative Challenge changed that this year, and built three different answers to what it sounds like.",[25,82399,82401],{"id":82400},"what-is-quantum-computing-music","What is quantum computing music?",[12,82403,82404],{},"Quantum computing music turns a real quantum circuit's output into sound: its probabilities, amplitudes, phase, and measurement outcomes become the raw material. That is different from using a quantum computer as a fancy random-number generator.",[12,82406,82407],{},"On Qollab, three Spring 2026 teams built three different answers to what that sounds like. Musiq maps circuit data directly to sound as a teaching instrument. Quantum Patterns turns quantum cellular automata into live-coded compositional material. Superposition Sequencer plays user-designed circuits like a synthesizer. All three run on real IonQ hardware, not a simulator dressed up, and all three are open source. Start with whichever metaphor sounds most like you: translator, material, or instrument.",[25,82409,81170],{"id":81169},[12,82411,82412],{},"Three teams, three instruments, one starting question. Here is who built what.",[30,82414,82415,82431],{},[33,82416,82417],{},[36,82418,82419,82421,82424,82426,82429],{},[39,82420,81182],{},[39,82422,82423],{},"The metaphor",[39,82425,81188],{},[39,82427,82428],{},"What you hear",[39,82430,81194],{},[49,82432,82433,82447,82462],{},[36,82434,82435,82437,82440,82442,82445],{},[54,82436,3093],{},[54,82438,82439],{},"Translator",[54,82441,81563],{},[54,82443,82444],{},"Circuit data mapped straight to frequency, loudness, and texture",[54,82446,3095],{},[36,82448,82449,82451,82454,82457,82460],{},[54,82450,6625],{},[54,82452,82453],{},"Material",[54,82455,82456],{},"IonQ hardware or local statevector",[54,82458,82459],{},"Quantum cellular automata, live-coded into pitch, rhythm, and space",[54,82461,6622],{},[36,82463,82464,82466,82469,82471,82474],{},[54,82465,80439],{},[54,82467,82468],{},"Instrument",[54,82470,81563],{},[54,82472,82473],{},"A step sequencer where each shot of your circuit is a beat",[54,82475,80523],{},[25,82477,82479],{"id":82478},"why-sound","Why sound?",[12,82481,82482],{},"Quantum mechanics is usually taught through equations: wavefunctions, probability amplitudes, measurement operators. That is precise, but it asks a lot of anyone without a physics background, and even physicists often reach for a second way to build intuition. Sound is one option.",[12,82484,82485],{},"People are good at hearing structure. A chord, a shift in rhythm, a change in timbre register instantly, without translation. When a circuit's measurement outcomes become audible, properties that are hard to picture on paper turn into things you notice by ear.",[12,82487,82488],{},"A spread of possible outcomes can sound like a chord collapsing into one note. Two qubits that stay correlated can sound like two voices moving together for no obvious reason. Interference can sound like loudness rising and falling as amplitudes reinforce or cancel.",[12,82490,82491],{},"Tomoya Hatanaka, who built Musiq to turn circuit data straight into sound, designed the whole project around that idea.",[79791,82493,82497],{"avatar":82494,"name":82495,"role":82496,"username":3092},"\u002F_content\u002Fimages\u002Fbuilders\u002Ftomoya-hatanaka.webp","Tomoya Hatanaka","Project lead, Musiq",[12,82498,82499],{},"Music serves as a universal translator, allowing users to intuitively \"hear\" complex quantum concepts like superposition and entanglement without relying on mathematical formulas.",[12,82501,82502],{},"Francisco Estivallet, who built Superposition Sequencer and came to quantum through creative coding rather than physics, describes the same effect from the player's side.",[79791,82504,82505],{"avatar":80522,"name":80523,"role":80524,"username":80437},[12,82506,81058],{},[25,82508,81282],{"id":81281},[12,82510,82511,82512,82516],{},"For most of quantum computer music's history, taking part meant institutional access. A composer and researcher named Eduardo Reck Miranda founded the field at Plymouth's ",[19,82513,82515],{"href":82514},"https:\u002F\u002Fwww.plymouth.ac.uk\u002Fresearch\u002Ficcmr","Interdisciplinary Centre for Computer Music Research"," in the early 2020s, working from inside a university lab.",[12,82518,82519],{},"He released an album composed with a quantum computer and built a toolkit for musicians. Peter Thomas, who later built Quantum Patterns, trained in that same lab.",[12,82521,82522,82523,82527,82528,82532],{},"The field grew into its own conference, the ",[19,82524,82526],{"href":82525},"https:\u002F\u002F2025.isqcmc.org\u002F","International Symposium on Quantum Computing and Musical Creativity",", which moved from Plymouth in 2021 to Berlin in 2023 to Palermo in 2025, the same year the United Nations named the International Year of Quantum Science and Technology. A growing ",[19,82529,82531],{"href":82530},"https:\u002F\u002Fpubmed.ncbi.nlm.nih.gov\u002F38996413\u002F","academic literature"," followed, alongside coverage from outlets like Physics World and IBM's own research blog. Almost none of it was something you could open in a browser and try.",[12,82534,82535,82536,82538],{},"What changed is access to the hardware itself. Cloud quantum computers you can run a real circuit on from a browser tab are a recent development. ",[974,82537,4349],{}," is a community and coding platform built around that shift: a place to write and run quantum code with direct access to IonQ's trapped-ion machines, no lab or university affiliation required.",[12,82540,82541],{},"In spring 2026, Qollab and IonQ funded a Creative Challenge on top of that platform: compute credits, cash, and mentorship for open, original projects from anyone with an idea. Musiq, Quantum Patterns, and Superposition Sequencer came out of that program, alongside a dozen other projects spanning art, finance, and education. All three are open source and forkable, and built not only by physicists: Francisco is a mechatronics engineer, Emmanuella a creative technologist.",[12,82543,82544],{},"Peter puts what that access changes in personal terms.",[79791,82546,82550],{"avatar":82547,"name":82548,"role":82549,"username":6624},"\u002F_content\u002Fimages\u002Fbuilders\u002Fpeter-thomas.webp","Peter Thomas","Project lead, Quantum Patterns",[12,82551,82552],{},"It can disseminate knowledge in a way that a paper can't.",[25,82554,81331],{"id":81330},[12,82556,82557],{},"What is built so far is a first pass. Each project currently maps one circuit's output to one piece of sound or one round of a pattern. The ambition across all three is to scale that up as the hardware and the techniques mature.",[79791,82559,82560],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,82561,82562],{},"We will scale up to 30-40 qubits on IonQ hardware, expanding from simple sound generation to the automated composition of fully structured music.",[12,82564,82565],{},"Others are thinking about the interface itself. Francisco wants a version of Superposition Sequencer you could play like a physical instrument, not just a browser tab.",[12,82567,82568],{},"The larger bet is the same one live coding and early electronic music made: that a new way to make sound pulls in people who would never open a physics textbook, and some of them stay long enough to understand the hardware underneath. If quantum computer music follows that path, its biggest effect may not be the music at all. It may be who ends up learning to think in qubits because a synthesizer got them curious first.",[25,82570,82572],{"id":82571},"musiq-quantum-data-as-sound","Musiq: quantum data as sound",[81352,82574],{"fork":82575,"showcase":80445,"who":3095},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fdoraking\u002Fmusiq",[12,82577,82578],{},"Musiq is a browser-based sonification studio built by Tomoya Hatanaka, a freelance quantum engineer, and Emmanuella Adams, a creative technologist. You build a circuit, run it on a simulator or real IonQ hardware, and Musiq maps the result directly onto sound: basis-state index becomes frequency, measurement probability becomes strength, amplitude becomes loudness, and phase becomes interference.",[79791,82580,82581],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,82582,82583],{},"To overcome the repetitive nature of classical RNG-based music by directly translating the mathematical structures of quantum states into dynamic musical expression.",[2175,82585],{"alt":82586,"caption":529,"no":529,"poster":82587,"video":82588},"Musiq, a browser studio that turns quantum circuits into sound","\u002F_content\u002Fimages\u002Fmusiq\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F064dd3e0-1e11-4ebc-8646-a5b4444fbbca",[12,82590,82591],{},"The mapping is literal enough that different circuits sound genuinely different, and for Tomoya the sound is also a small argument about what quantum computers are for. Most of the field points its hardware at optimization and simulation.",[79791,82593,82594],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,82595,82596],{},"It proves that quantum computing can expand its use cases beyond pragmatic optimization or calculation tasks, capturing new potential for creative purposes and artistic expression.",[25,82598,82600],{"id":82599},"quantum-patterns-circuits-as-material","Quantum Patterns: circuits as material",[81352,82602],{"fork":82603,"showcase":81122,"who":6622},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fcephasteom\u002Fquantum-patterns",[12,82605,82606,82607,82610],{},"Quantum Patterns comes from Peter Thomas, who performs as ",[9404,82608,82609],{},"Cephas Teom",", with Paulo Itaboraí on the quantum side. Partitioned quantum cellular automata run on a circuit, and their measurement outcomes become raw material for a fork of Satori, Peter's browser-based live-coding environment, where short scripts turn the data into pitch, rhythm, timbre, and space.",[79791,82612,82613],{"avatar":82547,"name":82548,"role":82549,"username":6624},[12,82614,82615],{},"I was looking to encourage wider adoption of quantum computer music, and more broadly the use of quantum in the arts. The live coding scene was a useful blueprint: it's a culture that started in academia but is now practiced in all sorts of places, a transition I attribute to its mature ecosystem of tools and supportive community ethos.",[2175,82617],{"alt":82618,"caption":529,"no":529,"poster":6474,"video":6475},"The Satori PQCA live-coding environment, a quantum cellular automaton visualized alongside its musical script",[12,82620,82621],{},"Peter's doctorate at Plymouth's ICCMR, the lab that founded quantum computer music as an academic field, sits behind the project. He frames the results less as fixed songs than as systems of relationships and probabilities.",[12,82623,82624],{},"Paulo, who has spent years putting quantum algorithms on stage, sees the same opening for a wider audience.",[79791,82626,82628],{"avatar":529,"name":81729,"role":82627,"username":81731},"Quantum algorithms & hardware, Quantum Patterns",[12,82629,82630],{},"This platform is already really stage-tested, and I think it can reach a lot of people.",[25,82632,82634],{"id":82633},"superposition-sequencer-circuit-as-instrument","Superposition Sequencer: circuit as instrument",[81352,82636],{"fork":82637,"showcase":80442,"who":80523},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fincomputable\u002Fsuperposition-sequencer",[12,82639,82640,82641,82644],{},"Francisco Estivallet, a mechatronics engineer and creative technologist working as ",[9404,82642,82643],{},"Incomputable"," in Barcelona, built a sequencer where the notes are not programmed directly. A visual editor lets you design a circuit, and running it on IonQ hardware or a simulator drives pitch, rhythm, velocity, and timbre.",[2175,82646],{"alt":82647,"caption":529,"no":529,"poster":82648,"video":80579},"Superposition Sequencer, a browser-based quantum music sequencer","\u002F_content\u002Fimages\u002Fsuperposition-sequencer\u002Fhero.webp",[12,82650,82651],{},"Francisco's way in was history, not physics. He points to how early computing and electronics sparked a wave of musical exploration, and thinks quantum computing is due for a similar moment. Rather than fighting the hardware's imperfections, the project leans into them.",[79791,82653,82654],{"avatar":80522,"name":80523,"role":80524,"username":80437},[12,82655,80545],{},[25,82657,81421],{"id":81420},[12,82659,82660],{},"Every project here is open source, and you can run one in your browser right now. Start from whichever metaphor pulled you in: hear your own circuit as sound, live-code with quantum-generated patterns, or play a sequencer where the notes come from a quantum measurement.",[81426,82662,82670],{"c1":82663,"c2":82664,"c3":82665,"f1":82575,"f2":82603,"f3":82637,"l1":82666,"l2":82667,"l3":82668,"title":82669},"#46e0ff","#7fbcff","#9b7bff","Fork Musiq","Fork Quantum Patterns","Fork the Sequencer","Pick your instrument.",[12,82671,82672,82673],{},"Fork any of the three, run a circuit on real IonQ hardware, and hear what it does. ",[974,82674,4329],{},{"title":529,"searchDepth":547,"depth":547,"links":82676},[82677,82678,82679,82680,82681,82682,82683,82684,82685],{"id":82400,"depth":547,"text":82401},{"id":81169,"depth":547,"text":81170},{"id":82478,"depth":547,"text":82479},{"id":81281,"depth":547,"text":81282},{"id":81330,"depth":547,"text":81331},{"id":82571,"depth":547,"text":82572},{"id":82599,"depth":547,"text":82600},{"id":82633,"depth":547,"text":82634},{"id":81420,"depth":547,"text":81421},[4349,4637,80440],[],{"username":1037,"name":4354,"role":4355,"avatar":4356},"Three Spring 2026 teams turned real IonQ quantum hardware into music: a translator, a set of live-coded patterns, and a playable instrument. This is quantum computing music, in the words of the people building it.","Three Spring 2026 teams turned real IonQ quantum hardware into music: a translator, a live-coding tool, and a playable sequencer. All open source.",{},"\u002Fblog\u002Fmusic",[],{"title":82695,"description":82690},"Quantum Computing Music","blog\u002Fmusic",[81135,4383],"RfLS3rec3R4taIYVVBOukbGGCUIfjiniTZYPRSbBRQ8",{"id":82700,"title":82701,"authors":82702,"body":82705,"breadcrumb":83595,"builders":83596,"byline":83620,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":83621,"description":83622,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":83623,"hero":83625,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":83627,"navigation":790,"newsItems":7,"next":7,"ogImage":83628,"order":7,"outcomes":7,"path":83629,"publishDate":83630,"readingTime":74878,"related":83631,"relatedProjects":83632,"seo":83639,"stem":83642,"tags":83643,"track":7,"trackName":7,"__hash__":83644},"blog\u002Fblog\u002Fqcflows.md","Project Showcase: QCFlows",[81731,82703,82704],"iosifinaangelidi","eelvex",{"type":9,"value":82706,"toc":83588},[82707,82710,82717,82721,82725,82728,82731,82777,82782,82789,82793,82800,82803,83392,83403,83454,83458,83461,83464,83471,83474,83479,83482,83534,83537,83540,83543,83549,83552,83556,83559,83564,83567,83572,83574,83577,83585],[12,82708,82709],{},"A circuit diagram shows you the gates but nothing about the thing that makes the circuit quantum: the web of correlations that forms, shifts, and spreads between qubits as the state evolves.",[12,82711,82712,82713,82716],{},"QCFlows makes that web visible. Draw a circuit onto an interactive qubit graph, or import your QASM, and a live dashboard renders the correlation structure as a dynamic network you can scrub through, layer by layer. It runs in the browser at ",[19,82714,82715],{"href":6998},"app.qcflows.net",", and the whole stack is open source.",[79791,82718,82719],{"avatar":529,"name":81729,"role":81730,"username":81731},[12,82720,81734],{},[25,82722,82724],{"id":82723},"seeing-past-the-gate-diagram","Seeing past the gate diagram",[12,82726,82727],{},"Most circuit tools stop at a static, gate-by-gate layout. The correlation structure that builds up while those gates run is invisible in that view, and it is precisely the part that carries the quantum behavior.",[12,82729,82730],{},"QCFlows puts it on screen: an interactive qubit graph and a metric-matrix heatmap sit alongside a traditional wire view, all linked to the live statevector, so every gate you add or remove redraws the whole picture.",[81936,82732,82733],{},[30,82734,82735,82743],{},[33,82736,82737],{},[36,82738,82739,82741],{},[39,82740,81947],{},[39,82742,81950],{},[49,82744,82745,82753,82761,82769],{},[36,82746,82747,82750],{},[54,82748,82749],{},"Qubit graph",[54,82751,82752],{},"The circuit drawn as a network; edges weight live pairwise correlations.",[36,82754,82755,82758],{},[54,82756,82757],{},"Metric matrix",[54,82759,82760],{},"A heatmap of every pair under the chosen metric and analysis basis.",[36,82762,82763,82766],{},[54,82764,82765],{},"Circuit timeline",[54,82767,82768],{},"Scrub through the gate sequence; every view follows in real time.",[36,82770,82771,82774],{},[54,82772,82773],{},"Statevector readout",[54,82775,82776],{},"The raw amplitudes behind the pictures.",[2175,82778],{"alt":82779,"caption":82780,"no":79839,"poster":6997,"video":82781},"The QCFlows dashboard with the QAOA Ring Layer example loaded: a four-qubit circuit builder, analysis-basis and metric switches down the left, and the qubit graph and metric matrix panels below","The dashboard in use: the QAOA Ring Layer example loaded, gates dropped onto the circuit, and the layer marker stepped through all 21 positions. Play around.","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F363da8b6-8a3d-4140-8a59-3309346eb57e",[79791,82783,82786],{"avatar":529,"name":82784,"role":82785,"username":82704},"Dr. Kostas Blekos","Quantum information, QCFlows",[12,82787,82788],{},"It is an idea that comes from all of us, on how to visualize the information flow in quantum circuits. We did some calculations, some preliminary graphs. The point, when we started this, was to get insight into how quantum algorithms work in the dynamic sense.",[25,82790,82792],{"id":82791},"a-direction-for-correlation","A direction for correlation",[12,82794,82795,82796,114],{},"The dashboard's default lens is the team's own metric: the K-network, formalized in their June 2026 paper, ",[19,82797,82799],{"href":82798},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2606.16549","“What does measuring one qubit reveal about another?”",[12,82801,82802],{},"The K-network answers a question a symmetric weight cannot: if you measure qubit i in a given basis, how strongly does that outcome reshape the state of qubit j? The scoring engine behind it is compact enough to read in one sitting.",[519,82804,82807],{"name":82805,"run-href":82806,"tag":522},"k_measure.py","\u002Fu\u002Fitaborala\u002Fqcflows",[524,82808,82810],{"className":526,"code":82809,"language":528,"meta":79866,"style":529},"# How the backend scores a directed correlation, K[i->j], from a pair's\n# reduced density matrix. Excerpt from qcflows_api\u002Fk_measure.py.\nimport numpy as np\nfrom qiskit import QuantumCircuit\n\n# A 4-qubit ladder: each CX hands correlation one qubit down the line.\nCIRCUIT = QuantumCircuit(4)\nCIRCUIT.ry(1.2, 0)\nCIRCUIT.cx(0, 1)\nCIRCUIT.ry(1.2, 1)\nCIRCUIT.cx(1, 2)\nCIRCUIT.ry(1.2, 2)\nCIRCUIT.cx(2, 3)\n\ndef directional_k(rho2, zero_idx, one_idx, tol=1e-10):\n    \"\"\"K for measuring one qubit (Z basis) and inspecting the other.\"\"\"\n    s0 = rho2[np.ix_(zero_idx, zero_idx)]   # measured qubit read 0\n    s1 = rho2[np.ix_(one_idx, one_idx)]     # measured qubit read 1\n    p0, p1 = np.real(np.trace(s0)), np.real(np.trace(s1))\n    if p0 \u003C tol or p1 \u003C tol:\n        return 0.0\n    value = 4.0 * p0 * p1 * (1.0 - squared_fidelity(s0 \u002F p0, s1 \u002F p1))\n    return float(np.clip(value, 0.0, 1.0))\n\ndef directed_pair_k(rho2):\n    \"\"\"(K[i->j], K[j->i]) from one 2-qubit reduced density matrix.\"\"\"\n    k_ij = directional_k(rho2, [0, 1], [2, 3])   # measure i, inspect j\n    k_ji = directional_k(rho2, [0, 2], [1, 3])   # measure j, inspect i\n    return k_ij, k_ji\n\n# The flow: truncate the circuit after every gate and rescore every pair.\nfor m in range(len(CIRCUIT.data) + 1):\n    state = prefix_state(CIRCUIT, m)   # statevector after the first m gates\n    print(f\"marker {m}:\\n{k_matrix(state).round(2)}\")\n",[57,82811,82812,82817,82822,82832,82842,82846,82851,82866,82885,82903,82921,82939,82957,82975,82979,83013,83018,83037,83054,83081,83103,83109,83160,83181,83185,83198,83203,83245,83275,83282,83286,83291,83318,83348],{"__ignoreMap":529},[533,82813,82814],{"class":535,"line":536},[533,82815,82816],{"class":593},"# How the backend scores a directed correlation, K[i->j], from a pair's\n",[533,82818,82819],{"class":535,"line":547},[533,82820,82821],{"class":593},"# reduced density matrix. Excerpt from qcflows_api\u002Fk_measure.py.\n",[533,82823,82824,82826,82828,82830],{"class":535,"line":575},[533,82825,883],{"class":539},[533,82827,11128],{"class":543},[533,82829,584],{"class":539},[533,82831,11133],{"class":543},[533,82833,82834,82836,82838,82840],{"class":535,"line":590},[533,82835,877],{"class":539},[533,82837,880],{"class":543},[533,82839,883],{"class":539},[533,82841,1106],{"class":543},[533,82843,82844],{"class":535,"line":597},[533,82845,891],{"emptyLinePlaceholder":790},[533,82847,82848],{"class":535,"line":603},[533,82849,82850],{"class":593},"# A 4-qubit ladder: each CX hands correlation one qubit down the line.\n",[533,82852,82853,82856,82858,82860,82862,82864],{"class":535,"line":609},[533,82854,82855],{"class":625},"CIRCUIT",[533,82857,4899],{"class":553},[533,82859,1126],{"class":560},[533,82861,615],{"class":543},[533,82863,1183],{"class":625},[533,82865,637],{"class":543},[533,82867,82868,82870,82872,82874,82876,82879,82881,82883],{"class":535,"line":640},[533,82869,82855],{"class":625},[533,82871,114],{"class":543},[533,82873,1652],{"class":560},[533,82875,615],{"class":543},[533,82877,82878],{"class":625},"1.2",[533,82880,1133],{"class":543},[533,82882,1049],{"class":625},[533,82884,637],{"class":543},[533,82886,82887,82889,82891,82893,82895,82897,82899,82901],{"class":535,"line":646},[533,82888,82855],{"class":625},[533,82890,114],{"class":543},[533,82892,4936],{"class":560},[533,82894,615],{"class":543},[533,82896,1049],{"class":625},[533,82898,1133],{"class":543},[533,82900,1052],{"class":625},[533,82902,637],{"class":543},[533,82904,82905,82907,82909,82911,82913,82915,82917,82919],{"class":535,"line":658},[533,82906,82855],{"class":625},[533,82908,114],{"class":543},[533,82910,1652],{"class":560},[533,82912,615],{"class":543},[533,82914,82878],{"class":625},[533,82916,1133],{"class":543},[533,82918,1052],{"class":625},[533,82920,637],{"class":543},[533,82922,82923,82925,82927,82929,82931,82933,82935,82937],{"class":535,"line":680},[533,82924,82855],{"class":625},[533,82926,114],{"class":543},[533,82928,4936],{"class":560},[533,82930,615],{"class":543},[533,82932,1052],{"class":625},[533,82934,1133],{"class":543},[533,82936,1140],{"class":625},[533,82938,637],{"class":543},[533,82940,82941,82943,82945,82947,82949,82951,82953,82955],{"class":535,"line":1536},[533,82942,82855],{"class":625},[533,82944,114],{"class":543},[533,82946,1652],{"class":560},[533,82948,615],{"class":543},[533,82950,82878],{"class":625},[533,82952,1133],{"class":543},[533,82954,1140],{"class":625},[533,82956,637],{"class":543},[533,82958,82959,82961,82963,82965,82967,82969,82971,82973],{"class":535,"line":1552},[533,82960,82855],{"class":625},[533,82962,114],{"class":543},[533,82964,4936],{"class":560},[533,82966,615],{"class":543},[533,82968,1140],{"class":625},[533,82970,1133],{"class":543},[533,82972,1157],{"class":625},[533,82974,637],{"class":543},[533,82976,82977],{"class":535,"line":1911},[533,82978,891],{"emptyLinePlaceholder":790},[533,82980,82981,82983,82986,82988,82991,82993,82996,82998,83001,83003,83006,83008,83011],{"class":535,"line":1940},[533,82982,1754],{"class":539},[533,82984,82985],{"class":560}," directional_k",[533,82987,615],{"class":543},[533,82989,82990],{"class":1762},"rho2",[533,82992,1133],{"class":543},[533,82994,82995],{"class":1762},"zero_idx",[533,82997,1133],{"class":543},[533,82999,83000],{"class":1762},"one_idx",[533,83002,1133],{"class":543},[533,83004,83005],{"class":1762},"tol",[533,83007,554],{"class":543},[533,83009,83010],{"class":625},"1e-10",[533,83012,1771],{"class":543},[533,83014,83015],{"class":535,"line":1968},[533,83016,83017],{"class":621},"    \"\"\"K for measuring one qubit (Z basis) and inspecting the other.\"\"\"\n",[533,83019,83020,83023,83025,83028,83031,83034],{"class":535,"line":1995},[533,83021,83022],{"class":543},"    s0 ",[533,83024,554],{"class":553},[533,83026,83027],{"class":543}," rho2[np.",[533,83029,83030],{"class":560},"ix_",[533,83032,83033],{"class":543},"(zero_idx, zero_idx)]   ",[533,83035,83036],{"class":593},"# measured qubit read 0\n",[533,83038,83039,83042,83044,83046,83048,83051],{"class":535,"line":4164},[533,83040,83041],{"class":543},"    s1 ",[533,83043,554],{"class":553},[533,83045,83027],{"class":543},[533,83047,83030],{"class":560},[533,83049,83050],{"class":543},"(one_idx, one_idx)]     ",[533,83052,83053],{"class":593},"# measured qubit read 1\n",[533,83055,83056,83059,83061,83063,83065,83067,83069,83072,83074,83076,83078],{"class":535,"line":4199},[533,83057,83058],{"class":543},"    p0, p1 ",[533,83060,554],{"class":553},[533,83062,2911],{"class":543},[533,83064,67201],{"class":560},[533,83066,5967],{"class":543},[533,83068,5905],{"class":560},[533,83070,83071],{"class":543},"(s0)), np.",[533,83073,67201],{"class":560},[533,83075,5967],{"class":543},[533,83077,5905],{"class":560},[533,83079,83080],{"class":543},"(s1))\n",[533,83082,83083,83085,83088,83090,83093,83095,83098,83100],{"class":535,"line":4206},[533,83084,1814],{"class":539},[533,83086,83087],{"class":543}," p0 ",[533,83089,2600],{"class":553},[533,83091,83092],{"class":543}," tol ",[533,83094,44136],{"class":539},[533,83096,83097],{"class":543}," p1 ",[533,83099,2600],{"class":553},[533,83101,83102],{"class":543}," tol:\n",[533,83104,83105,83107],{"class":535,"line":4214},[533,83106,4169],{"class":539},[533,83108,47621],{"class":625},[533,83110,83111,83114,83116,83118,83120,83122,83124,83126,83128,83130,83132,83134,83137,83140,83142,83145,83147,83150,83158],{"class":535,"line":11296},[533,83112,83113],{"class":543},"    value ",[533,83115,554],{"class":553},[533,83117,11592],{"class":625},[533,83119,2254],{"class":553},[533,83121,83087],{"class":543},[533,83123,2469],{"class":553},[533,83125,83097],{"class":543},[533,83127,2469],{"class":553},[533,83129,5037],{"class":543},[533,83131,2239],{"class":625},[533,83133,11221],{"class":553},[533,83135,83136],{"class":560}," squared_fidelity",[533,83138,83139],{"class":543},"(s0 ",[533,83141,2941],{"class":553},[533,83143,83144],{"class":543}," p0, s1 ",[533,83146,2941],{"class":553},[533,83148,83149],{"class":543}," p1))",[533,83151,80059,83152],{"class":80057,"tabindex":80058},[533,83153,83154,83157],{"class":80062,"role":80063},[974,83155,83156],{},"The K score."," Read one qubit in the Z basis. K asks how distinguishable the other qubit's two conditional states become, weighted by how informative the readout was; the weight peaks at a 50\u002F50 split. Zero means the measurement reveals nothing about the partner.",[533,83159,1113],{},[533,83161,83162,83164,83166,83168,83170,83173,83175,83177,83179],{"class":535,"line":11302},[533,83163,1880],{"class":539},[533,83165,66932],{"class":553},[533,83167,5967],{"class":543},[533,83169,13850],{"class":560},[533,83171,83172],{"class":543},"(value, ",[533,83174,2229],{"class":625},[533,83176,1133],{"class":543},[533,83178,2239],{"class":625},[533,83180,1937],{"class":543},[533,83182,83183],{"class":535,"line":11332},[533,83184,891],{"emptyLinePlaceholder":790},[533,83186,83187,83189,83192,83194,83196],{"class":535,"line":11345},[533,83188,1754],{"class":539},[533,83190,83191],{"class":560}," directed_pair_k",[533,83193,615],{"class":543},[533,83195,82990],{"class":1762},[533,83197,1771],{"class":543},[533,83199,83200],{"class":535,"line":11372},[533,83201,83202],{"class":621},"    \"\"\"(K[i->j], K[j->i]) from one 2-qubit reduced density matrix.\"\"\"\n",[533,83204,83205,83208,83210,83212,83215,83217,83219,83221,83223,83225,83227,83229,83232,83235,83243],{"class":535,"line":11385},[533,83206,83207],{"class":543},"    k_ij ",[533,83209,554],{"class":553},[533,83211,82985],{"class":560},[533,83213,83214],{"class":543},"(rho2, [",[533,83216,1049],{"class":625},[533,83218,1133],{"class":543},[533,83220,1052],{"class":625},[533,83222,3251],{"class":543},[533,83224,1140],{"class":625},[533,83226,1133],{"class":543},[533,83228,1157],{"class":625},[533,83230,83231],{"class":543},"])   ",[533,83233,83234],{"class":593},"# measure i, inspect j",[533,83236,80059,83237],{"class":80057,"tabindex":80058},[533,83238,83239,83242],{"class":80062,"role":80063},[974,83240,83241],{},"Direction matters."," The two calls swap which qubit is measured. K[i→j] and K[j→i] can genuinely differ, which undirected metrics like mutual information cannot express.",[533,83244,1113],{},[533,83246,83247,83250,83252,83254,83256,83258,83260,83262,83264,83266,83268,83270,83272],{"class":535,"line":11390},[533,83248,83249],{"class":543},"    k_ji ",[533,83251,554],{"class":553},[533,83253,82985],{"class":560},[533,83255,83214],{"class":543},[533,83257,1049],{"class":625},[533,83259,1133],{"class":543},[533,83261,1140],{"class":625},[533,83263,3251],{"class":543},[533,83265,1052],{"class":625},[533,83267,1133],{"class":543},[533,83269,1157],{"class":625},[533,83271,83231],{"class":543},[533,83273,83274],{"class":593},"# measure j, inspect i\n",[533,83276,83277,83279],{"class":535,"line":11402},[533,83278,1880],{"class":539},[533,83280,83281],{"class":543}," k_ij, k_ji\n",[533,83283,83284],{"class":535,"line":11407},[533,83285,891],{"emptyLinePlaceholder":790},[533,83287,83288],{"class":535,"line":11412},[533,83289,83290],{"class":593},"# The flow: truncate the circuit after every gate and rescore every pair.\n",[533,83292,83293,83295,83297,83299,83301,83303,83305,83307,83309,83312,83314,83316],{"class":535,"line":11418},[533,83294,3180],{"class":539},[533,83296,76463],{"class":543},[533,83298,2786],{"class":539},[533,83300,2976],{"class":553},[533,83302,615],{"class":543},[533,83304,15006],{"class":553},[533,83306,615],{"class":543},[533,83308,82855],{"class":625},[533,83310,83311],{"class":543},".data) ",[533,83313,6350],{"class":553},[533,83315,6353],{"class":625},[533,83317,1771],{"class":543},[533,83319,83320,83323,83325,83328,83330,83332,83335,83338,83346],{"class":535,"line":11423},[533,83321,83322],{"class":543},"    state ",[533,83324,554],{"class":553},[533,83326,83327],{"class":560}," prefix_state",[533,83329,615],{"class":543},[533,83331,82855],{"class":625},[533,83333,83334],{"class":543},", m)   ",[533,83336,83337],{"class":593},"# statevector after the first m gates",[533,83339,80059,83340],{"class":80057,"tabindex":80058},[533,83341,83342,83345],{"class":80062,"role":80063},[974,83343,83344],{},"The flow."," Each marker is the circuit truncated after m gates. Rescoring at every marker turns a static diagram into motion: correlation appears at one CX, then gets handed down the line by the next.",[533,83347,1113],{},[533,83349,83350,83352,83354,83356,83359,83361,83363,83365,83367,83369,83371,83374,83377,83380,83382,83384,83386,83388,83390],{"class":535,"line":11467},[533,83351,612],{"class":553},[533,83353,615],{"class":543},[533,83355,618],{"class":539},[533,83357,83358],{"class":621},"\"marker ",[533,83360,626],{"class":625},[533,83362,31980],{"class":543},[533,83364,632],{"class":625},[533,83366,38724],{"class":621},[533,83368,7117],{"class":553},[533,83370,626],{"class":625},[533,83372,83373],{"class":560},"k_matrix",[533,83375,83376],{"class":543},"(state).",[533,83378,83379],{"class":560},"round",[533,83381,615],{"class":543},[533,83383,1140],{"class":625},[533,83385,2632],{"class":543},[533,83387,632],{"class":625},[533,83389,439],{"class":621},[533,83391,637],{"class":543},[12,83393,83394,83395,83398,83399,83402],{},"The answer comes back directed. K",[533,83396,83397],{},"i→j"," and K",[533,83400,83401],{},"j→i"," can genuinely differ, so the qubit graph becomes a map with arrows rather than a symmetric mesh, while each score remains lightweight to compute. The QCFlows dashboard caches locally all computed metrics from the system, so that visualization and exploration can be done in real time.",[81936,83404,83405],{},[30,83406,83407,83415],{},[33,83408,83409],{},[36,83410,83411,83413],{},[39,83412,81947],{},[39,83414,81950],{},[49,83416,83417,83430,83438,83446],{},[36,83418,83419,83422],{},[54,83420,83421],{},"K-network",[54,83423,83424,83425,83398,83427,83429],{},"The default: a directed, measurement-induced correlation score. K",[533,83426,83397],{},[533,83428,83401],{}," can differ.",[36,83431,83432,83435],{},[54,83433,83434],{},"Mutual information",[54,83436,83437],{},"Undirected total correlation, classical and quantum together.",[36,83439,83440,83443],{},[54,83441,83442],{},"Entanglement of formation",[54,83444,83445],{},"The entanglement on its own, separated from classical correlation.",[36,83447,83448,83451],{},[54,83449,83450],{},"Bases",[54,83452,83453],{},"Every metric viewable under Z, X, and Y measurement.",[25,83455,83457],{"id":83456},"from-simulator-to-hardware","From simulator to hardware",[12,83459,83460],{},"Where do the density matrices come from? On a simulator, straight from the statevector. On hardware, the same numbers arrive by pairwise quantum state tomography: run the circuit many times, each time measuring each pair in specific arrangements of the XYZ basis (ZZ, YY, ZX, ZY and so on), and reconstruct each pair's state from the statistics. QCFlows treats the two as interchangeable sources feeding the same dashboard.",[12,83462,83463],{},"The experiment the team most wants to run on IonQ is a full pairwise tomography of a cat-state preparation, based on the algorithm in Iosifina's paper. Done faithfully, it needs mid-circuit measurement, a capability IonQ has slated for its upcoming Tempo processor. Until then, the team has a fallback ready.",[79791,83465,83468],{"avatar":529,"name":83466,"role":83467,"username":82703},"Dr. Iosifina Angelidi","Theory, QCFlows",[12,83469,83470],{},"Otherwise, we run each layer of unitaries and measurements, save the output state, and refit it into the next layer until we get the cat state. That is what the algorithm in the paper does.",[12,83472,83473],{},"The team has since run that comparison on hardware. In August they prepared a ten-qubit GHZ state, where one Hadamard and a ladder of CNOTs put every qubit into a single shared correlated state. The same circuit then went through QCFlows three ways.",[2175,83475],{"alt":83476,"caption":83477,"no":79857,"src":83478},"The ten-qubit GHZ circuit as drawn in QCFlows: a Hadamard on q0 followed by a ladder of CNOT gates fanning out to q1 through q9","The circuit under test. One Hadamard, then nine CNOTs, and every qubit shares one correlated state.","\u002F_content\u002Fimages\u002Fqcflows\u002Fghz-circuit.webp",[12,83480,83481],{},"An exact statevector gives the answer with no noise in it. IonQ's simulator carrying the forte-1 noise model gives a prediction of what the machine should do to it. Then the machine itself, forte-enterprise-1 at 4,096 shots per job. For ten qubits the team needed 21 arrangements of circuit measurements to perform this tomography across all pairs, almost 90 thousand shots in total.",[81936,83483,83485],{"lead":83484},"The same ten-qubit GHZ state, analyzed three ways in the Z basis.",[30,83486,83487,83499],{},[33,83488,83489],{},[36,83490,83491,83493,83496],{},[39,83492,4555],{},[39,83494,83495],{},"Mean correlation",[39,83497,83498],{},"Strongest pair",[49,83500,83501,83512,83523],{},[36,83502,83503,83506,83509],{},[54,83504,83505],{},"QCFlows statevector",[54,83507,83508],{},"1.0000",[54,83510,83511],{},"1.0000, at 0→1",[36,83513,83514,83517,83520],{},[54,83515,83516],{},"IonQ simulator, forte-1 noise model",[54,83518,83519],{},"0.8515",[54,83521,83522],{},"0.9664, at 0→9",[36,83524,83525,83528,83531],{},[54,83526,83527],{},"Hardware, forte-enterprise-1",[54,83529,83530],{},"0.8690",[54,83532,83533],{},"0.9299, at 9→0",[12,83535,83536],{},"The statevector run is the reference: every pair maximally correlated, mean 1.0000. The noise model predicted correlation would fall to 0.8515. Hardware came back at 0.8690, above the 0.8515 its own noise model had forecast. That holds on the average, not pair by pair: on the strongest single pair the simulator predicted more correlation than the machine delivered, 0.9664 against 0.9299.",[12,83538,83539],{},"The noiseless run is perfectly symmetric, so direction has nothing to show. Once noise enters, the edges grow arrowheads and the two directions separate, which is why the noise model's strongest pair reads 0→9 and the hardware's reads 9→0. Both involve the two ends of the CNOT ladder, the qubits that hold their correlation best.",[12,83541,83542],{},"The library then went up a scale. On 17 August the first correlation matrix for a 36-qubit QAOA circuit came out of the same pipeline.",[2175,83544],{"alt":83545,"caption":83546,"no":83547,"src":83548},"A 36 by 36 correlation matrix for a QAOA circuit, showing a bright nearest-neighbour diagonal band and a few isolated long-range pairs in the corners","Thirty-six qubits of QAOA. Mean correlation 0.0130, with the strongest pair at 0.1502 between qubits 19 and 35.","Fig. 3","\u002F_content\u002Fimages\u002Fqcflows\u002Fqaoa-36-qubit.webp",[12,83550,83551],{},"Mean correlation across all pairs sits at 0.0130, far below the GHZ state's near-total coupling, and that is what a QAOA ansatz should look like. The structure concentrates along the nearest-neighbour diagonal, with a handful of long-range pairs standing clear of it. The strongest reads 0.1502, between qubits 19 and 35.",[25,83553,83555],{"id":83554},"made-to-be-taken-apart","Made to be taken apart",[12,83557,83558],{},"The architecture is deliberately modular: a backend that computes quantum-information metrics and a frontend that visualizes them, talking over HTTP requests, published as two separate repositories. You can run the full dashboard, or skip it and call the API from your own project, where every metric comes back as plain JSON.",[79791,83560,83561],{"avatar":529,"name":81729,"role":81730,"username":81731},[12,83562,83563],{},"If you just want to compute a mutual-information network metric, you should be able to take that part of the app and be happy about it.",[12,83565,83566],{},"The app lives at a public URL, but the repositories ship with instructions for running it yourself, and for Paulo that half of the offer matters more than the finished product.",[79791,83568,83569],{"avatar":529,"name":81729,"role":81730,"username":81731},[12,83570,83571],{},"Even more than giving a finished app, the contribution is to say: here are these metrics, these ways of looking into quantum algorithms. If you have an idea for a completely different application that uses this kind of data, you should be able to take the source code and deploy it yourself.",[25,83573,80373],{"id":4321},[12,83575,83576],{},"QCFlows is open and forkable on Qollab, both repositories are MIT-licensed, and the dashboard is live in your browser right now. Draw a few gates onto the qubit graph, or import a QASM file, and watch the correlation structure respond.",[4321,83578,83580],{"fork-href":82806,"live-href":6998,"title":83579},"Draw a circuit. Watch it correlate.",[12,83581,83582,83583],{},"Fork QCFlows, load a circuit onto the qubit graph, and watch its correlation structure form and move, layer by layer. ",[974,83584,4329],{},[773,83586,83587],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":83589},[83590,83591,83592,83593,83594],{"id":82723,"depth":547,"text":82724},{"id":82791,"depth":547,"text":82792},{"id":83456,"depth":547,"text":83457},{"id":83554,"depth":547,"text":83555},{"id":4321,"depth":547,"text":80373},[4349,4637,81619],[83597,83608,83614],{"username":81731,"name":81729,"role":83598,"avatar":529,"bio":83599,"links":83600},"Project lead · quantum & music technology","Paulo is an interdisciplinary researcher working where physics meets music technology. A PhD student at the Cyprus Institute, part of the ERA-chair QUEST grant, in collaboration with DESY, he investigates variational quantum algorithms for high-energy physics and tools for sonifying and visualizing quantum computation. He also supports Quantum Patterns, a second Qollab project.",[83601,83603,83606],{"label":4360,"href":83602},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fitaborala",{"label":83604,"href":83605},"Site ↗","https:\u002F\u002Fitabora.space\u002F",{"label":4363,"href":83607},"https:\u002F\u002Fgithub.com\u002FItaborala",{"username":82703,"name":83466,"role":83609,"avatar":529,"bio":83610,"links":83611},"Theory","Iosifina is a postdoctoral research fellow at the Cyprus Institute, working on quantum circuits and entanglement stabilization. She leads the theory side of QCFlows, including the cat-state preparation the team plans to run as a full pairwise tomography experiment on IonQ hardware.",[83612],{"label":4360,"href":83613},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fiosifinaangelidi",{"username":82704,"name":82784,"role":83615,"avatar":529,"bio":83616,"links":83617},"Quantum information","Kostas is a researcher in the same QUEST group, focused on quantum information and hybrid algorithms for around a decade. He co-conceived QCFlows and works on its metrics and backend.",[83618],{"label":4360,"href":83619},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Feelvex",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Paulo Itaboraí, Iosifina Angelidi, and Kostas Blekos built a live dashboard that renders a quantum circuit as a dynamic graph, so you can watch correlation and entanglement structures form and move across the layers of an algorithm.","QCFlows renders a quantum circuit as a live graph: watch correlation and entanglement structures form and move layer by layer. A Qollab Spring 2026 project.",{"href":82806,"label":83624},"Fork QCFlows",{"image":6997,"alt":83626,"liveUrl":6998},"The QCFlows dashboard: a quantum circuit rendered as a dynamic qubit graph beside a correlation heatmap",{},"\u002F_content\u002Fimages\u002Fqcflows\u002Fhero.jpg","\u002Fblog\u002Fqcflows","2026-07-02",[],[83633,83635,83638],{"username":5829,"project":83634,"title":5830,"category":82368,"thumb":5831,"to":81884},"quantum-market-game",{"username":82234,"project":83636,"title":81844,"category":82368,"thumb":83637,"to":81843},"quantum-systemic-oracle","\u002F_content\u002Fimages\u002Fsystemic-oracle\u002Fscreenshot.webp",{"username":2329,"project":81124,"title":2330,"category":80434,"thumb":2332,"to":81125},{"title":83640,"description":83641},"Quantum Creative Project Showcase: QCFlows","A quantum circuit as a dynamic graph: watch correlation and entanglement structures form and move, layer by layer.","blog\u002Fqcflows",[16807,4383,4382],"ob0u5VcgFoM2G9PaMqjb22FoxMygn0cMCO06RAp2hZM",{"id":83646,"title":83647,"authors":83648,"body":83649,"breadcrumb":84307,"builders":84308,"byline":84316,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":84317,"description":84318,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":84319,"hero":84321,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":84322,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":84323,"publishDate":83630,"readingTime":74878,"related":84324,"relatedProjects":84325,"seo":84329,"stem":84332,"tags":84333,"track":7,"trackName":7,"__hash__":84334},"blog\u002Fblog\u002Fquantum-regime-radar.md","Project Showcase: Quantum Regime Radar",[82311],{"type":9,"value":83650,"toc":84301},[83651,83654,83657,83660,83665,83669,83672,83716,83719,83724,83728,83731,83734,84217,84220,84266,84270,84273,84277,84280,84285,84287,84290,84298],[12,83652,83653],{},"A volatility model fitted in a calm market breaks in a crisis. Quantum Regime Radar asks the question a modeler needs answered first: which kind of market is this?",[12,83655,83656],{},"Regime Radar classifies live equity returns against five volatility regimes taken from real market history, episodes like the 2017 melt-up or the buildup to the SVB collapse. Each regime's volatility fingerprint, estimated with the GARCH family of models, is encoded as a quantum state.",[12,83658,83659],{},"At inference time a quantum kernel measures how strongly the live market's state overlaps each reference, and the result is a probability distribution over regimes, plus a recommendation for which modeling approach fits the moment.",[79791,83661,83662],{"avatar":529,"name":82309,"role":82310,"username":82311},[12,83663,83664],{},"We have a bunch of known market regimes with respect to volatility, and we make a quantum fingerprint out of each. Then, given live data: how similar are these two days to the pre-crisis regime? There is no yes-or-no answer. There is a probability.",[25,83666,83668],{"id":83667},"five-regimes-taken-from-history","Five regimes, taken from history",[12,83670,83671],{},"Each regime is an empirically characterized market episode whose volatility behavior was estimated and backtested with GARCH(1,1), the standard model that captures baseline variance, shock reactivity, and how long volatility persists. The current library holds five:",[81936,83673,83674],{"lead":82254},[30,83675,83676,83684],{},[33,83677,83678],{},[36,83679,83680,83682],{},[39,83681,81947],{},[39,83683,81950],{},[49,83685,83686,83692,83698,83704,83710],{},[36,83687,83688,83690],{},[54,83689,82271],{},[54,83691,82274],{},[36,83693,83694,83696],{},[54,83695,82279],{},[54,83697,82282],{},[36,83699,83700,83702],{},[54,83701,82287],{},[54,83703,82290],{},[36,83705,83706,83708],{},[54,83707,82295],{},[54,83709,82298],{},[36,83711,83712,83714],{},[54,83713,82303],{},[54,83715,82306],{},[12,83717,83718],{},"Getting to five was work. The project started from twenty known regimes across the S&P 500, each fingerprinted with its own qubit budget per GARCH parameter. That full set was too large for today's hardware, so the team distilled it to the principal regimes by entropy contribution and focused the live test cases on Magnificent 7 stocks, with baked-in windows like NVDA 2022 and META 2020.",[79791,83720,83721],{"avatar":529,"name":82309,"role":82310,"username":82311},[12,83722,83723],{},"With the original regime set we were over the capacity of the hardware. We needed 80 to 100 qubits to represent one regime. So we compressed the set to a leaner version, but we did not want to lose entropy. That was the challenge of the past few weeks.",[25,83725,83727],{"id":83726},"a-kernel-that-compares-histories","A kernel that compares histories",[12,83729,83730],{},"Each regime fingerprint is a probability distribution over the joint GARCH parameter space, and it is amplitude-encoded: the quantum state carries the square roots of those probabilities. That choice makes the physics do the statistics.",[12,83732,83733],{},"The overlap between two encoded states works out to the Bhattacharyya coefficient between the two distributions, a similarity that compares where probability mass actually sits rather than the distance between point estimates. The playground cell ships with fitted twelve-qubit circuits baked in, so the whole pipeline runs self-contained.",[519,83735,83738],{"name":83736,"run-href":83737,"tag":522},"regime_radar_cell.py","\u002Fu\u002Falireza\u002Fquantum-regime-radar",[524,83739,83741],{"className":526,"code":83740,"language":528,"meta":79866,"style":529},"# The playground cell: baked-in regime fingerprints, rebuilt as circuits,\n# scored by a quantum-kernel inversion test on the selected backend.\ndef _build(params, n=N_QUBITS, L=N_LAYERS):\n    \"\"\"Rebuild a fitted fingerprint state (12 qubits, 8 layers).\"\"\"\n    qc = QuantumCircuit(n)\n    pidx = 0\n    for q in range(n):\n        qc.ry(float(params[pidx]), q); pidx += 1\n    for _ in range(L):\n        for q in range(n - 1):\n            qc.cx(q, q + 1)\n        for q in range(n):\n            qc.ry(float(params[pidx]), q); pidx += 1\n    return qc\n\ndef _inversion(qc_live, qc_ref):\n    n = qc_live.num_qubits\n    qc = QuantumCircuit(n, n)\n    qc.compose(qc_live, inplace=True)\n    qc.compose(qc_ref.inverse(), inplace=True)\n    qc.measure(range(n), range(n))\n    return qc\n\n# Rank all five regimes offline first (exact overlaps from the baked\n# params), then spend the run's single hardware job verifying the top match.\nlive = _build(DEMO_PARAMS[ci][REF_FAM[target]])\nref  = _build(REF_PARAMS[target])\ncircuit = transpile(_inversion(live, ref), backend=backend, optimization_level=0)\ncounts  = backend.run(circuit, shots=shots).result().get_counts()\nK_meas  = _zero_frac(counts)\nprint(f\"Measured K = {K_meas:.4f} vs offline fitted K = {K_fit[target]:.4f}\")\n",[57,83742,83743,83748,83753,83786,83791,83801,83810,83824,83841,83855,83873,83898,83910,83926,83932,83936,83955,83964,83974,83992,84024,84040,84046,84050,84055,84060,84083,84100,84131,84158,84181],{"__ignoreMap":529},[533,83744,83745],{"class":535,"line":536},[533,83746,83747],{"class":593},"# The playground cell: baked-in regime fingerprints, rebuilt as circuits,\n",[533,83749,83750],{"class":535,"line":547},[533,83751,83752],{"class":593},"# scored by a quantum-kernel inversion test on the selected backend.\n",[533,83754,83755,83757,83760,83762,83765,83767,83769,83771,83774,83776,83779,83781,83784],{"class":535,"line":575},[533,83756,1754],{"class":539},[533,83758,83759],{"class":560}," _build",[533,83761,615],{"class":543},[533,83763,83764],{"class":1762},"params",[533,83766,1133],{"class":543},[533,83768,30647],{"class":1762},[533,83770,554],{"class":543},[533,83772,83773],{"class":625},"N_QUBITS",[533,83775,1133],{"class":543},[533,83777,83778],{"class":1762},"L",[533,83780,554],{"class":543},[533,83782,83783],{"class":625},"N_LAYERS",[533,83785,1771],{"class":543},[533,83787,83788],{"class":535,"line":590},[533,83789,83790],{"class":621},"    \"\"\"Rebuild a fitted fingerprint state (12 qubits, 8 layers).\"\"\"\n",[533,83792,83793,83795,83797,83799],{"class":535,"line":597},[533,83794,1778],{"class":543},[533,83796,554],{"class":553},[533,83798,1126],{"class":560},[533,83800,72113],{"class":543},[533,83802,83803,83806,83808],{"class":535,"line":603},[533,83804,83805],{"class":543},"    pidx ",[533,83807,554],{"class":553},[533,83809,16932],{"class":625},[533,83811,83812,83814,83817,83819,83821],{"class":535,"line":609},[533,83813,12659],{"class":539},[533,83815,83816],{"class":543}," q ",[533,83818,2786],{"class":539},[533,83820,2976],{"class":553},[533,83822,83823],{"class":543},"(n):\n",[533,83825,83826,83828,83830,83832,83834,83837,83839],{"class":535,"line":640},[533,83827,1824],{"class":543},[533,83829,1652],{"class":560},[533,83831,615],{"class":543},[533,83833,11186],{"class":553},[533,83835,83836],{"class":543},"(params[pidx]), q); pidx ",[533,83838,2843],{"class":553},[533,83840,16942],{"class":625},[533,83842,83843,83845,83848,83850,83852],{"class":535,"line":646},[533,83844,12659],{"class":539},[533,83846,83847],{"class":543}," _ ",[533,83849,2786],{"class":539},[533,83851,2976],{"class":553},[533,83853,83854],{"class":543},"(L):\n",[533,83856,83857,83859,83861,83863,83865,83867,83869,83871],{"class":535,"line":658},[533,83858,66356],{"class":539},[533,83860,83816],{"class":543},[533,83862,2786],{"class":539},[533,83864,2976],{"class":553},[533,83866,6900],{"class":543},[533,83868,2514],{"class":553},[533,83870,6353],{"class":625},[533,83872,1771],{"class":543},[533,83874,83875,83877,83879,83882,83884,83886,83888,83896],{"class":535,"line":680},[533,83876,80235],{"class":543},[533,83878,4936],{"class":560},[533,83880,83881],{"class":543},"(q, q ",[533,83883,6350],{"class":553},[533,83885,6353],{"class":625},[533,83887,2632],{"class":543},[533,83889,80059,83890],{"class":80057,"tabindex":80058},[533,83891,83892,83895],{"class":80062,"role":80063},[974,83893,83894],{},"Entangling the register."," The CX ladder ties the qubit groups together, so the state can hold the regime's joint parameter structure (how shock reactivity couples to persistence) instead of three separate histograms.",[533,83897,1113],{},[533,83899,83900,83902,83904,83906,83908],{"class":535,"line":1536},[533,83901,66356],{"class":539},[533,83903,83816],{"class":543},[533,83905,2786],{"class":539},[533,83907,2976],{"class":553},[533,83909,83823],{"class":543},[533,83911,83912,83914,83916,83918,83920,83922,83924],{"class":535,"line":1552},[533,83913,80235],{"class":543},[533,83915,1652],{"class":560},[533,83917,615],{"class":543},[533,83919,11186],{"class":553},[533,83921,83836],{"class":543},[533,83923,2843],{"class":553},[533,83925,16942],{"class":625},[533,83927,83928,83930],{"class":535,"line":1911},[533,83929,1880],{"class":539},[533,83931,80334],{"class":543},[533,83933,83934],{"class":535,"line":1940},[533,83935,891],{"emptyLinePlaceholder":790},[533,83937,83938,83940,83943,83945,83948,83950,83953],{"class":535,"line":1968},[533,83939,1754],{"class":539},[533,83941,83942],{"class":560}," _inversion",[533,83944,615],{"class":543},[533,83946,83947],{"class":1762},"qc_live",[533,83949,1133],{"class":543},[533,83951,83952],{"class":1762},"qc_ref",[533,83954,1771],{"class":543},[533,83956,83957,83959,83961],{"class":535,"line":1995},[533,83958,44512],{"class":543},[533,83960,554],{"class":553},[533,83962,83963],{"class":543}," qc_live.num_qubits\n",[533,83965,83966,83968,83970,83972],{"class":535,"line":4164},[533,83967,1778],{"class":543},[533,83969,554],{"class":553},[533,83971,1126],{"class":560},[533,83973,6871],{"class":543},[533,83975,83976,83978,83981,83984,83986,83988,83990],{"class":535,"line":4199},[533,83977,1799],{"class":543},[533,83979,83980],{"class":560},"compose",[533,83982,83983],{"class":543},"(qc_live, ",[533,83985,3366],{"class":567},[533,83987,554],{"class":553},[533,83989,1958],{"class":625},[533,83991,637],{"class":543},[533,83993,83994,83996,83998,84001,84004,84006,84008,84010,84012,84014,84022],{"class":535,"line":4206},[533,83995,1799],{"class":543},[533,83997,83980],{"class":560},[533,83999,84000],{"class":543},"(qc_ref.",[533,84002,84003],{"class":560},"inverse",[533,84005,13473],{"class":543},[533,84007,3366],{"class":567},[533,84009,554],{"class":553},[533,84011,1958],{"class":625},[533,84013,2632],{"class":543},[533,84015,80059,84016],{"class":80057,"tabindex":80058},[533,84017,84018,84021],{"class":80062,"role":80063},[974,84019,84020],{},"The inversion test."," Prepare the live state, then run the reference circuit backwards. If the two states match, interference brings every amplitude back to the all-zeros outcome.",[533,84023,1113],{},[533,84025,84026,84028,84030,84032,84034,84036,84038],{"class":535,"line":4214},[533,84027,1799],{"class":543},[533,84029,1164],{"class":560},[533,84031,615],{"class":543},[533,84033,6692],{"class":553},[533,84035,6937],{"class":543},[533,84037,6692],{"class":553},[533,84039,6942],{"class":543},[533,84041,84042,84044],{"class":535,"line":11296},[533,84043,1880],{"class":539},[533,84045,80334],{"class":543},[533,84047,84048],{"class":535,"line":11302},[533,84049,891],{"emptyLinePlaceholder":790},[533,84051,84052],{"class":535,"line":11332},[533,84053,84054],{"class":593},"# Rank all five regimes offline first (exact overlaps from the baked\n",[533,84056,84057],{"class":535,"line":11345},[533,84058,84059],{"class":593},"# params), then spend the run's single hardware job verifying the top match.\n",[533,84061,84062,84065,84067,84069,84071,84074,84077,84080],{"class":535,"line":11372},[533,84063,84064],{"class":543},"live ",[533,84066,554],{"class":553},[533,84068,83759],{"class":560},[533,84070,615],{"class":543},[533,84072,84073],{"class":625},"DEMO_PARAMS",[533,84075,84076],{"class":543},"[ci][",[533,84078,84079],{"class":625},"REF_FAM",[533,84081,84082],{"class":543},"[target]])\n",[533,84084,84085,84088,84090,84092,84094,84097],{"class":535,"line":11385},[533,84086,84087],{"class":543},"ref  ",[533,84089,554],{"class":553},[533,84091,83759],{"class":560},[533,84093,615],{"class":543},[533,84095,84096],{"class":625},"REF_PARAMS",[533,84098,84099],{"class":543},"[target])\n",[533,84101,84102,84104,84106,84108,84110,84113,84116,84118,84120,84123,84125,84127,84129],{"class":535,"line":11390},[533,84103,3146],{"class":543},[533,84105,554],{"class":553},[533,84107,901],{"class":560},[533,84109,615],{"class":543},[533,84111,84112],{"class":560},"_inversion",[533,84114,84115],{"class":543},"(live, ref), ",[533,84117,907],{"class":567},[533,84119,554],{"class":553},[533,84121,84122],{"class":543},"backend, ",[533,84124,3955],{"class":567},[533,84126,554],{"class":553},[533,84128,1049],{"class":625},[533,84130,637],{"class":543},[533,84132,84133,84136,84138,84140,84142,84144,84146,84148,84150,84152,84154,84156],{"class":535,"line":11402},[533,84134,84135],{"class":543},"counts  ",[533,84137,554],{"class":553},[533,84139,557],{"class":543},[533,84141,561],{"class":560},[533,84143,564],{"class":543},[533,84145,269],{"class":567},[533,84147,554],{"class":553},[533,84149,3985],{"class":543},[533,84151,1208],{"class":560},[533,84153,1211],{"class":543},[533,84155,1214],{"class":560},[533,84157,1217],{"class":543},[533,84159,84160,84163,84165,84168,84171,84179],{"class":535,"line":11407},[533,84161,84162],{"class":543},"K_meas  ",[533,84164,554],{"class":553},[533,84166,84167],{"class":560}," _zero_frac",[533,84169,84170],{"class":543},"(counts)",[533,84172,80059,84173],{"class":80057,"tabindex":80058},[533,84174,84175,84178],{"class":80062,"role":80063},[974,84176,84177],{},"The kernel is a probability."," The fraction of all-zeros shots estimates K, the squared overlap between the live and reference states. For these amplitude-encoded fingerprints, that equals the squared Bhattacharyya overlap between the two distributions.",[533,84180,1113],{},[533,84182,84183,84185,84187,84189,84192,84194,84197,84199,84201,84204,84206,84209,84211,84213,84215],{"class":535,"line":11412},[533,84184,917],{"class":553},[533,84186,615],{"class":543},[533,84188,618],{"class":539},[533,84190,84191],{"class":621},"\"Measured K = ",[533,84193,626],{"class":625},[533,84195,84196],{"class":543},"K_meas",[533,84198,77719],{"class":539},[533,84200,632],{"class":625},[533,84202,84203],{"class":621}," vs offline fitted K = ",[533,84205,626],{"class":625},[533,84207,84208],{"class":543},"K_fit[target]",[533,84210,77719],{"class":539},[533,84212,632],{"class":625},[533,84214,439],{"class":621},[533,84216,637],{"class":543},[12,84218,84219],{},"The playground allows one submitted job per run, so the cell works the way a careful experimentalist would. It prints the full five-regime ranking from exact offline overlaps first, then spends its single hardware job verifying one row of that ranking on the QPU, with shot-noise error bars on the measured kernel.",[81936,84221,84223],{"lead":84222},"One entry point, three ways to score the same kernel.",[30,84224,84225,84233],{},[33,84226,84227],{},[36,84228,84229,84231],{},[39,84230,81947],{},[39,84232,81950],{},[49,84234,84235,84242,84250,84258],{},[36,84236,84237,84239],{},[54,84238,3529],{},[54,84240,84241],{},"Exact analytic overlap, no shots, for baselines and offline ranking.",[36,84243,84244,84247],{},[54,84245,84246],{},"Sampler",[54,84248,84249],{},"Any Qiskit V2 sampler, from local simulation up to a real QPU.",[36,84251,84252,84255],{},[54,84253,84254],{},"IonQ",[54,84256,84257],{},"Transpiled to the native gate set; simulator, Aria, or Forte hardware.",[36,84259,84260,84263],{},[54,84261,84262],{},"Circuits",[54,84264,84265],{},"Inversion test on n qubits by default; a swap test when state preparation must stay a black box.",[25,84267,84269],{"id":84268},"honest-about-the-quantum","Honest about the quantum",[12,84271,84272],{},"Before claiming anything for the quantum side, the team built the classical case against themselves. A plain correlation study of the live windows against the regime library, run in NumPy, topped out around 0.4 on its best sample and sat far lower on the rest: too weak to use in finance. That baseline ships with the project, in one picture.",[79791,84274,84275],{"avatar":529,"name":82309,"role":82310,"username":82311},[12,84276,82314],{},[12,84278,84279],{},"The project does not promise an exponential speedup, and it concedes that a classical computer can evaluate the same similarity on a moderate histogram. The argument is about fit: amplitude-encoded states give the right inner product for comparing distributions by construction, and entanglement carries the joint parameter structure without hand-engineered interaction features. The same primitive runs unchanged from a statevector simulation to a QPU as the library grows.",[79791,84281,84282],{"avatar":529,"name":82309,"role":82310,"username":82311},[12,84283,84284],{},"My concern is the noise level on real hardware. We are talking about entropy here. If the noise is large, it easily overlays the entropy of the signal, and we lose the signal.",[25,84286,80373],{"id":4321},[12,84288,84289],{},"The playground cell is self-contained: the regime library and five live fingerprints, including META 2020, AMZN 2020, NVDA 2022, AAPL 2021, and META 2022, are baked in, so it runs with no accounts and no data setup. Pick a ticker and a year, run the offline ranking, then point the same cell at an IonQ backend to verify a kernel on hardware.",[4321,84291,84293],{"fork-href":83737,"live-href":529,"title":84292},"Pick a market. Ask which history it rhymes with.",[12,84294,84295,84296],{},"Fork Quantum Regime Radar, score a live window against five regimes taken from real market history, and verify the top match on a QPU. ",[974,84297,4329],{},[773,84299,84300],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":84302},[84303,84304,84305,84306],{"id":83667,"depth":547,"text":83668},{"id":83726,"depth":547,"text":83727},{"id":84268,"depth":547,"text":84269},{"id":4321,"depth":547,"text":80373},[4349,4637,81865],[84309],{"username":82311,"name":84310,"role":84311,"avatar":529,"bio":84312,"links":84313},"Alireza Khodaei, PhD","Creator · quantum finance","Alireza holds a PhD in Computer Engineering and Computer Science from the University of Nebraska-Lincoln and an MBA with a finance specialization, and works at Nelnet. His doctoral work developed a quantum-enhanced framework for GARCH parameter estimation on a quantum annealer, backtested across market regimes, and that empirical foundation is what the Regime Radar's reference library is built on.",[84314],{"label":4360,"href":84315},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Falireza",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Alireza Khodaei built a tool that fingerprints live market behavior and scores it against five volatility regimes taken from real history, with quantum kernels on IonQ hardware.","Alireza Khodaei built Quantum Regime Radar: it scores live market returns against five volatility regimes from real history with quantum kernels on IonQ.",{"href":83737,"label":84320},"Fork Regime Radar",{"image":529,"alt":529,"liveUrl":529},{},"\u002Fblog\u002Fquantum-regime-radar",[],[84326,84327,84328],{"username":6624,"project":81121,"title":6625,"category":80440,"thumb":6626,"to":81122},{"username":2329,"project":81124,"title":2330,"category":80434,"thumb":2332,"to":81125},{"username":3092,"project":80444,"title":3093,"category":80440,"thumb":2743,"to":80445},{"title":84330,"description":84331},"Quantum Creative Project Showcase: Quantum Regime Radar","Which kind of market is this? Live returns scored against five historical volatility regimes by quantum-kernel overlap on IonQ.","blog\u002Fquantum-regime-radar",[82382,4383,82384],"1ablBP04qM30tOAOAjIoI6RJNnKiLUM4zFzqxT5q4e4",{"id":84336,"title":84337,"authors":84338,"body":84339,"breadcrumb":85225,"builders":85226,"byline":85238,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":85239,"description":85240,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":85241,"hero":85243,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":85245,"navigation":790,"newsItems":7,"next":7,"ogImage":85246,"order":7,"outcomes":7,"path":85247,"publishDate":85248,"readingTime":81459,"related":85249,"relatedProjects":85250,"seo":85259,"stem":85262,"tags":85263,"track":7,"trackName":7,"__hash__":85264},"blog\u002Fblog\u002Fquantum-advantage-lab.md","Project Showcase: Quantum Advantage Lab",[81701],{"type":9,"value":84340,"toc":85219},[84341,84344,84347,84352,84356,84359,84406,84411,84416,84420,84423,84427,84430,84434,84437,85142,85145,85197,85202,85204,85207,85216],[12,84342,84343],{},"Most people are told that quantum computers are faster. Far fewer ever see why. Quantum Advantage Lab is built to close that gap: pick one of four famous algorithms, press go, and watch it run step by step beside the classical method solving the same problem.",[12,84345,84346],{},"The four races span the canon: Grover's search, a variational eigensolver for molecular ground states, a discrete-time quantum walk, and Hamiltonian simulation. Each one streams the quantum computation's intermediate state, the amplitudes climbing, the energy converging, the probability spreading, next to a classical baseline doing the same job.",[79791,84348,84349],{"avatar":529,"name":81598,"role":81700,"username":81701},[12,84350,84351],{},"The whole idea started from the race: what algorithms can we show, and how do we visualize that competition? I had written the proposal, but it was not a case of \"I know the answer, I just need to implement it.\" It was going to be challenging.",[25,84353,84355],{"id":84354},"the-four-races","The four races",[12,84357,84358],{},"All four races share a shape. On one side, a quantum circuit; on the other, the best classical method for the same task. Both run, and the Lab streams what is happening inside each.",[81936,84360,84361],{},[30,84362,84363,84372],{},[33,84364,84365],{},[36,84366,84367,84370],{},[39,84368,84369],{},"Race",[39,84371,81950],{},[49,84373,84374,84382,84390,84398],{},[36,84375,84376,84379],{},[54,84377,84378],{},"Grover's search",[54,84380,84381],{},"Amplitude amplification against a brute-force scan. You watch the amplitude of the target answer climb in a smooth arc while the classical search checks items one at a time. The picture makes Grover's true nature obvious: it is less a search than a rotation, one you can over-shoot if you run it too long.",[36,84383,84384,84387],{},[54,84385,84386],{},"VQE",[54,84388,84389],{},"The variational quantum eigensolver hunts for a molecule's ground-state energy, against a classical optimizer working the same landscape. You watch the energy descend toward the exact value, with a chemical-accuracy band drawn in. It is the one race where the quantum side is genuinely hard, and the Lab shows you why: the optimization landscape is full of traps.",[36,84391,84392,84395],{},[54,84393,84394],{},"Quantum walk",[54,84396,84397],{},"A coined walk set loose against an ordinary random walk on the same graph. Interference makes the quantum distribution spread ballistically, with sharp peaks at its edges, while the classical walk just diffuses into a bell curve. The gap between spreading linearly with time and spreading like its square root is the whole story, drawn live.",[36,84399,84400,84403],{},[54,84401,84402],{},"Hamiltonian simulation",[54,84404,84405],{},"A spin chain evolved with a Trotterized circuit, raced against direct matrix exponentiation. Finer time-slices mean a more faithful result and a deeper circuit, and you watch that depth-versus-accuracy tradeoff play out as the fidelity climbs. This is the race that ships ready to run in the code below.",[79791,84407,84408],{"avatar":529,"name":81598,"role":81700,"username":81701},[12,84409,84410],{},"[Advantage Lab] turns abstract ideas like amplitude amplification, ballistic spreading, variational convergence, and Trotter error into visual, replayable experiences. That makes it useful for newcomers, instructors, and technically curious product audiences.",[2175,84412],{"caption":84413,"no":79839,"poster":84414,"video":84415},"The Lab in motion. A race streamed step by step, the quantum circuit beside its classical baseline. Demo by Hossein Sadeghi. Press play.","\u002F_content\u002Fimages\u002Fquantum-advantage-lab\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002Ff0f3f459-1f14-4785-aecc-7efda823d45c",[25,84417,84419],{"id":84418},"an-honest-race","An honest race",[12,84421,84422],{},"At the sizes that run on today's hardware, the quantum side does not finish first on a stopwatch. Four qubits are trivial for a laptop, every gate carries noise, and real jobs wait in a queue behind everyone else's.",[79791,84424,84425],{"avatar":529,"name":81598,"role":81700,"username":81701},[12,84426,81704],{},[12,84428,84429],{},"The Lab focuses on measuring distance from the right answer. The Hamiltonian race sweeps 1, 2, 4, 8 and 16 Trotter steps and prints the circuit depth beside the total-variation distance from exact evolution, so the accuracy you buy with each extra step is a number on the screen. Hardware runs are stored and replayed rather than re-queued, with a statevector simulator alongside for the noiseless version of the same circuit. And since the backend is trapped-ion, the entangling layers in Grover and VQE need no SWAP gates, which you can check by transpiling against another backend and comparing depths.",[25,84431,84433],{"id":84432},"how-it-works","How it works",[12,84435,84436],{},"The Hamiltonian-simulation race is the most self-contained, and the project ships ready to run in the Qollab Playground. The Lab builds a transverse-field Ising chain, evolves it with a first-order Trotter circuit, and measures how close the sampled result is to exact evolution as the number of Trotter steps climbs:",[519,84438,84441],{"name":84439,"run-href":84440,"tag":522},"hamiltonian_race.py","\u002Fu\u002Fhsadeghi\u002Fquantum-advantage-lab",[524,84442,84444],{"className":526,"code":84443,"language":528,"meta":79866,"style":529},"# Quantum Advantage Lab: the Hamiltonian Simulation race.\n# Evolve a transverse-field Ising chain with a Trotter circuit, then sweep\n# the step count and watch the quantum result close in on exact evolution.\nimport numpy as np\nfrom scipy.linalg import expm\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.circuit.library import PauliEvolutionGate\nfrom qiskit.quantum_info import SparsePauliOp\nfrom qiskit.synthesis import LieTrotter\n\nN_QUBITS, TIME = 4, 0.5\nN_STEPS_SWEEP  = [1, 2, 4, 8, 16]\n\ndef build_ising(n, J=1.0, h=1.0):              # H = -J sum ZZ - h sum X\n    terms = []\n    for i in range(n - 1):\n        zz = [\"I\"] * n; zz[i] = zz[i + 1] = \"Z\"\n        terms.append((\"\".join(zz), -J))\n    for i in range(n):\n        x = [\"I\"] * n; x[i] = \"X\"\n        terms.append((\"\".join(x), -h))\n    return SparsePauliOp.from_list(terms)\n\ndef trotter_circuit(H, t, n_steps, n):         # first-order Lie-Trotter\n    qc = QuantumCircuit(n, n)\n    qc.append(PauliEvolutionGate(H, time=t, synthesis=LieTrotter(reps=n_steps)), range(n))\n    qc.measure(range(n), range(n))\n    return qc\n\nH     = build_ising(N_QUBITS)\nexact = exact_distribution(H, TIME, N_QUBITS)   # classical baseline, via SciPy expm\n\nfor n_steps in N_STEPS_SWEEP:\n    qc     = trotter_circuit(H, TIME, n_steps, N_QUBITS)\n    tqc    = transpile(qc, backend, optimization_level=1)   # IonQ-native gates\n    counts = backend.run(tqc, shots=shots).result().get_counts()\n    probs  = counts_to_probs(counts, N_QUBITS)\n    print(f\"steps={n_steps:>2}  depth={tqc.depth():>3}  TV(quantum, exact)={tv_distance(probs, exact):.4f}\")\n",[57,84445,84446,84451,84456,84461,84471,84483,84494,84506,84518,84530,84534,84553,84584,84588,84621,84630,84648,84683,84707,84719,84742,84764,84787,84791,84821,84831,84888,84904,84910,84914,84929,84962,84966,84980,85000,85033,85059,85076],{"__ignoreMap":529},[533,84447,84448],{"class":535,"line":536},[533,84449,84450],{"class":593},"# Quantum Advantage Lab: the Hamiltonian Simulation race.\n",[533,84452,84453],{"class":535,"line":547},[533,84454,84455],{"class":593},"# Evolve a transverse-field Ising chain with a Trotter circuit, then sweep\n",[533,84457,84458],{"class":535,"line":575},[533,84459,84460],{"class":593},"# the step count and watch the quantum result close in on exact evolution.\n",[533,84462,84463,84465,84467,84469],{"class":535,"line":590},[533,84464,883],{"class":539},[533,84466,11128],{"class":543},[533,84468,584],{"class":539},[533,84470,11133],{"class":543},[533,84472,84473,84475,84478,84480],{"class":535,"line":597},[533,84474,877],{"class":539},[533,84476,84477],{"class":543}," scipy.linalg ",[533,84479,883],{"class":539},[533,84481,84482],{"class":543}," expm\n",[533,84484,84485,84487,84489,84491],{"class":535,"line":603},[533,84486,877],{"class":539},[533,84488,880],{"class":543},[533,84490,883],{"class":539},[533,84492,84493],{"class":543}," QuantumCircuit, transpile\n",[533,84495,84496,84498,84501,84503],{"class":535,"line":609},[533,84497,877],{"class":539},[533,84499,84500],{"class":543}," qiskit.circuit.library ",[533,84502,883],{"class":539},[533,84504,84505],{"class":543}," PauliEvolutionGate\n",[533,84507,84508,84510,84513,84515],{"class":535,"line":640},[533,84509,877],{"class":539},[533,84511,84512],{"class":543}," qiskit.quantum_info ",[533,84514,883],{"class":539},[533,84516,84517],{"class":543}," SparsePauliOp\n",[533,84519,84520,84522,84525,84527],{"class":535,"line":646},[533,84521,877],{"class":539},[533,84523,84524],{"class":543}," qiskit.synthesis ",[533,84526,883],{"class":539},[533,84528,84529],{"class":543}," LieTrotter\n",[533,84531,84532],{"class":535,"line":658},[533,84533,891],{"emptyLinePlaceholder":790},[533,84535,84536,84538,84540,84543,84545,84548,84550],{"class":535,"line":680},[533,84537,83773],{"class":625},[533,84539,1133],{"class":543},[533,84541,84542],{"class":625},"TIME",[533,84544,4899],{"class":553},[533,84546,84547],{"class":625}," 4",[533,84549,1133],{"class":543},[533,84551,84552],{"class":625},"0.5\n",[533,84554,84555,84558,84561,84563,84565,84567,84569,84571,84573,84575,84577,84579,84582],{"class":535,"line":1536},[533,84556,84557],{"class":625},"N_STEPS_SWEEP",[533,84559,84560],{"class":553},"  =",[533,84562,13464],{"class":543},[533,84564,1052],{"class":625},[533,84566,1133],{"class":543},[533,84568,1140],{"class":625},[533,84570,1133],{"class":543},[533,84572,1183],{"class":625},[533,84574,1133],{"class":543},[533,84576,12908],{"class":625},[533,84578,1133],{"class":543},[533,84580,84581],{"class":625},"16",[533,84583,14965],{"class":543},[533,84585,84586],{"class":535,"line":1552},[533,84587,891],{"emptyLinePlaceholder":790},[533,84589,84590,84592,84595,84597,84599,84601,84603,84605,84607,84609,84611,84613,84615,84618],{"class":535,"line":1911},[533,84591,1754],{"class":539},[533,84593,84594],{"class":560}," build_ising",[533,84596,615],{"class":543},[533,84598,30647],{"class":1762},[533,84600,1133],{"class":543},[533,84602,12170],{"class":1762},[533,84604,554],{"class":543},[533,84606,2239],{"class":625},[533,84608,1133],{"class":543},[533,84610,1148],{"class":1762},[533,84612,554],{"class":543},[533,84614,2239],{"class":625},[533,84616,84617],{"class":543},"):              ",[533,84619,84620],{"class":593},"# H = -J sum ZZ - h sum X\n",[533,84622,84623,84626,84628],{"class":535,"line":1940},[533,84624,84625],{"class":543},"    terms ",[533,84627,554],{"class":553},[533,84629,42383],{"class":543},[533,84631,84632,84634,84636,84638,84640,84642,84644,84646],{"class":535,"line":1968},[533,84633,12659],{"class":539},[533,84635,2971],{"class":543},[533,84637,2786],{"class":539},[533,84639,2976],{"class":553},[533,84641,6900],{"class":543},[533,84643,2514],{"class":553},[533,84645,6353],{"class":625},[533,84647,1771],{"class":543},[533,84649,84650,84653,84655,84657,84660,84662,84664,84667,84669,84672,84674,84676,84678,84680],{"class":535,"line":1995},[533,84651,84652],{"class":543},"        zz ",[533,84654,554],{"class":553},[533,84656,13464],{"class":543},[533,84658,84659],{"class":621},"\"I\"",[533,84661,11314],{"class":543},[533,84663,2469],{"class":553},[533,84665,84666],{"class":543}," n; zz[i] ",[533,84668,554],{"class":553},[533,84670,84671],{"class":543}," zz[i ",[533,84673,6350],{"class":553},[533,84675,6353],{"class":625},[533,84677,11314],{"class":543},[533,84679,554],{"class":553},[533,84681,84682],{"class":621}," \"Z\"\n",[533,84684,84685,84688,84690,84692,84694,84696,84699,84702,84704],{"class":535,"line":4164},[533,84686,84687],{"class":543},"        terms.",[533,84689,6216],{"class":560},[533,84691,6219],{"class":543},[533,84693,41862],{"class":621},[533,84695,114],{"class":543},[533,84697,84698],{"class":560},"join",[533,84700,84701],{"class":543},"(zz), ",[533,84703,2514],{"class":553},[533,84705,84706],{"class":543},"J))\n",[533,84708,84709,84711,84713,84715,84717],{"class":535,"line":4199},[533,84710,12659],{"class":539},[533,84712,2971],{"class":543},[533,84714,2786],{"class":539},[533,84716,2976],{"class":553},[533,84718,83823],{"class":543},[533,84720,84721,84724,84726,84728,84730,84732,84734,84737,84739],{"class":535,"line":4206},[533,84722,84723],{"class":543},"        x ",[533,84725,554],{"class":553},[533,84727,13464],{"class":543},[533,84729,84659],{"class":621},[533,84731,11314],{"class":543},[533,84733,2469],{"class":553},[533,84735,84736],{"class":543}," n; x[i] ",[533,84738,554],{"class":553},[533,84740,84741],{"class":621}," \"X\"\n",[533,84743,84744,84746,84748,84750,84752,84754,84756,84759,84761],{"class":535,"line":4214},[533,84745,84687],{"class":543},[533,84747,6216],{"class":560},[533,84749,6219],{"class":543},[533,84751,41862],{"class":621},[533,84753,114],{"class":543},[533,84755,84698],{"class":560},[533,84757,84758],{"class":543},"(x), ",[533,84760,2514],{"class":553},[533,84762,84763],{"class":543},"h))\n",[533,84765,84766,84768,84771,84774,84777,84785],{"class":535,"line":11296},[533,84767,1880],{"class":539},[533,84769,84770],{"class":543}," SparsePauliOp.",[533,84772,84773],{"class":560},"from_list",[533,84775,84776],{"class":543},"(terms)",[533,84778,80059,84779],{"class":80057,"tabindex":80058},[533,84780,84781,84784],{"class":80062,"role":80063},[974,84782,84783],{},"The model."," A 1D transverse-field Ising chain: neighboring spins coupled along Z, a field along X. A small, well-understood system to simulate.",[533,84786,1113],{},[533,84788,84789],{"class":535,"line":11302},[533,84790,891],{"emptyLinePlaceholder":790},[533,84792,84793,84795,84798,84800,84802,84804,84806,84808,84811,84813,84815,84818],{"class":535,"line":11332},[533,84794,1754],{"class":539},[533,84796,84797],{"class":560}," trotter_circuit",[533,84799,615],{"class":543},[533,84801,16132],{"class":1762},[533,84803,1133],{"class":543},[533,84805,9582],{"class":1762},[533,84807,1133],{"class":543},[533,84809,84810],{"class":1762},"n_steps",[533,84812,1133],{"class":543},[533,84814,30647],{"class":1762},[533,84816,84817],{"class":543},"):         ",[533,84819,84820],{"class":593},"# first-order Lie-Trotter\n",[533,84822,84823,84825,84827,84829],{"class":535,"line":11345},[533,84824,1778],{"class":543},[533,84826,554],{"class":553},[533,84828,1126],{"class":560},[533,84830,6871],{"class":543},[533,84832,84833,84835,84837,84839,84842,84845,84847,84849,84852,84855,84857,84860,84862,84865,84867,84870,84872,84875,84886],{"class":535,"line":11372},[533,84834,1799],{"class":543},[533,84836,6216],{"class":560},[533,84838,615],{"class":543},[533,84840,84841],{"class":560},"PauliEvolutionGate",[533,84843,84844],{"class":543},"(H, ",[533,84846,20619],{"class":567},[533,84848,554],{"class":553},[533,84850,84851],{"class":543},"t, ",[533,84853,84854],{"class":567},"synthesis",[533,84856,554],{"class":553},[533,84858,84859],{"class":560},"LieTrotter",[533,84861,615],{"class":543},[533,84863,84864],{"class":567},"reps",[533,84866,554],{"class":553},[533,84868,84869],{"class":543},"n_steps)), ",[533,84871,6692],{"class":553},[533,84873,84874],{"class":543},"(n))",[533,84876,80059,84877],{"class":80057,"tabindex":80058},[533,84878,84879,84882,84883,84885],{"class":80062,"role":80063},[974,84880,84881],{},"Trotterization."," Approximates the time-evolution by chopping it into ",[57,84884,84810],{}," slices. More steps means a more faithful result and a deeper circuit, and watching that tradeoff is the race.",[533,84887,1113],{},[533,84889,84890,84892,84894,84896,84898,84900,84902],{"class":535,"line":11385},[533,84891,1799],{"class":543},[533,84893,1164],{"class":560},[533,84895,615],{"class":543},[533,84897,6692],{"class":553},[533,84899,6937],{"class":543},[533,84901,6692],{"class":553},[533,84903,6942],{"class":543},[533,84905,84906,84908],{"class":535,"line":11390},[533,84907,1880],{"class":539},[533,84909,80334],{"class":543},[533,84911,84912],{"class":535,"line":11402},[533,84913,891],{"emptyLinePlaceholder":790},[533,84915,84916,84919,84921,84923,84925,84927],{"class":535,"line":11407},[533,84917,84918],{"class":543},"H     ",[533,84920,554],{"class":553},[533,84922,84594],{"class":560},[533,84924,615],{"class":543},[533,84926,83773],{"class":625},[533,84928,637],{"class":543},[533,84930,84931,84934,84936,84939,84941,84943,84945,84947,84949,84952,84960],{"class":535,"line":11412},[533,84932,84933],{"class":543},"exact ",[533,84935,554],{"class":553},[533,84937,84938],{"class":560}," exact_distribution",[533,84940,84844],{"class":543},[533,84942,84542],{"class":625},[533,84944,1133],{"class":543},[533,84946,83773],{"class":625},[533,84948,74397],{"class":543},[533,84950,84951],{"class":593},"# classical baseline, via SciPy expm",[533,84953,80059,84954],{"class":80057,"tabindex":80058},[533,84955,84956,84959],{"class":80062,"role":80063},[974,84957,84958],{},"The classical side."," SciPy exponentiates the full 2ⁿ×2ⁿ matrix directly. Exact, but the cost explodes with every qubit you add.",[533,84961,1113],{},[533,84963,84964],{"class":535,"line":11418},[533,84965,891],{"emptyLinePlaceholder":790},[533,84967,84968,84970,84973,84975,84978],{"class":535,"line":11423},[533,84969,3180],{"class":539},[533,84971,84972],{"class":543}," n_steps ",[533,84974,2786],{"class":539},[533,84976,84977],{"class":625}," N_STEPS_SWEEP",[533,84979,544],{"class":543},[533,84981,84982,84985,84987,84989,84991,84993,84996,84998],{"class":535,"line":11467},[533,84983,84984],{"class":543},"    qc     ",[533,84986,554],{"class":553},[533,84988,84797],{"class":560},[533,84990,84844],{"class":543},[533,84992,84542],{"class":625},[533,84994,84995],{"class":543},", n_steps, ",[533,84997,83773],{"class":625},[533,84999,637],{"class":543},[533,85001,85002,85005,85007,85009,85012,85014,85016,85018,85020,85023,85031],{"class":535,"line":11473},[533,85003,85004],{"class":543},"    tqc    ",[533,85006,554],{"class":553},[533,85008,901],{"class":560},[533,85010,85011],{"class":543},"(qc, backend, ",[533,85013,3955],{"class":567},[533,85015,554],{"class":553},[533,85017,1052],{"class":625},[533,85019,74397],{"class":543},[533,85021,85022],{"class":593},"# IonQ-native gates",[533,85024,80059,85025],{"class":80057,"tabindex":80058},[533,85026,85027,85030],{"class":80062,"role":80063},[974,85028,85029],{},"IonQ-native."," On trapped-ion hardware, all-to-all connectivity lets the entangling layers run with no SWAP gates, so the circuit stays shallow. Switch the backend to compare.",[533,85032,1113],{},[533,85034,85035,85037,85039,85041,85043,85045,85047,85049,85051,85053,85055,85057],{"class":535,"line":11488},[533,85036,80943],{"class":543},[533,85038,554],{"class":553},[533,85040,557],{"class":543},[533,85042,561],{"class":560},[533,85044,3978],{"class":543},[533,85046,269],{"class":567},[533,85048,554],{"class":553},[533,85050,3985],{"class":543},[533,85052,1208],{"class":560},[533,85054,1211],{"class":543},[533,85056,1214],{"class":560},[533,85058,1217],{"class":543},[533,85060,85061,85064,85066,85069,85072,85074],{"class":535,"line":11505},[533,85062,85063],{"class":543},"    probs  ",[533,85065,554],{"class":553},[533,85067,85068],{"class":560}," counts_to_probs",[533,85070,85071],{"class":543},"(counts, ",[533,85073,83773],{"class":625},[533,85075,637],{"class":543},[533,85077,85078,85080,85082,85084,85087,85089,85091,85094,85096,85099,85101,85104,85106,85108,85111,85113,85116,85118,85121,85124,85126,85128,85130,85132,85140],{"class":535,"line":11518},[533,85079,612],{"class":553},[533,85081,615],{"class":543},[533,85083,618],{"class":539},[533,85085,85086],{"class":621},"\"steps=",[533,85088,626],{"class":625},[533,85090,84810],{"class":543},[533,85092,85093],{"class":539},":>2",[533,85095,632],{"class":625},[533,85097,85098],{"class":621},"  depth=",[533,85100,626],{"class":625},[533,85102,85103],{"class":543},"tqc.",[533,85105,929],{"class":560},[533,85107,41837],{"class":543},[533,85109,85110],{"class":539},":>3",[533,85112,632],{"class":625},[533,85114,85115],{"class":621},"  TV(quantum, exact)=",[533,85117,626],{"class":625},[533,85119,85120],{"class":560},"tv_distance",[533,85122,85123],{"class":543},"(probs, exact)",[533,85125,77719],{"class":539},[533,85127,632],{"class":625},[533,85129,439],{"class":621},[533,85131,2632],{"class":543},[533,85133,80059,85134],{"class":80057,"tabindex":80058},[533,85135,85136,85139],{"class":80062,"role":80063},[974,85137,85138],{},"The verdict."," Total-variation distance between the sampled quantum distribution and the exact one. Watch it shrink as the Trotter steps climb.",[533,85141,1113],{},[12,85143,85144],{},"The same pattern drives the other three races: a real circuit on one side, an exact or best-effort classical solver on the other, and a stream of intermediate state in between. Because the architecture is modular, each race is a self-contained plug-in, which is what lets the Lab grow a fifth or sixth race without a rewrite.",[81936,85146,85148],{"lead":85147},"Quantum Advantage Lab is open source and MIT-licensed, with a modular architecture built for community-contributed races.",[30,85149,85150,85158],{},[33,85151,85152],{},[36,85153,85154,85156],{},[39,85155,81947],{},[39,85157,81950],{},[49,85159,85160,85167,85174,85182,85189],{},[36,85161,85162,85164],{},[54,85163,79393],{},[54,85165,85166],{},"Qiskit, Grover, VQE, a quantum walk, and Hamiltonian simulation, each a real circuit.",[36,85168,85169,85171],{},[54,85170,5152],{},[54,85172,85173],{},"qiskit-ionq, IonQ Forte trapped-ion QPU, all-to-all connectivity.",[36,85175,85176,85179],{},[54,85177,85178],{},"Classical",[54,85180,85181],{},"NumPy, SciPy, tensor-network baselines, the side each race has to beat.",[36,85183,85184,85186],{},[54,85185,81191],{},[54,85187,85188],{},"Streaming intermediate state, amplitudes, energies, distributions, and fidelity, step by step.",[36,85190,85191,85194],{},[54,85192,85193],{},"License",[54,85195,85196],{},"MIT, with a plug-in architecture for community-contributed modules.",[79791,85198,85199],{"avatar":529,"name":81598,"role":81700,"username":81701},[12,85200,85201],{},"It does not just show static circuits or final answers. It runs real Qiskit circuits, streams intermediate solver state, pairs each quantum method with a meaningful classical baseline, and is explicitly shaped around IonQ-native execution paths.",[25,85203,80373],{"id":4321},[12,85205,85206],{},"Quantum Advantage Lab is open and forkable on Qollab, MIT-licensed on GitHub, and live on the web right now. Pick a race, set the parameters, and step through it on a simulator or a real IonQ processor. The architecture is modular, so a new race is a plug-in, not a rewrite.",[4321,85208,85211],{"fork-href":84440,"live-href":85209,"title":85210},"https:\u002F\u002Fquantum-advantage-lab.vercel.app\u002F","Watch the speedup, and where it runs out.",[12,85212,85213,85214],{},"Fork the Lab, choose Grover, VQE, a quantum walk, or Hamiltonian simulation, and step through it beside its classical rival. ",[974,85215,4329],{},[773,85217,85218],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":85220},[85221,85222,85223,85224],{"id":84354,"depth":547,"text":84355},{"id":84418,"depth":547,"text":84419},{"id":84432,"depth":547,"text":84433},{"id":4321,"depth":547,"text":80373},[4349,4637,81587],[85227],{"username":81701,"name":85228,"role":85229,"avatar":529,"bio":85230,"links":85231},"Hossein Sadeghi Esfahani","Creator · quantum software & hardware","Hossein holds a PhD from the University of British Columbia and has spent more than a decade in quantum software. He spent seven years at D-Wave Systems, rising from applied researcher to solution architect and team lead and co-inventing three patents in quantum optimization and benchmarking, then led academic and R&D partnerships on neutral-atom systems at Pasqal Canada. He has also served as an investigator in the Creative Destruction Lab's Quantum Stream, mentoring early-stage quantum startups. Quantum Advantage Lab is his solo build.",[85232,85234,85236],{"label":4360,"href":85233},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fhsadeghi",{"label":80403,"href":85235},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fhosseinsadeghi\u002F",{"label":4363,"href":85237},"https:\u002F\u002Fgithub.com\u002Fhosseinsadeghi",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Hossein Sadeghi built a lab where four quantum algorithms run beside their classical counterparts and stream their intermediate state, so the mechanism behind a speedup is something you watch unfold rather than read about.","Quantum Advantage Lab runs four quantum algorithms beside their classical counterparts, streaming each step so the mechanism behind a speedup is something you watch. A Qollab Spring 2026 project.",{"href":84440,"label":85242},"Fork the Lab",{"image":84414,"alt":85244,"liveUrl":85209},"Quantum Advantage Lab's Race view: a quantum solver and a classical solver running the same Hamiltonian simulation side by side, state distributions streaming step by step",{},"\u002F_content\u002Fimages\u002Fquantum-advantage-lab\u002Fhero.jpg","\u002Fblog\u002Fquantum-advantage-lab","2026-06-30",[],[85251,85255,85256],{"username":85252,"project":85253,"title":81603,"category":81128,"thumb":85254,"to":81712},"bawa27","qorbital","\u002F_content\u002Fimages\u002Fqorbital\u002Fscreenshot.webp",{"username":6804,"project":80433,"title":6805,"category":80434,"thumb":6806,"to":80435},{"username":81664,"project":85257,"title":81554,"category":81128,"thumb":85258,"to":81656},"quantum-canvas","\u002F_content\u002Fimages\u002Fquantum-canvas\u002Fscreenshot.webp",{"title":85260,"description":85261},"Quantum Creative Project Showcase: Quantum Advantage Lab","Four quantum algorithms run beside their classical counterparts, streaming each step, so the mechanism behind a speedup becomes something you can watch.","blog\u002Fquantum-advantage-lab",[4382,4383,16807],"WoCgyFbHcdz_5v_icD6c_d51Xkl8z8S7x-QUfXsMWkU",{"id":85266,"title":85267,"authors":85268,"body":85269,"breadcrumb":85831,"builders":85832,"byline":85850,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":85851,"description":85852,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":85853,"hero":85854,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":85855,"navigation":790,"newsItems":7,"next":7,"ogImage":85856,"order":7,"outcomes":7,"path":85857,"publishDate":85248,"readingTime":74878,"related":85858,"relatedProjects":85859,"seo":85864,"stem":85867,"tags":85868,"track":7,"trackName":7,"__hash__":85870},"blog\u002Fblog\u002Fquantum-patterns.md","Project Showcase: Quantum Patterns",[6624,81731],{"type":9,"value":85270,"toc":85824},[85271,85274,85277,85280,85284,85288,85291,85294,85331,85336,85340,85347,85351,85718,85721,85766,85770,85773,85776,85781,85784,85788,85792,85795,85800,85803,85807,85809,85812,85821],[12,85272,85273],{},"Quantum Patterns starts from a provocation: what if the raw material of a piece of music came from a quantum circuit, from patterns that are coherent but never repeat, and that no classical computer could fake?",[12,85275,85276],{},"Their answer is a browser-based live-coding instrument, a fork of Satori. Partitioned quantum cellular automata (PQCA) are evolved on a quantum circuit, and their measurement outcomes are captured as datasets. Those datasets load into the editor, where short scripts in plain JavaScript turn them into sound. No Python, no accounts, and no quantum background needed to start.",[12,85278,85279],{},"Peter came to quantum through his doctorate, and spent it trying to get the field out of the lab and onto the stage.",[79791,85281,85282],{"avatar":82547,"name":82548,"role":82549,"username":6624},[12,85283,82615],{},[25,85285,85287],{"id":85286},"what-makes-a-pattern-quantum","What makes a pattern quantum",[12,85289,85290],{},"Cellular automata evolve a grid of cells by a fixed local rule, and generative artists have long prized them for the intricate, self-organizing patterns they throw off. Partitioned quantum cellular automata run that idea on a quantum circuit: cells are qubits, the update rule is a small circuit applied across overlapping partitions, and the state evolves through superposition and interference instead of a classical lookup table.",[12,85292,85293],{},"The result is material that is coherent without being predictable. The patterns carry real quantum structure, correlations produced by entanglement and shaped by phase interference, that a classical random-number generator cannot reproduce. Three gates do most of the work:",[81936,85295,85296],{},[30,85297,85298,85306],{},[33,85299,85300],{},[36,85301,85302,85304],{},[39,85303,81947],{},[39,85305,81950],{},[49,85307,85308,85315,85323],{},[36,85309,85310,85312],{},[54,85311,1615],{},[54,85313,85314],{},"Superposition, spreads each cell across its possible states.",[36,85316,85317,85320],{},[54,85318,85319],{},"CNOT \u002F CX",[54,85321,85322],{},"Entanglement, couples neighboring cells across partition borders.",[36,85324,85325,85328],{},[54,85326,85327],{},"RZ \u002F phase",[54,85329,85330],{},"Interference, shapes how amplitudes reinforce and cancel.",[79791,85332,85333],{"avatar":82547,"name":82548,"role":82549,"username":6624},[12,85334,85335],{},"Quantum cellular automata remained a creative footnote of my thesis, and they've a real immediacy for an audience because of the visual element. I wanted to see how effective they were at generating unfolding, immersive patterns.",[25,85337,85339],{"id":85338},"a-cellular-automaton-in-a-dozen-lines","A cellular automaton in a dozen lines",[12,85341,85342,85343,85346],{},"The pattern data comes from a Qiskit and ",[9404,85344,85345],{},"pqca"," script small enough to read in one sitting. It lays out a one-dimensional line of qubits, defines the two-qubit circuit applied to every cell, and steps the automaton forward, sampling one state per step. Edit the parameters, run it, and watch the excitation spread.",[2175,85348],{"caption":85349,"no":79839,"poster":85350,"video":6475},"A PQCA dataset loaded into Satori and scripted live, grid on the right, script on the left. Press play, sound on.","\u002F_content\u002Fimages\u002Fquantum-patterns\u002Fdemo-poster.webp",[519,85352,85353],{"name":6490,"run-href":6491,"tag":522},[524,85354,85356],{"className":526,"code":85355,"language":528,"meta":79866,"style":529},"# PQCA quickstart: a partitioned quantum cellular automaton in a dozen lines.\nimport qiskit\nimport pqca\n\n# Parameters\nNUM_QUBITS = 10          # a 1-D line of qubits\nCELL_SIZE  = 2           # qubits per cell\nSTEPS      = 6\nINITIAL = [1] + [0] * (NUM_QUBITS - 1)   # one excitation at the left edge\n\n# The circuit applied to every cell: a single CX on 2 qubits.\ncell = qiskit.QuantumCircuit(CELL_SIZE)\ncell.cx(0, 1)\n\n# Two offset tessellations couple the update across cell borders.\ntes = pqca.tessellation.one_dimensional(NUM_QUBITS, CELL_SIZE)\nframes = [\n    pqca.UpdateFrame(tes, cell),\n    pqca.UpdateFrame(tes.shifted_by(1), cell),\n]\n\n# Unitary mode evolves the statevector locally, sampling one state per step.\nautomaton = pqca.Automaton(INITIAL, frames, mode=pqca.UnitaryPQCA())\n\nprint(f\"t=0  {INITIAL}\")\nfor t in range(1, STEPS + 1):\n    print(f\"t={t}  {next(automaton)}\")\n",[57,85357,85358,85363,85370,85377,85381,85386,85398,85409,85419,85455,85459,85464,85480,85505,85509,85514,85534,85543,85554,85583,85587,85591,85596,85640,85644,85662,85686],{"__ignoreMap":529},[533,85359,85360],{"class":535,"line":536},[533,85361,85362],{"class":593},"# PQCA quickstart: a partitioned quantum cellular automaton in a dozen lines.\n",[533,85364,85365,85367],{"class":535,"line":547},[533,85366,883],{"class":539},[533,85368,85369],{"class":543}," qiskit\n",[533,85371,85372,85374],{"class":535,"line":575},[533,85373,883],{"class":539},[533,85375,85376],{"class":543}," pqca\n",[533,85378,85379],{"class":535,"line":590},[533,85380,891],{"emptyLinePlaceholder":790},[533,85382,85383],{"class":535,"line":597},[533,85384,85385],{"class":593},"# Parameters\n",[533,85387,85388,85390,85392,85395],{"class":535,"line":603},[533,85389,6570],{"class":625},[533,85391,4899],{"class":553},[533,85393,85394],{"class":625}," 10",[533,85396,85397],{"class":593},"          # a 1-D line of qubits\n",[533,85399,85400,85402,85404,85406],{"class":535,"line":609},[533,85401,6522],{"class":625},[533,85403,84560],{"class":553},[533,85405,11938],{"class":625},[533,85407,85408],{"class":593},"           # qubits per cell\n",[533,85410,85411,85413,85416],{"class":535,"line":640},[533,85412,6618],{"class":625},[533,85414,85415],{"class":553},"      =",[533,85417,85418],{"class":625}," 6\n",[533,85420,85421,85424,85426,85428,85430,85432,85434,85436,85438,85440,85442,85444,85446,85448,85450,85452],{"class":535,"line":646},[533,85422,85423],{"class":625},"INITIAL",[533,85425,4899],{"class":553},[533,85427,13464],{"class":543},[533,85429,1052],{"class":625},[533,85431,11314],{"class":543},[533,85433,6350],{"class":553},[533,85435,13464],{"class":543},[533,85437,1049],{"class":625},[533,85439,11314],{"class":543},[533,85441,2469],{"class":553},[533,85443,5037],{"class":543},[533,85445,6570],{"class":625},[533,85447,11221],{"class":553},[533,85449,6353],{"class":625},[533,85451,74397],{"class":543},[533,85453,85454],{"class":593},"# one excitation at the left edge\n",[533,85456,85457],{"class":535,"line":658},[533,85458,891],{"emptyLinePlaceholder":790},[533,85460,85461],{"class":535,"line":680},[533,85462,85463],{"class":593},"# The circuit applied to every cell: a single CX on 2 qubits.\n",[533,85465,85466,85468,85470,85472,85474,85476,85478],{"class":535,"line":1536},[533,85467,6510],{"class":543},[533,85469,554],{"class":553},[533,85471,6515],{"class":543},[533,85473,4403],{"class":560},[533,85475,615],{"class":543},[533,85477,6522],{"class":625},[533,85479,637],{"class":543},[533,85481,85482,85484,85486,85488,85490,85492,85494,85496,85503],{"class":535,"line":1552},[533,85483,6531],{"class":543},[533,85485,4936],{"class":560},[533,85487,615],{"class":543},[533,85489,1049],{"class":625},[533,85491,1133],{"class":543},[533,85493,1052],{"class":625},[533,85495,2632],{"class":543},[533,85497,80059,85498],{"class":80057,"tabindex":80058},[533,85499,85500,85502],{"class":80062,"role":80063},[974,85501,80823],{}," The CX links the two qubits in a cell so their states become correlated rather than independent: the quantum core of the update rule.",[533,85504,1113],{},[533,85506,85507],{"class":535,"line":1911},[533,85508,891],{"emptyLinePlaceholder":790},[533,85510,85511],{"class":535,"line":1940},[533,85512,85513],{"class":593},"# Two offset tessellations couple the update across cell borders.\n",[533,85515,85516,85518,85520,85522,85524,85526,85528,85530,85532],{"class":535,"line":1968},[533,85517,6557],{"class":543},[533,85519,554],{"class":553},[533,85521,6562],{"class":543},[533,85523,6565],{"class":560},[533,85525,615],{"class":543},[533,85527,6570],{"class":625},[533,85529,1133],{"class":543},[533,85531,6522],{"class":625},[533,85533,637],{"class":543},[533,85535,85536,85539,85541],{"class":535,"line":1995},[533,85537,85538],{"class":543},"frames ",[533,85540,554],{"class":553},[533,85542,26997],{"class":543},[533,85544,85545,85548,85551],{"class":535,"line":4164},[533,85546,85547],{"class":543},"    pqca.",[533,85549,85550],{"class":560},"UpdateFrame",[533,85552,85553],{"class":543},"(tes, cell),\n",[533,85555,85556,85558,85560,85563,85566,85568,85570,85573,85581],{"class":535,"line":4199},[533,85557,85547],{"class":543},[533,85559,85550],{"class":560},[533,85561,85562],{"class":543},"(tes.",[533,85564,85565],{"class":560},"shifted_by",[533,85567,615],{"class":543},[533,85569,1052],{"class":625},[533,85571,85572],{"class":543},"), cell),",[533,85574,80059,85575],{"class":80057,"tabindex":80058},[533,85576,85577,85580],{"class":80062,"role":80063},[974,85578,85579],{},"Offset tiling."," Shifting the second tessellation by one qubit lets information cross cell boundaries, so cells couple instead of evolving in isolation.",[533,85582,1113],{},[533,85584,85585],{"class":535,"line":4206},[533,85586,14965],{"class":543},[533,85588,85589],{"class":535,"line":4214},[533,85590,891],{"emptyLinePlaceholder":790},[533,85592,85593],{"class":535,"line":11296},[533,85594,85595],{"class":593},"# Unitary mode evolves the statevector locally, sampling one state per step.\n",[533,85597,85598,85601,85603,85606,85609,85611,85613,85616,85619,85621,85624,85627,85630,85638],{"class":535,"line":11302},[533,85599,85600],{"class":543},"automaton ",[533,85602,554],{"class":553},[533,85604,85605],{"class":543}," pqca.",[533,85607,85608],{"class":560},"Automaton",[533,85610,615],{"class":543},[533,85612,85423],{"class":625},[533,85614,85615],{"class":543},", frames, ",[533,85617,85618],{"class":567},"mode",[533,85620,554],{"class":553},[533,85622,85623],{"class":543},"pqca.",[533,85625,85626],{"class":560},"UnitaryPQCA",[533,85628,85629],{"class":543},"())",[533,85631,80059,85632],{"class":80057,"tabindex":80058},[533,85633,85634,85637],{"class":80062,"role":80063},[974,85635,85636],{},"Sampled, not collapsed."," Unitary mode evolves the full statevector and samples one outcome per step without collapsing it, so the automaton keeps its quantum structure as it runs. No backend or account needed.",[533,85639,1113],{},[533,85641,85642],{"class":535,"line":11332},[533,85643,891],{"emptyLinePlaceholder":790},[533,85645,85646,85648,85650,85652,85655,85658,85660],{"class":535,"line":11345},[533,85647,917],{"class":553},[533,85649,615],{"class":543},[533,85651,618],{"class":539},[533,85653,85654],{"class":621},"\"t=0  ",[533,85656,85657],{"class":625},"{INITIAL}",[533,85659,439],{"class":621},[533,85661,637],{"class":543},[533,85663,85664,85666,85668,85670,85672,85674,85676,85678,85680,85682,85684],{"class":535,"line":11372},[533,85665,3180],{"class":539},[533,85667,28474],{"class":543},[533,85669,2786],{"class":539},[533,85671,2976],{"class":553},[533,85673,615],{"class":543},[533,85675,1052],{"class":625},[533,85677,1133],{"class":543},[533,85679,6618],{"class":625},[533,85681,14257],{"class":553},[533,85683,6353],{"class":625},[533,85685,1771],{"class":543},[533,85687,85688,85690,85692,85694,85697,85699,85701,85703,85706,85709,85712,85714,85716],{"class":535,"line":11385},[533,85689,612],{"class":553},[533,85691,615],{"class":543},[533,85693,618],{"class":539},[533,85695,85696],{"class":621},"\"t=",[533,85698,626],{"class":625},[533,85700,9582],{"class":543},[533,85702,632],{"class":625},[533,85704,85705],{"class":625},"  {",[533,85707,85708],{"class":553},"next",[533,85710,85711],{"class":543},"(automaton)",[533,85713,632],{"class":625},[533,85715,439],{"class":621},[533,85717,637],{"class":543},[12,85719,85720],{},"Two offset tessellations are the trick: applying the update on one tiling, then a version shifted by a single qubit, lets information cross the cell borders so the automaton actually couples rather than evolving each cell in isolation. Small runs evolve locally as a statevector; larger circuits move onto real IonQ hardware, where the machine's own noise enters the pattern.",[81936,85722,85724],{"lead":85723},"Two open-source, MIT-licensed outputs, built to be run and extended.",[30,85725,85726,85734],{},[33,85727,85728],{},[36,85729,85730,85732],{},[39,85731,81947],{},[39,85733,81950],{},[49,85735,85736,85744,85751,85758],{},[36,85737,85738,85741],{},[54,85739,85740],{},"Generator",[54,85742,85743],{},"Python and Qiskit with the pqca library, PQCA circuits exported as JSON pattern data.",[36,85745,85746,85748],{},[54,85747,82468],{},[54,85749,85750],{},"A fork of Satori, terse JavaScript live coding, synthesized in the browser via Web Audio.",[36,85752,85753,85755],{},[54,85754,79648],{},[54,85756,85757],{},"Local statevector simulator, or IonQ hardware for larger circuits.",[36,85759,85760,85763],{},[54,85761,85762],{},"Datasets",[54,85764,85765],{},"Pre-computed PQCA runs, loaded as a first-class live-coding primitive.",[25,85767,85769],{"id":85768},"from-circuit-to-sound","From circuit to sound",[12,85771,85772],{},"Each run of the automaton produces a stream of measurement outcomes: probabilities, amplitudes, and phase values, step by step. Those numbers are exported as JSON and become the musical material: in the browser fork of Satori, they drive pitch, rhythm, timbre, texture, and space. Satori is a terse JavaScript live-coding language, so a few lines map a dataset onto sound and you hear the result immediately, synthesized in the browser via the Web Audio API.",[12,85774,85775],{},"Paulo covers the quantum side here, but his own route into it ran through music technology.",[79791,85777,85778],{"avatar":529,"name":81729,"role":82627,"username":81731},[12,85779,85780],{},"It's been about five years that I've been integrating quantum algorithms into music practice and putting these on stage, in live performance with orchestras and in electronic live coding scenarios.",[12,85782,85783],{},"Because the pattern is quantum, the music inherits its character: structurally coherent, non-repeating, and full of the correlations that entanglement and interference produce. Peter frames the compositions less as fixed pieces than as systems of relationships and probabilities. He is after reach as much as form.",[79791,85785,85786],{"avatar":82547,"name":82548,"role":82549,"username":6624},[12,85787,82552],{},[25,85789,85791],{"id":85790},"an-invitation-not-instructions","An invitation, not instructions",[12,85793,85794],{},"Example 00 just puts the data on a grid; from 01 onward, the examples show how to map it into music with the Satori language. Open it in a browser, hit Run, and start hacking. The compositions are credited to Peter and Paulo's performance project, Teom y Puy.",[79791,85796,85797],{"avatar":82547,"name":82548,"role":82549,"username":6624},[12,85798,85799],{},"We set out to fork Satori, develop some PQCA datasets, visualize them, and then develop some musical scripts. These musical outcomes are an invitation for people to play and hack them, and use them as springboards for their own ideas.",[12,85801,85802],{},"The barrier this removes is the one that has kept quantum computer music largely academic: the Python, the accounts, the hardware setup. Here it is just a browser tab and plain JavaScript. Paulo sees the same opening.",[79791,85804,85805],{"avatar":529,"name":81729,"role":82627,"username":81731},[12,85806,82630],{},[25,85808,80373],{"id":4321},[12,85810,85811],{},"Everything is open source and MIT-licensed: the Qiskit generator that produces the PQCA datasets, and the Satori fork that turns them into music. Open the live environment in a browser, load an example, and compose with quantum-derived patterns, or generate your own datasets and extend the library.",[4321,85813,85816],{"fork-href":6491,"live-href":85814,"title":85815},"https:\u002F\u002Fpqca.cephasteom.co.uk\u002F","Load a pattern. Make it music.",[12,85817,85818,85819],{},"Fork Quantum Patterns, open the Satori environment in your browser, and live-code with datasets drawn from quantum cellular automata. ",[974,85820,4329],{},[773,85822,85823],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":85825},[85826,85827,85828,85829,85830],{"id":85286,"depth":547,"text":85287},{"id":85338,"depth":547,"text":85339},{"id":85768,"depth":547,"text":85769},{"id":85790,"depth":547,"text":85791},{"id":4321,"depth":547,"text":80373},[4349,4637,6625],[85833,85843],{"username":6624,"name":82548,"role":85834,"avatar":82547,"bio":85835,"links":85836},"Project lead · live coder","Peter, who performs as Cephas Teom, is an artist and researcher working across live coding, quantum algorithms, and web audio. His 2025 doctorate at Plymouth's ICCMR, Zen & The Art of Praxis, produced Zen and its successor Satori: browser-based live-coding environments for quantum computer music. He has performed at CTM Festival Berlin, Sónar Barcelona, and the Quantum Itineraries Festival in Nicosia, and co-founded the software lab Lunar.",[85837,85839,85841],{"label":4360,"href":85838},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fcephasteom",{"label":83604,"href":85840},"https:\u002F\u002Fcephasteom.co.uk\u002F",{"label":4363,"href":85842},"https:\u002F\u002Fgithub.com\u002Fcephasteom",{"username":81731,"name":81729,"role":85844,"avatar":529,"bio":85845,"links":85846},"Quantum algorithms & hardware","Paulo is an interdisciplinary researcher working where physics meets music technology. A PhD student at the Cyprus Institute (part of the ERA-chair QUEST grant) in collaboration with DESY, he investigates variational quantum algorithms for high-energy physics and tools for sonifying and visualizing quantum computation. On Quantum Patterns he takes the supportive role: IonQ hardware integration and validating the quantum side.",[85847,85848,85849],{"label":4360,"href":83602},{"label":83604,"href":83605},{"label":4363,"href":83607},{"username":1037,"name":4354,"role":4355,"avatar":4356},"Peter Thomas and Paulo Itaboraí turned partitioned quantum cellular automata into live-coded musical material: coherent, non-repeating patterns you can open in a browser and compose with.","Peter Thomas and Paulo Itaboraí built Quantum Patterns: partitioned quantum cellular automata as live-coded music in a browser fork of Satori. A Qollab project.",{"href":6491,"label":82667},{"image":6474,"alt":82618,"liveUrl":85814},{},"\u002F_content\u002Fimages\u002Fquantum-patterns\u002Fhero.jpg","\u002Fblog\u002Fquantum-patterns",[],[85860,85861,85863],{"username":80437,"project":80438,"title":80439,"category":80440,"thumb":80441,"to":80442},{"username":3311,"project":85862,"title":516,"category":80434,"thumb":3107,"to":81376},"quantum-garden",{"username":5829,"project":83634,"title":5830,"category":82368,"thumb":5831,"to":81884},{"title":85865,"description":85866},"Quantum Creative Project Showcase: Quantum Patterns","Partitioned quantum cellular automata become live-coded musical patterns you can hack in the browser.","blog\u002Fquantum-patterns",[81135,85869,4383],"live-coding","pRnRRNCeKjYBCrLLuIha19Q_NmM-g49NgM_t3KMc4Og",{"id":85872,"title":85873,"authors":85874,"body":85875,"breadcrumb":86528,"builders":86529,"byline":86551,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":86552,"description":86553,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":86554,"hero":86556,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":86559,"navigation":790,"newsItems":7,"next":7,"ogImage":86560,"order":7,"outcomes":7,"path":86561,"publishDate":86562,"readingTime":81459,"related":86563,"relatedProjects":86564,"seo":86570,"stem":86573,"tags":86574,"track":7,"trackName":7,"__hash__":86576},"blog\u002Fblog\u002Fqorbital.md","Project Showcase: qOrbital",[85252],{"type":9,"value":85876,"toc":86522},[85877,85880,85883,85886,85890,85893,85907,85910,85918,85921,85925,85929,85932,85935,85938,85943,85946,85949,85951,85954,86445,86448,86500,86502,86507,86510,86519],[12,85878,85879],{},"When a chemist draws a molecule, the electrons are not really dots. They are fuzzy clouds of probability. qOrbital computes those clouds for small molecules on real quantum hardware, then lets you look at them.",[12,85881,85882],{},"Pick a molecule (H₂, HeH⁺, LiH), drag a bond-length slider, and a full quantum-chemistry pipeline runs underneath: classical integrals from PySCF, a qubit Hamiltonian from Qiskit Nature, and a ground state found by VQE on IonQ. From that state qOrbital reconstructs the electron density and renders it.",[12,85884,85885],{},"Most VQE demos report a single energy number and leave the uncertainty behind it out of the picture. qOrbital puts that uncertainty on screen.",[25,85887,85889],{"id":85888},"two-ways-to-see-an-electron","Two ways to see an electron",[12,85891,85892],{},"What does an orbital actually look like? Quantum mechanics gives two famous answers, and qOrbital shows both from the same wavefunction.",[753,85894,85895,85901],{},[756,85896,85897,85900],{},[974,85898,85899],{},"Copenhagen",", the textbook one: a probability cloud, rendered as a 3D density isosurface.",[756,85902,85903,85906],{},[974,85904,85905],{},"Bohmian",": the same wavefunction, with a velocity field computed from its phase and particle trajectories integrated through it.",[12,85908,85909],{},"Drop a handful of seed particles into the Bohmian view and they trace the orbital rather than filling it. Paths bend around nodes and crowd where the bonding density is highest.",[79791,85911,85915],{"avatar":85912,"name":85913,"role":85914,"username":85252},"\u002F_content\u002Fimages\u002Fbuilders\u002Faryan-bawa.webp","Aryan Bawa","Quantum computing lead, qOrbital",[12,85916,85917],{},"Whenever I would look for those intuitive probability \"cloud\" graphs I would see on Google for more complicated systems like molecules, I would get something completely unrecognizable from the simple hydrogen graphs I was familiar with. Since then, I've been thinking about ways to make quantum concepts a little more reachable using visualizations, since they are famously unintuitive.",[12,85919,85920],{},"You set a molecule and a geometry, and the orbital responds in real time as you move the slider, with a live dashboard showing the VQE optimizer working its way toward the ground state.",[2175,85922],{"alt":85923,"caption":85924,"no":79839,"src":85254},"The qOrbital interface: a 3D H₂ orbital isosurface threaded with Bohmian trajectories, with the VQE dashboard alongside","The H₂ orbital as an isosurface with Bohmian trajectories, 28 IonQ runs overlaid into the uncertainty cloud.",[25,85926,85928],{"id":85927},"noise-you-can-see","Noise you can see",[12,85930,85931],{},"Bohmian trajectories need a high-fidelity wavefunction, so every hardware run carries the full fingerprint of finite measurement statistics. Overlay many independent IonQ runs and you get a trajectory uncertainty cloud.",[12,85933,85934],{},"Where the physics is robust, the trajectories pile up sharp and clean. Near nodes, where the wavefunction is most fragile, they smear out. The error becomes a shape you can read.",[12,85936,85937],{},"You can see where a trapped-ion processor is sure and where it is not.",[79791,85939,85940],{"avatar":85912,"name":85913,"role":85914,"username":85252},[12,85941,85942],{},"The goal wasn't to build something research-grade here, it was to show people an honest picture of quantum physics, and that includes the hardware we run it on. As a plus, it's a neat reminder that you are watching code that was computed, information that was transferred by blasting lasers at atoms.",[12,85944,85945],{},"To make that explorable without a hardware queue, real runs on IonQ Aria and Forte are bundled as a gallery of independent results per molecule, so visitors can browse genuine hardware output, run-to-run variation and all, while a clean Aer statevector simulator provides the \"this is what perfect looks like\" baseline.",[12,85947,85948],{},"The team does not consider that view finished. \"We aren't fully satisfied with the current implementation of showcasing hardware noise,\" Aryan says, \"and we have some exciting plans to better acknowledge the faults of current hardware.\" The end they are aiming at is to show people why it is hard to build a useful quantum computer at scale.",[25,85950,84433],{"id":84432},[12,85952,85953],{},"The pipeline is a real quantum-chemistry stack, end to end: PySCF builds the classical integrals and a Hartree-Fock reference, Qiskit Nature maps the fermionic problem to qubits, VQE finds the ground state, and the optimized state is turned back into a density grid and a Bohmian velocity field for rendering. The core loop is small enough to run yourself, and on Qollab it runs as written:",[519,85955,85958],{"name":85956,"run-href":85957,"tag":522},"vqe_quickstart.py","\u002Fu\u002Fbawa27\u002Fqorbital",[524,85959,85961],{"className":526,"code":85960,"language":528,"meta":79866,"style":529},"# qOrbital quickstart: find a molecule's ground state with VQE.\nimport numpy as np\nfrom qiskit.primitives import StatevectorEstimator\nfrom qiskit_algorithms import VQE\nfrom qiskit_algorithms.optimizers import SLSQP\nfrom qiskit_nature.second_q.circuit.library import UCCSD, HartreeFock\nfrom qiskit_nature.second_q.drivers import PySCFDriver\nfrom qiskit_nature.second_q.mappers import JordanWignerMapper\n\nMOLECULE, BOND = \"H2\", 0.735          # also: HeH+, LiH\n\n# 1. Classical chemistry: Hartree-Fock + molecular integrals\nproblem = PySCFDriver(atom=f\"H 0 0 0; H 0 0 {BOND}\", basis=\"sto-3g\").run()\n\n# 2. Fermions to qubits\nmapper = JordanWignerMapper()\nqubit_op = mapper.map(problem.hamiltonian.second_q_op())\n\n# 3. UCCSD trial state, from the Hartree-Fock reference\nhf = HartreeFock(problem.num_spatial_orbitals, problem.num_particles, mapper)\nansatz = UCCSD(problem.num_spatial_orbitals, problem.num_particles, mapper, initial_state=hf)\n\ndef show(step, params, energy, meta):\n    print(f\"  iter {step:>3}   E_elec = {energy:+.6f} Ha\")\n\nvqe = VQE(StatevectorEstimator(), ansatz, SLSQP(maxiter=100),\n          callback=show, initial_point=np.zeros(ansatz.num_parameters))\nresult = vqe.compute_minimum_eigenvalue(qubit_op)\n\ntotal = result.eigenvalue.real + problem.hamiltonian.nuclear_repulsion_energy\nprint(f\"  ground state = {total:+.6f} Ha\")\n",[57,85962,85963,85968,85978,85990,86002,86014,86029,86041,86053,86057,86080,86084,86089,86141,86145,86150,86172,86193,86197,86202,86215,86244,86248,86276,86321,86325,86357,86379,86395,86399,86421],{"__ignoreMap":529},[533,85964,85965],{"class":535,"line":536},[533,85966,85967],{"class":593},"# qOrbital quickstart: find a molecule's ground state with VQE.\n",[533,85969,85970,85972,85974,85976],{"class":535,"line":547},[533,85971,883],{"class":539},[533,85973,11128],{"class":543},[533,85975,584],{"class":539},[533,85977,11133],{"class":543},[533,85979,85980,85982,85985,85987],{"class":535,"line":575},[533,85981,877],{"class":539},[533,85983,85984],{"class":543}," qiskit.primitives ",[533,85986,883],{"class":539},[533,85988,85989],{"class":543}," StatevectorEstimator\n",[533,85991,85992,85994,85997,85999],{"class":535,"line":590},[533,85993,877],{"class":539},[533,85995,85996],{"class":543}," qiskit_algorithms ",[533,85998,883],{"class":539},[533,86000,86001],{"class":625}," VQE\n",[533,86003,86004,86006,86009,86011],{"class":535,"line":597},[533,86005,877],{"class":539},[533,86007,86008],{"class":543}," qiskit_algorithms.optimizers ",[533,86010,883],{"class":539},[533,86012,86013],{"class":625}," SLSQP\n",[533,86015,86016,86018,86021,86023,86026],{"class":535,"line":603},[533,86017,877],{"class":539},[533,86019,86020],{"class":543}," qiskit_nature.second_q.circuit.library ",[533,86022,883],{"class":539},[533,86024,86025],{"class":625}," UCCSD",[533,86027,86028],{"class":543},", HartreeFock\n",[533,86030,86031,86033,86036,86038],{"class":535,"line":609},[533,86032,877],{"class":539},[533,86034,86035],{"class":543}," qiskit_nature.second_q.drivers ",[533,86037,883],{"class":539},[533,86039,86040],{"class":543}," PySCFDriver\n",[533,86042,86043,86045,86048,86050],{"class":535,"line":640},[533,86044,877],{"class":539},[533,86046,86047],{"class":543}," qiskit_nature.second_q.mappers ",[533,86049,883],{"class":539},[533,86051,86052],{"class":543}," JordanWignerMapper\n",[533,86054,86055],{"class":535,"line":646},[533,86056,891],{"emptyLinePlaceholder":790},[533,86058,86059,86062,86064,86067,86069,86072,86074,86077],{"class":535,"line":658},[533,86060,86061],{"class":625},"MOLECULE",[533,86063,1133],{"class":543},[533,86065,86066],{"class":625},"BOND",[533,86068,4899],{"class":553},[533,86070,86071],{"class":621}," \"H2\"",[533,86073,1133],{"class":543},[533,86075,86076],{"class":625},"0.735",[533,86078,86079],{"class":593},"          # also: HeH+, LiH\n",[533,86081,86082],{"class":535,"line":680},[533,86083,891],{"emptyLinePlaceholder":790},[533,86085,86086],{"class":535,"line":1536},[533,86087,86088],{"class":593},"# 1. Classical chemistry: Hartree-Fock + molecular integrals\n",[533,86090,86091,86094,86096,86099,86101,86104,86106,86108,86111,86114,86116,86118,86120,86122,86125,86127,86129,86131,86139],{"class":535,"line":1552},[533,86092,86093],{"class":543},"problem ",[533,86095,554],{"class":553},[533,86097,86098],{"class":560}," PySCFDriver",[533,86100,615],{"class":543},[533,86102,86103],{"class":567},"atom",[533,86105,554],{"class":553},[533,86107,618],{"class":539},[533,86109,86110],{"class":621},"\"H 0 0 0; H 0 0 ",[533,86112,86113],{"class":625},"{BOND}",[533,86115,439],{"class":621},[533,86117,1133],{"class":543},[533,86119,3483],{"class":567},[533,86121,554],{"class":553},[533,86123,86124],{"class":621},"\"sto-3g\"",[533,86126,1205],{"class":543},[533,86128,561],{"class":560},[533,86130,41837],{"class":543},[533,86132,80059,86133],{"class":80057,"tabindex":80058},[533,86134,86135,86138],{"class":80062,"role":80063},[974,86136,86137],{},"Classical setup."," PySCF runs Hartree-Fock and builds the molecular integrals. This is also the classical baseline qOrbital compares against.",[533,86140,1113],{},[533,86142,86143],{"class":535,"line":1911},[533,86144,891],{"emptyLinePlaceholder":790},[533,86146,86147],{"class":535,"line":1940},[533,86148,86149],{"class":593},"# 2. Fermions to qubits\n",[533,86151,86152,86155,86157,86160,86162,86170],{"class":535,"line":1968},[533,86153,86154],{"class":543},"mapper ",[533,86156,554],{"class":553},[533,86158,86159],{"class":560}," JordanWignerMapper",[533,86161,41837],{"class":543},[533,86163,80059,86164],{"class":80057,"tabindex":80058},[533,86165,86166,86169],{"class":80062,"role":80063},[974,86167,86168],{},"Mapping."," Turns the fermionic Hamiltonian into qubit operators. LiH instead uses parity mapping with a 2-qubit reduction to keep the qubit count down.",[533,86171,1113],{},[533,86173,86174,86177,86179,86182,86185,86188,86191],{"class":535,"line":1995},[533,86175,86176],{"class":543},"qubit_op ",[533,86178,554],{"class":553},[533,86180,86181],{"class":543}," mapper.",[533,86183,86184],{"class":560},"map",[533,86186,86187],{"class":543},"(problem.hamiltonian.",[533,86189,86190],{"class":560},"second_q_op",[533,86192,932],{"class":543},[533,86194,86195],{"class":535,"line":4164},[533,86196,891],{"emptyLinePlaceholder":790},[533,86198,86199],{"class":535,"line":4199},[533,86200,86201],{"class":593},"# 3. UCCSD trial state, from the Hartree-Fock reference\n",[533,86203,86204,86207,86209,86212],{"class":535,"line":4206},[533,86205,86206],{"class":543},"hf ",[533,86208,554],{"class":553},[533,86210,86211],{"class":560}," HartreeFock",[533,86213,86214],{"class":543},"(problem.num_spatial_orbitals, problem.num_particles, mapper)\n",[533,86216,86217,86220,86222,86224,86227,86229,86231,86234,86242],{"class":535,"line":4214},[533,86218,86219],{"class":543},"ansatz ",[533,86221,554],{"class":553},[533,86223,86025],{"class":560},[533,86225,86226],{"class":543},"(problem.num_spatial_orbitals, problem.num_particles, mapper, ",[533,86228,39697],{"class":567},[533,86230,554],{"class":553},[533,86232,86233],{"class":543},"hf)",[533,86235,80059,86236],{"class":80057,"tabindex":80058},[533,86237,86238,86241],{"class":80062,"role":80063},[974,86239,86240],{},"Ansatz."," UCCSD is the trial wavefunction. VQE tunes its parameters to push the energy down to the true ground state.",[533,86243,1113],{},[533,86245,86246],{"class":535,"line":11296},[533,86247,891],{"emptyLinePlaceholder":790},[533,86249,86250,86252,86255,86257,86260,86262,86264,86266,86269,86271,86274],{"class":535,"line":11302},[533,86251,1754],{"class":539},[533,86253,86254],{"class":560}," show",[533,86256,615],{"class":543},[533,86258,86259],{"class":1762},"step",[533,86261,1133],{"class":543},[533,86263,83764],{"class":1762},[533,86265,1133],{"class":543},[533,86267,86268],{"class":1762},"energy",[533,86270,1133],{"class":543},[533,86272,86273],{"class":1762},"meta",[533,86275,1771],{"class":543},[533,86277,86278,86280,86282,86284,86287,86289,86291,86293,86295,86298,86300,86302,86304,86306,86309,86311,86319],{"class":535,"line":11332},[533,86279,612],{"class":553},[533,86281,615],{"class":543},[533,86283,618],{"class":539},[533,86285,86286],{"class":621},"\"  iter ",[533,86288,626],{"class":625},[533,86290,86259],{"class":543},[533,86292,85110],{"class":539},[533,86294,632],{"class":625},[533,86296,86297],{"class":621},"   E_elec = ",[533,86299,626],{"class":625},[533,86301,86268],{"class":543},[533,86303,3496],{"class":539},[533,86305,632],{"class":625},[533,86307,86308],{"class":621}," Ha\"",[533,86310,2632],{"class":543},[533,86312,80059,86313],{"class":80057,"tabindex":80058},[533,86314,86315,86318],{"class":80062,"role":80063},[974,86316,86317],{},"The descent."," VQE walks downhill: each step the optimizer nudges the circuit and the energy drops. This callback feeds the live convergence dashboard.",[533,86320,1113],{},[533,86322,86323],{"class":535,"line":11345},[533,86324,891],{"emptyLinePlaceholder":790},[533,86326,86327,86330,86332,86335,86337,86340,86343,86346,86348,86351,86353,86355],{"class":535,"line":11372},[533,86328,86329],{"class":543},"vqe ",[533,86331,554],{"class":553},[533,86333,86334],{"class":560}," VQE",[533,86336,615],{"class":543},[533,86338,86339],{"class":560},"StatevectorEstimator",[533,86341,86342],{"class":543},"(), ansatz, ",[533,86344,86345],{"class":560},"SLSQP",[533,86347,615],{"class":543},[533,86349,86350],{"class":567},"maxiter",[533,86352,554],{"class":553},[533,86354,4528],{"class":625},[533,86356,19687],{"class":543},[533,86358,86359,86362,86364,86367,86370,86372,86374,86376],{"class":535,"line":11385},[533,86360,86361],{"class":567},"          callback",[533,86363,554],{"class":553},[533,86365,86366],{"class":543},"show, ",[533,86368,86369],{"class":567},"initial_point",[533,86371,554],{"class":553},[533,86373,43182],{"class":543},[533,86375,41682],{"class":560},[533,86377,86378],{"class":543},"(ansatz.num_parameters))\n",[533,86380,86381,86384,86386,86389,86392],{"class":535,"line":11390},[533,86382,86383],{"class":543},"result ",[533,86385,554],{"class":553},[533,86387,86388],{"class":543}," vqe.",[533,86390,86391],{"class":560},"compute_minimum_eigenvalue",[533,86393,86394],{"class":543},"(qubit_op)\n",[533,86396,86397],{"class":535,"line":11402},[533,86398,891],{"emptyLinePlaceholder":790},[533,86400,86401,86404,86406,86409,86411,86414,86419],{"class":535,"line":11407},[533,86402,86403],{"class":543},"total ",[533,86405,554],{"class":553},[533,86407,86408],{"class":543}," result.eigenvalue.real ",[533,86410,6350],{"class":553},[533,86412,86413],{"class":543}," problem.hamiltonian.nuclear_repulsion_energy",[533,86415,80059,86416],{"class":80057,"tabindex":80058},[533,86417,86418],{"class":80062,"role":80063},"Electronic energy plus nuclear repulsion is the molecule's ground-state energy. qOrbital rebuilds the electron density and Bohmian trajectories from this state.",[533,86420,1113],{},[533,86422,86423,86425,86427,86429,86432,86434,86437,86439,86441,86443],{"class":535,"line":11412},[533,86424,917],{"class":553},[533,86426,615],{"class":543},[533,86428,618],{"class":539},[533,86430,86431],{"class":621},"\"  ground state = ",[533,86433,626],{"class":625},[533,86435,86436],{"class":543},"total",[533,86438,3496],{"class":539},[533,86440,632],{"class":625},[533,86442,86308],{"class":621},[533,86444,637],{"class":543},[12,86446,86447],{},"From the converged state, qOrbital extracts the one-particle reduced density matrix to rebuild the electron density on a 3D grid, computes the de Broglie-Bohm velocity field v = (ℏ\u002Fm) Im(∇ψ\u002Fψ) and integrates it with adaptive Runge-Kutta for the trajectories, then renders both with Three.js on the web and PyVista in the lab.",[81936,86449,86451],{"lead":86450},"qOrbital is open source and MIT-licensed, built to be forked and rerun.",[30,86452,86453,86461],{},[33,86454,86455],{},[36,86456,86457,86459],{},[39,86458,81947],{},[39,86460,81950],{},[49,86462,86463,86470,86477,86484,86492],{},[36,86464,86465,86467],{},[54,86466,79393],{},[54,86468,86469],{},"Qiskit, Qiskit Nature, Qiskit Aer, VQE with a UCCSD ansatz.",[36,86471,86472,86474],{},[54,86473,5152],{},[54,86475,86476],{},"qiskit-ionq, IonQ Aria and Forte trapped-ion processors.",[36,86478,86479,86481],{},[54,86480,85178],{},[54,86482,86483],{},"PySCF, NumPy, SciPy, integrals, Hartree-Fock, and density.",[36,86485,86486,86489],{},[54,86487,86488],{},"Render",[54,86490,86491],{},"Three.js (web) and PyVista \u002F VTK (Jupyter), isosurfaces and trajectory streamlines.",[36,86493,86494,86497],{},[54,86495,86496],{},"Method",[54,86498,86499],{},"de Broglie-Bohm trajectories (Bohm 1952; Wyatt 2005).",[25,86501,80373],{"id":4321},[79791,86503,86504],{"avatar":85912,"name":85913,"role":85914,"username":85252},[12,86505,86506],{},"The beautiful thing about quantum computing is that everybody has something to bring to the table. There are so many disciplines that make up this field, and quantum physics doesn't have to be the only language you speak.",[12,86508,86509],{},"qOrbital is open and forkable on Qollab, the full package is MIT-licensed on GitHub, and you can try the hosted demo right now. Swap the molecule, change the bond length, seed your own particles, and rerun the VQE on a simulator or real IonQ hardware. Supported molecules today are H₂ (the tutorial baseline), HeH⁺ (polar asymmetry), and LiH (the main showcase).",[4321,86511,86514],{"fork-href":85957,"live-href":86512,"title":86513},"https:\u002F\u002Fqorbital.xyz","See an orbital two ways, noise and all.",[12,86515,86516,86517],{},"Fork qOrbital, run VQE on a real trapped-ion processor, and watch the electron density and its Bohmian trajectories take shape. ",[974,86518,4329],{},[773,86520,86521],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":86523},[86524,86525,86526,86527],{"id":85888,"depth":547,"text":85889},{"id":85927,"depth":547,"text":85928},{"id":84432,"depth":547,"text":84433},{"id":4321,"depth":547,"text":80373},[4349,4637,81603],[86530,86540],{"username":85252,"name":85913,"role":86531,"avatar":85912,"bio":86532,"links":86533},"Quantum computing lead","Aryan studies physics and mathematics (modified with computer science) at Dartmouth College, where he is an undergraduate researcher in the Whitfield Group working on quantum algorithms for circuit approximation via the quantum singular value transform. He wrote qsp-proc, an open-source Python\u002FQiskit package for QSP phase-finding, with coursework spanning quantum information, graduate quantum mechanics, quantum optics, and error correction.",[86534,86536,86538],{"label":4360,"href":86535},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fbawa27",{"label":80403,"href":86537},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fabawa2305\u002F",{"label":4363,"href":86539},"https:\u002F\u002Fgithub.com\u002Fbawa27",{"name":86541,"role":86542,"avatar":86543,"bio":86544,"links":86545},"Arnav Singh","Software & visualization lead","\u002F_content\u002Fimages\u002Fbuilders\u002Farnav-singh.webp","Arnav studies physics and computer science at Dartmouth and brings the full-stack and rendering side. He has production engineering experience at PlayStation, where he co-led a React analytics platform from MVP to deployment, and research experience applying ML to NASA mission proposals and astronomical data at the South African Astronomical Observatory. On qOrbital he bridges the quantum outputs to interactive 3D in TypeScript, React, and Three.js.",[86546,86548],{"label":80403,"href":86547},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Farnav-singh7",{"label":86549,"href":86550},"Portfolio ↗","https:\u002F\u002Farnavsingh0.github.io",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Aryan Bawa and Arnav Singh built a visualizer that runs a real quantum-chemistry calculation and renders a molecule's orbital two ways at once, with the hardware's noise on display instead of hidden.","qOrbital runs VQE on IonQ and renders a molecule's orbital as both a probability cloud and Bohmian trajectories, with hardware noise made visible. A Qollab Spring 2026 project.",{"href":85957,"label":86555},"Fork qOrbital",{"image":86557,"alt":86558,"liveUrl":86512},"\u002F_content\u002Fimages\u002Fqorbital\u002Fhero.webp","qOrbital rendering an H2 molecular orbital as an electron-density cloud with Bohmian trajectories, computed with VQE on IonQ hardware",{},"\u002F_content\u002Fimages\u002Fqorbital\u002Fhero.jpg","\u002Fblog\u002Fqorbital","2026-05-06",[],[86565,86566,86567],{"username":3791,"project":81127,"title":3792,"category":81128,"thumb":3327,"to":81129},{"username":3092,"project":80444,"title":3093,"category":80440,"thumb":2743,"to":80445},{"username":81701,"project":86568,"title":81587,"category":81128,"thumb":86569,"to":81694},"quantum-advantage-lab","\u002F_content\u002Fimages\u002Fquantum-advantage-lab\u002Fscreenshot.webp",{"title":86571,"description":86572},"Quantum Creative Project Showcase: qOrbital","A molecular orbital visualizer that runs VQE on IonQ and shows the electron as both a probability cloud and Bohmian trajectories, making hardware noise the exhibit.","blog\u002Fqorbital",[86575,4383,16807],"chemistry","7DdQy69cPymv1eb4vwvQb9ULNnQWRi4uOGBhnDw5Vbs",{"id":86578,"title":80481,"authors":86579,"body":86580,"breadcrumb":86956,"builders":86958,"byline":86959,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":86960,"description":86961,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":7,"lessonCount":7,"meta":86962,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":86963,"publishDate":86964,"readingTime":81459,"related":86965,"relatedProjects":7,"seo":86966,"stem":86969,"tags":86970,"track":7,"trackName":7,"__hash__":86972},"blog\u002Fblog\u002Fspring-2026-cohort.md",[1037],{"type":9,"value":86581,"toc":86940},[86582,86585,86589,86598,86601,86604,86607,86610,86614,86625,86628,86631,86634,86637,86645,86649,86656,86659,86662,86665,86668,86671,86675,86682,86685,86688,86691,86694,86697,86701,86714,86717,86720,86723,86726,86729,86733,86741,86744,86747,86750,86753,86757,86769,86772,86775,86778,86781,86785,86796,86799,86802,86805,86808,86811,86815,86822,86825,86828,86831,86834,86838,86846,86849,86852,86855,86858,86862,86877,86880,86883,86886,86890,86899,86902,86905,86908,86912,86916,86919,86922,86926,86929,86932],[12,86583,86584],{},"The Spring 2026 cohort is building on real IonQ hardware this season: tools, music, visualizations, and games. Here is the lineup, project by project.",[25,86586,86588],{"id":86587},"qatalyst-game-race-a-quantum-computer-at-route-planning","Qatalyst Game: race a quantum computer at route planning",[12,86590,86591],{},[9404,86592,86593,86597],{},[19,86594,86596],{"href":86595},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsiti-fariya\u002F","Dr Siti Fariya"," · Qatalyst Quantum",[12,86599,86600],{},"Browser game racing you against a classical solver and live IonQ hardware on vehicle routing. Five stops feel easy, twenty feel brutal, and that gap between intuition and quantum compute lands viscerally.",[12,86602,86603],{},"The game runs in the browser and sends real workloads to IonQ in the background. Built on React and Leaflet with a QAOA reformulation of the vehicle routing problem.",[12,86605,86606],{},"Siti is a postdoctoral researcher at Heriot-Watt and the founder of Qatalyst Quantum. Her startup has cohorted through Conception X, Microsoft Founders Hub, Quantinuum Q-NET, and the Kipu Quantum Hub.",[12,86608,86609],{},"She spent two years at the Port of Dover building traffic models, which grounded this project's framing.",[25,86611,86613],{"id":86612},"qorbital-see-electrons-as-both-clouds-and-trajectories","qOrbital: see electrons as both clouds and trajectories",[12,86615,86616],{},[9404,86617,86618,86621,86622],{},[19,86619,85913],{"href":86620},"https:\u002F\u002Flinkedin.com\u002Fin\u002Fabawa2305\u002F"," · Dartmouth, with ",[19,86623,86541],{"href":86624},"https:\u002F\u002Flinkedin.com\u002Fin\u002Farnav-singh7",[12,86626,86627],{},"Interactive molecular orbital visualizer powered by VQE runs on IonQ, with both probability-cloud and Bohmian trajectory views.",[12,86629,86630],{},"When a chemist draws a molecule, the electrons are not really dots. They are fuzzy clouds of probability. qOrbital runs real quantum hardware to compute those clouds for simple molecules.",[12,86632,86633],{},"The dual view sets it apart. The Copenhagen interpretation gives you the cloud, the Bohmian gives you the dot moving through it. Both come from the same hardware-derived wavefunction.",[12,86635,86636],{},"Aryan is a Physics and Mathematics student at Dartmouth, working in the Whitfield Group on quantum algorithms for circuit approximation. He is the developer of qsp-proc, an open-source Qiskit package for QSP phase-finding.",[12,86638,86639,86640,86644],{},"The pipeline runs VQE with a UCCSD ansatz and realistic shot budgets, with a clean fallback to simulator. Code lives at ",[19,86641,86643],{"href":86642},"https:\u002F\u002Fgithub.com\u002Fqorbital-lab\u002Fqorbital","github.com\u002Fqorbital-lab\u002Fqorbital",", with hooks for community-contributed molecules.",[25,86646,86648],{"id":86647},"superposition-sequencer-quantum-circuits-as-a-playable-instrument","Superposition Sequencer: quantum circuits as a playable instrument",[12,86650,86651],{},[9404,86652,86653,86655],{},[19,86654,80523],{"href":81105}," · Incomputable",[12,86657,86658],{},"Web-based music sequencer where the quantum circuit is the instrument, including MIDI control and live circuit projection.",[12,86660,86661],{},"Instead of an algorithm with random numbers, it is a real quantum computation producing pattern after pattern. The framing treats quantum hardware as an instrument rather than a science experiment, the line that separates this from gimmick. Building circuits that produce specific sonic textures becomes the creative loop, like patching a synth for specific tones.",[12,86663,86664],{},"Francisco is a mechatronics engineer and creative technologist with fifteen-plus years of experience. His work spans robotics, industrial automation, data products, and interactive installations.",[12,86666,86667],{},"Through his practice Incomputable in Barcelona, he ships tools and prototypes for artists, designers, and research labs. Recent work includes six installations at Sikka Art Festival in Dubai and an EU Starts and MUSAE Residency prototype.",[12,86669,86670],{},"The Sequencer ships with a downloadable sequence library so people without hardware access can still play the patterns.",[25,86672,86674],{"id":86673},"quantum-butterfly-field-the-no-butterfly-effect-made-tangible","Quantum Butterfly Field: the no-butterfly effect, made tangible",[12,86676,86677],{},[9404,86678,86679],{},[19,86680,6802],{"href":86681},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fxinyiz\u002F",[12,86683,86684],{},"Interactive artwork driven by real scrambling circuits, making the no-butterfly effect tangible.",[12,86686,86687],{},"It is a real quantum-information result where small perturbations in a scrambled system can be fully recovered. The aim is to turn abstract quantum information theory into something you can see and sense with your body. The piece sits at the art-science intersection rather than tooling for developers, which broadens the reach.",[12,86689,86690],{},"Xinyi is a multidisciplinary artist and technologist exploring the intersections of nature, spirituality, and computational media. She holds computer science degrees from MIT and the University of British Columbia.",[12,86692,86693],{},"Her engineering work spans Disney, Pixar, and Google. Her research on Generative AI for Computer Animation won Best Paper at SIGGRAPH MIG.",[12,86695,86696],{},"The piece doubles as a teaching artifact for anyone working with quantum scrambling.",[25,86698,86700],{"id":86699},"graft-see-what-fault-tolerant-compilation-actually-looks-like","GraFT: see what fault-tolerant compilation actually looks like",[12,86702,86703],{},[9404,86704,86705,86709,86710],{},[19,86706,86708],{"href":86707},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdavid-nizovsky\u002F","David Nizovsky"," · Vanderbilt \u002F Superquantum, with ",[19,86711,86713],{"href":86712},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdaniil-shatokhin-9a69b7297\u002F","Daniil Shatokhin",[12,86715,86716],{},"3D explorable graphs of how a single logical gate expands into thousands of fault-tolerant physical operations.",[12,86718,86719],{},"GraFT renders the full graph including magic state distillation and syndrome extraction. The piece makes the enormous overhead of fault-tolerant quantum computing feel real rather than abstract. That is rare in a notoriously theoretical subfield.",[12,86721,86722],{},"David is a Quantum Applications Engineer at Superquantum, where he leads rmsynth, an open-source library for fault-tolerant circuit synthesis. He is finishing a B.E. in Electrical and Computer Engineering at Vanderbilt. Previously he won the QRISE Challenge for a neutral-atom compilation visualizer.",[12,86724,86725],{},"Daniil is a Vanderbilt student specializing in low-level systems programming and scalable computational architecture. He previously co-engineered the backend for Qubitcoin.",[12,86727,86728],{},"The team has the rmsynth precedent to ship cleanly here.",[25,86730,86732],{"id":86731},"quantumregimeradar-empirical-quantum-kernels-for-market-regimes","QuantumRegimeRadar: empirical quantum kernels for market regimes",[12,86734,86735],{},[9404,86736,86737,86740],{},[19,86738,82309],{"href":86739},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Farkei\u002F",", PhD · Nelnet, with Aaron Ben-Shalom",[12,86742,86743],{},"Quantum kernel-based market regime detection, empirically backtested against GARCH baselines.",[12,86745,86746],{},"The work tries to detect different kinds of market stress, including crashes, recoveries, and sideways grind, using real historical data. It is grounded in empirical backtesting rather than the usual quantum-finance hype. The aim is to show where quantum kernels help and where they do not.",[12,86748,86749],{},"Alireza holds a Ph.D. in Computer Engineering from the University of Nebraska-Lincoln plus an MBA in Finance. His doctoral work developed a quantum-enhanced framework for GARCH parameter estimation using quantum annealing.",[12,86751,86752],{},"That empirical foundation directly informs the regime library here. Others can plug in their own regimes and rerun backtests on real hardware.",[25,86754,86756],{"id":86755},"musiq-voices-that-harmonize-through-entanglement","Musiq: voices that harmonize through entanglement",[12,86758,86759],{},[9404,86760,86761,86764,86765],{},[19,86762,82495],{"href":86763},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ftomoya-hatanaka\u002F",", with ",[19,86766,86768],{"href":86767},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Femmanuellaadams\u002F","Emmanuella Adams",[12,86770,86771],{},"Polyphonic generative music using quantum walks for melody and entanglement across voices for harmony, on 30 to 40 qubit circuits.",[12,86773,86774],{},"The voices harmonize in ways no classical computer can produce. That gives you something genuinely quantum to listen to, not just read about. The 30 to 40 qubit circuits genuinely need IonQ hardware. Ballistic spread from quantum walks produces musical leaps impossible classically.",[12,86776,86777],{},"Tomoya recently completed a master's at the University of Tokyo, with research in quantum error correction and hash functions. He also initiated KetQat, an open-source project aimed at making quantum computing more accessible.",[12,86779,86780],{},"Musiq is the strongest hardware story of the cohort's three music projects. The case for why a simulator falls short here is clear.",[25,86782,86784],{"id":86783},"quantum-patterns-pqca-compositions-for-live-coders","Quantum Patterns: PQCA compositions for live coders",[12,86786,86787],{},[9404,86788,86789,86791,86792],{},[19,86790,82548],{"href":85842}," · ICCMR, with ",[19,86793,86795],{"href":86794},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fpaulo-vitor-itaborai-de-barros-2b45b4105\u002F","Paulo Vitor Itaboraí",[12,86797,86798],{},"Partitioned quantum cellular automata as the engine for live-coded musical composition.",[12,86800,86801],{},"The patterns come from real quantum circuits, not random number generators. The result is music that is structurally coherent but never repeats. The textures are aimed at musicians who want a new instrument, not at physicists.",[12,86803,86804],{},"PQCA outputs are genuinely quantum rather than mapped randomness, which differentiates this from the noise-as-music genre.",[12,86806,86807],{},"Peter is a musician, live coder, and researcher whose doctoral work at the University of Plymouth produced Zen and Satori. Both are web-based live coding environments for quantum computer music. He is affiliated with the Interdisciplinary Centre for Computer Music Research and co-authored research on the Variational Quantum Harmoniser.",[12,86809,86810],{},"The build feeds back into the existing Satori community directly.",[25,86812,86814],{"id":86813},"quantum-market-game-trading-floor-as-an-entanglement-primer","Quantum Market Game: trading floor as an entanglement primer",[12,86816,86817],{},[9404,86818,86819],{},[19,86820,5827],{"href":86821},"https:\u002F\u002Fgithub.com\u002Faadarshv2009",[12,86823,86824],{},"High-school built market simulator that surfaces entanglement and superposition through trading mechanics.",[12,86826,86827],{},"Players make trading decisions while a real quantum computer drives the market behavior. Designed for high school and early college students who know math but have never touched quantum computing.",[12,86829,86830],{},"The familiar market-game format earns its keep, with entanglement-as-correlation framed for classroom students to actually follow. Structured for classroom adoption.",[12,86832,86833],{},"Aadarsh has shipped quantum code solo before. The near-zero compute ask was unusual enough to be worth rewarding on its own.",[25,86835,86837],{"id":86836},"quantumcanvas-a-sandbox-for-the-post-tutorial-now-what","QuantumCanvas: a sandbox for the post-tutorial 'now what'",[12,86839,86840],{},[9404,86841,86842,86845],{},[19,86843,81566],{"href":86844},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fshivanimayekar\u002F"," · Georgia Tech",[12,86847,86848],{},"Drag-and-drop visual sandbox for composing and running new quantum algorithms on real hardware.",[12,86850,86851],{},"Designed for people who have finished quantum tutorials but find actually building new circuits intimidating and repetitive. The post-tutorial gap is real, and the modular-primitives approach gives a way through. It does not require restarting from scratch every time.",[12,86853,86854],{},"Shivani is an M.S. Computer Science student at Georgia Tech. Her quantum work includes winning the QRISE 2024 Infleqtion Challenge and participating in Womanium Quantum AI research.",[12,86856,86857],{},"She co-founded Qtangled and has organized quantum computing workshops for over 250 participants.",[25,86859,86861],{"id":86860},"qcflows-how-measurement-basis-changes-what-you-see","QCFlows: how measurement basis changes what you see",[12,86863,86864],{},[9404,86865,86866,86868,86869,1576,86873],{},[19,86867,86795],{"href":86794}," · Cyprus Institute \u002F DESY, with ",[19,86870,86872],{"href":86871},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fiosifinaangelidi\u002F","Iosifina Angelidi",[19,86874,86876],{"href":86875},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fkostas-blekos-0a83575\u002F","Kostas Blekos",[12,86878,86879],{},"Interactive visualizer for quantum correlations and basis-dependent measurement views of circuits.",[12,86881,86882],{},"Aimed at researchers and advanced students who want intuition for how entanglement manifests differently under different views. Most quantum visualizers fix one view; this one moves between them, which is the distinct angle.",[12,86884,86885],{},"The team has an existing working prototype, plus DESY and Cyprus Institute affiliations behind it. Paulo also works on Quantum Patterns this season, which gives the cohort a rare cross-project link. We are excited to see how it lands once teams start sharing demos.",[25,86887,86889],{"id":86888},"entangled-body-a-quantum-inspired-body-where-touch-ripples-non-locally","Entangled Body: a quantum-inspired body where touch ripples non-locally",[12,86891,86892],{},[9404,86893,86894,86896,86897],{},[19,86895,79808],{"href":80404}," · HKU, with ",[19,86898,79794],{"href":80414},[12,86900,86901],{},"A point-cloud visualization of a human body where touching one area triggers non-local responses elsewhere, inspired by entanglement.",[12,86903,86904],{},"The user moves the viewpoint and the body reveals itself differently each time. The framing borrows from artist Julian Voss-Andreae's quantum sculpture practice. The piece sits in art-meets-science territory rather than a developer tool.",[12,86906,86907],{},"The team has a working MVP. They plan to wire in real quantum circuit backing as the build progresses. Quantum-conceptual framing here is honest rather than hyped, which is rarer than it should be in this space.",[25,86909,86911],{"id":86910},"quantum-systemic-oracle-quantum-compute-as-an-on-chain-primitive","Quantum Systemic Oracle: quantum compute as an on-chain primitive",[12,86913,86914],{},[9404,86915,82232],{},[12,86917,86918],{},"A blockchain oracle that publishes a quantum-computed 'systemic risk score' for financial markets every day. Smart contracts and prediction markets can use the quantum-derived risk data as a primitive.",[12,86920,86921],{},"The framing is commoditizing quantum compute as an on-chain data feed. Solo developer spanning quantum, smart contracts, oracles, and finance APIs is a high-risk stack. LLM assistance carries parts of the build forward.",[25,86923,86925],{"id":86924},"more-to-come","More to come",[12,86927,86928],{},"More teams are still finalizing paperwork and will join the lineup over the coming weeks. Individual project stories will land on qollab.xyz across the next few weeks and months as teams share progress.",[12,86930,86931],{},"The community Slack is where teams share early code, sketches, and questions. The Fall RFP cycle opens later this year, shifting toward applied domains in optimization and logistics.",[86933,86934],"more-strip",{"all-href":86935,"all-label":86936,"card-sub":86937,"card-title":86938,"href":80496,"title":86939},"\u002Fexplore\u002Fnews","All news & open calls","See the Creative Challenge","Want in on the next one?","More on Qollab",{"title":529,"searchDepth":547,"depth":547,"links":86941},[86942,86943,86944,86945,86946,86947,86948,86949,86950,86951,86952,86953,86954,86955],{"id":86587,"depth":547,"text":86588},{"id":86612,"depth":547,"text":86613},{"id":86647,"depth":547,"text":86648},{"id":86673,"depth":547,"text":86674},{"id":86699,"depth":547,"text":86700},{"id":86731,"depth":547,"text":86732},{"id":86755,"depth":547,"text":86756},{"id":86783,"depth":547,"text":86784},{"id":86813,"depth":547,"text":86814},{"id":86836,"depth":547,"text":86837},{"id":86860,"depth":547,"text":86861},{"id":86888,"depth":547,"text":86889},{"id":86910,"depth":547,"text":86911},{"id":86924,"depth":547,"text":86925},[4349,4637,86957],"Cohort",[],{"username":1037,"name":4354,"role":4355,"avatar":4356},"Quantum projects running on real IonQ hardware this spring: tools, music, visualizations, and games. Here is the lineup, project by project.","Quantum projects running on real IonQ hardware this spring: tools, music, visualizations, and games. Meet the 13 teams in the Qollab Spring 2026 cohort.",{},"\u002Fblog\u002Fspring-2026-cohort","2026-05-05",[],{"title":86967,"description":86968},"Meet the Qollab Spring 2026 cohort","13 teams building on real IonQ hardware: quantum tools, music, visualizations, and games. The Spring 2026 Creative Challenge cohort, project by project.","blog\u002Fspring-2026-cohort",[86971,9203,4383],"cohort","0qNBRszpqCQgvgPCl0FdmbIqah1fr7pMsiJfE4tzhB8",{"id":86974,"title":86975,"authors":86976,"body":86977,"breadcrumb":87613,"builders":87614,"byline":87622,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":87623,"description":87624,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":87625,"hero":87627,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":87628,"navigation":790,"newsItems":7,"next":7,"ogImage":87629,"order":7,"outcomes":7,"path":87630,"publishDate":87631,"readingTime":74878,"related":87632,"relatedProjects":87633,"seo":87639,"stem":87642,"tags":87643,"track":7,"trackName":7,"__hash__":87645},"blog\u002Fblog\u002Fquantum-market-game.md","Project Showcase: Quantum Market Game",[5829],{"type":9,"value":86978,"toc":87607},[86979,86982,86985,86988,86992,86995,86998,87003,87006,87010,87013,87016,87526,87571,87574,87576,87579,87584,87587,87589,87592,87596,87605],[12,86980,86981],{},"The Quantum Market Game takes the classic prisoner's dilemma and runs it on a quantum computer. Two traders each decide to buy or sell, but here they are qubits, held in a superposition of both at once.",[12,86983,86984],{},"Turn on entanglement and their choices become linked, so the game settles into outcomes that simply do not exist in classical game theory.",[12,86986,86987],{},"Quantum Market Game is built for students who know some math but have never touched quantum computing. Aadarsh built it while still in high school, between a summer of quantum research at UT Dallas and independent work on option pricing.",[25,86989,86991],{"id":86990},"a-market-in-superposition","A market in superposition",[12,86993,86994],{},"In the classical prisoner's dilemma, two players each make one discrete choice and a payoff table decides who wins. Aadarsh kept that skeleton but swapped the players for traders and the choices for quantum states. Each trader is a qubit. Instead of committing to buy or sell, they sit in a superposition of both, weighted by a probability the player controls.",[12,86996,86997],{},"You drive the game by setting those probabilities, then watching what the market does. You can also flip entanglement on and off. With it off, the traders are two separate coin flips. With it on, one trader's leaning toward buying pulls on the other's outcome, producing correlations no pair of independent classical players could show.",[79791,86999,87000],{"avatar":82338,"name":5827,"role":82339,"username":5829},[12,87001,87002],{},"The novelty comes from using quantum-mechanics principles in a classical prisoner's dilemma. It lets the players reach final outcomes that are not possible in classical game theory.",[12,87004,87005],{},"That makes the two hardest ideas in quantum computing something you can feel by playing. Superposition is the trader who has not decided yet; entanglement is the toggle that ties two traders' fates together.",[25,87007,87009],{"id":87008},"two-qubits-two-traders","Two qubits, two traders",[12,87011,87012],{},"The circuit underneath is small enough to read in one sitting. That is deliberate. Each trader gets one rotation that sets their buy\u002Fsell mix, an optional entangling gate links them, and a measurement opens the market. On Qollab it runs on a simulator or real IonQ hardware exactly as written:",[2175,87014],{"caption":87015,"no":79839,"poster":5643,"video":5644},"Running the game and reading the outcome table: each trader's buy\u002Fsell probability and who came out ahead. Press play, sound on.",[519,87017,87018],{"name":5661,"run-href":5662,"tag":80587},[524,87019,87021],{"className":526,"code":87020,"language":528,"meta":529,"style":529},"# 'backend' is pre-created from the \"Select QPU\" dropdown below.\nfrom qiskit import QuantumCircuit\nfrom qiskit.providers.jobstatus import JobStatus\nimport numpy as np, time\n\n# Payoff for (trader 1, trader 2) by outcome — 0 = sell, 1 = buy.\nPAYOFF = {\"00\": (-1, -1), \"01\": (3, 1), \"10\": (1, 3), \"11\": (2, 2)}\n\ndef market(angle_1, angle_2, entangle):\n    qc = QuantumCircuit(2, 2)\n    qc.ry(angle_1, 0)\n    qc.ry(angle_2, 1)\n    if entangle:\n        qc.cx(0, 1)\n    qc.measure([0, 1], [0, 1])\n    return qc\n\nqc = market(np.pi\u002F2, np.pi\u002F2, entangle=True)   # both undecided, entangled\njob = backend.run(qc, shots=1000)\nwhile job.status() is not JobStatus.DONE:\n    time.sleep(2)\ncounts = job.result().get_counts()\n\n# Expected payoff across every possible market\nep1 = ep2 = 0.0\nfor bits, c in counts.items():\n    p1, p2 = PAYOFF[bits]\n    ep1 += (c \u002F 1000) * p1; ep2 += (c \u002F 1000) * p2\nprint(f\"Expected payoff — trader 1: {ep1:.2f}, trader 2: {ep2:.2f}\")\n",[57,87022,87023,87028,87038,87048,87059,87063,87068,87130,87134,87156,87174,87195,87207,87214,87239,87274,87280,87284,87319,87346,87367,87380,87396,87400,87405,87419,87433,87446,87490],{"__ignoreMap":529},[533,87024,87025],{"class":535,"line":536},[533,87026,87027],{"class":593},"# 'backend' is pre-created from the \"Select QPU\" dropdown below.\n",[533,87029,87030,87032,87034,87036],{"class":535,"line":547},[533,87031,877],{"class":539},[533,87033,880],{"class":543},[533,87035,883],{"class":539},[533,87037,1106],{"class":543},[533,87039,87040,87042,87044,87046],{"class":535,"line":575},[533,87041,877],{"class":539},[533,87043,80614],{"class":543},[533,87045,883],{"class":539},[533,87047,80619],{"class":543},[533,87049,87050,87052,87054,87056],{"class":535,"line":590},[533,87051,883],{"class":539},[533,87053,11128],{"class":543},[533,87055,584],{"class":539},[533,87057,87058],{"class":543}," np, time\n",[533,87060,87061],{"class":535,"line":597},[533,87062,891],{"emptyLinePlaceholder":790},[533,87064,87065],{"class":535,"line":603},[533,87066,87067],{"class":593},"# Payoff for (trader 1, trader 2) by outcome — 0 = sell, 1 = buy.\n",[533,87069,87070,87073,87075,87077,87079,87081,87083,87085,87087,87089,87091,87093,87095,87097,87099,87101,87103,87105,87107,87109,87111,87113,87115,87117,87119,87121,87123,87125,87127],{"class":535,"line":609},[533,87071,87072],{"class":625},"PAYOFF",[533,87074,4899],{"class":553},[533,87076,1383],{"class":543},[533,87078,1386],{"class":621},[533,87080,39244],{"class":543},[533,87082,2514],{"class":553},[533,87084,1052],{"class":625},[533,87086,1133],{"class":543},[533,87088,2514],{"class":553},[533,87090,1052],{"class":625},[533,87092,3945],{"class":543},[533,87094,1468],{"class":621},[533,87096,39244],{"class":543},[533,87098,1157],{"class":625},[533,87100,1133],{"class":543},[533,87102,1052],{"class":625},[533,87104,3945],{"class":543},[533,87106,1478],{"class":621},[533,87108,39244],{"class":543},[533,87110,1052],{"class":625},[533,87112,1133],{"class":543},[533,87114,1157],{"class":625},[533,87116,3945],{"class":543},[533,87118,1397],{"class":621},[533,87120,39244],{"class":543},[533,87122,1140],{"class":625},[533,87124,1133],{"class":543},[533,87126,1140],{"class":625},[533,87128,87129],{"class":543},")}\n",[533,87131,87132],{"class":535,"line":640},[533,87133,891],{"emptyLinePlaceholder":790},[533,87135,87136,87138,87141,87143,87145,87147,87149,87151,87154],{"class":535,"line":646},[533,87137,1754],{"class":539},[533,87139,87140],{"class":560}," market",[533,87142,615],{"class":543},[533,87144,5810],{"class":1762},[533,87146,1133],{"class":543},[533,87148,5814],{"class":1762},[533,87150,1133],{"class":543},[533,87152,87153],{"class":1762},"entangle",[533,87155,1771],{"class":543},[533,87157,87158,87160,87162,87164,87166,87168,87170,87172],{"class":535,"line":658},[533,87159,1778],{"class":543},[533,87161,554],{"class":553},[533,87163,1126],{"class":560},[533,87165,615],{"class":543},[533,87167,1140],{"class":625},[533,87169,1133],{"class":543},[533,87171,1140],{"class":625},[533,87173,637],{"class":543},[533,87175,87176,87178,87180,87182,87184,87186,87193],{"class":535,"line":680},[533,87177,1799],{"class":543},[533,87179,1652],{"class":560},[533,87181,5698],{"class":543},[533,87183,1049],{"class":625},[533,87185,2632],{"class":543},[533,87187,80059,87188],{"class":80057,"tabindex":80058},[533,87189,87190,87192],{"class":80062,"role":80063},[974,87191,80761],{}," Each trader is one qubit. The RY angle sets their mix of sell (0) and buy (1): 0 is a certain sell, π a certain buy, π\u002F2 a 50-50 market.",[533,87194,1113],{},[533,87196,87197,87199,87201,87203,87205],{"class":535,"line":1536},[533,87198,1799],{"class":543},[533,87200,1652],{"class":560},[533,87202,5713],{"class":543},[533,87204,1052],{"class":625},[533,87206,637],{"class":543},[533,87208,87209,87211],{"class":535,"line":1552},[533,87210,1814],{"class":539},[533,87212,87213],{"class":543}," entangle:\n",[533,87215,87216,87218,87220,87222,87224,87226,87228,87230,87237],{"class":535,"line":1911},[533,87217,1824],{"class":543},[533,87219,4936],{"class":560},[533,87221,615],{"class":543},[533,87223,1049],{"class":625},[533,87225,1133],{"class":543},[533,87227,1052],{"class":625},[533,87229,2632],{"class":543},[533,87231,80059,87232],{"class":80057,"tabindex":80058},[533,87233,87234,87236],{"class":80062,"role":80063},[974,87235,80823],{}," The optional CNOT links the two traders, so one trader's outcome shifts the other's: the correlations classical game theory can't produce.",[533,87238,1113],{},[533,87240,87241,87243,87245,87247,87249,87251,87253,87255,87257,87259,87261,87264,87272],{"class":535,"line":1940},[533,87242,1799],{"class":543},[533,87244,1164],{"class":560},[533,87246,3230],{"class":543},[533,87248,1049],{"class":625},[533,87250,1133],{"class":543},[533,87252,1052],{"class":625},[533,87254,3251],{"class":543},[533,87256,1049],{"class":625},[533,87258,1133],{"class":543},[533,87260,1052],{"class":625},[533,87262,87263],{"class":543},"])",[533,87265,80059,87266],{"class":80057,"tabindex":80058},[533,87267,87268,87271],{"class":80062,"role":80063},[974,87269,87270],{},"Open the market."," Measurement collapses the superposition to one outcome per shot: 00, 01, 10, or 11.",[533,87273,1113],{},[533,87275,87276,87278],{"class":535,"line":1968},[533,87277,1880],{"class":539},[533,87279,80334],{"class":543},[533,87281,87282],{"class":535,"line":1995},[533,87283,891],{"emptyLinePlaceholder":790},[533,87285,87286,87288,87290,87292,87295,87297,87299,87302,87304,87306,87308,87310,87312,87314,87316],{"class":535,"line":4164},[533,87287,1121],{"class":543},[533,87289,554],{"class":553},[533,87291,87140],{"class":560},[533,87293,87294],{"class":543},"(np.pi",[533,87296,2941],{"class":553},[533,87298,1140],{"class":625},[533,87300,87301],{"class":543},", np.pi",[533,87303,2941],{"class":553},[533,87305,1140],{"class":625},[533,87307,1133],{"class":543},[533,87309,87153],{"class":567},[533,87311,554],{"class":553},[533,87313,1958],{"class":625},[533,87315,74397],{"class":543},[533,87317,87318],{"class":593},"# both undecided, entangled\n",[533,87320,87321,87323,87325,87327,87329,87331,87333,87335,87337,87339,87344],{"class":535,"line":4199},[533,87322,4513],{"class":543},[533,87324,554],{"class":553},[533,87326,557],{"class":543},[533,87328,561],{"class":560},[533,87330,904],{"class":543},[533,87332,269],{"class":567},[533,87334,554],{"class":553},[533,87336,1240],{"class":625},[533,87338,2632],{"class":543},[533,87340,80059,87341],{"class":80057,"tabindex":80058},[533,87342,87343],{"class":80062,"role":80063},"Runs on a simulator or real IonQ hardware through Qollab. Aadarsh used IonQ credits to compare the clean simulator against hardware noise.",[533,87345,1113],{},[533,87347,87348,87351,87353,87355,87357,87359,87361,87363,87365],{"class":535,"line":4206},[533,87349,87350],{"class":539},"while",[533,87352,5414],{"class":543},[533,87354,80910],{"class":560},[533,87356,16535],{"class":543},[533,87358,3900],{"class":539},[533,87360,3903],{"class":539},[533,87362,80919],{"class":543},[533,87364,80922],{"class":625},[533,87366,544],{"class":543},[533,87368,87369,87372,87374,87376,87378],{"class":535,"line":4214},[533,87370,87371],{"class":543},"    time.",[533,87373,80932],{"class":560},[533,87375,615],{"class":543},[533,87377,1140],{"class":625},[533,87379,637],{"class":543},[533,87381,87382,87384,87386,87388,87390,87392,87394],{"class":535,"line":11296},[533,87383,5409],{"class":543},[533,87385,554],{"class":553},[533,87387,5414],{"class":543},[533,87389,1208],{"class":560},[533,87391,1211],{"class":543},[533,87393,1214],{"class":560},[533,87395,1217],{"class":543},[533,87397,87398],{"class":535,"line":11302},[533,87399,891],{"emptyLinePlaceholder":790},[533,87401,87402],{"class":535,"line":11332},[533,87403,87404],{"class":593},"# Expected payoff across every possible market\n",[533,87406,87407,87410,87412,87415,87417],{"class":535,"line":11345},[533,87408,87409],{"class":543},"ep1 ",[533,87411,554],{"class":553},[533,87413,87414],{"class":543}," ep2 ",[533,87416,554],{"class":553},[533,87418,47621],{"class":625},[533,87420,87421,87423,87425,87427,87429,87431],{"class":535,"line":11372},[533,87422,3180],{"class":539},[533,87424,80981],{"class":543},[533,87426,2786],{"class":539},[533,87428,4188],{"class":543},[533,87430,2792],{"class":560},[533,87432,2795],{"class":543},[533,87434,87435,87438,87440,87443],{"class":535,"line":11385},[533,87436,87437],{"class":543},"    p1, p2 ",[533,87439,554],{"class":553},[533,87441,87442],{"class":625}," PAYOFF",[533,87444,87445],{"class":543},"[bits]\n",[533,87447,87448,87451,87453,87456,87458,87461,87463,87465,87468,87470,87472,87474,87476,87478,87480,87483,87488],{"class":535,"line":11390},[533,87449,87450],{"class":543},"    ep1 ",[533,87452,2843],{"class":553},[533,87454,87455],{"class":543}," (c ",[533,87457,2941],{"class":553},[533,87459,87460],{"class":625}," 1000",[533,87462,7047],{"class":543},[533,87464,2469],{"class":553},[533,87466,87467],{"class":543}," p1; ep2 ",[533,87469,2843],{"class":553},[533,87471,87455],{"class":543},[533,87473,2941],{"class":553},[533,87475,87460],{"class":625},[533,87477,7047],{"class":543},[533,87479,2469],{"class":553},[533,87481,87482],{"class":543}," p2",[533,87484,80059,87485],{"class":80057,"tabindex":80058},[533,87486,87487],{"class":80062,"role":80063},"A prisoner's-dilemma payoff scores each outcome: both buy (11) is the cooperative square, a lone move pays the most. The quantum game blends these across the whole distribution.",[533,87489,1113],{},[533,87491,87492,87494,87496,87498,87501,87503,87506,87508,87510,87513,87515,87518,87520,87522,87524],{"class":535,"line":11402},[533,87493,917],{"class":553},[533,87495,615],{"class":543},[533,87497,618],{"class":539},[533,87499,87500],{"class":621},"\"Expected payoff — trader 1: ",[533,87502,626],{"class":625},[533,87504,87505],{"class":543},"ep1",[533,87507,43134],{"class":539},[533,87509,632],{"class":625},[533,87511,87512],{"class":621},", trader 2: ",[533,87514,626],{"class":625},[533,87516,87517],{"class":543},"ep2",[533,87519,43134],{"class":539},[533,87521,632],{"class":625},[533,87523,439],{"class":621},[533,87525,637],{"class":543},[81936,87527,87529],{"lead":87528},"The Quantum Market Game is open source, built to be forked and extended.",[30,87530,87531,87539],{},[33,87532,87533],{},[36,87534,87535,87537],{},[39,87536,81947],{},[39,87538,81950],{},[49,87540,87541,87549,87556,87563],{},[36,87542,87543,87546],{},[54,87544,87545],{},"Frontend",[54,87547,87548],{},"Streamlit, a browser app where you set the probabilities and toggle entanglement.",[36,87550,87551,87553],{},[54,87552,79393],{},[54,87554,87555],{},"Qiskit, a two-qubit circuit, RY state prep plus an optional CNOT.",[36,87557,87558,87560],{},[54,87559,79648],{},[54,87561,87562],{},"Aer simulator, with IonQ runs to compare against hardware noise.",[36,87564,87565,87568],{},[54,87566,87567],{},"Payoffs",[54,87569,87570],{},"A prisoner's-dilemma matrix scored over the measured distribution.",[12,87572,87573],{},"The game is a teaching object, not a trading model. A learner changes one number: the probability of buying or selling. Under the hood it is the rotation angle on the qubit, so playing and reading the circuit teach the same idea from two directions.",[25,87575,81065],{"id":81064},[12,87577,87578],{},"The current build is intentionally minimal: two traders, two qubits, one clean payoff table. Aadarsh sees it as a starting point rather than a finished thing.",[79791,87580,87581],{"avatar":82338,"name":5827,"role":82339,"username":5829},[12,87582,87583],{},"Right now the game involves two traders and two qubits. In the future this could involve more complex market situations and more traders, and we could add real assets and information to make it more realistic.",[12,87585,87586],{},"That trajectory is also the argument for why a toy matters. A two-qubit market is small enough to understand completely and structured enough to grow, a clean baseline for where quantum methods might touch real finance. Aadarsh is already there, in his own research on option pricing and market-regime detection.",[25,87588,80373],{"id":4321},[12,87590,87591],{},"The game is open and forkable on Qollab, the full code is on GitHub, and you can play it in your browser right now. Change the probabilities, flip entanglement on and off, and watch the payoffs move, then open the circuit and rewrite the rules yourself.",[79791,87593,87594],{"avatar":82338,"name":5827,"role":82339,"username":5829},[12,87595,82342],{},[4321,87597,87600],{"fork-href":5662,"live-href":87598,"title":87599},"https:\u002F\u002Fquantum-game-simulator.streamlit.app\u002F","Put two traders in superposition, then entangle them.",[12,87601,87602,87603],{},"Fork the Quantum Market Game, set the odds, toggle entanglement, and run it on real hardware. ",[974,87604,4329],{},[773,87606,81085],{},{"title":529,"searchDepth":547,"depth":547,"links":87608},[87609,87610,87611,87612],{"id":86990,"depth":547,"text":86991},{"id":87008,"depth":547,"text":87009},{"id":81064,"depth":547,"text":81065},{"id":4321,"depth":547,"text":80373},[4349,4637,5830],[87615],{"username":5829,"name":5827,"role":87616,"avatar":82338,"bio":87617,"links":87618},"Lead developer & designer","Aadarsh is a rising 12th-grader at Lone Star High School in Frisco, Texas, with a long-running interest in math, physics, and quantitative finance. In summer 2025 he did quantum-computing research under Dr. Michael Kolodrubetz at UT Dallas, building a discrete portfolio optimizer with QAOA, then continued independently into quantum amplitude estimation (a Monte Carlo option pricer) and quantum support vector machines for detecting market-stress regimes. He presented his option-pricing work at the 2026 Quantum Economy Conference and returned to UT Dallas for summer 2026 research.",[87619,87621],{"label":4360,"href":87620},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fq-aad",{"label":4363,"href":86821},{"username":1037,"name":4354,"role":4355,"avatar":4356},"Aadarsh Venkat Ramanan built a quantum twist on the prisoner's dilemma: two traders are two qubits, held in a superposition of buy and sell, and entangled into outcomes classical game theory cannot reach.","Aadarsh Venkat Ramanan built a quantum prisoner's dilemma: two traders as two qubits, in superposition of buy and sell, entangled beyond classical game theory.",{"href":5662,"label":87626},"Fork the game",{"image":5643,"alt":82335,"liveUrl":87598},{},"\u002F_content\u002Fimages\u002Fquantum-market-game\u002Fhero.jpg","\u002Fblog\u002Fquantum-market-game","2026-05-04",[],[87634,87635,87636],{"username":82234,"project":83636,"title":81844,"category":82368,"thumb":83637,"to":81843},{"username":81664,"project":85257,"title":81554,"category":81128,"thumb":85258,"to":81656},{"username":81683,"project":87637,"title":81571,"category":81128,"thumb":87638,"to":81675},"quantum-courier","\u002F_content\u002Fimages\u002Fquantum-courier\u002Fscreenshot.webp",{"title":87640,"description":87641},"Quantum Creative Project Showcase: Quantum Market Game","A quantum prisoner's dilemma: two traders as two qubits, in superposition of buy and sell, entangled into outcomes classical game theory can't reach.","blog\u002Fquantum-market-game",[82382,4383,87644],"games","2KFitvEPkoCpGtZHYwUCcg9vE43tMygVrIAH2cboDd4",{"id":87647,"title":87648,"authors":87649,"body":87650,"breadcrumb":88425,"builders":88426,"byline":88439,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":88440,"description":88441,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":88442,"hero":88443,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":88445,"navigation":790,"newsItems":7,"next":7,"ogImage":88446,"order":7,"outcomes":7,"path":88447,"publishDate":88448,"readingTime":88449,"related":88450,"relatedProjects":88451,"seo":88455,"stem":88458,"tags":88459,"track":7,"trackName":7,"__hash__":88460},"blog\u002Fblog\u002Fquantum-courier.md","Project Showcase: Quantum Courier",[81683],{"type":9,"value":87651,"toc":88419},[87652,87655,87658,87663,87667,87670,87725,87729,87732,87737,87741,87748,87751,88329,88375,88379,88382,88386,88389,88392,88397,88399,88402,88407,88416],[12,87653,87654],{},"Quantum Courier is a browser game that turns combinatorial optimization into a five-stage delivery race. Two robots run the same logistics problem, one classical, one quantum, and you watch which solver wins.",[12,87656,87657],{},"Every stage is a real, published formulation pulled from logistics, from assigning pizzas to cutting graphs. And the game refuses to oversell: classical solvers win some stages, quantum methods win others, and it shows both, with the result and the reason on screen.",[79791,87659,87660],{"avatar":81681,"name":81582,"role":81682,"username":81683},[12,87661,87662],{},"My background is classical, doing logistics optimisation at the Port of Dover. I got into quantum through a UK government programme for industry, and I saw the gap between real industry cases and quantum, especially in logistics.",[25,87664,87666],{"id":87665},"five-stages-two-solvers","Five stages, two solvers",[12,87668,87669],{},"Each stage is a different optimization problem, run by a classical planner using proven heuristics and a quantum-inspired one using QUBO-based search. Each has a clear winner, and the game is upfront about who it is:",[81936,87671,87673],{"lead":87672},"Five published formulations, each with an honest result.",[30,87674,87675,87683],{},[33,87676,87677],{},[36,87678,87679,87681],{},[39,87680,81947],{},[39,87682,81950],{},[49,87684,87685,87693,87701,87709,87717],{},[36,87686,87687,87690],{},[54,87688,87689],{},"1 · Pizza assignment",[54,87691,87692],{},"Linear assignment, classical wins (Hungarian algorithm).",[36,87694,87695,87698],{},[54,87696,87697],{},"2 · Single-vehicle routing",[54,87699,87700],{},"TSP, tied at small N, classical scales better.",[36,87702,87703,87706],{},[54,87704,87705],{},"3 · Multi-vehicle, time windows",[54,87707,87708],{},"VRPTW, classical wins (annealing beats QAOA at 25 customers).",[36,87710,87711,87714],{},[54,87712,87713],{},"4 · Graph cutting",[54,87715,87716],{},"MaxCut, quantum beats a random-cut baseline (+46.2% on real IonQ Forte).",[36,87718,87719,87722],{},[54,87720,87721],{},"5 · Combined planning",[54,87723,87724],{},"Joint QUBO, depends on instance structure.",[2175,87726],{"caption":87727,"no":79839,"poster":87638,"video":87728},"Quantum Courier in play: a stage runs, the classical and quantum solvers race the same instance, and the game shows the winner and the margin. Press play.","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F30f10262-f772-4394-841b-365eac4a0c4a",[12,87730,87731],{},"The competitive framing does the teaching. Five stops feel easy; twenty stops feel brutal, and the difference between solvers stops being a claim in a lecture and becomes something you watch happen.",[79791,87733,87734],{"avatar":81681,"name":81582,"role":81682,"username":81683},[12,87735,87736],{},"I wanted the focus to be on teaching quantum itself, so the optimisation is open, especially the classical part. There are already plenty of open papers on that anyway.",[25,87738,87740],{"id":87739},"the-forte-result","The Forte result",[12,87742,87743,87744,87747],{},"Stage 4 is where the quantum side takes its win, and it runs on real hardware. The problem is ",[974,87745,87746],{},"MaxCut"," on a 24-node 3-regular graph: split the nodes into two groups so the number of edges crossing between them is as large as possible. Siti ran QAOA at depth p=1 with 4,096 shots on IonQ Forte, and the cut came back 46.2% above a random-cut-sampling baseline.",[12,87749,87750],{},"Against mature solvers like Goemans-Williamson, classical still wins most MaxCut instances today, and the game doesn't pretend otherwise. On Qollab the full circuit runs on a simulator or a real QPU:",[519,87752,87755],{"name":87753,"run-href":87754,"tag":522},"quantum_courier_maxcut_forte.py","\u002Fu\u002FSitifar\u002Fquantum-game-pizza-race",[524,87756,87758],{"className":526,"code":87757,"language":528,"meta":529,"style":529},"# Stage 4 — MaxCut on a 24-node 3-regular graph, QAOA p=1.\nfrom qiskit import QuantumCircuit\nfrom qiskit.providers.jobstatus import JobStatus\nimport time\n\nN_NODES, SHOTS = 24, 4096\nEDGES = [(0,1), (0,7), (0,14), (1,2), (1,19)]  # excerpt: the full list has 36 edges, 3 per node\nGAMMA, BETA = 0.393, 0.785      # pre-tuned on a simulator sweep\n\ndef qaoa_circuit(gamma, beta):\n    qc = QuantumCircuit(N_NODES, N_NODES)\n    qc.h(range(N_NODES))\n    for (u, v) in EDGES:                 # cost layer\n        qc.cx(u, v); qc.rz(2 * gamma, v); qc.cx(u, v)\n    for q in range(N_NODES):\n        qc.rx(2 * beta, q)\n    qc.measure(range(N_NODES), range(N_NODES))\n    return qc\n\ndef cut_value(bitstring):\n    bits = [int(b) for b in bitstring[::-1]]\n    return sum(1 for (u, v) in EDGES if bits[u] != bits[v])\n\ncircuit = qaoa_circuit(GAMMA, BETA)\njob = backend.run(circuit, shots=SHOTS)\nwhile job.status() is not JobStatus.DONE:\n    time.sleep(5)\ncounts = job.result().get_counts()\nbest = max(counts, key=cut_value)        # best split in the shot pool\nprint(f\"Best cut: {cut_value(best)} of {len(EDGES)} edges\")\n",[57,87759,87760,87765,87775,87785,87792,87796,87815,87871,87894,87898,87917,87935,87960,87978,88014,88030,88056,88080,88086,88090,88104,88133,88170,88174,88192,88219,88239,88251,88267,88288],{"__ignoreMap":529},[533,87761,87762],{"class":535,"line":536},[533,87763,87764],{"class":593},"# Stage 4 — MaxCut on a 24-node 3-regular graph, QAOA p=1.\n",[533,87766,87767,87769,87771,87773],{"class":535,"line":547},[533,87768,877],{"class":539},[533,87770,880],{"class":543},[533,87772,883],{"class":539},[533,87774,1106],{"class":543},[533,87776,87777,87779,87781,87783],{"class":535,"line":575},[533,87778,877],{"class":539},[533,87780,80614],{"class":543},[533,87782,883],{"class":539},[533,87784,80619],{"class":543},[533,87786,87787,87789],{"class":535,"line":590},[533,87788,883],{"class":539},[533,87790,87791],{"class":543}," time\n",[533,87793,87794],{"class":535,"line":597},[533,87795,891],{"emptyLinePlaceholder":790},[533,87797,87798,87801,87803,87805,87807,87810,87812],{"class":535,"line":603},[533,87799,87800],{"class":625},"N_NODES",[533,87802,1133],{"class":543},[533,87804,80654],{"class":625},[533,87806,4899],{"class":553},[533,87808,87809],{"class":625}," 24",[533,87811,1133],{"class":543},[533,87813,87814],{"class":625},"4096\n",[533,87816,87817,87820,87822,87825,87827,87829,87831,87834,87836,87838,87840,87842,87844,87846,87848,87850,87852,87854,87856,87858,87860,87862,87865,87868],{"class":535,"line":609},[533,87818,87819],{"class":625},"EDGES",[533,87821,4899],{"class":553},[533,87823,87824],{"class":543}," [(",[533,87826,1049],{"class":625},[533,87828,2464],{"class":543},[533,87830,1052],{"class":625},[533,87832,87833],{"class":543},"), (",[533,87835,1049],{"class":625},[533,87837,2464],{"class":543},[533,87839,1994],{"class":625},[533,87841,87833],{"class":543},[533,87843,1049],{"class":625},[533,87845,2464],{"class":543},[533,87847,77226],{"class":625},[533,87849,87833],{"class":543},[533,87851,1052],{"class":625},[533,87853,2464],{"class":543},[533,87855,1140],{"class":625},[533,87857,87833],{"class":543},[533,87859,1052],{"class":625},[533,87861,2464],{"class":543},[533,87863,87864],{"class":625},"19",[533,87866,87867],{"class":543},")]  ",[533,87869,87870],{"class":593},"# excerpt: the full list has 36 edges, 3 per node\n",[533,87872,87873,87876,87878,87881,87883,87886,87888,87891],{"class":535,"line":640},[533,87874,87875],{"class":625},"GAMMA",[533,87877,1133],{"class":543},[533,87879,87880],{"class":625},"BETA",[533,87882,4899],{"class":553},[533,87884,87885],{"class":625}," 0.393",[533,87887,1133],{"class":543},[533,87889,87890],{"class":625},"0.785",[533,87892,87893],{"class":593},"      # pre-tuned on a simulator sweep\n",[533,87895,87896],{"class":535,"line":646},[533,87897,891],{"emptyLinePlaceholder":790},[533,87899,87900,87902,87905,87907,87910,87912,87915],{"class":535,"line":658},[533,87901,1754],{"class":539},[533,87903,87904],{"class":560}," qaoa_circuit",[533,87906,615],{"class":543},[533,87908,87909],{"class":1762},"gamma",[533,87911,1133],{"class":543},[533,87913,87914],{"class":1762},"beta",[533,87916,1771],{"class":543},[533,87918,87919,87921,87923,87925,87927,87929,87931,87933],{"class":535,"line":680},[533,87920,1778],{"class":543},[533,87922,554],{"class":553},[533,87924,1126],{"class":560},[533,87926,615],{"class":543},[533,87928,87800],{"class":625},[533,87930,1133],{"class":543},[533,87932,87800],{"class":625},[533,87934,637],{"class":543},[533,87936,87937,87939,87941,87943,87945,87947,87949,87951,87958],{"class":535,"line":1536},[533,87938,1799],{"class":543},[533,87940,1148],{"class":560},[533,87942,615],{"class":543},[533,87944,6692],{"class":553},[533,87946,615],{"class":543},[533,87948,87800],{"class":625},[533,87950,14555],{"class":543},[533,87952,80059,87953],{"class":80057,"tabindex":80058},[533,87954,87955,87957],{"class":80062,"role":80063},[974,87956,80761],{}," A Hadamard on every node starts the circuit in an equal mix of all 2^24 ways to split the graph.",[533,87959,1113],{},[533,87961,87962,87964,87967,87969,87972,87975],{"class":535,"line":1552},[533,87963,12659],{"class":539},[533,87965,87966],{"class":543}," (u, v) ",[533,87968,2786],{"class":539},[533,87970,87971],{"class":625}," EDGES",[533,87973,87974],{"class":543},":                 ",[533,87976,87977],{"class":593},"# cost layer\n",[533,87979,87980,87982,87984,87987,87990,87992,87994,87996,87999,88001,88004,88012],{"class":535,"line":1911},[533,87981,1824],{"class":543},[533,87983,4936],{"class":560},[533,87985,87986],{"class":543},"(u, v); qc.",[533,87988,87989],{"class":560},"rz",[533,87991,615],{"class":543},[533,87993,1140],{"class":625},[533,87995,2254],{"class":553},[533,87997,87998],{"class":543}," gamma, v); qc.",[533,88000,4936],{"class":560},[533,88002,88003],{"class":543},"(u, v)",[533,88005,80059,88006],{"class":80057,"tabindex":80058},[533,88007,88008,88011],{"class":80062,"role":80063},[974,88009,88010],{},"Cost."," One ZZ term per edge. It rewards a cut edge: the two endpoints landing on opposite sides of the split.",[533,88013,1113],{},[533,88015,88016,88018,88020,88022,88024,88026,88028],{"class":535,"line":1940},[533,88017,12659],{"class":539},[533,88019,83816],{"class":543},[533,88021,2786],{"class":539},[533,88023,2976],{"class":553},[533,88025,615],{"class":543},[533,88027,87800],{"class":625},[533,88029,1771],{"class":543},[533,88031,88032,88034,88037,88039,88041,88043,88046,88054],{"class":535,"line":1968},[533,88033,1824],{"class":543},[533,88035,88036],{"class":560},"rx",[533,88038,615],{"class":543},[533,88040,1140],{"class":625},[533,88042,2254],{"class":553},[533,88044,88045],{"class":543}," beta, q)",[533,88047,80059,88048],{"class":80057,"tabindex":80058},[533,88049,88050,88053],{"class":80062,"role":80063},[974,88051,88052],{},"Mixer."," Nudges nodes between the two sides so the optimizer can explore different cuts.",[533,88055,1113],{},[533,88057,88058,88060,88062,88064,88066,88068,88070,88072,88074,88076,88078],{"class":535,"line":1995},[533,88059,1799],{"class":543},[533,88061,1164],{"class":560},[533,88063,615],{"class":543},[533,88065,6692],{"class":553},[533,88067,615],{"class":543},[533,88069,87800],{"class":625},[533,88071,3945],{"class":543},[533,88073,6692],{"class":553},[533,88075,615],{"class":543},[533,88077,87800],{"class":625},[533,88079,1937],{"class":543},[533,88081,88082,88084],{"class":535,"line":4164},[533,88083,1880],{"class":539},[533,88085,80334],{"class":543},[533,88087,88088],{"class":535,"line":4199},[533,88089,891],{"emptyLinePlaceholder":790},[533,88091,88092,88094,88097,88099,88102],{"class":535,"line":4206},[533,88093,1754],{"class":539},[533,88095,88096],{"class":560}," cut_value",[533,88098,615],{"class":543},[533,88100,88101],{"class":1762},"bitstring",[533,88103,1771],{"class":543},[533,88105,88106,88108,88110,88112,88114,88116,88118,88121,88123,88126,88128,88130],{"class":535,"line":4214},[533,88107,76475],{"class":543},[533,88109,554],{"class":553},[533,88111,13464],{"class":543},[533,88113,4175],{"class":553},[533,88115,11480],{"class":543},[533,88117,3180],{"class":539},[533,88119,88120],{"class":543}," b ",[533,88122,2786],{"class":539},[533,88124,88125],{"class":543}," bitstring[::",[533,88127,2514],{"class":553},[533,88129,1052],{"class":625},[533,88131,88132],{"class":543},"]]\n",[533,88134,88135,88137,88140,88142,88144,88147,88149,88151,88153,88155,88158,88160,88163,88168],{"class":535,"line":11296},[533,88136,1880],{"class":539},[533,88138,88139],{"class":553}," sum",[533,88141,615],{"class":543},[533,88143,1052],{"class":625},[533,88145,88146],{"class":539}," for",[533,88148,87966],{"class":543},[533,88150,2786],{"class":539},[533,88152,87971],{"class":625},[533,88154,73381],{"class":539},[533,88156,88157],{"class":543}," bits[u] ",[533,88159,79988],{"class":553},[533,88161,88162],{"class":543}," bits[v])",[533,88164,80059,88165],{"class":80057,"tabindex":80058},[533,88166,88167],{"class":80062,"role":80063},"Counts how many edges a given split cuts. Maximizing this is the whole game of Stage 4.",[533,88169,1113],{},[533,88171,88172],{"class":535,"line":11302},[533,88173,891],{"emptyLinePlaceholder":790},[533,88175,88176,88178,88180,88182,88184,88186,88188,88190],{"class":535,"line":11332},[533,88177,3146],{"class":543},[533,88179,554],{"class":553},[533,88181,87904],{"class":560},[533,88183,615],{"class":543},[533,88185,87875],{"class":625},[533,88187,1133],{"class":543},[533,88189,87880],{"class":625},[533,88191,637],{"class":543},[533,88193,88194,88196,88198,88200,88202,88204,88206,88208,88210,88212,88217],{"class":535,"line":11345},[533,88195,4513],{"class":543},[533,88197,554],{"class":553},[533,88199,557],{"class":543},[533,88201,561],{"class":560},[533,88203,564],{"class":543},[533,88205,269],{"class":567},[533,88207,554],{"class":553},[533,88209,80654],{"class":625},[533,88211,2632],{"class":543},[533,88213,80059,88214],{"class":80057,"tabindex":80058},[533,88215,88216],{"class":80062,"role":80063},"Submitted to IonQ Forte (trapped-ion). On this 24-node graph the QAOA cut came in 46.2% above a random-cut baseline.",[533,88218,1113],{},[533,88220,88221,88223,88225,88227,88229,88231,88233,88235,88237],{"class":535,"line":11372},[533,88222,87350],{"class":539},[533,88224,5414],{"class":543},[533,88226,80910],{"class":560},[533,88228,16535],{"class":543},[533,88230,3900],{"class":539},[533,88232,3903],{"class":539},[533,88234,80919],{"class":543},[533,88236,80922],{"class":625},[533,88238,544],{"class":543},[533,88240,88241,88243,88245,88247,88249],{"class":535,"line":11385},[533,88242,87371],{"class":543},[533,88244,80932],{"class":560},[533,88246,615],{"class":543},[533,88248,1220],{"class":625},[533,88250,637],{"class":543},[533,88252,88253,88255,88257,88259,88261,88263,88265],{"class":535,"line":11390},[533,88254,5409],{"class":543},[533,88256,554],{"class":553},[533,88258,5414],{"class":543},[533,88260,1208],{"class":560},[533,88262,1211],{"class":543},[533,88264,1214],{"class":560},[533,88266,1217],{"class":543},[533,88268,88269,88272,88274,88276,88278,88280,88282,88285],{"class":535,"line":11402},[533,88270,88271],{"class":543},"best ",[533,88273,554],{"class":553},[533,88275,2224],{"class":553},[533,88277,85071],{"class":543},[533,88279,3688],{"class":567},[533,88281,554],{"class":553},[533,88283,88284],{"class":543},"cut_value)        ",[533,88286,88287],{"class":593},"# best split in the shot pool\n",[533,88289,88290,88292,88294,88296,88299,88301,88304,88307,88309,88312,88314,88316,88318,88320,88322,88324,88327],{"class":535,"line":11407},[533,88291,917],{"class":553},[533,88293,615],{"class":543},[533,88295,618],{"class":539},[533,88297,88298],{"class":621},"\"Best cut: ",[533,88300,626],{"class":625},[533,88302,88303],{"class":560},"cut_value",[533,88305,88306],{"class":543},"(best)",[533,88308,632],{"class":625},[533,88310,88311],{"class":621}," of ",[533,88313,626],{"class":625},[533,88315,15006],{"class":553},[533,88317,615],{"class":543},[533,88319,87819],{"class":625},[533,88321,2632],{"class":543},[533,88323,632],{"class":625},[533,88325,88326],{"class":621}," edges\"",[533,88328,637],{"class":543},[81936,88330,88332],{"lead":88331},"Quantum Courier is open source and MIT-licensed, built to be forked and rerun.",[30,88333,88334,88342],{},[33,88335,88336],{},[36,88337,88338,88340],{},[39,88339,81947],{},[39,88341,81950],{},[49,88343,88344,88351,88359,88367],{},[36,88345,88346,88348],{},[54,88347,87545],{},[54,88349,88350],{},"Vanilla HTML, CSS, and JavaScript, no framework.",[36,88352,88353,88356],{},[54,88354,88355],{},"Classical solvers",[54,88357,88358],{},"Hungarian algorithm, 2-opt + simulated annealing, Goemans-Williamson SDP rounding.",[36,88360,88361,88364],{},[54,88362,88363],{},"Quantum-inspired",[54,88365,88366],{},"QUBO simulated quantum annealing, in the browser.",[36,88368,88369,88372],{},[54,88370,88371],{},"Real hardware",[54,88373,88374],{},"Qiskit + qiskit-ionq, IonQ Forte via qBraid, QAOA p=1 at 4,096 shots.",[25,88376,88378],{"id":88377},"structure-beats-qubit-count","Structure beats qubit count",[12,88380,88381],{},"The most interesting result is the one that went the other way. For Stage 3, Siti tested four QAOA variants on Forte against classical simulated annealing on a 25-customer vehicle-routing instance with time windows. Classical won every time, and she left that result in the game on purpose.",[79791,88383,88384],{"avatar":81681,"name":81582,"role":81682,"username":81683},[12,88385,81686],{},[12,88387,88388],{},"MaxCut has a cost function that simply counts cut edges, which lines up naturally with what a shallow parameterized quantum circuit can express. Vehicle routing does not have that property at the scales we can run today, and classical routing heuristics are decades mature.",[12,88390,88391],{},"That contrast is the real lesson Quantum Courier teaches: where quantum helps is a question of problem shape, and the honest answer is sometimes no.",[79791,88393,88394],{"avatar":81681,"name":81582,"role":81682,"username":81683},[12,88395,88396],{},"Operators making real decisions need to know where quantum helps and where classical methods still win.",[25,88398,80373],{"id":4321},[12,88400,88401],{},"The game is open and forkable on Qollab, the full code is MIT-licensed on GitHub, and you can play all five stages in your browser right now. The Stage 4 MaxCut circuit runs on real IonQ hardware in a click, so you can rerun the result that beat the classical baseline yourself.",[79791,88403,88404],{"avatar":81681,"name":81582,"role":81682,"username":81683},[12,88405,88406],{},"I hope this doesn't stop after Qollab and IonQ. I hope there will be more collaborations in the future.",[4321,88408,88411],{"fork-href":87754,"live-href":88409,"title":88410},"https:\u002F\u002Fqatalyst-quantum.co.uk\u002Fplay","Can you beat a quantum computer at route planning?",[12,88412,88413,88414],{},"Play all five stages, fork the game, and rerun the MaxCut circuit on real IonQ Forte. ",[974,88415,4329],{},[773,88417,88418],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":88420},[88421,88422,88423,88424],{"id":87665,"depth":547,"text":87666},{"id":87739,"depth":547,"text":87740},{"id":88377,"depth":547,"text":88378},{"id":4321,"depth":547,"text":80373},[4349,4637,81571],[88427],{"username":81683,"name":81582,"role":88428,"avatar":81681,"bio":88429,"links":88430},"Founder · Qatalyst Quantum","Siti is a postdoctoral researcher at Heriot-Watt University, where she is building a multimodal logistics simulation and digital twin, and the founder of Qatalyst Quantum, a vehicle-routing optimization startup she started in 2025 to help operators find the real cases where quantum can help operations (Conception X, Microsoft Founders Hub, Quantinuum Q-NET, Kipu Quantum Hub). She holds a PhD in Engineering from the University of Strathclyde with a background in operational research, spent two years at the Port of Dover as a KTP Associate building traffic-simulation models and exploring quantum computing for routing operations, and has built Qatalyst's full optimization pipeline, from agentic AI orchestration to custom solvers and quantum problem reformulation, with hands-on experience on D-Wave and ORCA hardware.",[88431,88433,88434,88436],{"label":4360,"href":88432},"https:\u002F\u002Fqollab.xyz\u002Fu\u002FSitifar",{"label":80403,"href":86595},{"label":4363,"href":88435},"https:\u002F\u002Fgithub.com\u002Fsitifariya",{"label":88437,"href":88438},"Qatalyst ↗","https:\u002F\u002Fqatalyst-quantum.co.uk\u002F",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Dr. Siti Fariya built a browser game that races classical and quantum solvers across five real logistics problems, and shows honestly which one wins, and why.","Dr. Siti Fariya built Quantum Courier, a browser game racing classical vs quantum solvers across five logistics problems, with a 46.2% MaxCut result on IonQ Forte.",{"href":87754,"label":87626},{"image":87638,"alt":88444,"liveUrl":88409},"Quantum Courier in play: a delivery stage with routes, robots, and the running score",{},"\u002F_content\u002Fimages\u002Fquantum-courier\u002Fscreenshot.jpg","\u002Fblog\u002Fquantum-courier","2026-05-02","7 min read",[],[88452,88453,88454],{"username":85252,"project":85253,"title":81603,"category":81128,"thumb":85254,"to":81712},{"username":2329,"project":81124,"title":2330,"category":80434,"thumb":2332,"to":81125},{"username":80437,"project":80438,"title":80439,"category":80440,"thumb":80441,"to":80442},{"title":88456,"description":88457},"Quantum Creative Project Showcase: Quantum Courier","A browser game that races classical vs quantum solvers across five logistics problems, and shows honestly which wins and why.","blog\u002Fquantum-courier",[82383,4383,87644],"6f4-QYfa-5az3GhER8Vn_TlVv9xGROr1_C9W78xCG6g",{"id":88462,"title":80487,"authors":88463,"body":88464,"breadcrumb":88567,"builders":88569,"byline":7,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":88570,"description":88571,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":88572,"heroImage":7,"homepageFeatured":786,"kind":7,"lessonCount":7,"meta":88575,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":88576,"publishDate":88577,"readingTime":7,"related":88578,"relatedProjects":7,"seo":88579,"stem":88582,"tags":88583,"track":7,"trackName":7,"__hash__":88586},"blog\u002Fblog\u002Fambassadors.md",[1037],{"type":9,"value":88465,"toc":88559},[88466,88470,88473,88477,88491,88493,88501,88505,88508,88512,88515,88519,88526,88532,88538,88544,88550],[25,88467,88469],{"id":88468},"bring-quantum-to-your-corner-of-the-world","Bring quantum to your corner of the world",[12,88471,88472],{},"Quantum still feels closed off to most people who could be building with it. Ambassadors change that locally. You already have a community, a campus, a meetup, a Discord, a lab, and you help the people in it take their first real step into quantum. We give you the credits, the tools, and the backup to make that easy.",[25,88474,88476],{"id":88475},"what-ambassadors-do","What ambassadors do",[753,88478,88479,88482,88485,88488],{},[756,88480,88481],{},"Run meetups, workshops, or hack nights where people write and run their first quantum circuit.",[756,88483,88484],{},"Help newcomers get past the intimidating part and onto real hardware through the Qollab Playground.",[756,88486,88487],{},"Share what people in your community are building, so their work gets seen.",[756,88489,88490],{},"Send signal back to the team on what is confusing, missing, or working well.",[25,88492,7992],{"id":7991},[48629,88494],{"b1":88495,"b2":88496,"b3":88497,"t1":88498,"t2":88499,"t3":88500},"Credits to run on real IonQ quantum hardware, for you and the people you bring in.","New Playground features and templates before they go wide, plus a direct line to the team.","Materials, guidance, and a network of other ambassadors to run great sessions.","Monthly hardware credits","Early access","Event support",[25,88502,88504],{"id":88503},"who-we-are-looking-for","Who we are looking for",[12,88506,88507],{},"You do not need to be a quantum expert. You need to be good at gathering people. Student leaders, community organizers, educators, and developer advocates make the best ambassadors. If you already get people in a room around code, science, or creative work, you can do this.",[25,88509,88511],{"id":88510},"how-to-apply","How to apply",[12,88513,88514],{},"Tell us about your community and what you would like to run. Applications are reviewed on a rolling basis, so there is no deadline to race. If it is a fit, the team follows up to get you set up with credits and materials.",[25,88516,88518],{"id":88517},"frequently-asked-questions","Frequently asked questions",[88520,88521,88523],"faq-item",{"q":88522},"What does a Qollab Ambassador do?",[12,88524,88525],{},"Ambassadors champion quantum computing where they already have a community. They run meetups and workshops, help newcomers get their first circuit running, and share what people in their network are building.",[88520,88527,88529],{"q":88528},"What do ambassadors get?",[12,88530,88531],{},"Monthly credits to run on real IonQ hardware, early access to new Qollab features, a direct line to the team, and support for the events you run.",[88520,88533,88535],{"q":88534},"Who should apply?",[12,88536,88537],{},"Student leaders, community organizers, educators, and developer advocates who already gather people around code, science, or creative work and want to bring quantum into the room.",[88520,88539,88541],{"q":88540},"Do I need to be a quantum expert?",[12,88542,88543],{},"No. You need to be good at bringing people together. We give you the tools, templates, and support to help your community get started with quantum.",[88520,88545,88547],{"q":88546},"How do I apply to the ambassador program?",[12,88548,88549],{},"Applications are rolling. Tell us about your community and what you would like to run, and the team will follow up.",[48692,88551,88556],{"dark":529,"f1":88552,"f2":81765,"l1":88553,"l2":88554,"title":88555},"mailto:hello@qollab.xyz?subject=Qollab Ambassador Program","Apply to be an ambassador","Explore Qollab","Ready to lead?",[12,88557,88558],{},"Bring quantum to the people around you. Tell us about your community and we will help you get them building.",{"title":529,"searchDepth":547,"depth":547,"links":88560},[88561,88562,88563,88564,88565,88566],{"id":88468,"depth":547,"text":88469},{"id":88475,"depth":547,"text":88476},{"id":7991,"depth":547,"text":7992},{"id":88503,"depth":547,"text":88504},{"id":88510,"depth":547,"text":88511},{"id":88517,"depth":547,"text":88518},[4349,4637,88568],"Ambassadors",[],"Champion quantum in your community, help newcomers run their first circuit, and earn monthly IonQ hardware credits while you do it.","Champion quantum computing in your community, help newcomers run their first circuit, and earn monthly IonQ hardware credits. Applications are rolling.",{"primaryHref":88552,"primaryLabel":88573,"secondaryHref":81765,"secondaryLabel":88574},"Apply to the program","See the community →",{},"\u002Fblog\u002Fambassadors","2026-05-01",[],{"title":88580,"description":88581},"Qollab Ambassador Program: bring quantum to your community","Run meetups, help newcomers get their first circuit on real hardware, and earn monthly IonQ credits as a Qollab Ambassador. Rolling applications.","blog\u002Fambassadors",[88584,88585],"program","community","K5J9FOqUOYnRnvcjisNn8Of1nDcZXUSXyW_miG2PriQ",{"id":88588,"title":88589,"authors":88590,"body":88592,"breadcrumb":89226,"builders":89227,"byline":89247,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":89248,"description":89249,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":89250,"hero":89251,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":89252,"navigation":790,"newsItems":7,"next":7,"ogImage":89253,"order":7,"outcomes":7,"path":89254,"publishDate":89255,"readingTime":88449,"related":89256,"relatedProjects":89257,"seo":89261,"stem":89264,"tags":89265,"track":7,"trackName":7,"__hash__":89266},"blog\u002Fblog\u002Fmusiq.md","Project Showcase: Musiq",[3092,88591],"emmanuellaadams",{"type":9,"value":88593,"toc":89219},[88594,88597,88600,88603,88607,88611,88614,88669,88672,88676,88679,88682,89094,89146,89150,89153,89157,89160,89167,89170,89175,89178,89180,89183,89187,89190,89194,89197,89202,89204,89207,89216],[12,88595,88596],{},"Musiq starts from a simple question: what does a quantum circuit sound like?",[12,88598,88599],{},"The answer is a browser-based quantum sonification studio. You build a circuit out of gates, or import an OpenQASM template, run it on a simulator or real IonQ hardware, and Musiq turns the resulting probabilities, amplitudes, and phases into sound you can play, visualize, and export.",[12,88601,88602],{},"Behind it was a frustration with how generative music usually works.",[79791,88604,88605],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,88606,82583],{},[25,88608,88610],{"id":88609},"what-a-circuit-sounds-like","What a circuit sounds like",[12,88612,88613],{},"The core of Musiq is a direct mapping from quantum data to audio. After a circuit runs, its outputs are not just plotted; they are turned into the parameters of a sound. Each part of the quantum result drives a part of what you hear:",[81936,88615,88617],{"lead":88616},"Quantum data becomes sound through a direct mapping, computed from each run.",[30,88618,88619,88627],{},[33,88620,88621],{},[36,88622,88623,88625],{},[39,88624,81947],{},[39,88626,81950],{},[49,88628,88629,88637,88645,88653,88661],{},[36,88630,88631,88634],{},[54,88632,88633],{},"Basis-state index",[54,88635,88636],{},"Musical frequency, which note each outcome plays.",[36,88638,88639,88642],{},[54,88640,88641],{},"Measurement probability",[54,88643,88644],{},"Strength of that frequency component.",[36,88646,88647,88650],{},[54,88648,88649],{},"Statevector amplitude",[54,88651,88652],{},"Loudness contribution.",[36,88654,88655,88658],{},[54,88656,88657],{},"Statevector phase",[54,88659,88660],{},"Oscillator phase and interference.",[36,88662,88663,88666],{},[54,88664,88665],{},"Quantum distribution",[54,88667,88668],{},"Overall spectral and tonal texture.",[12,88670,88671],{},"Because the whole distribution shapes the waveform, different circuits sound genuinely different. A Bell or GHZ state's correlated outcomes shift the balance of frequencies. Interference-heavy IQP circuits produce dense, irregular textures with sharp peaks and valleys. Quantum-walk templates spread amplitude across many states and drift through evolving, probability-weighted tones.",[25,88673,88675],{"id":88674},"hearing-a-bell-state","Hearing a Bell state",[12,88677,88678],{},"The simplest thing you can hear is a Bell state: two qubits put into superposition and entangled, so their measurement outcomes are correlated. On Qollab the circuit runs on a simulator or a real QPU exactly as written, and the counts that come back are what Musiq turns into sound.",[2175,88680],{"caption":88681,"no":79839,"poster":82587,"video":82588},"Building a circuit in the studio, running it, and hearing and seeing the result, with waveform and spectrum. Press play, sound on.",[519,88683,88684],{"name":5267,"run-href":3094,"tag":80587},[524,88685,88687],{"className":526,"code":88686,"language":528,"meta":529,"style":529},"# 'backend' is pre-created as a global on Qollab.\nfrom qiskit import QuantumCircuit\n\n# A Bell state: superposition, then entanglement.\ncircuit = QuantumCircuit(2, 2)   # 2 qubits, 2 bits\ncircuit.h(0)\ncircuit.cx(0, 1)\ncircuit.measure([0, 1], [0, 1])\nprint(circuit)\n\nfrom qiskit.providers.jobstatus import JobStatus\nimport time\n\ndef main(shots=100, exclude_low_probability=True, low_threshold=0.05):\n    job = backend.run(circuit, shots=shots)\n\n    # Poll until the job finishes\n    while True:\n        status = job.status()\n        print(f\"Job status is {status}\")\n        if status is JobStatus.DONE:\n            break\n        time.sleep(10)\n\n    counts = job.get_counts()\n    if exclude_low_probability:\n        threshold = shots * low_threshold\n        # Filter low-probability noise\n        counts = {b: c for b, c in counts.items() if c > threshold}\n    print(f\"Counts for {shots} shots: {counts}\")\n",[57,88688,88689,88694,88704,88708,88713,88734,88755,88780,88804,88811,88815,88825,88831,88835,88869,88894,88898,88903,88911,88924,88945,88960,88965,88977,88981,89000,89007,89021,89026,89064],{"__ignoreMap":529},[533,88690,88691],{"class":535,"line":536},[533,88692,88693],{"class":593},"# 'backend' is pre-created as a global on Qollab.\n",[533,88695,88696,88698,88700,88702],{"class":535,"line":547},[533,88697,877],{"class":539},[533,88699,880],{"class":543},[533,88701,883],{"class":539},[533,88703,1106],{"class":543},[533,88705,88706],{"class":535,"line":575},[533,88707,891],{"emptyLinePlaceholder":790},[533,88709,88710],{"class":535,"line":590},[533,88711,88712],{"class":593},"# A Bell state: superposition, then entanglement.\n",[533,88714,88715,88717,88719,88721,88723,88725,88727,88729,88731],{"class":535,"line":597},[533,88716,3146],{"class":543},[533,88718,554],{"class":553},[533,88720,1126],{"class":560},[533,88722,615],{"class":543},[533,88724,1140],{"class":625},[533,88726,1133],{"class":543},[533,88728,1140],{"class":625},[533,88730,74397],{"class":543},[533,88732,88733],{"class":593},"# 2 qubits, 2 bits\n",[533,88735,88736,88738,88740,88742,88744,88746,88753],{"class":535,"line":603},[533,88737,3225],{"class":543},[533,88739,1148],{"class":560},[533,88741,615],{"class":543},[533,88743,1049],{"class":625},[533,88745,2632],{"class":543},[533,88747,80059,88748],{"class":80057,"tabindex":80058},[533,88749,88750,88752],{"class":80062,"role":80063},[974,88751,80761],{}," A Hadamard spreads the qubit across 0 and 1. In Musiq, that spread becomes the range of frequencies you hear.",[533,88754,1113],{},[533,88756,88757,88759,88761,88763,88765,88767,88769,88771,88778],{"class":535,"line":609},[533,88758,3225],{"class":543},[533,88760,4936],{"class":560},[533,88762,615],{"class":543},[533,88764,1049],{"class":625},[533,88766,1133],{"class":543},[533,88768,1052],{"class":625},[533,88770,2632],{"class":543},[533,88772,80059,88773],{"class":80057,"tabindex":80058},[533,88774,88775,88777],{"class":80062,"role":80063},[974,88776,80823],{}," A CNOT links the two qubits, so their outcomes are correlated. That reshapes the distribution, and so the balance of frequencies in the sound.",[533,88779,1113],{},[533,88781,88782,88784,88786,88788,88790,88792,88794,88796,88798,88800,88802],{"class":535,"line":640},[533,88783,3225],{"class":543},[533,88785,1164],{"class":560},[533,88787,3230],{"class":543},[533,88789,1049],{"class":625},[533,88791,1133],{"class":543},[533,88793,1052],{"class":625},[533,88795,3251],{"class":543},[533,88797,1049],{"class":625},[533,88799,1133],{"class":543},[533,88801,1052],{"class":625},[533,88803,3272],{"class":543},[533,88805,88806,88808],{"class":535,"line":646},[533,88807,917],{"class":553},[533,88809,88810],{"class":543},"(circuit)\n",[533,88812,88813],{"class":535,"line":658},[533,88814,891],{"emptyLinePlaceholder":790},[533,88816,88817,88819,88821,88823],{"class":535,"line":680},[533,88818,877],{"class":539},[533,88820,80614],{"class":543},[533,88822,883],{"class":539},[533,88824,80619],{"class":543},[533,88826,88827,88829],{"class":535,"line":1536},[533,88828,883],{"class":539},[533,88830,87791],{"class":543},[533,88832,88833],{"class":535,"line":1552},[533,88834,891],{"emptyLinePlaceholder":790},[533,88836,88837,88839,88841,88843,88845,88847,88849,88851,88854,88856,88858,88860,88863,88865,88867],{"class":535,"line":1911},[533,88838,1754],{"class":539},[533,88840,80861],{"class":560},[533,88842,615],{"class":543},[533,88844,269],{"class":1762},[533,88846,554],{"class":543},[533,88848,4528],{"class":625},[533,88850,1133],{"class":543},[533,88852,88853],{"class":1762},"exclude_low_probability",[533,88855,554],{"class":543},[533,88857,1958],{"class":625},[533,88859,1133],{"class":543},[533,88861,88862],{"class":1762},"low_threshold",[533,88864,554],{"class":543},[533,88866,6195],{"class":625},[533,88868,1771],{"class":543},[533,88870,88871,88873,88875,88877,88879,88881,88883,88885,88887,88892],{"class":535,"line":1940},[533,88872,550],{"class":543},[533,88874,554],{"class":553},[533,88876,557],{"class":543},[533,88878,561],{"class":560},[533,88880,564],{"class":543},[533,88882,269],{"class":567},[533,88884,554],{"class":553},[533,88886,80890],{"class":543},[533,88888,80059,88889],{"class":80057,"tabindex":80058},[533,88890,88891],{"class":80062,"role":80063},"Submits to a simulator or a real IonQ QPU through Qollab. Audio from a QPU run is derived from measurements on physical hardware.",[533,88893,1113],{},[533,88895,88896],{"class":535,"line":1968},[533,88897,891],{"emptyLinePlaceholder":790},[533,88899,88900],{"class":535,"line":1995},[533,88901,88902],{"class":593},"    # Poll until the job finishes\n",[533,88904,88905,88907,88909],{"class":535,"line":4164},[533,88906,80905],{"class":539},[533,88908,71998],{"class":625},[533,88910,544],{"class":543},[533,88912,88913,88916,88918,88920,88922],{"class":535,"line":4199},[533,88914,88915],{"class":543},"        status ",[533,88917,554],{"class":553},[533,88919,5414],{"class":543},[533,88921,80910],{"class":560},[533,88923,1217],{"class":543},[533,88925,88926,88928,88930,88932,88935,88937,88939,88941,88943],{"class":535,"line":4206},[533,88927,45979],{"class":553},[533,88929,615],{"class":543},[533,88931,618],{"class":539},[533,88933,88934],{"class":621},"\"Job status is ",[533,88936,626],{"class":625},[533,88938,80910],{"class":543},[533,88940,632],{"class":625},[533,88942,439],{"class":621},[533,88944,637],{"class":543},[533,88946,88947,88949,88952,88954,88956,88958],{"class":535,"line":4214},[533,88948,2762],{"class":539},[533,88950,88951],{"class":543}," status ",[533,88953,3900],{"class":539},[533,88955,80919],{"class":543},[533,88957,80922],{"class":625},[533,88959,544],{"class":543},[533,88961,88962],{"class":535,"line":11296},[533,88963,88964],{"class":539},"            break\n",[533,88966,88967,88969,88971,88973,88975],{"class":535,"line":11302},[533,88968,80929],{"class":543},[533,88970,80932],{"class":560},[533,88972,615],{"class":543},[533,88974,1579],{"class":625},[533,88976,637],{"class":543},[533,88978,88979],{"class":535,"line":11332},[533,88980,891],{"emptyLinePlaceholder":790},[533,88982,88983,88985,88987,88989,88991,88993,88998],{"class":535,"line":11345},[533,88984,80943],{"class":543},[533,88986,554],{"class":553},[533,88988,5414],{"class":543},[533,88990,1214],{"class":560},[533,88992,41837],{"class":543},[533,88994,80059,88995],{"class":80057,"tabindex":80058},[533,88996,88997],{"class":80062,"role":80063},"Each basis state's index becomes a musical frequency; how often it appears sets that frequency's strength.",[533,88999,1113],{},[533,89001,89002,89004],{"class":535,"line":11372},[533,89003,1814],{"class":539},[533,89005,89006],{"class":543}," exclude_low_probability:\n",[533,89008,89009,89012,89014,89016,89018],{"class":535,"line":11385},[533,89010,89011],{"class":543},"        threshold ",[533,89013,554],{"class":553},[533,89015,7194],{"class":543},[533,89017,2469],{"class":553},[533,89019,89020],{"class":543}," low_threshold\n",[533,89022,89023],{"class":535,"line":11390},[533,89024,89025],{"class":593},"        # Filter low-probability noise\n",[533,89027,89028,89030,89032,89035,89037,89040,89042,89044,89046,89048,89050,89052,89054,89057,89062],{"class":535,"line":11402},[533,89029,4150],{"class":543},[533,89031,554],{"class":553},[533,89033,89034],{"class":543}," {b: c ",[533,89036,3180],{"class":539},[533,89038,89039],{"class":543}," b, c ",[533,89041,2786],{"class":539},[533,89043,4188],{"class":543},[533,89045,2792],{"class":560},[533,89047,16535],{"class":543},[533,89049,5724],{"class":539},[533,89051,40413],{"class":543},[533,89053,2808],{"class":553},[533,89055,89056],{"class":543}," threshold}",[533,89058,80059,89059],{"class":80057,"tabindex":80058},[533,89060,89061],{"class":80062,"role":80063},"Drops outcomes too rare to be signal, a simple hardware-noise filter, before the counts are mapped to sound.",[533,89063,1113],{},[533,89065,89066,89068,89070,89072,89075,89077,89079,89081,89084,89086,89088,89090,89092],{"class":535,"line":11407},[533,89067,612],{"class":553},[533,89069,615],{"class":543},[533,89071,618],{"class":539},[533,89073,89074],{"class":621},"\"Counts for ",[533,89076,626],{"class":625},[533,89078,269],{"class":543},[533,89080,632],{"class":625},[533,89082,89083],{"class":621}," shots: ",[533,89085,626],{"class":625},[533,89087,1925],{"class":543},[533,89089,632],{"class":625},[533,89091,439],{"class":621},[533,89093,637],{"class":543},[81936,89095,89097],{"lead":89096},"Musiq is open source, built to be forked and rerun.",[30,89098,89099,89107],{},[33,89100,89101],{},[36,89102,89103,89105],{},[39,89104,81947],{},[39,89106,81950],{},[49,89108,89109,89116,89123,89130,89138],{},[36,89110,89111,89113],{},[54,89112,87545],{},[54,89114,89115],{},"Web app, visual circuit editor, players, and spectrum views.",[36,89117,89118,89120],{},[54,89119,79393],{},[54,89121,89122],{},"Qiskit and OpenQASM 2.0, Bell, GHZ, IQP, and quantum-walk templates.",[36,89124,89125,89127],{},[54,89126,79648],{},[54,89128,89129],{},"Local ideal simulator, IonQ simulator, or IonQ QPU.",[36,89131,89132,89135],{},[54,89133,89134],{},"Audio",[54,89136,89137],{},"Python with NumPy, SciPy, and SoundFile; WAV output plus spectral analysis.",[36,89139,89140,89143],{},[54,89141,89142],{},"Deployment",[54,89144,89145],{},"Cloud-hosted web app.",[25,89147,89149],{"id":89148},"a-universal-translator","A universal translator",[12,89151,89152],{},"Musiq is built to be a teaching instrument as much as a creative one. By comparing how different circuits sound, a learner can build intuition for how circuit design shapes quantum output, without first having to read the math.",[79791,89154,89155],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,89156,82499],{},[12,89158,89159],{},"Emmanuella owns the other half of that, how the studio meets someone on their first visit.",[79791,89161,89164],{"avatar":89162,"name":86768,"role":89163,"username":88591},"\u002F_content\u002Fimages\u002Fbuilders\u002Femmanuella-adams.webp","Creative technologist, Musiq",[12,89165,89166],{},"I've always lived between two worlds, code and story. So when I first encountered quantum circuits, they felt abstract and unreachable, even as someone in tech. I wanted to make them feel like something you could feel, not just calculate. Helping to design the interface for Musiq seemed like the most human bridge into that strange yet beautiful space.",[12,89168,89169],{},"That work shows up in decisions that are invisible when they go well.",[79791,89171,89172],{"avatar":89162,"name":86768,"role":89163,"username":88591},[12,89173,89174],{},"The hardest part was deciding what the user actually needs to see when they first open Musiq. Quantum computing can feel alien, so every button, label, and layout had to bridge the gap between the unfamiliar and the familiar. We had to make it simple enough to feel intuitive, yet deep enough to reward curiosity.",[12,89176,89177],{},"The team is careful about what the tool is and is not. Musiq is a sonification instrument that complements the usual diagrams and equations rather than replacing them, and it is honest about its current scope: it processes a circuit's output as a whole, and does not yet assign individual qubits to separate voices or instruments. What it does do is give superposition, interference, and entanglement a sound, and a spectrum you can inspect afterward.",[25,89179,81065],{"id":81064},[12,89181,89182],{},"Today Musiq generates a single layered waveform from a circuit, with a set of circuit templates and analysis tools to pick apart the result. The ambition Tomoya describes is bigger: to move from sonification toward genuine composition, using the all-to-all connectivity of trapped-ion hardware to give separate musical voices their own entangled structure.",[79791,89184,89185],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,89186,82562],{},[12,89188,89189],{},"The project is also a small argument about what quantum computers are for. Most of the field points its hardware at optimization and simulation; Musiq points it at a speaker.",[79791,89191,89192],{"avatar":82494,"name":82495,"role":82496,"username":3092},[12,89193,82596],{},[12,89195,89196],{},"For Emmanuella the measure is smaller and more immediate, what happens in the first minute someone spends with it.",[79791,89198,89199],{"avatar":89162,"name":86768,"role":89163,"username":88591},[12,89200,89201],{},"Curiosity, not fear. Quantum computing is often presented as this impossible, gatekept thing. I want someone to hear their circuit and think, \"Oh, that's mine. I made that.\" The feeling of creating something you don't fully understand yet. That is where learning starts.",[25,89203,80373],{"id":4321},[12,89205,89206],{},"Musiq is open and forkable on Qollab, the full studio is on GitHub, and you can build a circuit and hear it in your browser right now. Start from a Bell or GHZ template, or bring your own OpenQASM, and listen to how the design changes the sound.",[4321,89208,89211],{"fork-href":3094,"live-href":89209,"title":89210},"https:\u002F\u002Fmusiquantum.vercel.app\u002F","Build a circuit. Hear what it does.",[12,89212,89213,89214],{},"Fork Musiq, run a circuit on a simulator or real IonQ hardware, and turn its quantum data into sound. ",[974,89215,4329],{},[773,89217,89218],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":89220},[89221,89222,89223,89224,89225],{"id":88609,"depth":547,"text":88610},{"id":88674,"depth":547,"text":88675},{"id":89148,"depth":547,"text":89149},{"id":81064,"depth":547,"text":81065},{"id":4321,"depth":547,"text":80373},[4349,4637,3093],[89228,89240],{"username":3092,"name":82495,"role":89229,"avatar":82494,"bio":89230,"links":89231},"Project lead · quantum researcher & engineer","Tomoya is a freelance quantum engineer with an Applied Physics master's from the University of Tokyo, specializing in quantum error correction and quantum algorithms, including ML-based decoders and quantum hash functions. He is first author on a published quantum hash function paper with RIKEN and OIST co-authors, and founded the open-source project KetQat to help democratize quantum computing.",[89232,89234,89235,89237],{"label":4360,"href":89233},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fdoraking",{"label":80403,"href":86763},{"label":4363,"href":89236},"https:\u002F\u002Fgithub.com\u002Fdorakingx",{"label":89238,"href":89239},"arXiv ↗","https:\u002F\u002Farxiv.org\u002Fabs\u002F2409.19932",{"username":88591,"name":86768,"role":89241,"avatar":89162,"bio":89242,"links":89243},"Creative technologist · quantum experience","Emmanuella works on the bridge between quantum systems and creative research, focused on translating complex technical concepts into human-centered experiences. On Musiq she shapes the quantum-to-music translation, the audiovisual experience, and the educational interaction layer. She is an undergraduate in software engineering at Federal University Dutse, specializing in AI and machine learning.",[89244,89245],{"label":80403,"href":86767},{"label":4363,"href":89246},"https:\u002F\u002Fgithub.com\u002FEmmanuella-Adams",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Tomoya Hatanaka and Emmanuella Adams built a browser studio that turns quantum circuits into sound. Build a circuit, run it on a simulator or real IonQ hardware, and hear its quantum data become music.","Tomoya Hatanaka and Emmanuella Adams built Musiq, a browser studio that turns quantum circuits into sound on real IonQ hardware. A Qollab Spring 2026 project.",{"href":3094,"label":82666},{"image":82587,"alt":82586,"liveUrl":89209},{},"\u002F_content\u002Fimages\u002Fmusiq\u002Fhero.jpg","\u002Fblog\u002Fmusiq","2026-04-30",[],[89258,89259,89260],{"username":80437,"project":80438,"title":80439,"category":80440,"thumb":80441,"to":80442},{"username":85252,"project":85253,"title":81603,"category":81128,"thumb":85254,"to":81712},{"username":81701,"project":86568,"title":81587,"category":81128,"thumb":86569,"to":81694},{"title":89262,"description":89263},"Quantum Creative Project Showcase: Musiq","A browser studio that turns quantum circuits into sound. Build a circuit, run it on IonQ, and hear the quantum data become music.","blog\u002Fmusiq",[81135,4383,4382],"EjHazU-AIK83HQfoHOLaNl5NEqeTT0ShKNWapwV62JA",{"id":89268,"title":89269,"authors":89270,"body":89271,"breadcrumb":90186,"builders":90187,"byline":90202,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":90203,"description":90204,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":90205,"hero":90207,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":90209,"navigation":790,"newsItems":7,"next":7,"ogImage":90210,"order":7,"outcomes":7,"path":90211,"publishDate":90212,"readingTime":16801,"related":90213,"relatedProjects":90214,"seo":90218,"stem":90221,"tags":90222,"track":7,"trackName":7,"__hash__":90223},"blog\u002Fblog\u002Fquantum-butterfly-field.md","Project Showcase: Quantum Butterfly Field",[6804],{"type":9,"value":89272,"toc":90178},[89273,89276,89283,89289,89293,89297,89300,89305,89310,89313,89318,89321,89326,89330,89338,89341,89345,89348,89352,89355,89358,89361,90035,90038,90084,90088,90091,90111,90116,90119,90134,90139,90143,90150,90154,90157,90162,90164,90167,90176],[12,89274,89275],{},"Quantum Butterfly Field is an interactive artwork where five butterflies are five qubits. As the circuit runs, their individual identities dissolve into a single entangled field.",[12,89277,89278,89279,89282],{},"Then one butterfly is damaged, severed from the whole. In a classical world that loss would be final. Here it is not: through the quantum ",[974,89280,89281],{},"anti-butterfly effect",", what was lost is recovered from the deeply entangled correlations that still bind the field together. The information was never in that one butterfly alone.",[12,89284,89285,89286,114],{},"Xinyi builds at the seam between physics and feeling, and frames the piece through the Native Hawaiian concept of ",[9404,89287,89288],{},"lōkahi",[79791,89290,89291],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,89292,81271],{},[25,89294,89296],{"id":89295},"it-started-with-a-painting","It started with a painting",[12,89298,89299],{},"The circuit came later. The concept arrived in 2024, on a canvas, while Xinyi was living in Oʻahu, Hawaiʻi.",[79791,89301,89302],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,89303,89304],{},"Painting is a meditative process in which I let my intuition for vibrations of color, light, and shape guide me through the emergence of forms rather than something pre-planned. This particular painting lived in a state of pure abstraction for a long time before I suddenly began to perceive butterfly-like forms all across the canvas.",[2175,89306],{"caption":89307,"no":79839,"alt":89308,"src":89309},"LomiLomi (Quantum Butterfly Field), 2024, acrylic on canvas, 43 × 31 in. The painting where the project began, made while living in Oʻahu: butterfly forms emerged from layers of entangled, ribbon-like strands.","Xinyi Zhang's abstract painting LomiLomi: pastel butterfly-like forms blended into layers of ribbon-like entangled strands","\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Forigin-painting.webp",[12,89311,89312],{},"The butterflies she found were blended into layers of ribbon-like, entangled strands, their colors shifting rather than settling into any single pure color, \"almost superpositional,\" as she puts it. One even resembled a Lorenz butterfly she recognized immediately from classical chaos theory.",[2175,89314],{"caption":89315,"no":79857,"alt":89316,"src":89317},"A detail of the canvas: one of the butterfly forms resolving out of the swirls.","Detail of the painting: a butterfly-like form resolving out of soft pastel swirls","\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Forigin-painting-detail.webp",[12,89319,89320],{},"At the time she was also deep in the cultural practices of the Kānaka Maoli, including lōkahi and the healing practice of lomilomi. She was approaching the canvas the same way: restoring harmony from something initially chaotic through the act of making.",[79791,89322,89323],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,89324,89325],{},"When I came across an article in Scientific American on the quantum no-butterfly effect, everything suddenly clicked and came together, and the concept for the project was born.",[25,89327,89329],{"id":89328},"the-anti-butterfly-effect","The anti-butterfly effect",[12,89331,89332,89333,89337],{},"The piece is built on a counterintuitive result from quantum information theory, the paper ",[19,89334,89336],{"href":89335},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2003.07267","Recovery of Damaged Information and the Out-of-Time-Ordered Correlators"," (Yan & Sinitsyn, 2020). In a classical chaotic system, small damage cascades into large changes: a butterfly flaps its wings and a tornado follows. In a quantum system, this is not the case.",[12,89339,89340],{},"Once information has been scrambled deeply enough across an entangled system, a local disturbance cannot destroy it. The information no longer lives in any single qubit, but in the correlations between all of them. By winding the scrambling circuit backward, the damaged qubit's original state is recovered almost completely, marked only by a small residual trace. The effect is known as the anti-butterfly effect, or the quantum no-butterfly effect: at the quantum scale, reality is self-healing.",[79791,89342,89343],{"avatar":81267,"name":6802,"role":81365,"username":6804},[12,89344,81368],{},[12,89346,89347],{},"That question is the whole brief. The artwork does not explain the physics so much as stage it, turning an abstract theorem about scrambling and recovery into something you watch happen to a field of living things.",[25,89349,89351],{"id":89350},"five-butterflies-one-field","Five butterflies, one field",[12,89353,89354],{},"Underneath the animation is a real five-qubit scrambling circuit, and the metaphor maps onto it exactly. Each butterfly is a qubit. When the butterflies dance together, the gates entangle them, and each one's state is spread across the whole field like a memory held in relationship rather than in any single place.",[12,89356,89357],{},"The protocol runs in four phases, and on Qollab the circuit runs on hardware exactly as written:",[2175,89359],{"caption":89360,"no":83547,"poster":6638,"video":6639},"The five-butterfly field dancing through a scrambling circuit, entangling as the protocol runs. Press play, sound on.",[519,89362,89363],{"name":6663,"run-href":6664,"tag":522},[524,89364,89366],{"className":526,"code":89365,"language":528,"meta":79866,"style":529},"# 'backend' is pre-created from the \"Select QPU\" dropdown below.\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.providers.jobstatus import JobStatus\nimport numpy as np, time\n\nN_QUBITS, N_LAYERS, SHOTS = 5, 3, 1000   # five butterflies, three scrambling layers\n\ndef scramble(n, n_layers, seed):\n    # A reproducible random unitary U — a \"fast scrambler\".\n    rng = np.random.default_rng(seed); layers = []\n    for _ in range(n_layers):\n        layer  = [('rx', float(rng.uniform(0, 2*np.pi)), q) for q in range(n)]\n        layer += [('rz', float(rng.uniform(0, 2*np.pi)), q) for q in range(n)]\n        qubits = list(range(n)); rng.shuffle(qubits)        # random all-to-all pairs\n        layer += [('cx', qubits[i], qubits[i+1]) for i in range(0, n-1, 2)]\n        layers.append(layer)\n    return layers\n\ndef build(damaged, seed):\n    layers  = scramble(N_QUBITS, N_LAYERS, seed)\n    ancilla = N_QUBITS\n    qc = QuantumCircuit(N_QUBITS + 1, N_QUBITS)\n\n    for q in range(N_QUBITS):                  # 1. INIT\n        if q != damaged: qc.h(q)\n\n    apply_gates(qc, layers)                    # 2. SCRAMBLE: identities dissolve into one field\n\n    qc.h(ancilla); qc.cx(ancilla, damaged)    # 3. DAMAGE\n\n    apply_inverse_gates(qc, layers)            # 4. HEAL: run the scramble backward (U†)\n\n    qc.measure(range(N_QUBITS), range(N_QUBITS))\n    return qc\n\nqc  = transpile(build(damaged=2, seed=42), backend, optimization_level=1)\njob = backend.run(qc, shots=SHOTS)\nwhile job.status() is not JobStatus.DONE:\n    time.sleep(5)\ncounts = job.result().get_counts()   # tomography in Z, X, Y -> fidelity of the healed butterfly\n",[57,89367,89368,89372,89382,89392,89402,89406,89433,89437,89459,89464,89482,89495,89541,89583,89607,89651,89661,89668,89672,89690,89710,89720,89742,89746,89766,89792,89796,89817,89821,89848,89852,89877,89881,89905,89911,89915,89956,89983,90003,90015],{"__ignoreMap":529},[533,89369,89370],{"class":535,"line":536},[533,89371,87027],{"class":593},[533,89373,89374,89376,89378,89380],{"class":535,"line":547},[533,89375,877],{"class":539},[533,89377,880],{"class":543},[533,89379,883],{"class":539},[533,89381,84493],{"class":543},[533,89383,89384,89386,89388,89390],{"class":535,"line":575},[533,89385,877],{"class":539},[533,89387,80614],{"class":543},[533,89389,883],{"class":539},[533,89391,80619],{"class":543},[533,89393,89394,89396,89398,89400],{"class":535,"line":590},[533,89395,883],{"class":539},[533,89397,11128],{"class":543},[533,89399,584],{"class":539},[533,89401,87058],{"class":543},[533,89403,89404],{"class":535,"line":597},[533,89405,891],{"emptyLinePlaceholder":790},[533,89407,89408,89410,89412,89414,89416,89418,89420,89422,89424,89426,89428,89430],{"class":535,"line":603},[533,89409,83773],{"class":625},[533,89411,1133],{"class":543},[533,89413,83783],{"class":625},[533,89415,1133],{"class":543},[533,89417,80654],{"class":625},[533,89419,4899],{"class":553},[533,89421,17784],{"class":625},[533,89423,1133],{"class":543},[533,89425,1157],{"class":625},[533,89427,1133],{"class":543},[533,89429,1240],{"class":625},[533,89431,89432],{"class":593},"   # five butterflies, three scrambling layers\n",[533,89434,89435],{"class":535,"line":609},[533,89436,891],{"emptyLinePlaceholder":790},[533,89438,89439,89441,89444,89446,89448,89450,89453,89455,89457],{"class":535,"line":640},[533,89440,1754],{"class":539},[533,89442,89443],{"class":560}," scramble",[533,89445,615],{"class":543},[533,89447,30647],{"class":1762},[533,89449,1133],{"class":543},[533,89451,89452],{"class":1762},"n_layers",[533,89454,1133],{"class":543},[533,89456,3833],{"class":1762},[533,89458,1771],{"class":543},[533,89460,89461],{"class":535,"line":646},[533,89462,89463],{"class":593},"    # A reproducible random unitary U — a \"fast scrambler\".\n",[533,89465,89466,89469,89471,89473,89475,89478,89480],{"class":535,"line":658},[533,89467,89468],{"class":543},"    rng ",[533,89470,554],{"class":553},[533,89472,2996],{"class":543},[533,89474,75913],{"class":560},[533,89476,89477],{"class":543},"(seed); layers ",[533,89479,554],{"class":553},[533,89481,42383],{"class":543},[533,89483,89484,89486,89488,89490,89492],{"class":535,"line":680},[533,89485,12659],{"class":539},[533,89487,83847],{"class":543},[533,89489,2786],{"class":539},[533,89491,2976],{"class":553},[533,89493,89494],{"class":543},"(n_layers):\n",[533,89496,89497,89500,89502,89504,89507,89509,89511,89514,89517,89519,89521,89523,89525,89527,89530,89532,89534,89536,89538],{"class":535,"line":1536},[533,89498,89499],{"class":543},"        layer  ",[533,89501,554],{"class":553},[533,89503,87824],{"class":543},[533,89505,89506],{"class":621},"'rx'",[533,89508,1133],{"class":543},[533,89510,11186],{"class":553},[533,89512,89513],{"class":543},"(rng.",[533,89515,89516],{"class":560},"uniform",[533,89518,615],{"class":543},[533,89520,1049],{"class":625},[533,89522,1133],{"class":543},[533,89524,1140],{"class":625},[533,89526,2469],{"class":553},[533,89528,89529],{"class":543},"np.pi)), q) ",[533,89531,3180],{"class":539},[533,89533,83816],{"class":543},[533,89535,2786],{"class":539},[533,89537,2976],{"class":553},[533,89539,89540],{"class":543},"(n)]\n",[533,89542,89543,89546,89548,89550,89553,89555,89557,89559,89561,89563,89565,89567,89569,89571,89573,89575,89577,89579,89581],{"class":535,"line":1552},[533,89544,89545],{"class":543},"        layer ",[533,89547,2843],{"class":553},[533,89549,87824],{"class":543},[533,89551,89552],{"class":621},"'rz'",[533,89554,1133],{"class":543},[533,89556,11186],{"class":553},[533,89558,89513],{"class":543},[533,89560,89516],{"class":560},[533,89562,615],{"class":543},[533,89564,1049],{"class":625},[533,89566,1133],{"class":543},[533,89568,1140],{"class":625},[533,89570,2469],{"class":553},[533,89572,89529],{"class":543},[533,89574,3180],{"class":539},[533,89576,83816],{"class":543},[533,89578,2786],{"class":539},[533,89580,2976],{"class":553},[533,89582,89540],{"class":543},[533,89584,89585,89588,89590,89592,89594,89596,89599,89601,89604],{"class":535,"line":1911},[533,89586,89587],{"class":543},"        qubits ",[533,89589,554],{"class":553},[533,89591,2891],{"class":553},[533,89593,615],{"class":543},[533,89595,6692],{"class":553},[533,89597,89598],{"class":543},"(n)); rng.",[533,89600,6705],{"class":560},[533,89602,89603],{"class":543},"(qubits)        ",[533,89605,89606],{"class":593},"# random all-to-all pairs\n",[533,89608,89609,89611,89613,89615,89617,89620,89622,89624,89626,89628,89630,89632,89634,89636,89638,89641,89643,89645,89647,89649],{"class":535,"line":1940},[533,89610,89545],{"class":543},[533,89612,2843],{"class":553},[533,89614,87824],{"class":543},[533,89616,6751],{"class":621},[533,89618,89619],{"class":543},", qubits[i], qubits[i",[533,89621,6350],{"class":553},[533,89623,1052],{"class":625},[533,89625,39925],{"class":543},[533,89627,3180],{"class":539},[533,89629,2971],{"class":543},[533,89631,2786],{"class":539},[533,89633,2976],{"class":553},[533,89635,615],{"class":543},[533,89637,1049],{"class":625},[533,89639,89640],{"class":543},", n",[533,89642,2514],{"class":553},[533,89644,1052],{"class":625},[533,89646,1133],{"class":543},[533,89648,1140],{"class":625},[533,89650,19758],{"class":543},[533,89652,89653,89656,89658],{"class":535,"line":1968},[533,89654,89655],{"class":543},"        layers.",[533,89657,6216],{"class":560},[533,89659,89660],{"class":543},"(layer)\n",[533,89662,89663,89665],{"class":535,"line":1995},[533,89664,1880],{"class":539},[533,89666,89667],{"class":543}," layers\n",[533,89669,89670],{"class":535,"line":4164},[533,89671,891],{"emptyLinePlaceholder":790},[533,89673,89674,89676,89679,89681,89684,89686,89688],{"class":535,"line":4199},[533,89675,1754],{"class":539},[533,89677,89678],{"class":560}," build",[533,89680,615],{"class":543},[533,89682,89683],{"class":1762},"damaged",[533,89685,1133],{"class":543},[533,89687,3833],{"class":1762},[533,89689,1771],{"class":543},[533,89691,89692,89695,89697,89699,89701,89703,89705,89707],{"class":535,"line":4206},[533,89693,89694],{"class":543},"    layers  ",[533,89696,554],{"class":553},[533,89698,89443],{"class":560},[533,89700,615],{"class":543},[533,89702,83773],{"class":625},[533,89704,1133],{"class":543},[533,89706,83783],{"class":625},[533,89708,89709],{"class":543},", seed)\n",[533,89711,89712,89715,89717],{"class":535,"line":4214},[533,89713,89714],{"class":543},"    ancilla ",[533,89716,554],{"class":553},[533,89718,89719],{"class":625}," N_QUBITS\n",[533,89721,89722,89724,89726,89728,89730,89732,89734,89736,89738,89740],{"class":535,"line":11296},[533,89723,1778],{"class":543},[533,89725,554],{"class":553},[533,89727,1126],{"class":560},[533,89729,615],{"class":543},[533,89731,83773],{"class":625},[533,89733,14257],{"class":553},[533,89735,6353],{"class":625},[533,89737,1133],{"class":543},[533,89739,83773],{"class":625},[533,89741,637],{"class":543},[533,89743,89744],{"class":535,"line":11302},[533,89745,891],{"emptyLinePlaceholder":790},[533,89747,89748,89750,89752,89754,89756,89758,89760,89763],{"class":535,"line":11332},[533,89749,12659],{"class":539},[533,89751,83816],{"class":543},[533,89753,2786],{"class":539},[533,89755,2976],{"class":553},[533,89757,615],{"class":543},[533,89759,83773],{"class":625},[533,89761,89762],{"class":543},"):                  ",[533,89764,89765],{"class":593},"# 1. INIT\n",[533,89767,89768,89770,89772,89774,89777,89779,89782,89790],{"class":535,"line":11345},[533,89769,2762],{"class":539},[533,89771,83816],{"class":543},[533,89773,79988],{"class":553},[533,89775,89776],{"class":543}," damaged: qc.",[533,89778,1148],{"class":560},[533,89780,89781],{"class":543},"(q)",[533,89783,80059,89784],{"class":80057,"tabindex":80058},[533,89785,89786,89789],{"class":80062,"role":80063},[974,89787,89788],{},"Init."," Every butterfly starts in superposition except the one to be damaged, which begins in a definite state so its recovery can be measured.",[533,89791,1113],{},[533,89793,89794],{"class":535,"line":11372},[533,89795,891],{"emptyLinePlaceholder":790},[533,89797,89798,89801,89804,89807,89815],{"class":535,"line":11385},[533,89799,89800],{"class":560},"    apply_gates",[533,89802,89803],{"class":543},"(qc, layers)                    ",[533,89805,89806],{"class":593},"# 2. SCRAMBLE: identities dissolve into one field",[533,89808,80059,89809],{"class":80057,"tabindex":80058},[533,89810,89811,89814],{"class":80062,"role":80063},[974,89812,89813],{},"Scramble."," The unitary U mixes random Rx + Rz rotations with random all-to-all CX pairs: a fast scrambler that spreads each butterfly across the whole field in O(log n) layers.",[533,89816,1113],{},[533,89818,89819],{"class":535,"line":11390},[533,89820,891],{"emptyLinePlaceholder":790},[533,89822,89823,89825,89827,89830,89832,89835,89838,89846],{"class":535,"line":11402},[533,89824,1799],{"class":543},[533,89826,1148],{"class":560},[533,89828,89829],{"class":543},"(ancilla); qc.",[533,89831,4936],{"class":560},[533,89833,89834],{"class":543},"(ancilla, damaged)    ",[533,89836,89837],{"class":593},"# 3. DAMAGE",[533,89839,80059,89840],{"class":80057,"tabindex":80058},[533,89841,89842,89845],{"class":80062,"role":80063},[974,89843,89844],{},"Damage."," An ancilla in |+⟩ entangles with the damaged butterfly and is then discarded, severing its correlations with the field. That is the rupture.",[533,89847,1113],{},[533,89849,89850],{"class":535,"line":11407},[533,89851,891],{"emptyLinePlaceholder":790},[533,89853,89854,89857,89860,89863,89875],{"class":535,"line":11412},[533,89855,89856],{"class":560},"    apply_inverse_gates",[533,89858,89859],{"class":543},"(qc, layers)            ",[533,89861,89862],{"class":593},"# 4. HEAL: run the scramble backward (U†)",[533,89864,80059,89865],{"class":80057,"tabindex":80058},[533,89866,89867,89870,89871,89874],{"class":80062,"role":80063},[974,89868,89869],{},"Heal."," Healing runs the exact scramble backward: reversed order, negated angles. Because the information now lives in the correlations, ",[57,89872,89873],{},"U†"," gathers it back.",[533,89876,1113],{},[533,89878,89879],{"class":535,"line":11418},[533,89880,891],{"emptyLinePlaceholder":790},[533,89882,89883,89885,89887,89889,89891,89893,89895,89897,89899,89901,89903],{"class":535,"line":11423},[533,89884,1799],{"class":543},[533,89886,1164],{"class":560},[533,89888,615],{"class":543},[533,89890,6692],{"class":553},[533,89892,615],{"class":543},[533,89894,83773],{"class":625},[533,89896,3945],{"class":543},[533,89898,6692],{"class":553},[533,89900,615],{"class":543},[533,89902,83773],{"class":625},[533,89904,1937],{"class":543},[533,89906,89907,89909],{"class":535,"line":11467},[533,89908,1880],{"class":539},[533,89910,80334],{"class":543},[533,89912,89913],{"class":535,"line":11473},[533,89914,891],{"emptyLinePlaceholder":790},[533,89916,89917,89920,89922,89924,89926,89929,89931,89933,89935,89937,89939,89941,89943,89945,89948,89950,89952,89954],{"class":535,"line":11488},[533,89918,89919],{"class":543},"qc  ",[533,89921,554],{"class":553},[533,89923,901],{"class":560},[533,89925,615],{"class":543},[533,89927,89928],{"class":560},"build",[533,89930,615],{"class":543},[533,89932,89683],{"class":567},[533,89934,554],{"class":553},[533,89936,1140],{"class":625},[533,89938,1133],{"class":543},[533,89940,3833],{"class":567},[533,89942,554],{"class":553},[533,89944,42351],{"class":625},[533,89946,89947],{"class":543},"), backend, ",[533,89949,3955],{"class":567},[533,89951,554],{"class":553},[533,89953,1052],{"class":625},[533,89955,637],{"class":543},[533,89957,89958,89960,89962,89964,89966,89968,89970,89972,89974,89976,89981],{"class":535,"line":11505},[533,89959,4513],{"class":543},[533,89961,554],{"class":553},[533,89963,557],{"class":543},[533,89965,561],{"class":560},[533,89967,904],{"class":543},[533,89969,269],{"class":567},[533,89971,554],{"class":553},[533,89973,80654],{"class":625},[533,89975,2632],{"class":543},[533,89977,80059,89978],{"class":80057,"tabindex":80058},[533,89979,89980],{"class":80062,"role":80063},"Submits to IonQ Forte through Qollab. The recovered state's fidelity (0.5 = lost, 1.0 = fully healed) drives the damaged butterfly's luminosity in the artwork.",[533,89982,1113],{},[533,89984,89985,89987,89989,89991,89993,89995,89997,89999,90001],{"class":535,"line":11518},[533,89986,87350],{"class":539},[533,89988,5414],{"class":543},[533,89990,80910],{"class":560},[533,89992,16535],{"class":543},[533,89994,3900],{"class":539},[533,89996,3903],{"class":539},[533,89998,80919],{"class":543},[533,90000,80922],{"class":625},[533,90002,544],{"class":543},[533,90004,90005,90007,90009,90011,90013],{"class":535,"line":11523},[533,90006,87371],{"class":543},[533,90008,80932],{"class":560},[533,90010,615],{"class":543},[533,90012,1220],{"class":625},[533,90014,637],{"class":543},[533,90016,90017,90019,90021,90023,90025,90027,90029,90032],{"class":535,"line":11555},[533,90018,5409],{"class":543},[533,90020,554],{"class":553},[533,90022,5414],{"class":543},[533,90024,1208],{"class":560},[533,90026,1211],{"class":543},[533,90028,1214],{"class":560},[533,90030,90031],{"class":543},"()   ",[533,90033,90034],{"class":593},"# tomography in Z, X, Y -> fidelity of the healed butterfly\n",[12,90036,90037],{},"With five qubits and three layers of random all-to-all gates, the field scrambles fast: deeply enough that no single butterfly holds its own state anymore. The damage step entangles a throwaway ancilla with one butterfly and discards it, cutting that butterfly off from the field. Then the healing step replays the whole scramble in reverse, and the lost state reassembles from the correlations the others were still holding.",[81936,90039,90041],{"lead":90040},"Quantum Butterfly Field is open source and MIT-licensed, built to be forked and rerun.",[30,90042,90043,90051],{},[33,90044,90045],{},[36,90046,90047,90049],{},[39,90048,81947],{},[39,90050,81950],{},[49,90052,90053,90060,90068,90076],{},[36,90054,90055,90057],{},[54,90056,87545],{},[54,90058,90059],{},"Three.js, custom pipeline, shaders, and flow fields, with a React overlay.",[36,90061,90062,90065],{},[54,90063,90064],{},"Motion",[54,90066,90067],{},"Chaotic attractors and flow fields driving the butterfly movement.",[36,90069,90070,90073],{},[54,90071,90072],{},"Quantum simulation",[54,90074,90075],{},"Python serverless (Vercel) running a Qiskit statevector simulation.",[36,90077,90078,90081],{},[54,90079,90080],{},"Quantum hardware",[54,90082,90083],{},"IonQ Forte via qiskit-ionq, replayed from a recorded-run library.",[25,90085,90087],{"id":90086},"physics-you-feel-not-read","Physics you feel, not read",[12,90089,90090],{},"Each visual property is computed from the circuit as it runs, layer by layer. No numbers ever appear on screen.",[753,90092,90093,90099,90105],{},[756,90094,90095,90098],{},[974,90096,90097],{},"Purity"," drives form: how sharp or translucent each butterfly's wings are, a read on how defined that qubit still is.",[756,90100,90101,90104],{},[974,90102,90103],{},"Quantum mutual information"," drives color mixing and the threads drawn between butterflies, showing what each shares with the others.",[756,90106,90107,90110],{},[974,90108,90109],{},"Fidelity"," drives the luminosity of the damaged butterfly, showing how much of it has returned.",[79791,90112,90113],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,90114,90115],{},"The one rule I held onto throughout was that every visual parameter had to be driven by a real quantum value, nothing decorative, nothing faked. The wing opacity really is the purity, the threads really are the mutual information between the qubit pairs. When something didn't look right, the solution was not to invent a prettier number, but to find a better mapping. The beauty had to be grounded in the physics.",[12,90117,90118],{},"And the data comes from two tracks at once.",[753,90120,90121,90128],{},[756,90122,90123,90124,90127],{},"A ",[974,90125,90126],{},"simulator track"," runs live on every visit: an exact statevector simulation of the full protocol executes on demand in a serverless function, returning per-layer purities, pairwise entanglement, and exact fidelities that drive the animation in real time.",[756,90129,90123,90130,90133],{},[974,90131,90132],{},"hardware track"," is recorded: the damage-and-healing fidelities come from real runs on IonQ Forte, captured offline and replayed from a library, so each visit draws a different recorded run and the healed butterfly's final resting state is anchored in what actually happened on the trapped-ion processor.",[79791,90135,90136],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,90137,90138],{},"It was important for me to get real fidelity values on the quantum hardware, the hardware is where the theory meets reality. I feel that concepts from quantum physics can become mystical in a hand-wavy way to people, particularly in artistic formats. It's true that many aspects of the theory are deeply counterintuitive, but what I love about computation is that it grounds everything neatly and concretely in reality. If entanglement or non-locality didn't exist, the algorithms wouldn't work, and the healing wouldn't actually happen!",[25,90140,90142],{"id":90141},"a-relational-world","A relational world",[12,90144,90145,90146,90149],{},"The default experience is a storyboard in nine beats, an arc from individual identity and interaction through scrambling, rupture, and restoration. The script draws on Federico Faggin's ",[9404,90147,90148],{},"Irreducible"," and resolves into Carlo Rovelli's relational interpretation of quantum mechanics, in which things do not have properties on their own but only in relation to one another.",[79791,90151,90152],{"avatar":529,"name":81152,"role":81153,"username":529},[12,90153,81156],{},[12,90155,90156],{},"That is the throughline that makes the physics feel like more than a demo. The anti-butterfly effect says a part can be lost and still recovered, because it was never only itself. The lōkahi framing says the same thing about people and the relationships they live inside. The circuit is the proof; the butterflies are how you feel it.",[79791,90158,90159],{"avatar":81267,"name":6802,"role":81268,"username":6804},[12,90160,90161],{},"I think back to Pono Shim's words, that \"we all enter this universe connected.\" That nothing is ever truly lost. That no matter what it may seem like, we can never fully be disconnected from anything.",[25,90163,80373],{"id":4321},[12,90165,90166],{},"The scrambling circuit is open and forkable on Qollab, the full artwork is MIT-licensed on GitHub, and you can experience the live piece in your browser right now. Change the number of butterflies, the scrambling depth, or which one gets damaged, and rerun it on real hardware.",[4321,90168,90171],{"fork-href":6664,"live-href":90169,"title":90170},"https:\u002F\u002Fquantumbutterflyfield.xyz","Scramble a field, break it, and heal it.",[12,90172,90173,90174],{},"Fork the Quantum Butterfly Field circuit, tune the scrambling, and run the self-healing protocol on real hardware. ",[974,90175,4329],{},[773,90177,85218],{},{"title":529,"searchDepth":547,"depth":547,"links":90179},[90180,90181,90182,90183,90184,90185],{"id":89295,"depth":547,"text":89296},{"id":89328,"depth":547,"text":89329},{"id":89350,"depth":547,"text":89351},{"id":90086,"depth":547,"text":90087},{"id":90141,"depth":547,"text":90142},{"id":4321,"depth":547,"text":80373},[4349,4637,6805],[90188],{"username":6804,"name":6802,"role":90189,"avatar":81267,"bio":90190,"links":90191},"Artist, developer & designer","Xinyi is a multidisciplinary artist and technologist exploring the intersections of nature, spirituality, and computational media. She holds computer-science degrees from MIT and the University of British Columbia, has developed technology for Disney, Pixar, and Google, and won a Best Paper Award at SIGGRAPH MIG for research on generative AI for animation. Her artwork has been exhibited internationally, including at V2_ Lab for the Unstable Media (Rotterdam), Dutch Design Week, the Xarkis Festival, Plexus Projects (New York), and Soft Times Gallery (San Francisco).",[90192,90194,90196,90197,90200],{"label":4360,"href":90193},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fxinyi",{"label":86549,"href":90195},"https:\u002F\u002Fwww.artofxinyi.com\u002Fpagecv",{"label":80403,"href":86681},{"label":90198,"href":90199},"X ↗","https:\u002F\u002Fx.com\u002Fartofxinyiz",{"label":4363,"href":90201},"https:\u002F\u002Fgithub.com\u002Fxinyiz\u002Fqbf",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Xinyi Zhang built an interactive artwork where five butterflies are five qubits. The circuit scrambles their identities into one entangled field, one is damaged, and the quantum anti-butterfly effect heals it.","An interactive artwork where five butterflies are five qubits: scrambled into one entangled field, one is damaged, and the quantum anti-butterfly effect heals it. A Qollab Spring 2026 project.",{"href":6664,"label":90206},"Fork the circuit",{"image":6638,"alt":90208,"liveUrl":90169},"Quantum Butterfly Field: five butterflies as five qubits in an entangled field",{},"\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Fhero.jpg","\u002Fblog\u002Fquantum-butterfly-field","2026-04-28",[],[90215,90216,90217],{"username":3311,"project":85862,"title":516,"category":80434,"thumb":3107,"to":81376},{"username":81683,"project":87637,"title":81571,"category":81128,"thumb":87638,"to":81675},{"username":5829,"project":83634,"title":5830,"category":82368,"thumb":5831,"to":81884},{"title":90219,"description":90220},"Quantum Creative Project Showcase: Quantum Butterfly Field","Five butterflies, five qubits. Scrambled into one entangled field, damaged, and healed by the quantum anti-butterfly effect on IonQ.","blog\u002Fquantum-butterfly-field",[80451,4383,16806],"_WLhj65JDc_hzrP7Nxsn5_vQbPCw1OizNy6twVyL1C0",{"id":90225,"title":90226,"authors":90227,"body":90228,"breadcrumb":91083,"builders":91084,"byline":91093,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":91094,"description":91095,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":91096,"hero":91098,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":91100,"navigation":790,"newsItems":7,"next":7,"ogImage":91101,"order":7,"outcomes":7,"path":91102,"publishDate":91103,"readingTime":88449,"related":91104,"relatedProjects":91105,"seo":91109,"stem":91112,"tags":91113,"track":7,"trackName":7,"__hash__":91114},"blog\u002Fblog\u002Fquantum-systemic-oracle.md","Project Showcase: Quantum Systemic Oracle",[82234],{"type":9,"value":90229,"toc":91075},[90230,90233,90240,90245,90249,90252,90257,90260,90264,90267,90272,90275,90295,90298,90302,90309,90313,90316,90319,90974,90977,90980,91026,91030,91033,91038,91041,91043,91046,91051,91054,91056,91059,91064,91073],[12,90231,90232],{},"The Quantum Systemic Oracle takes a quantum computation and turns it into something a smart contract can read: a single daily number for how stressed the financial system looks, published on-chain for anyone to consume.",[12,90234,90235,90236,90239],{},"Its framing, in the project's own words, is ",[9404,90237,90238],{},"quantum compute as an on-chain primitive",". A portfolio-optimization circuit runs on IonQ, its result is distilled into a systemic risk index in basis points, and that index is pushed to a Chainlink-shaped oracle that other contracts can call like any other price feed.",[79791,90241,90242],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,90243,90244],{},"I came from technology and data governance. I became interested in quantum having long followed tech trends, including using GPUs to speed up data queries, and I believe we'll see similar advancements with quantum technology.",[25,90246,90248],{"id":90247},"from-data-governance-to-a-qpu","From data governance to a QPU",[12,90250,90251],{},"Jamie has spent his career close to large financial data, the reference tables and integrations that keep a bank's systems agreeing with each other. Quantum was a trend he watched from that vantage point, in the same way he had watched GPUs go from a graphics curiosity to the backbone of fast data queries. The challenge was the first time he ran his own jobs rather than reading about other people's.",[79791,90253,90254],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,90255,90256],{},"This was my first QPU job and Qiskit run. I learned it's much easier to get started now than ever before.",[12,90258,90259],{},"That starting point shapes the whole project. It is not a research-grade quantum-finance paper, and it does not pretend to be. It is a working end-to-end pipeline built by someone who knows financial systems deeply and treated the quantum step as one component to wire in, not a mountain to summit first.",[25,90261,90263],{"id":90262},"a-risk-score-as-a-primitive","A risk score as a primitive",[12,90265,90266],{},"The core idea is to make a quantum computation legible to the rest of the software world. A lot of quantum results live in notebooks, Jamie wanted his to live somewhere other programs could act on it automatically, so he published it where automated systems already read their inputs: on-chain.",[79791,90268,90269],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,90270,90271],{},"The idea of a quantum risk score being on-chain came from thinking about how quantum compute could be leveraged in a wider ecosystem. Blockchain makes sense as a way to potentially contribute to agentic smart contracts in the future, blending quantum, AI, and blockchain.",[12,90273,90274],{},"Concretely, the system is three layers stacked end to end:",[753,90276,90277,90283,90289],{},[756,90278,90279,90282],{},[974,90280,90281],{},"A Python engine"," pulls live market signals, prediction-market odds, funding rates, volatility, and fear indices, and turns them into the inputs for an optimization problem.",[756,90284,90285,90288],{},[974,90286,90287],{},"A quantum step"," runs that optimization on IonQ and blends the result with eight market signals into a single systemic risk index, scaled in basis points from 0 to 10,000.",[756,90290,90291,90294],{},[974,90292,90293],{},"An on-chain oracle"," publishes the index to Ethereum through a Chainlink-shaped AggregatorV3 interface, so any contract can read it with the same call it would use for a price feed.",[12,90296,90297],{},"Once it is on-chain, the score stops being a chart and becomes a building block. A lending protocol could widen collateral ratios when the index spikes, a vault could trigger deleveraging, a prediction market could resolve against it. That is what Jamie means by a primitive: not a dashboard people look at, but a number other code is built on.",[25,90299,90301],{"id":90300},"inside-the-circuit","Inside the circuit",[12,90303,90304,90305,90308],{},"The quantum step is a ",[974,90306,90307],{},"QAOA"," portfolio optimization, the same family of algorithm you would reach for to pick a basket of assets under competing constraints.",[79791,90310,90311],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,90312,82237],{},[12,90314,90315],{},"The circuit encodes eight candidate assets as eight decision qubits, plus six more that carry the global market state, the regime, volatility stress, DeFi stress, and stablecoin dominance.",[12,90317,90318],{},"A neat piece of engineering keeps it lean: those market witnesses fold into single-qubit rotations rather than expensive two-qubit gates, so the circuit grows by exactly one qubit per asset, not per signal. On Qollab, the circuit-side preview runs on hardware exactly as written:",[519,90320,90323],{"name":90321,"run-href":90322,"tag":522},"Qollab.py","\u002Fu\u002Fjamie\u002Fsystemic-oracle",[524,90324,90326],{"className":526,"code":90325,"language":528,"meta":79866,"style":529},"# The quantum step of a daily on-chain crypto risk oracle.\n# 'backend' is pre-created from the \"Select QPU\" dropdown below.\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.providers.jobstatus import JobStatus\nimport time\n\nN_ASSETS, N_WITNESS, SHOTS = 8, 6, 1000\n\ndef apply_cost_layer(qc, gamma, h, J_pairs, n):\n    # ZZ couplings = the portfolio cost Hamiltonian\n    for i in range(n):\n        qc.rz(2.0 * gamma * h[i], i)\n    for p in J_pairs:\n        qc.cx(p[\"i\"], p[\"j\"])\n        qc.rz(2.0 * gamma * p[\"value\"], p[\"j\"])\n        qc.cx(p[\"i\"], p[\"j\"])\n\ndef build_circuit(gammas, betas, h, J_pairs, snapshot):\n    n, n_total = N_ASSETS, N_ASSETS + N_WITNESS   # 8 assets + 6 witnesses\n    qc = QuantumCircuit(n_total, n_total)\n    for i in range(n):\n        qc.h(i)\n\n    stressed = snapshot[\"regime\"][\"regime\"] == \"risk_off\"\n    def fold(theta, p):                       # witness -> asset soft bias\n        for i in range(n):\n            qc.ry(theta * (1.0 - 2.0 * p) \u002F 2.0, i)\n    fold(-0.10, 1.0 if stressed else 0.0)\n\n    for layer in range(len(gammas)):\n        apply_cost_layer(qc, gammas[layer], h, J_pairs, n)\n        for i in range(n):\n            qc.rx(2.0 * betas[layer], i)\n    qc.measure(range(n_total), range(n_total))\n    return qc\n\nqc = build_circuit(gammas, betas, ising_h, ising_J_pairs, SNAPSHOT)\njob = backend.run(transpile(qc, backend), shots=SHOTS)\nwhile job.status() is not JobStatus.DONE:\n    time.sleep(2)\ncounts = job.result().get_counts()   # sampled portfolios -> risk score (BPS)\n",[57,90327,90328,90333,90337,90347,90357,90363,90367,90394,90398,90429,90434,90446,90466,90477,90497,90535,90551,90555,90586,90608,90619,90631,90649,90653,90677,90699,90711,90742,90776,90780,90798,90806,90818,90842,90860,90866,90870,90886,90923,90943,90955],{"__ignoreMap":529},[533,90329,90330],{"class":535,"line":536},[533,90331,90332],{"class":593},"# The quantum step of a daily on-chain crypto risk oracle.\n",[533,90334,90335],{"class":535,"line":547},[533,90336,87027],{"class":593},[533,90338,90339,90341,90343,90345],{"class":535,"line":575},[533,90340,877],{"class":539},[533,90342,880],{"class":543},[533,90344,883],{"class":539},[533,90346,84493],{"class":543},[533,90348,90349,90351,90353,90355],{"class":535,"line":590},[533,90350,877],{"class":539},[533,90352,80614],{"class":543},[533,90354,883],{"class":539},[533,90356,80619],{"class":543},[533,90358,90359,90361],{"class":535,"line":597},[533,90360,883],{"class":539},[533,90362,87791],{"class":543},[533,90364,90365],{"class":535,"line":603},[533,90366,891],{"emptyLinePlaceholder":790},[533,90368,90369,90372,90374,90377,90379,90381,90383,90385,90387,90389,90391],{"class":535,"line":609},[533,90370,90371],{"class":625},"N_ASSETS",[533,90373,1133],{"class":543},[533,90375,90376],{"class":625},"N_WITNESS",[533,90378,1133],{"class":543},[533,90380,80654],{"class":625},[533,90382,4899],{"class":553},[533,90384,71966],{"class":625},[533,90386,1133],{"class":543},[533,90388,1967],{"class":625},[533,90390,1133],{"class":543},[533,90392,90393],{"class":625},"1000\n",[533,90395,90396],{"class":535,"line":640},[533,90397,891],{"emptyLinePlaceholder":790},[533,90399,90400,90402,90405,90407,90410,90412,90414,90416,90418,90420,90423,90425,90427],{"class":535,"line":646},[533,90401,1754],{"class":539},[533,90403,90404],{"class":560}," apply_cost_layer",[533,90406,615],{"class":543},[533,90408,90409],{"class":1762},"qc",[533,90411,1133],{"class":543},[533,90413,87909],{"class":1762},[533,90415,1133],{"class":543},[533,90417,1148],{"class":1762},[533,90419,1133],{"class":543},[533,90421,90422],{"class":1762},"J_pairs",[533,90424,1133],{"class":543},[533,90426,30647],{"class":1762},[533,90428,1771],{"class":543},[533,90430,90431],{"class":535,"line":658},[533,90432,90433],{"class":593},"    # ZZ couplings = the portfolio cost Hamiltonian\n",[533,90435,90436,90438,90440,90442,90444],{"class":535,"line":680},[533,90437,12659],{"class":539},[533,90439,2971],{"class":543},[533,90441,2786],{"class":539},[533,90443,2976],{"class":553},[533,90445,83823],{"class":543},[533,90447,90448,90450,90452,90454,90456,90458,90461,90463],{"class":535,"line":1536},[533,90449,1824],{"class":543},[533,90451,87989],{"class":560},[533,90453,615],{"class":543},[533,90455,11726],{"class":625},[533,90457,2254],{"class":553},[533,90459,90460],{"class":543}," gamma ",[533,90462,2469],{"class":553},[533,90464,90465],{"class":543}," h[i], i)\n",[533,90467,90468,90470,90472,90474],{"class":535,"line":1552},[533,90469,12659],{"class":539},[533,90471,42483],{"class":543},[533,90473,2786],{"class":539},[533,90475,90476],{"class":543}," J_pairs:\n",[533,90478,90479,90481,90483,90486,90489,90492,90495],{"class":535,"line":1911},[533,90480,1824],{"class":543},[533,90482,4936],{"class":560},[533,90484,90485],{"class":543},"(p[",[533,90487,90488],{"class":621},"\"i\"",[533,90490,90491],{"class":543},"], p[",[533,90493,90494],{"class":621},"\"j\"",[533,90496,3272],{"class":543},[533,90498,90499,90501,90503,90505,90507,90509,90511,90513,90516,90519,90521,90523,90525,90533],{"class":535,"line":1940},[533,90500,1824],{"class":543},[533,90502,87989],{"class":560},[533,90504,615],{"class":543},[533,90506,11726],{"class":625},[533,90508,2254],{"class":553},[533,90510,90460],{"class":543},[533,90512,2469],{"class":553},[533,90514,90515],{"class":543}," p[",[533,90517,90518],{"class":621},"\"value\"",[533,90520,90491],{"class":543},[533,90522,90494],{"class":621},[533,90524,87263],{"class":543},[533,90526,80059,90527],{"class":80057,"tabindex":80058},[533,90528,90529,90532],{"class":80062,"role":80063},[974,90530,90531],{},"Cost layer."," Each ZZ coupling encodes a pairwise term of the portfolio Hamiltonian: Markowitz risk, funding crowding, and prediction-market sentiment.",[533,90534,1113],{},[533,90536,90537,90539,90541,90543,90545,90547,90549],{"class":535,"line":1968},[533,90538,1824],{"class":543},[533,90540,4936],{"class":560},[533,90542,90485],{"class":543},[533,90544,90488],{"class":621},[533,90546,90491],{"class":543},[533,90548,90494],{"class":621},[533,90550,3272],{"class":543},[533,90552,90553],{"class":535,"line":1995},[533,90554,891],{"emptyLinePlaceholder":790},[533,90556,90557,90559,90561,90563,90566,90568,90571,90573,90575,90577,90579,90581,90584],{"class":535,"line":4164},[533,90558,1754],{"class":539},[533,90560,80157],{"class":560},[533,90562,615],{"class":543},[533,90564,90565],{"class":1762},"gammas",[533,90567,1133],{"class":543},[533,90569,90570],{"class":1762},"betas",[533,90572,1133],{"class":543},[533,90574,1148],{"class":1762},[533,90576,1133],{"class":543},[533,90578,90422],{"class":1762},[533,90580,1133],{"class":543},[533,90582,90583],{"class":1762},"snapshot",[533,90585,1771],{"class":543},[533,90587,90588,90591,90593,90596,90598,90600,90602,90605],{"class":535,"line":4199},[533,90589,90590],{"class":543},"    n, n_total ",[533,90592,554],{"class":553},[533,90594,90595],{"class":625}," N_ASSETS",[533,90597,1133],{"class":543},[533,90599,90371],{"class":625},[533,90601,14257],{"class":553},[533,90603,90604],{"class":625}," N_WITNESS",[533,90606,90607],{"class":593},"   # 8 assets + 6 witnesses\n",[533,90609,90610,90612,90614,90616],{"class":535,"line":4206},[533,90611,1778],{"class":543},[533,90613,554],{"class":553},[533,90615,1126],{"class":560},[533,90617,90618],{"class":543},"(n_total, n_total)\n",[533,90620,90621,90623,90625,90627,90629],{"class":535,"line":4214},[533,90622,12659],{"class":539},[533,90624,2971],{"class":543},[533,90626,2786],{"class":539},[533,90628,2976],{"class":553},[533,90630,83823],{"class":543},[533,90632,90633,90635,90637,90640,90647],{"class":535,"line":11296},[533,90634,1824],{"class":543},[533,90636,1148],{"class":560},[533,90638,90639],{"class":543},"(i)",[533,90641,80059,90642],{"class":80057,"tabindex":80058},[533,90643,90644,90646],{"class":80062,"role":80063},[974,90645,80761],{}," A Hadamard on each asset qubit opens an even superposition over all 256 candidate portfolios: QAOA's starting point.",[533,90648,1113],{},[533,90650,90651],{"class":535,"line":11302},[533,90652,891],{"emptyLinePlaceholder":790},[533,90654,90655,90658,90660,90663,90666,90668,90670,90672,90674],{"class":535,"line":11332},[533,90656,90657],{"class":543},"    stressed ",[533,90659,554],{"class":553},[533,90661,90662],{"class":543}," snapshot[",[533,90664,90665],{"class":621},"\"regime\"",[533,90667,2682],{"class":543},[533,90669,90665],{"class":621},[533,90671,11314],{"class":543},[533,90673,2768],{"class":553},[533,90675,90676],{"class":621}," \"risk_off\"\n",[533,90678,90679,90681,90684,90686,90689,90691,90693,90696],{"class":535,"line":11345},[533,90680,41897],{"class":539},[533,90682,90683],{"class":560}," fold",[533,90685,615],{"class":543},[533,90687,90688],{"class":1762},"theta",[533,90690,1133],{"class":543},[533,90692,12],{"class":1762},[533,90694,90695],{"class":543},"):                       ",[533,90697,90698],{"class":593},"# witness -> asset soft bias\n",[533,90700,90701,90703,90705,90707,90709],{"class":535,"line":11372},[533,90702,66356],{"class":539},[533,90704,2971],{"class":543},[533,90706,2786],{"class":539},[533,90708,2976],{"class":553},[533,90710,83823],{"class":543},[533,90712,90713,90715,90717,90720,90722,90724,90726,90728,90730,90732,90735,90737,90739],{"class":535,"line":11385},[533,90714,80235],{"class":543},[533,90716,1652],{"class":560},[533,90718,90719],{"class":543},"(theta ",[533,90721,2469],{"class":553},[533,90723,5037],{"class":543},[533,90725,2239],{"class":625},[533,90727,11221],{"class":553},[533,90729,2251],{"class":625},[533,90731,2254],{"class":553},[533,90733,90734],{"class":543}," p) ",[533,90736,2941],{"class":553},[533,90738,2251],{"class":625},[533,90740,90741],{"class":543},", i)\n",[533,90743,90744,90747,90749,90751,90754,90756,90758,90760,90763,90765,90767,90769,90774],{"class":535,"line":11390},[533,90745,90746],{"class":560},"    fold",[533,90748,615],{"class":543},[533,90750,2514],{"class":553},[533,90752,90753],{"class":625},"0.10",[533,90755,1133],{"class":543},[533,90757,2239],{"class":625},[533,90759,73381],{"class":539},[533,90761,90762],{"class":543}," stressed ",[533,90764,7221],{"class":539},[533,90766,11793],{"class":625},[533,90768,2632],{"class":543},[533,90770,80059,90771],{"class":80057,"tabindex":80058},[533,90772,90773],{"class":80062,"role":80063},"Six global market witnesses (regime, vol-stress, DeFi-stress, stablecoin dominance) fold into 1-qubit ry rotations, so a risk-off market tilts every asset defensive without extra two-qubit gates.",[533,90775,1113],{},[533,90777,90778],{"class":535,"line":11402},[533,90779,891],{"emptyLinePlaceholder":790},[533,90781,90782,90784,90787,90789,90791,90793,90795],{"class":535,"line":11407},[533,90783,12659],{"class":539},[533,90785,90786],{"class":543}," layer ",[533,90788,2786],{"class":539},[533,90790,2976],{"class":553},[533,90792,615],{"class":543},[533,90794,15006],{"class":553},[533,90796,90797],{"class":543},"(gammas)):\n",[533,90799,90800,90803],{"class":535,"line":11412},[533,90801,90802],{"class":560},"        apply_cost_layer",[533,90804,90805],{"class":543},"(qc, gammas[layer], h, J_pairs, n)\n",[533,90807,90808,90810,90812,90814,90816],{"class":535,"line":11418},[533,90809,66356],{"class":539},[533,90811,2971],{"class":543},[533,90813,2786],{"class":539},[533,90815,2976],{"class":553},[533,90817,83823],{"class":543},[533,90819,90820,90822,90824,90826,90828,90830,90833,90840],{"class":535,"line":11423},[533,90821,80235],{"class":543},[533,90823,88036],{"class":560},[533,90825,615],{"class":543},[533,90827,11726],{"class":625},[533,90829,2254],{"class":553},[533,90831,90832],{"class":543}," betas[layer], i)",[533,90834,80059,90835],{"class":80057,"tabindex":80058},[533,90836,90837,90839],{"class":80062,"role":80063},[974,90838,88052],{}," The RX layer nudges the state toward neighboring portfolios so the optimizer can escape a single bitstring.",[533,90841,1113],{},[533,90843,90844,90846,90848,90850,90852,90855,90857],{"class":535,"line":11467},[533,90845,1799],{"class":543},[533,90847,1164],{"class":560},[533,90849,615],{"class":543},[533,90851,6692],{"class":553},[533,90853,90854],{"class":543},"(n_total), ",[533,90856,6692],{"class":553},[533,90858,90859],{"class":543},"(n_total))\n",[533,90861,90862,90864],{"class":535,"line":11473},[533,90863,1880],{"class":539},[533,90865,80334],{"class":543},[533,90867,90868],{"class":535,"line":11488},[533,90869,891],{"emptyLinePlaceholder":790},[533,90871,90872,90874,90876,90878,90881,90884],{"class":535,"line":11505},[533,90873,1121],{"class":543},[533,90875,554],{"class":553},[533,90877,80157],{"class":560},[533,90879,90880],{"class":543},"(gammas, betas, ising_h, ising_J_pairs, ",[533,90882,90883],{"class":625},"SNAPSHOT",[533,90885,637],{"class":543},[533,90887,90888,90890,90892,90894,90896,90898,90901,90904,90906,90908,90910,90912,90921],{"class":535,"line":11518},[533,90889,4513],{"class":543},[533,90891,554],{"class":553},[533,90893,557],{"class":543},[533,90895,561],{"class":560},[533,90897,615],{"class":543},[533,90899,90900],{"class":560},"transpile",[533,90902,90903],{"class":543},"(qc, backend), ",[533,90905,269],{"class":567},[533,90907,554],{"class":553},[533,90909,80654],{"class":625},[533,90911,2632],{"class":543},[533,90913,80059,90914],{"class":80057,"tabindex":80058},[533,90915,90916,90917,90920],{"class":80062,"role":80063},"Submits one shot batch to the selected IonQ backend through Qollab. The sampled portfolios become this run's ",[57,90918,90919],{},"qaoa_solution_quality"," component of the risk index.",[533,90922,1113],{},[533,90924,90925,90927,90929,90931,90933,90935,90937,90939,90941],{"class":535,"line":11523},[533,90926,87350],{"class":539},[533,90928,5414],{"class":543},[533,90930,80910],{"class":560},[533,90932,16535],{"class":543},[533,90934,3900],{"class":539},[533,90936,3903],{"class":539},[533,90938,80919],{"class":543},[533,90940,80922],{"class":625},[533,90942,544],{"class":543},[533,90944,90945,90947,90949,90951,90953],{"class":535,"line":11555},[533,90946,87371],{"class":543},[533,90948,80932],{"class":560},[533,90950,615],{"class":543},[533,90952,1140],{"class":625},[533,90954,637],{"class":543},[533,90956,90957,90959,90961,90963,90965,90967,90969,90971],{"class":535,"line":11561},[533,90958,5409],{"class":543},[533,90960,554],{"class":553},[533,90962,5414],{"class":543},[533,90964,1208],{"class":560},[533,90966,1211],{"class":543},[533,90968,1214],{"class":560},[533,90970,90031],{"class":543},[533,90972,90973],{"class":593},"# sampled portfolios -> risk score (BPS)\n",[12,90975,90976],{},"The snapshot baked into the gallery version is frozen on a single day so it runs without any network calls, but the full pipeline in the repo fetches fresh market data daily and reruns the whole chain.",[2175,90978],{"caption":90979,"no":79839,"poster":83637,"video":82228},"A daily run end to end: live market data in, a QAOA job on IonQ, the systemic risk index in basis points, and the on-chain publication preview. Press play.",[81936,90981,90983],{"lead":90982},"The Quantum Systemic Oracle is open source, built to be forked and rerun.",[30,90984,90985,90993],{},[33,90986,90987],{},[36,90988,90989,90991],{},[39,90990,81947],{},[39,90992,81950],{},[49,90994,90995,91002,91010,91018],{},[36,90996,90997,90999],{},[54,90998,79393],{},[54,91000,91001],{},"Qiskit + IonQ SDK, a 14-qubit QAOA on IonQ (Forte-class).",[36,91003,91004,91007],{},[54,91005,91006],{},"Engine",[54,91008,91009],{},"Python 3.11+, live market ingest, QUBO build, and risk scoring.",[36,91011,91012,91015],{},[54,91013,91014],{},"Oracle",[54,91016,91017],{},"Solidity + Chainlink AggregatorV3, on Ethereum Sepolia.",[36,91019,91020,91023],{},[54,91021,91022],{},"Built with",[54,91024,91025],{},"Cursor Agent and Chainlink Agent Skills (AI pair-programming).",[25,91027,91029],{"id":91028},"built-with-ai-on-real-hardware","Built with AI, on real hardware",[12,91031,91032],{},"Jamie is candid that he did not write every line of Qiskit and Solidity from memory. He treated modern AI coding tools as the thing that closed the gap between his domain knowledge and the unfamiliar quantum and blockchain stacks, and he is enthusiastic about it as a way in.",[79791,91034,91035],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,91036,91037],{},"It was enjoyable leveraging Cursor and the latest LLMs to create what was made. I'd encourage everyone to do so, it's the best way to learn first hand.",[12,91039,91040],{},"His practical advice for anyone wanting to follow the same path is concrete: set up MCP servers and lean on the basic skills they expose to start building straight away. The point is not to outsource the understanding, but to get a working loop going fast enough that you actually learn by running things, which is exactly how he got from never having touched Qiskit to submitting jobs on IonQ.",[25,91042,81065],{"id":81064},[12,91044,91045],{},"The current oracle is a deliberately bounded prototype: eight assets, a frozen snapshot in the gallery, and publication confined to a testnet. What Jamie is watching is the hardware curve, because the use cases he is interested in open up as the machines grow.",[79791,91047,91048],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,91049,91050],{},"I enjoyed running my first QPU jobs. I'll continue my learning path and look forward to running additional experiments as logical qubits scale, since that will keep enabling new use cases.",[12,91052,91053],{},"The architecture is built to grow with that curve. Because each asset adds exactly one qubit, widening the basket is a matter of appending to the asset universe and letting the circuit width, budget, and readout adapt. The longer arc he points at, agentic smart contracts that blend quantum, AI, and blockchain, is speculative by his own admission, but the oracle is a small, working first step in that direction.",[25,91055,80373],{"id":4321},[12,91057,91058],{},"The whole pipeline is open and forkable, from the circuit-side preview on Qollab to the live-data engine and the on-chain publisher on GitHub. If you want to go all the way to publishing your own score, Jamie has a tip for getting unstuck on the blockchain side.",[79791,91060,91061],{"avatar":82231,"name":82232,"role":82233,"username":82234},[12,91062,91063],{},"I'd suggest others try getting testnet Chainlink and ETH tokens to test and publish their own smart contracts.",[4321,91065,91068],{"fork-href":90322,"live-href":91066,"title":91067},"https:\u002F\u002Fkedwind.github.io\u002FQuantum-Systemic-Oracle\u002F","Turn a quantum result into something code can read.",[12,91069,91070,91071],{},"Fork the Quantum Systemic Oracle, run the QAOA step on real hardware, and publish your own score on-chain. ",[974,91072,4329],{},[773,91074,85218],{},{"title":529,"searchDepth":547,"depth":547,"links":91076},[91077,91078,91079,91080,91081,91082],{"id":90247,"depth":547,"text":90248},{"id":90262,"depth":547,"text":90263},{"id":90300,"depth":547,"text":90301},{"id":91028,"depth":547,"text":91029},{"id":81064,"depth":547,"text":81065},{"id":4321,"depth":547,"text":80373},[4349,4637,81844],[91085],{"username":82234,"name":82232,"role":91086,"avatar":82231,"bio":91087,"links":91088},"Lead architect & developer","Jamie is a data-governance and finance professional with more than a decade managing enterprise data architecture at a global bank, currently an Apps Dev Group Manager working across reference data, metadata curation, and system integrations for large financial platforms. He describes himself as a domain expert rather than a traditional quantum engineer, and built the Quantum Systemic Oracle as a solo project to see how far AI-assisted development could take him on real hardware. It was his first QPU job and first Qiskit run.",[91089,91091],{"label":4360,"href":91090},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fjamie",{"label":4363,"href":91092},"https:\u002F\u002Fgithub.com\u002Fkedwind",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Jamie Dominguez built a daily oracle that runs a portfolio-optimization circuit on IonQ, distills the result into a single systemic risk score, and publishes it on-chain for smart contracts to read.","Jamie Dominguez built a daily oracle: a portfolio-optimization circuit on IonQ distilled into one systemic risk score, published on-chain. A Qollab project.",{"href":90322,"label":91097},"Fork the oracle",{"image":83637,"alt":91099,"liveUrl":91066},"The Systemic Oracle dashboard: the daily quantum systemic risk score with its market-signal sliders",{},"\u002F_content\u002Fimages\u002Fsystemic-oracle\u002Fscreenshot.jpg","\u002Fblog\u002Fquantum-systemic-oracle","2026-04-26",[],[91106,91107,91108],{"username":5829,"project":83634,"title":5830,"category":82368,"thumb":5831,"to":81884},{"username":3791,"project":81127,"title":3792,"category":81128,"thumb":3327,"to":81129},{"username":85252,"project":85253,"title":81603,"category":81128,"thumb":85254,"to":81712},{"title":91110,"description":91111},"Quantum Creative Project Showcase: Quantum Systemic Oracle","A daily systemic risk score, computed by a QAOA circuit on IonQ and published on-chain as a primitive smart contracts can read.","blog\u002Fquantum-systemic-oracle",[82382,4383,82383],"g0M6M707tvFNh5_noc_jn1NFD3D7bUPknkNTrnwQrn8",{"id":91116,"title":91117,"authors":91118,"body":91119,"breadcrumb":91730,"builders":91731,"byline":91741,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":91742,"description":91743,"draft":786,"extension":787,"eyebrow":80420,"featured":786,"finish":7,"fork":91744,"hero":91746,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":91748,"navigation":790,"newsItems":7,"next":7,"ogImage":91749,"order":7,"outcomes":7,"path":91750,"publishDate":91751,"readingTime":74878,"related":91752,"relatedProjects":91753,"seo":91757,"stem":91760,"tags":91761,"track":7,"trackName":7,"__hash__":91763},"blog\u002Fblog\u002Fquantum-canvas.md","Project Showcase: QuantumCanvas",[81664],{"type":9,"value":91120,"toc":91723},[91121,91124,91131,91134,91138,91142,91145,91150,91153,91173,91176,91180,91183,91186,91212,91215,91220,91223,91227,91237,91607,91651,91655,91658,91663,91666,91668,91671,91676,91679,91699,91702,91704,91707,91712,91721],[12,91122,91123],{},"QuantumCanvas is a visual sandbox where you drag and drop quantum operations to build new algorithms, then run them on real hardware.",[12,91125,91126,91127,91130],{},"Its guiding line, in the project's words, is ",[9404,91128,91129],{},"thinking in logic, computing in quantum",", the idea that curiosity should be all it takes to start exploring, no background in linear algebra required.",[12,91132,91133],{},"The canvas is built for a specific moment: you have finished the tutorials, you understand the theory at a high level, and then you hit a wall. Building a new circuit from scratch feels intimidating and repetitive. QuantumCanvas is the bridge across that gap.",[79791,91135,91136],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91137,81667],{},[25,91139,91141],{"id":91140},"the-gap-after-the-tutorials","The gap after the tutorials",[12,91143,91144],{},"Shivani has spent years on the teaching side of quantum. She co-founded Qtangled and has run workshops for more than 250 people, and across all those rooms one problem kept surfacing.",[79791,91146,91147],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91148,91149],{},"The same challenge came up repeatedly: how do people experiment, discover, and build intuition in quantum computing without getting stuck behind complex mathematics or code? Most learners could understand the theory at a high level, but they had very few opportunities to explore concepts in an intuitive way. QuantumCanvas grew from a simple question: how can we make experimentation and discovery easier while still teaching the underlying logic of quantum systems?",[12,91151,91152],{},"QuantumCanvas treats this as a human-computer-interaction problem as much as a physics one. It names three walls every newcomer runs into, and sets out to lower each:",[753,91154,91155,91161,91167],{},[756,91156,91157,91160],{},[974,91158,91159],{},"The math wall",": vector spaces and unitary matrices.",[756,91162,91163,91166],{},[974,91164,91165],{},"The physics wall",": hardware noise, decoherence, and gate timing.",[756,91168,91169,91172],{},[974,91170,91171],{},"The syntax wall",": learning a low-level framework before you see a single result.",[12,91174,91175],{},"Lowering those three walls is the whole design brief. Not another tutorial, and not a research-grade toolchain, but a place where the post-tutorial learner can actually build something and watch what it does.",[25,91177,91179],{"id":91178},"shake-mark-boost-link","Shake, mark, boost, link",[12,91181,91182],{},"QuantumCanvas is a grid you compose on. Instead of writing code, you drag and drop a small set of plain-language operations and arrange them on the canvas, with the tool showing you both the circuit and the live state visualization side by side as you go. When you want the real thing, you run it on hardware.",[12,91184,91185],{},"Each tile maps to a genuine quantum action, and the canvas enforces the order they have to happen in:",[753,91187,91188,91194,91200,91206],{},[756,91189,91190,91193],{},[974,91191,91192],{},"Shake"," spreads every possibility equally, the opening move from a ground state.",[756,91195,91196,91199],{},[974,91197,91198],{},"Mark"," tags a target with a hidden signal, which only works once you have shaken into superposition.",[756,91201,91202,91205],{},[974,91203,91204],{},"Boost"," amplifies the marked item so it becomes the one you are most likely to measure.",[756,91207,91208,91211],{},[974,91209,91210],{},"Link"," entangles two qubits so they move together.",[12,91213,91214],{},"Shivani explored several ways to visualize quantum logic before settling on this grid. The point was to make the underlying ideas tangible without watering them down.",[79791,91216,91217],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91218,91219],{},"I wanted something that felt intuitive without losing the essence of the underlying concepts. The grid system allows people to experiment, observe patterns, and develop intuition through interaction. It stays grounded in real quantum principles while making the learning process more approachable and engaging.",[12,91221,91222],{},"Under the hood, those operations are a modular library of quantum primitives, reusable building blocks you can recombine into new algorithms. On Qollab, that library lives in the Playground as a forkable collection, so the canvas is not just a teaching demo but a starting point other people can build on.",[2175,91224],{"caption":91225,"no":79839,"poster":85258,"video":91226},"Composing on the canvas: drop qubits, shake them into superposition, mark and boost a target, and link qubits, with the circuit and live state updating as you go. Press play.","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002Fa358575f-01fc-46d7-aa1d-29e4f89fd295",[12,91228,91229,91230,2125,91233,91236],{},"It is all real code underneath. A bare Bell state, for instance, is just ",[974,91231,91232],{},"shake",[974,91234,91235],{},"link",", and on Qollab the Playground runs it on hardware exactly as written:",[519,91238,91240],{"name":5267,"run-href":91239,"tag":80587},"\u002Fu\u002FShivaniMayekar\u002Fquantum-canvas",[524,91241,91243],{"className":526,"code":91242,"language":528,"meta":529,"style":529},"# 'backend' is pre-created as a global on Qollab\nfrom qiskit import QuantumCircuit\n\n# A Bell state: shake (h) then link (cx)\ncircuit = QuantumCircuit(2, 2)\ncircuit.h(0)\ncircuit.cx(0, 1)\ncircuit.measure([0, 1], [0, 1])\nprint(circuit)\n\nfrom qiskit.providers.jobstatus import JobStatus\nimport time\n\ndef main(shots=100, low_prob=0.05):\n    job = backend.run(circuit, shots=shots)\n\n    # Poll until the job finishes\n    while True:\n        status = job.status()\n        print(f\"Job status is {status}\")\n        if status is JobStatus.DONE:\n            break\n        time.sleep(10)\n\n    counts = job.get_counts()\n    # Filter low-probability noise\n    counts = {b: c for b, c in counts.items() if c > shots * low_prob}\n    print(f\"Counts for {shots} shots: {counts}\")\n",[57,91244,91245,91249,91259,91263,91268,91286,91308,91334,91358,91364,91368,91378,91384,91388,91413,91440,91444,91448,91456,91468,91488,91502,91506,91518,91522,91534,91539,91579],{"__ignoreMap":529},[533,91246,91247],{"class":535,"line":536},[533,91248,80597],{"class":593},[533,91250,91251,91253,91255,91257],{"class":535,"line":547},[533,91252,877],{"class":539},[533,91254,880],{"class":543},[533,91256,883],{"class":539},[533,91258,1106],{"class":543},[533,91260,91261],{"class":535,"line":575},[533,91262,891],{"emptyLinePlaceholder":790},[533,91264,91265],{"class":535,"line":590},[533,91266,91267],{"class":593},"# A Bell state: shake (h) then link (cx)\n",[533,91269,91270,91272,91274,91276,91278,91280,91282,91284],{"class":535,"line":597},[533,91271,3146],{"class":543},[533,91273,554],{"class":553},[533,91275,1126],{"class":560},[533,91277,615],{"class":543},[533,91279,1140],{"class":625},[533,91281,1133],{"class":543},[533,91283,1140],{"class":625},[533,91285,637],{"class":543},[533,91287,91288,91290,91292,91294,91296,91298,91306],{"class":535,"line":603},[533,91289,3225],{"class":543},[533,91291,1148],{"class":560},[533,91293,615],{"class":543},[533,91295,1049],{"class":625},[533,91297,2632],{"class":543},[533,91299,80059,91300],{"class":80057,"tabindex":80058},[533,91301,91302,91305],{"class":80062,"role":80063},[974,91303,91304],{},"Shake."," A Hadamard gate puts the qubit into an even superposition of 0 and 1.",[533,91307,1113],{},[533,91309,91310,91312,91314,91316,91318,91320,91322,91324,91332],{"class":535,"line":609},[533,91311,3225],{"class":543},[533,91313,4936],{"class":560},[533,91315,615],{"class":543},[533,91317,1049],{"class":625},[533,91319,1133],{"class":543},[533,91321,1052],{"class":625},[533,91323,2632],{"class":543},[533,91325,80059,91326],{"class":80057,"tabindex":80058},[533,91327,91328,91331],{"class":80062,"role":80063},[974,91329,91330],{},"Link."," A CNOT entangles qubit 1 with qubit 0, so measuring one tells you about the other.",[533,91333,1113],{},[533,91335,91336,91338,91340,91342,91344,91346,91348,91350,91352,91354,91356],{"class":535,"line":640},[533,91337,3225],{"class":543},[533,91339,1164],{"class":560},[533,91341,3230],{"class":543},[533,91343,1049],{"class":625},[533,91345,1133],{"class":543},[533,91347,1052],{"class":625},[533,91349,3251],{"class":543},[533,91351,1049],{"class":625},[533,91353,1133],{"class":543},[533,91355,1052],{"class":625},[533,91357,3272],{"class":543},[533,91359,91360,91362],{"class":535,"line":646},[533,91361,917],{"class":553},[533,91363,88810],{"class":543},[533,91365,91366],{"class":535,"line":658},[533,91367,891],{"emptyLinePlaceholder":790},[533,91369,91370,91372,91374,91376],{"class":535,"line":680},[533,91371,877],{"class":539},[533,91373,80614],{"class":543},[533,91375,883],{"class":539},[533,91377,80619],{"class":543},[533,91379,91380,91382],{"class":535,"line":1536},[533,91381,883],{"class":539},[533,91383,87791],{"class":543},[533,91385,91386],{"class":535,"line":1552},[533,91387,891],{"emptyLinePlaceholder":790},[533,91389,91390,91392,91394,91396,91398,91400,91402,91404,91407,91409,91411],{"class":535,"line":1911},[533,91391,1754],{"class":539},[533,91393,80861],{"class":560},[533,91395,615],{"class":543},[533,91397,269],{"class":1762},[533,91399,554],{"class":543},[533,91401,4528],{"class":625},[533,91403,1133],{"class":543},[533,91405,91406],{"class":1762},"low_prob",[533,91408,554],{"class":543},[533,91410,6195],{"class":625},[533,91412,1771],{"class":543},[533,91414,91415,91417,91419,91421,91423,91425,91427,91429,91431,91438],{"class":535,"line":1940},[533,91416,550],{"class":543},[533,91418,554],{"class":553},[533,91420,557],{"class":543},[533,91422,561],{"class":560},[533,91424,564],{"class":543},[533,91426,269],{"class":567},[533,91428,554],{"class":553},[533,91430,80890],{"class":543},[533,91432,80059,91433],{"class":80057,"tabindex":80058},[533,91434,91435,91436,80898],{"class":80062,"role":80063},"Submits the circuit to real quantum hardware through Qollab. ",[57,91437,907],{},[533,91439,1113],{},[533,91441,91442],{"class":535,"line":1968},[533,91443,891],{"emptyLinePlaceholder":790},[533,91445,91446],{"class":535,"line":1995},[533,91447,88902],{"class":593},[533,91449,91450,91452,91454],{"class":535,"line":4164},[533,91451,80905],{"class":539},[533,91453,71998],{"class":625},[533,91455,544],{"class":543},[533,91457,91458,91460,91462,91464,91466],{"class":535,"line":4199},[533,91459,88915],{"class":543},[533,91461,554],{"class":553},[533,91463,5414],{"class":543},[533,91465,80910],{"class":560},[533,91467,1217],{"class":543},[533,91469,91470,91472,91474,91476,91478,91480,91482,91484,91486],{"class":535,"line":4206},[533,91471,45979],{"class":553},[533,91473,615],{"class":543},[533,91475,618],{"class":539},[533,91477,88934],{"class":621},[533,91479,626],{"class":625},[533,91481,80910],{"class":543},[533,91483,632],{"class":625},[533,91485,439],{"class":621},[533,91487,637],{"class":543},[533,91489,91490,91492,91494,91496,91498,91500],{"class":535,"line":4214},[533,91491,2762],{"class":539},[533,91493,88951],{"class":543},[533,91495,3900],{"class":539},[533,91497,80919],{"class":543},[533,91499,80922],{"class":625},[533,91501,544],{"class":543},[533,91503,91504],{"class":535,"line":11296},[533,91505,88964],{"class":539},[533,91507,91508,91510,91512,91514,91516],{"class":535,"line":11302},[533,91509,80929],{"class":543},[533,91511,80932],{"class":560},[533,91513,615],{"class":543},[533,91515,1579],{"class":625},[533,91517,637],{"class":543},[533,91519,91520],{"class":535,"line":11332},[533,91521,891],{"emptyLinePlaceholder":790},[533,91523,91524,91526,91528,91530,91532],{"class":535,"line":11345},[533,91525,80943],{"class":543},[533,91527,554],{"class":553},[533,91529,5414],{"class":543},[533,91531,1214],{"class":560},[533,91533,1217],{"class":543},[533,91535,91536],{"class":535,"line":11372},[533,91537,91538],{"class":593},"    # Filter low-probability noise\n",[533,91540,91541,91543,91545,91547,91549,91551,91553,91555,91557,91559,91561,91563,91565,91567,91569,91572,91577],{"class":535,"line":11385},[533,91542,80943],{"class":543},[533,91544,554],{"class":553},[533,91546,89034],{"class":543},[533,91548,3180],{"class":539},[533,91550,89039],{"class":543},[533,91552,2786],{"class":539},[533,91554,4188],{"class":543},[533,91556,2792],{"class":560},[533,91558,16535],{"class":543},[533,91560,5724],{"class":539},[533,91562,40413],{"class":543},[533,91564,2808],{"class":553},[533,91566,7194],{"class":543},[533,91568,2469],{"class":553},[533,91570,91571],{"class":543}," low_prob}",[533,91573,80059,91574],{"class":80057,"tabindex":80058},[533,91575,91576],{"class":80062,"role":80063},"Drops outcomes that show up too rarely to be signal: a simple hardware-noise filter.",[533,91578,1113],{},[533,91580,91581,91583,91585,91587,91589,91591,91593,91595,91597,91599,91601,91603,91605],{"class":535,"line":11390},[533,91582,612],{"class":553},[533,91584,615],{"class":543},[533,91586,618],{"class":539},[533,91588,89074],{"class":621},[533,91590,626],{"class":625},[533,91592,269],{"class":543},[533,91594,632],{"class":625},[533,91596,89083],{"class":621},[533,91598,626],{"class":625},[533,91600,1925],{"class":543},[533,91602,632],{"class":625},[533,91604,439],{"class":621},[533,91606,637],{"class":543},[81936,91608,91610],{"lead":91609},"QuantumCanvas is open source, built to be forked and extended.",[30,91611,91612,91620],{},[33,91613,91614],{},[36,91615,91616,91618],{},[39,91617,81947],{},[39,91619,81950],{},[49,91621,91622,91629,91636,91643],{},[36,91623,91624,91626],{},[54,91625,87545],{},[54,91627,91628],{},"React + Canvas API, the interactive grid.",[36,91630,91631,91633],{},[54,91632,7524],{},[54,91634,91635],{},"Python \u002F FastAPI, turns the visual map into runnable circuits.",[36,91637,91638,91640],{},[54,91639,79393],{},[54,91641,91642],{},"IonQ via Qollab, plus D-Wave Leap.",[36,91644,91645,91648],{},[54,91646,91647],{},"Infrastructure",[54,91649,91650],{},"Microsoft Azure (AI Innovator Program).",[25,91652,91654],{"id":91653},"accessible-and-accurate","Accessible and accurate",[12,91656,91657],{},"The hardest part of the project was not the interface. It was calibration, deciding how much to simplify before the physics stops being the physics.",[79791,91659,91660],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91661,91662],{},"Finding the balance between accessibility and accuracy. If you simplify too much, you lose what makes quantum mechanics meaningful. If you focus too heavily on technical rigor, the experience becomes inaccessible. Navigating that balance has been one of the most challenging and rewarding parts of building the project.",[12,91664,91665],{},"That tension is exactly why the primitives stay mapped to genuine quantum actions rather than becoming a purely classical abstraction. The goal is intuition you can carry back to real circuits, not a metaphor that falls apart the moment you leave the canvas.",[25,91667,81065],{"id":81064},[12,91669,91670],{},"QuantumCanvas is open for forking, and Shivani is most excited about people specializing it for real domains.",[79791,91672,91673],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91674,91675],{},"I would love to see versions tailored to specific quantum applications. Areas like drug discovery, optimization, materials science, and logistics all present unique challenges and opportunities. It would be exciting to see people build specialized experiences that help others understand how quantum ideas connect to real-world problems.",[12,91677,91678],{},"The project's own roadmap maps that ambition onto three phases:",[753,91680,91681,91687,91693],{},[756,91682,91683,91686],{},[974,91684,91685],{},"Phase 1",": the core translation engine that turns a visual logic map into runnable hardware code.",[756,91688,91689,91692],{},[974,91690,91691],{},"Phase 2",": user testing with non-quantum engineers and students to refine the experience.",[756,91694,91695,91698],{},[974,91696,91697],{},"Phase 3",": a public beta and a template library for logistics, art, and chemistry.",[12,91700,91701],{},"She is already extending the idea herself, with a second grid-based tool focused on quantum annealing and optimization that follows the same philosophy: make complex ideas easier to explore while keeping the intuition tied to the underlying science.",[25,91703,80373],{"id":4321},[12,91705,91706],{},"If you have done the tutorials and want a place to actually build, QuantumCanvas is a good first canvas. It is open for forking on both Qollab and GitHub, with a live demo you can try right now.",[79791,91708,91709],{"avatar":81662,"name":81566,"role":81663,"username":81664},[12,91710,91711],{},"Looking back, QuantumCanvas has been as much a learning journey for me as it has been a tool for helping others learn quantum computing.",[4321,91713,91716],{"fork-href":91239,"live-href":91714,"title":91715},"https:\u002F\u002Fquantum-canvas-v1.netlify.app\u002F","Build a circuit by dragging, not typing.",[12,91717,91718,91719],{},"Fork QuantumCanvas, compose your own primitives, and run them on real hardware. ",[974,91720,4329],{},[773,91722,89218],{},{"title":529,"searchDepth":547,"depth":547,"links":91724},[91725,91726,91727,91728,91729],{"id":91140,"depth":547,"text":91141},{"id":91178,"depth":547,"text":91179},{"id":91653,"depth":547,"text":91654},{"id":81064,"depth":547,"text":81065},{"id":4321,"depth":547,"text":80373},[4349,4637,81554],[91732],{"username":81664,"name":81566,"role":91733,"avatar":81662,"bio":91734,"links":91735},"Quantum researcher & developer · Georgia Tech","Shivani is an M.S. computer-science researcher at Georgia Tech (Computing Systems), working across quantum computing, high-performance architecture, and human-computer interaction. She won the QRISE 2024 Infleqtion Challenge for work on VQE for atomic-clock precision, co-founded Qtangled, and has run quantum workshops for 250+ people. She has been building in quantum since 2020 and was selected for the D-Wave Leap Quantum LaunchPad in 2026.",[91736,91738,91739],{"label":4360,"href":91737},"https:\u002F\u002Fqollab.xyz\u002Fu\u002FShivaniMayekar",{"label":80403,"href":86844},{"label":4363,"href":91740},"https:\u002F\u002Fgithub.com\u002FShivaniDM",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Shivani Mayekar built a visual sandbox where you drag and drop quantum operations to compose new algorithms, then run them on real hardware.","Shivani Mayekar built a visual sandbox to drag and drop quantum operations into algorithms and run them on real hardware. A Qollab Creative Challenge project.",{"href":91239,"label":91745},"Fork QuantumCanvas",{"image":85258,"alt":91747,"liveUrl":91714},"The QuantumCanvas grid: plain-language quantum operations composed on a canvas beside the live circuit and state view",{},"\u002F_content\u002Fimages\u002Fquantum-canvas\u002Fscreenshot.jpg","\u002Fblog\u002Fquantum-canvas","2026-04-24",[],[91754,91755,91756],{"username":3791,"project":81127,"title":3792,"category":81128,"thumb":3327,"to":81129},{"username":6624,"project":81121,"title":6625,"category":80440,"thumb":6626,"to":81122},{"username":82234,"project":83636,"title":81844,"category":82368,"thumb":83637,"to":81843},{"title":91758,"description":91759},"Quantum Creative Project Showcase: QuantumCanvas","A visual sandbox for building quantum algorithms by hand and running them on real hardware. Built by Shivani Mayekar for Qollab's Creative Challenge.","blog\u002Fquantum-canvas",[4382,4383,91762],"tools","blo_Fjy_B9vXNDjUo3QTpwlGTro01P7g8NojPfEteO0",{"id":91765,"title":91766,"authors":91767,"body":91768,"breadcrumb":92191,"builders":92193,"byline":7,"category":7,"categoryName":7,"challenge":92194,"courseAuthor":7,"courseLead":7,"dek":92199,"description":92200,"draft":786,"extension":787,"eyebrow":92201,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":92202,"heroImage":7,"homepageFeatured":786,"kind":9274,"lessonCount":7,"meta":92206,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":7,"path":92207,"publishDate":92208,"readingTime":7,"related":92209,"relatedProjects":7,"seo":92210,"stem":92213,"tags":92214,"track":7,"trackName":7,"__hash__":92215},"blog\u002Fblog\u002Fcreative-challenge.md","Quantum Creative Challenge",[1037],{"type":9,"value":91769,"toc":92178},[91770,91773,91777,91830,91838,91842,91846,91849,91891,91899,91903,91906,91920,91923,91927,91941,91945,91948,91972,91975,91979,91982,91996,92000,92003,92140,92143,92147,92150,92158,92160,92164],[12,91771,91772],{},"Qollab is a community of developers, designers, and creative technologists figuring out what quantum software looks like by actually making things and sharing every step in the open. If you have got an idea, come build it with us.",[25,91774,91776],{"id":91775},"project-requirements","Project requirements",[91778,91779,91780,91804],"req-grid",{},[91781,91782,91784],"req-col",{"title":91783},"Technical",[753,91785,91786,91789,91792,91795,91798,91801],{},[756,91787,91788],{},"Use the Qiskit framework.",[756,91790,91791],{},"Open source, hosted in a public repository (for example, GitHub).",[756,91793,91794],{},"Listed on Qollab with runnable code examples.",[756,91796,91797],{},"Documentation sufficient for others to understand, replicate, or extend the project.",[756,91799,91800],{},"Basic accessibility standards (for example, color contrast and legible fonts for UI projects).",[756,91802,91803],{},"Publicly available for at least 12 months after completion.",[91781,91805,91807,91810],{"title":91806},"Creative",[12,91808,91809],{},"Projects should leverage quantum's unique attributes. We are looking for work that:",[753,91811,91812,91815,91818,91821,91824,91827],{},[756,91813,91814],{},"Demonstrates quantum speedups, especially across exponentially large solution spaces.",[756,91816,91817],{},"Uses superposition, entanglement, interference, or probabilistic outputs as part of its storytelling.",[756,91819,91820],{},"Inspires curiosity through design, interactivity, or narrative.",[756,91822,91823],{},"Shows creativity, originality, and community value.",[756,91825,91826],{},"Encourages others to learn from or remix the work.",[756,91828,91829],{},"Bonus points for quirky and playful.",[81505,91831,91832],{},[12,91833,91834,91837],{},[974,91835,91836],{},"Note:"," Building on existing projects is fine, provided your proposal includes a meaningful new twist and the original work is either yours, explicitly permitted, or open-source licensed.",[25,91839,91841],{"id":91840},"submission-and-timeline","Submission and timeline",[3552,91843,91845],{"id":91844},"what-to-submit","What to submit",[12,91847,91848],{},"Each proposal must include:",[753,91850,91851,91856,91862,91868,91874,91879,91885],{},[756,91852,91853],{},[974,91854,91855],{},"Project title.",[756,91857,91858,91861],{},[974,91859,91860],{},"Concept description:"," what you plan to build (up to 200 words).",[756,91863,91864,91867],{},[974,91865,91866],{},"Technical approach:"," how quantum computing will be used, plus other technologies involved.",[756,91869,91870,91873],{},[974,91871,91872],{},"Creative or educational value:"," how it contributes to the community or field (up to 200 words).",[756,91875,91876],{},[974,91877,91878],{},"Budget and compute resource estimates.",[756,91880,91881,91884],{},[974,91882,91883],{},"Timeline and deliverables"," through June 2026.",[756,91886,91887,91890],{},[974,91888,91889],{},"Team information:"," bios and highlights (up to 200 words per member).",[81505,91892,91893],{},[12,91894,91895,91898],{},[974,91896,91897],{},"Deadline:"," April 7th, 2026 via the application form. The call is now closed and is no longer accepting submissions.",[3552,91900,91902],{"id":91901},"review-criteria","Review criteria",[12,91904,91905],{},"Qollab and IonQ evaluate proposals on:",[753,91907,91908,91911,91914,91917],{},[756,91909,91910],{},"Creativity and originality.",[756,91912,91913],{},"Technical feasibility.",[756,91915,91916],{},"Clarity of idea and potential impact.",[756,91918,91919],{},"Alignment with our open, accessible ethos.",[12,91921,91922],{},"Spots are limited. We expect to fund only a handful of projects this round, so strong proposals that are clear, creative, and ready to execute will stand out. Selected participants were notified the week of April 13th, 2026.",[3552,91924,91926],{"id":91925},"delivery-timeline","Delivery timeline",[5236,91928],{"l1":91929,"l2":91930,"l3":91931,"l4":91932,"l5":91933,"l6":91934,"w1":91935,"w2":91936,"w3":91937,"w4":91938,"w5":91939,"w6":91940},"Kickoff and initial payment","Midpoint check-in","Final delivery: code, docs, demo","QA review and final payment (50%)","Public launch and co-marketing","1-year maintenance ends","Apr 27","Wk of May 18","Jun 8","Wk of Jun 8","TBD","Jun 2027",[25,91942,91944],{"id":91943},"budget","Budget",[12,91946,91947],{},"Selected teams receive:",[753,91949,91950,91957,91963,91966,91969],{},[756,91951,91952,91953,91956],{},"Up to ",[974,91954,91955],{},"$5,000 USD"," (less applicable tax).",[756,91958,91952,91959,91962],{},[974,91960,91961],{},"$50,000 in IonQ compute credits",", solely for the funded project. Credits expire after 60 days. The first three funded projects receive an additional $20,000 in credits from IonQ, so early, strong proposals have a real advantage.",[756,91964,91965],{},"Promotion and a feature on our website.",[756,91967,91968],{},"Weekly support from IonQ experts.",[756,91970,91971],{},"Virtual access to IonQ executives to present your work.",[12,91973,91974],{},"Participants must provide a payment method and are solely responsible for tax reporting.",[25,91976,91978],{"id":91977},"additional-requirements","Additional requirements",[12,91980,91981],{},"Selected participants agree to:",[753,91983,91984,91987,91990,91993],{},[756,91985,91986],{},"Post at least once on their social channels when their project goes live on Qollab.xyz.",[756,91988,91989],{},"Allow Qollab and IonQ to feature their work and profile.",[756,91991,91992],{},"Release code and documentation under an MIT license. IP remains with the creator.",[756,91994,91995],{},"Include the attribution: \"This effort is supported via compute credits from Qollab and IonQ.\"",[25,91997,91999],{"id":91998},"eligibility","Eligibility",[12,92001,92002],{},"Open to participants based in:",[92004,92005,92006],"countries",{},[753,92007,92008,92011,92014,92017,92020,92023,92026,92029,92032,92035,92038,92041,92044,92047,92050,92053,92056,92059,92062,92065,92068,92071,92074,92077,92080,92083,92086,92089,92092,92095,92098,92101,92104,92107,92110,92113,92116,92119,92122,92125,92128,92131,92134,92137],{},[756,92009,92010],{},"Argentina",[756,92012,92013],{},"Australia",[756,92015,92016],{},"Austria",[756,92018,92019],{},"Belgium",[756,92021,92022],{},"Brazil",[756,92024,92025],{},"Bulgaria",[756,92027,92028],{},"Canada",[756,92030,92031],{},"Chile",[756,92033,92034],{},"Colombia",[756,92036,92037],{},"Cyprus",[756,92039,92040],{},"Czechia",[756,92042,92043],{},"Denmark",[756,92045,92046],{},"Estonia",[756,92048,92049],{},"Finland",[756,92051,92052],{},"France",[756,92054,92055],{},"Germany",[756,92057,92058],{},"Greece",[756,92060,92061],{},"Hungary",[756,92063,92064],{},"India",[756,92066,92067],{},"Indonesia",[756,92069,92070],{},"Ireland",[756,92072,92073],{},"Israel",[756,92075,92076],{},"Italy",[756,92078,92079],{},"Japan",[756,92081,92082],{},"Latvia",[756,92084,92085],{},"Lithuania",[756,92087,92088],{},"Luxembourg",[756,92090,92091],{},"Malaysia",[756,92093,92094],{},"Malta",[756,92096,92097],{},"Mexico",[756,92099,92100],{},"Netherlands",[756,92102,92103],{},"New Zealand",[756,92105,92106],{},"Norway",[756,92108,92109],{},"Poland",[756,92111,92112],{},"Portugal",[756,92114,92115],{},"Romania",[756,92117,92118],{},"Singapore",[756,92120,92121],{},"Slovakia",[756,92123,92124],{},"South Korea",[756,92126,92127],{},"Spain",[756,92129,92130],{},"Sweden",[756,92132,92133],{},"Switzerland",[756,92135,92136],{},"United Kingdom",[756,92138,92139],{},"United States",[12,92141,92142],{},"Individuals and teams may submit multiple proposals. Credits and funding are awarded per project, not per person.",[25,92144,92146],{"id":92145},"examples","Examples",[12,92148,92149],{},"We previously ran a challenge in Winter of 2025. These are the two projects that came out of it:",[92151,92152],"example-grid",{"d1":92153,"d2":92154,"i1":92155,"i2":92156,"t1":516,"t2":92157,"u1":81376,"u2":81129},"An interactive generative art installation by Amber Pincar and Justin Pincar, where digital plants exist in quantum superposition until observed.","A scientifically rigorous quantum circuit and algorithm visualization engine built for teaching and conceptual clarity.","\u002F_content\u002Fimages\u002Fquantum-garden\u002Ffig1-garden-preview.webp","\u002F_content\u002Fimages\u002Fqave\u002Fthumbnail.webp","Quantum Algorithm Visualization Engine (QAVE)",[25,92159,48683],{"id":48682},[12,92161,48686,92162,114],{},[19,92163,48690],{"href":48689},[48692,92165,92169],{"f1":81765,"f2":86935,"l1":92166,"l2":92167,"title":92168},"See what people built","Back to news","This challenge is closed",[12,92170,92171,92172,92174,92175,92177],{},"The submission window has ended and we are no longer accepting proposals. If you have a project you would like to talk to us about, email ",[19,92173,48690],{"href":48689}," — and keep an eye on ",[19,92176,48709],{"href":79626}," for the next open call.",{"title":529,"searchDepth":547,"depth":547,"links":92179},[92180,92181,92186,92187,92188,92189,92190],{"id":91775,"depth":547,"text":91776},{"id":91840,"depth":547,"text":91841,"children":92182},[92183,92184,92185],{"id":91844,"depth":575,"text":91845},{"id":91901,"depth":575,"text":91902},{"id":91925,"depth":575,"text":91926},{"id":91943,"depth":547,"text":91944},{"id":91977,"depth":547,"text":91978},{"id":91998,"depth":547,"text":91999},{"id":92145,"depth":547,"text":92146},{"id":48682,"depth":547,"text":48683},[4349,4637,92192],"Creative Challenge",[],{"type":92195,"status":92196,"deadline":80495,"prize":92197,"terms":92198},"open-call","closed","Up to $5,000 + $50,000 in IonQ compute credits","Open source (MIT), public for 12+ months","Quantum computing is buildable today. Not in five years, not in a research lab, but right now, in your browser. For the Creative Challenge, we backed a small number of projects with a monetary grant, IonQ compute credits, hands-on support, and a spotlight for their work.","The Qollab Creative Challenge funded developers to build on real IonQ hardware with Qiskit. The call is closed and no longer accepting proposals.","Submissions closed",{"primaryHref":81765,"primaryLabel":92203,"secondaryHref":79626,"secondaryLabel":92204,"note":92205},"See what people built →","All programs","The submission window closed on April 7th, 2026 and this call is no longer accepting proposals. The requirements below stay published for reference.",{},"\u002Fblog\u002Fcreative-challenge","2026-04-07",[],{"title":92211,"description":92212},"Quantum Creative Challenge: Build on IonQ | Qollab","Grants, IonQ compute credits, and a spotlight for open-source quantum projects. The call closed on April 7th, 2026 and is no longer accepting proposals.","blog\u002Fcreative-challenge",[92195,9203,4383],"R7edH2o81C0uuAohFEIhgrvOm1ZjkeIrh1iJZgNtu90",{"id":92217,"title":92218,"authors":92219,"body":92220,"breadcrumb":92779,"builders":92780,"byline":92789,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":92790,"description":92791,"draft":786,"extension":787,"eyebrow":92792,"featured":786,"finish":7,"fork":92793,"hero":92795,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":92798,"navigation":790,"newsItems":7,"next":7,"ogImage":92799,"order":7,"outcomes":7,"path":92800,"publishDate":92801,"readingTime":74878,"related":92802,"relatedProjects":92803,"seo":92808,"stem":92809,"tags":92810,"track":7,"trackName":7,"__hash__":92812},"blog\u002Fblog\u002Fqave.md","Project Showcase: QAVE",[3791],{"type":9,"value":92221,"toc":92772},[92222,92225,92228,92232,92235,92238,92242,92245,92249,92252,92255,92258,92263,92266,92702,92706,92709,92714,92717,92722,92725,92730,92733,92737,92740,92745,92748,92751,92756,92758,92761,92769],[12,92223,92224],{},"What does a quantum algorithm actually look like while it's running? Not the math on paper. The actual state, evolving gate by gate.",[12,92226,92227],{},"QAVE (Quantum Algorithm Visualization Engine) answers that question visually. QAVE computes the quantum state at every gate operation, synchronizes multiple views into a single coherent replay, and makes quantum errors and their corrections directly observable. Not a diagram. Not a static plot. A full animation of what's happening inside the circuit as it runs.",[25,92229,92231],{"id":92230},"making-the-invisible-visible","Making the invisible visible",[12,92233,92234],{},"Inho Choi is not new to quantum. He's a researcher working at the intersection of quantum physics and computation, drawn to fundamental open problems where new mathematical and algorithmic tools are still needed.",[12,92236,92237],{},"But deep expertise didn't shield him from a frustration shared by students and researchers alike: quantum algorithms are hard to follow, and not always because of the math.",[79791,92239,92240],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92241,81648],{},[12,92243,92244],{},"That observation became the starting point for QAVE. He wanted to close the gap between formal description and genuine understanding. Not by simplifying the science, but by giving it a visual layer that carries real information.",[25,92246,92248],{"id":92247},"how-inho-built-qave","How Inho built QAVE",[12,92250,92251],{},"The core design decision behind QAVE is that everything stays in sync. The engine computes the full quantum state at every step of a gate operation and locks multiple views together into one replay. State vector, density matrix, gate effects. All moving in lockstep.",[12,92253,92254],{},"That matters most when things go wrong. Quantum errors are physical events with specific signatures, and understanding how they propagate through a circuit is central to building reliable quantum systems. Most tools leave that as something you reconstruct from equations after the fact. QAVE makes it something you watch happen.",[12,92256,92257],{},"The result is a tool built for educators and researchers who want a transparent, grounded way to see how quantum algorithms actually behave. Not an approximation. The real evolution, made visible.",[2175,92259],{"caption":92260,"no":79839,"poster":92261,"video":92262},"A QAVE replay of a 5-qubit GHZ state: state vector, density matrix, and gate effects evolving in lockstep as the circuit runs.","\u002F_content\u002Fimages\u002Fqave\u002Fdemo-poster.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002F50e7233c-a05b-4df8-802e-aa8b97fcc5c2",[12,92264,92265],{},"The whole workflow is a short, runnable notebook. This is the core of it: build a circuit, generate a deterministic trace, and render the synchronized animation you just watched.",[519,92267,92269],{"name":92268,"run-href":3334,"tag":80587},"ghz3_with_QAVE.ipynb",[524,92270,92272],{"className":526,"code":92271,"language":528,"meta":529,"style":529},"# QAVE turns a Qiskit circuit into a deterministic, replayable animation.\nfrom qiskit import QuantumCircuit\nfrom qiskit.quantum_info import Statevector\nfrom qave import SimulationOptions, generate_trace_from_qiskit\nfrom qave.notebook import render_animation, display_animation, resolve_notebook_render_options\nfrom IPython.display import display\n\n# Build a 3-qubit GHZ circuit\ncircuit = QuantumCircuit(3, 3, name=\"ghz3\")\ncircuit.h(0)\ncircuit.cx(0, 1)\ncircuit.cx(0, 2)\ncircuit.measure(range(3), range(3))\n\n# Confirm an equal superposition of |000⟩ and |111⟩ before measuring\npsi = Statevector.from_instruction(circuit.remove_final_measurements(inplace=False))\n\n# Generate a deterministic trace: the state computed at every step of every gate\noptions = SimulationOptions(algorithm_id=\"ghz\", mode=\"preview\", seed=24, shot_count=100)\nresult = generate_trace_from_qiskit(circuit, options=options)\n\n# Deterministic measurement replay: same seed, same shots, every time\nreplay = result.require_measurement_shot_replay()\n\n# Render the synchronized circuit \u002F amplitude \u002F probability animation\nrender = resolve_notebook_render_options(width=1280, height=720, fps=60)\nanim = render_animation(result, render=render)\ndisplay(display_animation(anim))\n",[57,92273,92274,92279,92289,92300,92312,92324,92335,92339,92344,92371,92392,92418,92441,92465,92469,92474,92499,92503,92508,92556,92586,92590,92595,92614,92618,92623,92663,92683],{"__ignoreMap":529},[533,92275,92276],{"class":535,"line":536},[533,92277,92278],{"class":593},"# QAVE turns a Qiskit circuit into a deterministic, replayable animation.\n",[533,92280,92281,92283,92285,92287],{"class":535,"line":547},[533,92282,877],{"class":539},[533,92284,880],{"class":543},[533,92286,883],{"class":539},[533,92288,1106],{"class":543},[533,92290,92291,92293,92295,92297],{"class":535,"line":575},[533,92292,877],{"class":539},[533,92294,84512],{"class":543},[533,92296,883],{"class":539},[533,92298,92299],{"class":543}," Statevector\n",[533,92301,92302,92304,92307,92309],{"class":535,"line":590},[533,92303,877],{"class":539},[533,92305,92306],{"class":543}," qave ",[533,92308,883],{"class":539},[533,92310,92311],{"class":543}," SimulationOptions, generate_trace_from_qiskit\n",[533,92313,92314,92316,92319,92321],{"class":535,"line":597},[533,92315,877],{"class":539},[533,92317,92318],{"class":543}," qave.notebook ",[533,92320,883],{"class":539},[533,92322,92323],{"class":543}," render_animation, display_animation, resolve_notebook_render_options\n",[533,92325,92326,92328,92330,92332],{"class":535,"line":603},[533,92327,877],{"class":539},[533,92329,39367],{"class":543},[533,92331,883],{"class":539},[533,92333,92334],{"class":543}," display\n",[533,92336,92337],{"class":535,"line":609},[533,92338,891],{"emptyLinePlaceholder":790},[533,92340,92341],{"class":535,"line":640},[533,92342,92343],{"class":593},"# Build a 3-qubit GHZ circuit\n",[533,92345,92346,92348,92350,92352,92354,92356,92358,92360,92362,92364,92366,92369],{"class":535,"line":646},[533,92347,3146],{"class":543},[533,92349,554],{"class":553},[533,92351,1126],{"class":560},[533,92353,615],{"class":543},[533,92355,1157],{"class":625},[533,92357,1133],{"class":543},[533,92359,1157],{"class":625},[533,92361,1133],{"class":543},[533,92363,7391],{"class":567},[533,92365,554],{"class":553},[533,92367,92368],{"class":621},"\"ghz3\"",[533,92370,637],{"class":543},[533,92372,92373,92375,92377,92379,92381,92383,92390],{"class":535,"line":658},[533,92374,3225],{"class":543},[533,92376,1148],{"class":560},[533,92378,615],{"class":543},[533,92380,1049],{"class":625},[533,92382,2632],{"class":543},[533,92384,80059,92385],{"class":80057,"tabindex":80058},[533,92386,92387,92389],{"class":80062,"role":80063},[974,92388,80761],{}," Puts qubit 0 into an equal mix of |0⟩ and |1⟩.",[533,92391,1113],{},[533,92393,92394,92396,92398,92400,92402,92404,92406,92408,92416],{"class":535,"line":680},[533,92395,3225],{"class":543},[533,92397,4936],{"class":560},[533,92399,615],{"class":543},[533,92401,1049],{"class":625},[533,92403,1133],{"class":543},[533,92405,1052],{"class":625},[533,92407,2632],{"class":543},[533,92409,80059,92410],{"class":80057,"tabindex":80058},[533,92411,92412,92415],{"class":80062,"role":80063},[974,92413,92414],{},"Entangle."," Links qubit 1 to qubit 0.",[533,92417,1113],{},[533,92419,92420,92422,92424,92426,92428,92430,92432,92434,92439],{"class":535,"line":1536},[533,92421,3225],{"class":543},[533,92423,4936],{"class":560},[533,92425,615],{"class":543},[533,92427,1049],{"class":625},[533,92429,1133],{"class":543},[533,92431,1140],{"class":625},[533,92433,2632],{"class":543},[533,92435,80059,92436],{"class":80057,"tabindex":80058},[533,92437,92438],{"class":80062,"role":80063},"Entangles qubit 2 as well: the full GHZ state |000⟩ + |111⟩.",[533,92440,1113],{},[533,92442,92443,92445,92447,92449,92451,92453,92455,92457,92459,92461,92463],{"class":535,"line":1552},[533,92444,3225],{"class":543},[533,92446,1164],{"class":560},[533,92448,615],{"class":543},[533,92450,6692],{"class":553},[533,92452,615],{"class":543},[533,92454,1157],{"class":625},[533,92456,3945],{"class":543},[533,92458,6692],{"class":553},[533,92460,615],{"class":543},[533,92462,1157],{"class":625},[533,92464,1937],{"class":543},[533,92466,92467],{"class":535,"line":1911},[533,92468,891],{"emptyLinePlaceholder":790},[533,92470,92471],{"class":535,"line":1940},[533,92472,92473],{"class":593},"# Confirm an equal superposition of |000⟩ and |111⟩ before measuring\n",[533,92475,92476,92478,92480,92482,92484,92487,92489,92491,92493,92495,92497],{"class":535,"line":1968},[533,92477,3379],{"class":543},[533,92479,554],{"class":553},[533,92481,3384],{"class":543},[533,92483,3387],{"class":560},[533,92485,92486],{"class":543},"(circuit.",[533,92488,3361],{"class":560},[533,92490,615],{"class":543},[533,92492,3366],{"class":567},[533,92494,554],{"class":553},[533,92496,1930],{"class":625},[533,92498,1937],{"class":543},[533,92500,92501],{"class":535,"line":1995},[533,92502,891],{"emptyLinePlaceholder":790},[533,92504,92505],{"class":535,"line":4164},[533,92506,92507],{"class":593},"# Generate a deterministic trace: the state computed at every step of every gate\n",[533,92509,92510,92513,92515,92518,92520,92523,92525,92528,92530,92532,92534,92537,92539,92541,92543,92545,92547,92550,92552,92554],{"class":535,"line":4199},[533,92511,92512],{"class":543},"options ",[533,92514,554],{"class":553},[533,92516,92517],{"class":560}," SimulationOptions",[533,92519,615],{"class":543},[533,92521,92522],{"class":567},"algorithm_id",[533,92524,554],{"class":553},[533,92526,92527],{"class":621},"\"ghz\"",[533,92529,1133],{"class":543},[533,92531,85618],{"class":567},[533,92533,554],{"class":553},[533,92535,92536],{"class":621},"\"preview\"",[533,92538,1133],{"class":543},[533,92540,3833],{"class":567},[533,92542,554],{"class":553},[533,92544,7549],{"class":625},[533,92546,1133],{"class":543},[533,92548,92549],{"class":567},"shot_count",[533,92551,554],{"class":553},[533,92553,4528],{"class":625},[533,92555,637],{"class":543},[533,92557,92558,92560,92562,92565,92567,92570,92572,92575,92584],{"class":535,"line":4206},[533,92559,86383],{"class":543},[533,92561,554],{"class":553},[533,92563,92564],{"class":560}," generate_trace_from_qiskit",[533,92566,564],{"class":543},[533,92568,92569],{"class":567},"options",[533,92571,554],{"class":553},[533,92573,92574],{"class":543},"options)",[533,92576,80059,92577],{"class":80057,"tabindex":80058},[533,92578,92579,92580,92583],{"class":80062,"role":80063},"Emits a versioned ",[57,92581,92582],{},"trace.json"," with physically-computed in-gate evolution samples.",[533,92585,1113],{},[533,92587,92588],{"class":535,"line":4214},[533,92589,891],{"emptyLinePlaceholder":790},[533,92591,92592],{"class":535,"line":11296},[533,92593,92594],{"class":593},"# Deterministic measurement replay: same seed, same shots, every time\n",[533,92596,92597,92599,92601,92603,92605,92607,92612],{"class":535,"line":11302},[533,92598,3579],{"class":543},[533,92600,554],{"class":553},[533,92602,3584],{"class":543},[533,92604,3587],{"class":560},[533,92606,41837],{"class":543},[533,92608,80059,92609],{"class":80057,"tabindex":80058},[533,92610,92611],{"class":80062,"role":80063},"Repeatable shot outcomes, so the animation replays identically every run.",[533,92613,1113],{},[533,92615,92616],{"class":535,"line":11332},[533,92617,891],{"emptyLinePlaceholder":790},[533,92619,92620],{"class":535,"line":11345},[533,92621,92622],{"class":593},"# Render the synchronized circuit \u002F amplitude \u002F probability animation\n",[533,92624,92625,92628,92630,92633,92635,92638,92640,92643,92645,92648,92650,92653,92655,92657,92659,92661],{"class":535,"line":11372},[533,92626,92627],{"class":543},"render ",[533,92629,554],{"class":553},[533,92631,92632],{"class":560}," resolve_notebook_render_options",[533,92634,615],{"class":543},[533,92636,92637],{"class":567},"width",[533,92639,554],{"class":553},[533,92641,92642],{"class":625},"1280",[533,92644,1133],{"class":543},[533,92646,92647],{"class":567},"height",[533,92649,554],{"class":553},[533,92651,92652],{"class":625},"720",[533,92654,1133],{"class":543},[533,92656,42140],{"class":567},[533,92658,554],{"class":553},[533,92660,42072],{"class":625},[533,92662,637],{"class":543},[533,92664,92665,92668,92670,92673,92676,92678,92680],{"class":535,"line":11385},[533,92666,92667],{"class":543},"anim ",[533,92669,554],{"class":553},[533,92671,92672],{"class":560}," render_animation",[533,92674,92675],{"class":543},"(result, ",[533,92677,67583],{"class":567},[533,92679,554],{"class":553},[533,92681,92682],{"class":543},"render)\n",[533,92684,92685,92687,92689,92692,92695,92700],{"class":535,"line":11390},[533,92686,43513],{"class":560},[533,92688,615],{"class":543},[533,92690,92691],{"class":560},"display_animation",[533,92693,92694],{"class":543},"(anim))",[533,92696,80059,92697],{"class":80057,"tabindex":80058},[533,92698,92699],{"class":80062,"role":80063},"The synchronized replay above (Fig. 1), rendered to MP4 with a GIF fallback.",[533,92701,1113],{},[25,92703,92705],{"id":92704},"where-others-could-take-it","Where others could take it",[12,92707,92708],{},"QAVE is open for forking. When asked what directions excite him most, Inho pointed to several.",[79791,92710,92711],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92712,92713],{},"The near-term add-ons that excite me most are already visible in the roadmap: a realistic noise mode so users can compare ideal and hardware-like behavior, a tensor-network or MPS view that makes larger circuits and entanglement structure easier to explore, and a hybrid-loop mode for VQE or QML that shows how the quantum circuit and the classical optimizer co-evolve over many iterations.",[12,92715,92716],{},"Longer term, Inho is excited by a hardware-aware layer on top of that.",[79791,92718,92719],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92720,92721],{},"Visualizing how an algorithm is implemented on different platforms and how noise propagates from the physical device to the final algorithmic performance.",[12,92723,92724],{},"He also has a clear picture of what a companion project could look like.",[79791,92726,92727],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92728,92729],{},"If I built a companion project on Qollab with the same setup, it would probably focus on the hardware layer itself. A visual explorer or lightweight simulator that compares how the same logical circuit is realized on superconducting, trapped-ion, and neutral-atom platforms, and how they affect performance end to end. I think there is real value in helping people see how quantum computing is implemented and run on different physical hardware.",[12,92731,92732],{},"The foundation is there. Someone with the right interest could pick up any of these threads.",[25,92734,92736],{"id":92735},"finding-your-way-in","Finding your way in",[12,92738,92739],{},"Inho's connection to quantum runs deeper than a research interest. It started with a question about computation and nature.",[79791,92741,92742],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92743,92744],{},"What made me feel that I belonged in quantum was that it spoke directly to a question I had already cared about for a long time: how to understand and simulate nature faithfully. Quantum computation felt like the framework that resolves the bottleneck. As Feynman put it, if nature is fundamentally quantum, then simulating it properly may require computation that is quantum as well.",[12,92746,92747],{},"That idea stayed with him from the beginning. It made quantum computing feel like a natural path, not a career pivot. And it shapes how he thinks about accessibility. He believes conceptual clarity and scientific rigor should go together, and that how we teach quantum science matters as much as the science itself. QAVE is that belief turned into a tool.",[12,92749,92750],{},"Inho's advice for finding community in quantum is simple:",[79791,92752,92753],{"avatar":81644,"name":3793,"role":81645,"username":3791},[12,92754,92755],{},"Start small and be visible. Find an active recurring group, whether that is a local seminar, an online study group, or an open-source project, and participate consistently. You do not need to impress people. You just need to engage honestly with the material. In my experience, community starts to form when you stop trying to learn everything alone and start sharing your questions, your attempts, and your progress with others.",[25,92757,80373],{"id":4321},[12,92759,92760],{},"If you're curious about what quantum circuits actually do at each step, QAVE is a good place to start. The project code is open for forking on both Qollab and GitHub.",[4321,92762,92764],{"fork-href":3334,"title":92763},"See quantum algorithms run, gate by gate.",[12,92765,92766,92767],{},"Fork QAVE and explore the state evolution yourself, or pick up one of the roadmap threads above. ",[974,92768,4329],{},[773,92770,92771],{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":92773},[92774,92775,92776,92777,92778],{"id":92230,"depth":547,"text":92231},{"id":92247,"depth":547,"text":92248},{"id":92704,"depth":547,"text":92705},{"id":92735,"depth":547,"text":92736},{"id":4321,"depth":547,"text":80373},[4349,4637,3792],[92781],{"username":3791,"name":3793,"role":92782,"avatar":81644,"bio":92783,"links":92784},"Quantum information researcher","A researcher in quantum information theory and many-body physics, drawn to the open problems where new mathematical and algorithmic tools are still needed. Inho bridges theoretical foundations and practical implementation, and believes conceptual clarity and scientific rigor belong together.",[92785,92787],{"label":4360,"href":92786},"\u002Fu\u002Fq-inho",{"label":80403,"href":92788},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Finho-choi01\u002F",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Inho Choi built a visualization engine that makes quantum algorithms visible, step by step.","What does a quantum algorithm look like while it runs? QAVE makes the state evolve gate by gate. A featured project from Qollab's Creative Challenge.","Quantum Creative Challenge · Fall 2025",{"href":3334,"label":92794},"Fork QAVE",{"image":92796,"alt":92797},"\u002F_content\u002Fimages\u002Fqave\u002Fhero.webp","QAVE projecting a run of stacked measurement shots onto an outcome histogram, with the 111 outcome highlighted and a circuit lens panel above",{},"\u002F_content\u002Fimages\u002Fqave\u002Fhero.jpg","\u002Fblog\u002Fqave","2026-04-03",[],[92804,92805,92807],{"username":81664,"project":85257,"title":81554,"category":81128,"thumb":85258,"to":81656},{"username":81683,"project":92806,"title":81571,"category":81128,"thumb":87638,"to":81675},"quantum-game-pizza-race",{"username":3311,"project":85862,"title":516,"category":80434,"thumb":3107,"to":81376},{"title":92218,"description":92791},"blog\u002Fqave",[16807,4383,92811],"featured","xCQvZxy0LCnuKxGPEcy06ndWaDE0R0TcDnwKDx7rzaI",{"id":92814,"title":92815,"authors":92816,"body":92817,"breadcrumb":93335,"builders":93336,"byline":93351,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":93352,"description":93353,"draft":786,"extension":787,"eyebrow":92792,"featured":786,"finish":7,"fork":93354,"hero":93355,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":80425,"lessonCount":7,"meta":93357,"navigation":790,"newsItems":7,"next":7,"ogImage":93358,"order":7,"outcomes":7,"path":93359,"publishDate":93360,"readingTime":88449,"related":93361,"relatedProjects":93362,"seo":93366,"stem":93369,"tags":93370,"track":7,"trackName":7,"__hash__":93371},"blog\u002Fblog\u002Fquantum-garden.md","Project Showcase: Quantum Garden",[3311],{"type":9,"value":92818,"toc":93328},[92819,92822,92826,92829,92832,92836,92839,92842,92846,92850,92853,92856,92859,92862,92865,92869,92871,92874,92877,93215,93219,93230,93234,93239,93286,93290,93293,93299,93305,93311,93313,93316,93325],[12,92820,92821],{},"Quantum Garden is a generative art exhibit where digital plants get their form, color, and behavior from circuits run on real IonQ quantum hardware. Not simulated randomness, but actual quantum measurement outcomes baked permanently into each plant. It reframes quantum computing as a creative medium rather than a research tool.",[25,92823,92825],{"id":92824},"from-out-of-reach-to-real-quantum","From \"out of reach\" to real quantum",[12,92827,92828],{},"Neither Amber Wang nor Justin Pincar are quantum researchers. That's part of what makes this story even more interesting.",[12,92830,92831],{},"Amber is a data scientist, SEO strategist, and co-founder of PressRoom AI. She has been thinking about probability, uncertainty, and complex systems across her work in commercial real-estate analytics and AI. She's also a garden lover, which is where the concept started.",[79791,92833,92834],{"avatar":81312,"name":81313,"role":81314,"username":3311},[12,92835,81317],{},[12,92837,92838],{},"Justin is a software engineer and CTO of Achievable, with a background that includes open-sourcing AdWhirl at Google and scaling it to over a billion ad impressions per day. He had been tracking quantum from a distance for years. Interested, but treating it as out of reach.",[12,92840,92841],{},"What changed that? Access. Within a few months they were able to build out their quantum art exhibit and present it to the world.",[79791,92843,92844],{"avatar":81323,"name":81324,"role":81314,"username":3311},[12,92845,81327],{},[25,92847,92849],{"id":92848},"the-idea-behind-quantum-garden","The idea behind Quantum Garden",[12,92851,92852],{},"It started with a feeling. Amber, who co-created the project, has always found deep joy and peace in real gardens; the slow pace of them, the way things grow and fade without asking permission. Justin brought the technical imagination.",[12,92854,92855],{},"Together they asked: what if a garden could be powered by the actual randomness of quantum physics? Not simulated randomness. Real quantum measurement outcomes, run on real hardware, woven permanently into every plant.",[12,92857,92858],{},"The result is an experience that teaches through presence rather than instruction. You're discovering something that was already true instead of making a choice whenever you hover over a plant.",[12,92860,92861],{},"Some plants are entangled with others across the garden; observing one reveals something about a plant you haven't visited yet. A quiet panel slides in afterward, showing the quantum circuit that shaped what you just saw, never intrusive, always dismissible.",[12,92863,92864],{},"The garden doesn't wait for you. It germinates, blooms, and fades on its own timeline. You can step away for a week and come back to find it has gone through something like a season.",[2175,92866],{"alt":92867,"caption":92868,"no":79839,"src":92155},"Garden preview showing 131 digital plants scattered across a soft lavender canvas, with a detail panel open for a selected plant called 'Luminous Tulip'","An interactive garden view: 131 digital plants scattered across a soft lavender-white canvas, with a detail panel open for a selected plant called \"Luminous Tulip\".",[25,92870,84433],{"id":84432},[12,92872,92873],{},"Quantum Garden is built around a core design decision: instead of running quantum circuits live when a visitor arrives (which would be slow and expensive), the team pre-computes a pool of quantum measurement results in advance. Each plant draws from that pool when it's first observed.",[12,92875,92876],{},"This turned a hardware constraint, quantum circuit execution latency, into a feature. The delay became germination. The asynchronous nature of real quantum runs became the reason the garden has its own sense of time.",[519,92878,92879],{"name":3113,"run-href":515,"tag":80587},[524,92880,92882],{"className":526,"code":92881,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\nimport math\n\n# Each plant gets a deterministic seed from its ID hash\nseed = 42\nqc = QuantumCircuit(5, 5)\n\n# 1 · Full superposition — all 32 outcomes are possible\nfor i in range(5):\n    qc.h(i)\n\n# 2 · Seed-based Ry rotations — a unique bias per qubit\nfor i in range(5):\n    qc.ry((seed * (i + 1) * 0.1) % (2 * math.pi), i)\n\n# 3 · Entanglement chain — correlate neighboring qubits\nfor i in range(4):\n    qc.cx(i, i + 1)\n\n# 4 · Cross-entanglement — non-local correlations\nqc.cx(0, 2); qc.cx(1, 3); qc.cx(2, 4)\n\n# Measure → the plant's permanent quantum fingerprint\nqc.measure(range(5), range(5))\ncounts = backend.run(qc, shots=100).result().get_counts()\n",[57,92883,92884,92894,92900,92904,92909,92917,92935,92939,92944,92960,92977,92981,92986,93002,93047,93051,93056,93072,93095,93099,93104,93145,93149,93154,93178],{"__ignoreMap":529},[533,92885,92886,92888,92890,92892],{"class":535,"line":536},[533,92887,877],{"class":539},[533,92889,880],{"class":543},[533,92891,883],{"class":539},[533,92893,1106],{"class":543},[533,92895,92896,92898],{"class":535,"line":547},[533,92897,883],{"class":539},[533,92899,11121],{"class":543},[533,92901,92902],{"class":535,"line":575},[533,92903,891],{"emptyLinePlaceholder":790},[533,92905,92906],{"class":535,"line":590},[533,92907,92908],{"class":593},"# Each plant gets a deterministic seed from its ID hash\n",[533,92910,92911,92913,92915],{"class":535,"line":597},[533,92912,3125],{"class":543},[533,92914,554],{"class":553},[533,92916,39672],{"class":625},[533,92918,92919,92921,92923,92925,92927,92929,92931,92933],{"class":535,"line":603},[533,92920,1121],{"class":543},[533,92922,554],{"class":553},[533,92924,1126],{"class":560},[533,92926,615],{"class":543},[533,92928,1220],{"class":625},[533,92930,1133],{"class":543},[533,92932,1220],{"class":625},[533,92934,637],{"class":543},[533,92936,92937],{"class":535,"line":609},[533,92938,891],{"emptyLinePlaceholder":790},[533,92940,92941],{"class":535,"line":640},[533,92942,92943],{"class":593},"# 1 · Full superposition — all 32 outcomes are possible\n",[533,92945,92946,92948,92950,92952,92954,92956,92958],{"class":535,"line":646},[533,92947,3180],{"class":539},[533,92949,2971],{"class":543},[533,92951,2786],{"class":539},[533,92953,2976],{"class":553},[533,92955,615],{"class":543},[533,92957,1220],{"class":625},[533,92959,1771],{"class":543},[533,92961,92962,92964,92966,92968,92975],{"class":535,"line":658},[533,92963,1799],{"class":543},[533,92965,1148],{"class":560},[533,92967,90639],{"class":543},[533,92969,80059,92970],{"class":80057,"tabindex":80058},[533,92971,92972,92974],{"class":80062,"role":80063},[974,92973,80761],{}," A Hadamard on every qubit puts all 32 outcomes into play at once.",[533,92976,1113],{},[533,92978,92979],{"class":535,"line":680},[533,92980,891],{"emptyLinePlaceholder":790},[533,92982,92983],{"class":535,"line":1536},[533,92984,92985],{"class":593},"# 2 · Seed-based Ry rotations — a unique bias per qubit\n",[533,92987,92988,92990,92992,92994,92996,92998,93000],{"class":535,"line":1552},[533,92989,3180],{"class":539},[533,92991,2971],{"class":543},[533,92993,2786],{"class":539},[533,92995,2976],{"class":553},[533,92997,615],{"class":543},[533,92999,1220],{"class":625},[533,93001,1771],{"class":543},[533,93003,93004,93006,93008,93011,93013,93016,93018,93020,93022,93024,93027,93029,93031,93033,93035,93037,93040,93045],{"class":535,"line":1911},[533,93005,1799],{"class":543},[533,93007,1652],{"class":560},[533,93009,93010],{"class":543},"((seed ",[533,93012,2469],{"class":553},[533,93014,93015],{"class":543}," (i ",[533,93017,6350],{"class":553},[533,93019,6353],{"class":625},[533,93021,7047],{"class":543},[533,93023,2469],{"class":553},[533,93025,93026],{"class":625}," 0.1",[533,93028,7047],{"class":543},[533,93030,64496],{"class":553},[533,93032,5037],{"class":543},[533,93034,1140],{"class":625},[533,93036,2254],{"class":553},[533,93038,93039],{"class":543}," math.pi), i)",[533,93041,80059,93042],{"class":80057,"tabindex":80058},[533,93043,93044],{"class":80062,"role":80063},"A seed-based rotation biases each qubit, so every plant is unique but reproducible.",[533,93046,1113],{},[533,93048,93049],{"class":535,"line":1940},[533,93050,891],{"emptyLinePlaceholder":790},[533,93052,93053],{"class":535,"line":1968},[533,93054,93055],{"class":593},"# 3 · Entanglement chain — correlate neighboring qubits\n",[533,93057,93058,93060,93062,93064,93066,93068,93070],{"class":535,"line":1995},[533,93059,3180],{"class":539},[533,93061,2971],{"class":543},[533,93063,2786],{"class":539},[533,93065,2976],{"class":553},[533,93067,615],{"class":543},[533,93069,1183],{"class":625},[533,93071,1771],{"class":543},[533,93073,93074,93076,93078,93080,93082,93084,93086,93093],{"class":535,"line":4164},[533,93075,1799],{"class":543},[533,93077,4936],{"class":560},[533,93079,6347],{"class":543},[533,93081,6350],{"class":553},[533,93083,6353],{"class":625},[533,93085,2632],{"class":543},[533,93087,80059,93088],{"class":80057,"tabindex":80058},[533,93089,93090,93092],{"class":80062,"role":80063},[974,93091,80823],{}," CNOTs link neighboring qubits, so a plant's traits become correlated.",[533,93094,1113],{},[533,93096,93097],{"class":535,"line":4199},[533,93098,891],{"emptyLinePlaceholder":790},[533,93100,93101],{"class":535,"line":4206},[533,93102,93103],{"class":593},"# 4 · Cross-entanglement — non-local correlations\n",[533,93105,93106,93108,93110,93112,93114,93116,93118,93121,93123,93125,93127,93129,93131,93133,93135,93137,93139,93141,93143],{"class":535,"line":4214},[533,93107,1145],{"class":543},[533,93109,4936],{"class":560},[533,93111,615],{"class":543},[533,93113,1049],{"class":625},[533,93115,1133],{"class":543},[533,93117,1140],{"class":625},[533,93119,93120],{"class":543},"); qc.",[533,93122,4936],{"class":560},[533,93124,615],{"class":543},[533,93126,1052],{"class":625},[533,93128,1133],{"class":543},[533,93130,1157],{"class":625},[533,93132,93120],{"class":543},[533,93134,4936],{"class":560},[533,93136,615],{"class":543},[533,93138,1140],{"class":625},[533,93140,1133],{"class":543},[533,93142,1183],{"class":625},[533,93144,637],{"class":543},[533,93146,93147],{"class":535,"line":11296},[533,93148,891],{"emptyLinePlaceholder":790},[533,93150,93151],{"class":535,"line":11302},[533,93152,93153],{"class":593},"# Measure → the plant's permanent quantum fingerprint\n",[533,93155,93156,93158,93160,93162,93164,93166,93168,93170,93172,93174,93176],{"class":535,"line":11332},[533,93157,1145],{"class":543},[533,93159,1164],{"class":560},[533,93161,615],{"class":543},[533,93163,6692],{"class":553},[533,93165,615],{"class":543},[533,93167,1220],{"class":625},[533,93169,3945],{"class":543},[533,93171,6692],{"class":553},[533,93173,615],{"class":543},[533,93175,1220],{"class":625},[533,93177,1937],{"class":543},[533,93179,93180,93182,93184,93186,93188,93190,93192,93194,93196,93198,93200,93202,93204,93206,93213],{"class":535,"line":11345},[533,93181,5409],{"class":543},[533,93183,554],{"class":553},[533,93185,557],{"class":543},[533,93187,561],{"class":560},[533,93189,904],{"class":543},[533,93191,269],{"class":567},[533,93193,554],{"class":553},[533,93195,4528],{"class":625},[533,93197,1205],{"class":543},[533,93199,1208],{"class":560},[533,93201,1211],{"class":543},[533,93203,1214],{"class":560},[533,93205,41837],{"class":543},[533,93207,80059,93208],{"class":80057,"tabindex":80058},[533,93209,93210,93211,80898],{"class":80062,"role":80063},"Runs on real IonQ hardware through Qollab. ",[57,93212,907],{},[533,93214,1113],{},[79791,93216,93217],{"avatar":81323,"name":81324,"role":81314,"username":3311},[12,93218,81390],{},[12,93220,93221,93222,93226,93227,93229],{},"The rendering system went through similar problem-solving. The team started in ",[19,93223,93225],{"href":93224},"https:\u002F\u002Fpixijs.com","PixiJS",", hit performance walls, and rebuilt in ",[19,93228,80364],{"href":80363}," and WebGL, with an adaptive rendering layer that progressively scales back effects based on device capability. The result has a cosmic, outer-space quality they didn't plan for but kept.",[79791,93231,93232],{"avatar":81312,"name":81313,"role":81314,"username":3311},[12,93233,81346],{},[2175,93235],{"alt":93236,"caption":93237,"no":79857,"src":93238},"The Quantum Garden Seed Box: a grid catalog of 42 plant varieties, each a watercolor botanical illustration","The Seed Box: a grid catalog of 42 plant varieties, each a watercolor-style botanical illustration with its own metadata.","\u002F_content\u002Fimages\u002Fquantum-garden\u002Ffig2-seed-box.webp",[81936,93240,93242],{"lead":93241},"None of this is a black box. Quantum Garden is fully open source, end to end.",[30,93243,93244,93252],{},[33,93245,93246],{},[36,93247,93248,93250],{},[39,93249,81947],{},[39,93251,81950],{},[49,93253,93254,93262,93270,93278],{},[36,93255,93256,93259],{},[54,93257,93258],{},"Stack",[54,93260,93261],{},"Next.js 16 · React 19 · Three.js · Qiskit · IonQ · PostgreSQL",[36,93263,93264,93267],{},[54,93265,93266],{},"Quantum pool",[54,93268,93269],{},"500 authentic results, 100 from each of five circuit types: superposition, Bell pair, GHZ, interference, and the variational circuit above.",[36,93271,93272,93275],{},[54,93273,93274],{},"Observation",[54,93276,93277],{},"Traits reveal in under 50 ms, chosen deterministically from each plant's ID hash. No waiting, and no two gardens alike.",[36,93279,93280,93283],{},[54,93281,93282],{},"Evolution",[54,93284,93285],{},"Runs server-side. The garden germinates, blooms, and fades whether or not anyone is watching.",[25,93287,93289],{"id":93288},"what-theyd-build-next","What they'd build next",[12,93291,93292],{},"Both builders have clear ideas about where the project could go.",[12,93294,93295,93298],{},[974,93296,93297],{},"Justin"," would like to build a generative evolution system: plants combining and merging their quantum circuits to produce offspring, with circuit crossover and mutation as a metaphor for biological genetics. A quantum lineage you could trace from a two-qubit ancestor to increasingly complex descendants.",[12,93300,93301,93304],{},[974,93302,93303],{},"Amber"," wants to extend the concept into a full quantum ecosystem: weather, seasons, ambient soundscapes, and visitor traces all driven by quantum outcomes. A living world that responds to the people who return to it over time.",[12,93306,93307,93308,114],{},"Neither has done it yet. The design space is intentionally left open for others to join, contribute, and ",[19,93309,93310],{"href":515},"add something new",[25,93312,80373],{"id":4321},[12,93314,93315],{},"You don't need a PhD to build with quantum. As Amber and Justin showed, a strong concept plus access to real hardware is enough. The fastest way in is to start from a circuit that already works.",[4321,93317,93320],{"fork-href":515,"live-href":93318,"title":93319},"https:\u002F\u002Fwww.quantum-garden.com\u002F","Start from a circuit that already works.",[12,93321,93322,93323],{},"Fork the Quantum Garden templates and framework, and build your own living world on real hardware. ",[974,93324,4329],{},[773,93326,93327],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":93329},[93330,93331,93332,93333,93334],{"id":92824,"depth":547,"text":92825},{"id":92848,"depth":547,"text":92849},{"id":84432,"depth":547,"text":84433},{"id":93288,"depth":547,"text":93289},{"id":4321,"depth":547,"text":80373},[4349,4637,516],[93337,93345],{"name":81313,"role":93338,"avatar":81312,"bio":93339,"links":93340},"Co-founder · PressRoom AI","A data scientist, SEO strategist, and co-founder of PressRoom AI, drawn to probability, uncertainty, and complex systems across her work in commercial real-estate analytics and AI. A garden lover at heart, and proof that meaningful quantum work no longer requires a physics PhD.",[93341,93343],{"label":4360,"href":93342},"\u002Fu\u002FAmberPincar",{"label":80403,"href":93344},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Famber-wang-\u002F",{"name":81324,"role":93346,"avatar":81323,"bio":93347,"links":93348},"Co-founder & CTO · Achievable","A software engineer and CTO of Achievable whose background includes open-sourcing AdWhirl at Google and scaling it to over a billion ad impressions a day. He tracked quantum from a distance for years, treating it as out of reach, until real hardware and a strong concept changed that.",[93349],{"label":80403,"href":93350},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjustinpincar\u002F",{"username":1037,"name":4354,"role":4355,"avatar":4356},"Amber Wang and Justin Pincar built a living digital garden where every plant gets its form and behavior from circuits run on real quantum hardware.","Qollab's Quantum Creative Challenge asked curious people to build something new with quantum computing. Amber Wang and Justin Pincar built a living digital garden powered by real quantum hardware.",{"href":515,"label":81432},{"image":3107,"alt":93356,"liveUrl":93318},"The Quantum Garden field: digital plants scattered across a soft lavender canvas",{},"\u002F_content\u002Fimages\u002Fquantum-garden\u002Fscreenshot.jpg","\u002Fblog\u002Fquantum-garden","2026-03-25",[],[93363,93364,93365],{"username":6804,"project":80433,"title":6805,"category":80434,"thumb":6806,"to":80435},{"username":3092,"project":80444,"title":3093,"category":80440,"thumb":2743,"to":80445},{"username":81701,"project":86568,"title":81587,"category":81128,"thumb":86569,"to":81694},{"title":93367,"description":93368},"Quantum Creative Project Showcase: Quantum Garden","What if a digital garden could be powered by the actual randomness of quantum physics? Real quantum measurement outcomes, woven permanently into every plant.","blog\u002Fquantum-garden",[80452,4383,80451],"02MAlINZjcLZGic55fNb680XYPkzy9B27_wywaf5MYw",{"id":93373,"title":4411,"authors":93374,"body":93375,"breadcrumb":93590,"builders":93591,"byline":93592,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":93593,"description":93593,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":93594,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":93596,"navigation":790,"newsItems":7,"next":93597,"ogImage":7,"order":547,"outcomes":7,"path":93598,"publishDate":93599,"readingTime":4609,"related":93600,"relatedProjects":7,"seo":93601,"stem":93603,"tags":93604,"track":4616,"trackName":4594,"__hash__":93605},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcode-playground.md",[1603],{"type":9,"value":93376,"toc":93581},[93377,93387,93390,93401,93403,93412,93416,93422,93442,93446,93455,93460,93464,93472,93487,93492,93500,93507,93511,93517,93520,93543,93548,93552,93561,93569,93571],[12,93378,93379,93380,93382,93383,93386],{},"Every project on ",[19,93381,4349],{"href":2941}," comes with a built-in code playground: a full Python and Qiskit editor that runs your circuits right in your browser, whether you are testing on a simulator or executing on real quantum hardware from ",[19,93384,84254],{"href":93385},"https:\u002F\u002Fwww.ionq.com",". No installs, and no local environment to set up.",[12,93388,93389],{},"This guide walks you through running your code, from the editor to your first results.",[5160,93391,93392],{},[12,93393,93394,93397,93398,114],{},[974,93395,93396],{},"Prefer JavaScript?"," Qollab also has a JavaScript \u002F Qiskit framework, with a four-pane visual editor for interactive projects. See ",[19,93399,4745],{"href":93400},"\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Frun-in-javascript",[25,93402,4771],{"id":4770},[12,93404,4774,93405,93407,93408,93411],{},[19,93406,4778],{"href":4777}," in seconds) and to be signed in. To follow along, open a project that already has Qiskit or Python code: any public project works, or ",[19,93409,93410],{"href":4711},"create your own"," first.",[25,93413,93415],{"id":93414},"open-the-editor","Open the editor",[12,93417,93418,93419,93421],{},"Every project page has a ",[974,93420,41],{}," tab, next to Project Card. Open it to find the editor, preloaded with the project's Python script. We built it to stay out of your way:",[753,93423,93424,93430,93436],{},[756,93425,93426,93429],{},[974,93427,93428],{},"Syntax highlighting"," color-codes keywords, calls, and strings so your code is easy to scan.",[756,93431,93432,93435],{},[974,93433,93434],{},"Inline errors"," light up the line that failed, so you know exactly where to look.",[756,93437,93438,93441],{},[974,93439,93440],{},"Focus mode"," expands the editor to fill the screen when you want no distractions. Click the fullscreen icon in the toolbar.",[25,93443,93445],{"id":93444},"switch-to-the-runner","Switch to the runner",[12,93447,93448,93449,93451,93452,93454],{},"The Code tab has two modes. Click ",[974,93450,8963],{}," to leave the editor and open the runner, where you set how many ",[974,93453,269],{}," to take, choose where the circuit runs, and read the console.",[2175,93456],{"alt":93457,"caption":93458,"no":529,"src":93459},"The Code tab in Run Project mode, showing a Shots field, low-probability options, a Run button, and an empty console panel.","The runner: set your shots, then press Run. The Run button is highlighted in orange.","\u002F_content\u002Fimages\u002Fcode-playground\u002Frun-mode.webp",[25,93461,93463],{"id":93462},"choose-where-it-runs","Choose where it runs",[12,93465,4552,93466,93468,93469,93471],{},[974,93467,4555],{},", and a ",[974,93470,5138],{}," dialog opens so you can pick where the circuit executes:",[753,93473,93474,93479],{},[756,93475,93476,93478],{},[974,93477,5146],{}," are free, run right away, and are always available: a built-in simulator, an AWS Braket local simulator, and a set of IBM device-noise simulators. They are the perfect sandbox for testing your logic without spending anything.",[756,93480,93481,93483,93484,93486],{},[974,93482,5152],{}," is the real thing. Choose a physical ",[19,93485,5157],{"href":5156},", such as Aria or Forte. Hardware runs consume credits.",[2175,93488],{"alt":93489,"caption":93490,"no":529,"src":93491},"The Select QPU dialog listing free simulators including the built-in simulator, AWS Braket, and IBM device-noise simulators, with a Run button.","The Select QPU dialog. Start on a free simulator, highlighted in orange, before spending credits on hardware.","\u002F_content\u002Fimages\u002Fcode-playground\u002Fselect-qpu.webp",[5160,93493,93494],{},[12,93495,93496,93499],{},[974,93497,93498],{},"Managing credits:"," running on real hardware consumes credits. Check your balance or set a spending limit in your Qollab profile settings so you always stay within budget.",[5160,93501,93502],{},[12,93503,93504,93506],{},[974,93505,5166],{}," run on a simulator first to catch syntax errors and logic bugs. That way, when you do spend hardware credits, you are running a circuit you have already verified.",[25,93508,93510],{"id":93509},"run-and-read-the-output","Run and read the output",[12,93512,93513,93514,93516],{},"Pick your QPU and press ",[974,93515,4555],{}," in the dialog. The console tracks progress as it loads the runtime and executes, and the results land right below when it finishes. On a simulator that is near-instant; hardware jobs are queued and take longer to resolve.",[12,93518,93519],{},"Here is what you can expect to see:",[753,93521,93522,93531,93537],{},[756,93523,93524,93527,93528,93530],{},[974,93525,93526],{},"Standard output:"," anything your ",[57,93529,9001],{}," statements produce.",[756,93532,93533,93536],{},[974,93534,93535],{},"Errors:"," a clear red traceback pointing to the exact line, if something failed.",[756,93538,93539,93542],{},[974,93540,93541],{},"Circuit and probabilities:"," a diagram of the circuit that ran, and a bar chart of the measurement probabilities for each outcome.",[2175,93544],{"alt":93545,"caption":93546,"no":529,"src":93547},"The console after a run, showing the circuit diagram, a JobStatus.DONE line, the measured counts, and a Probabilities bar chart.","A finished run: the circuit, the counts, and the measurement probabilities, highlighted in orange.","\u002F_content\u002Fimages\u002Fcode-playground\u002Frun-output.webp",[25,93549,93551],{"id":93550},"copy-or-download-your-results","Copy or download your results",[12,93553,93554,93555,93557,93558,93560],{},"The toolbar above the console has a ",[974,93556,9013],{}," button for the console text and a ",[974,93559,9016],{}," button that saves the full output as an HTML file, named with your project and a timestamp. It is a quick way to paste real results into your project write-up.",[5160,93562,93563],{},[12,93564,93565,93568],{},[974,93566,93567],{},"Community impact:"," sharing your hardware run results in your project's write-up is genuinely useful. It lets other learners see real quantum noise and performance without spending their own credits.",[25,93570,5171],{"id":5170},[12,93572,93573,93574,93576,93577,5181,93579,114],{},"The playground needs a modern browser that supports WebAssembly JSPI, such as Chrome, Edge, or Opera. If you see a compatibility warning, switch to one of those. Firefox users can enable it manually: open ",[57,93575,728],{}," and set ",[57,93578,5180],{},[57,93580,1089],{},{"title":529,"searchDepth":547,"depth":547,"links":93582},[93583,93584,93585,93586,93587,93588,93589],{"id":4770,"depth":547,"text":4771},{"id":93414,"depth":547,"text":93415},{"id":93444,"depth":547,"text":93445},{"id":93462,"depth":547,"text":93463},{"id":93509,"depth":547,"text":93510},{"id":93550,"depth":547,"text":93551},{"id":5170,"depth":547,"text":5171},[4349,4350,4594,4411],[],{"username":1603,"name":4349,"role":4597,"avatar":529},"Run Qiskit circuits live in your browser, from editing Python to choosing a QPU and reading your results.",{"image":93595,"alt":4411},"\u002F_content\u002Fimages\u002Fcode-playground\u002Fhero.webp",{},{"slug":4735,"title":5204,"desc":4727},"\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcode-playground","2026-03-06",[],{"title":93602,"description":93593},"Use the Code Playground · Building your first Qollab project","blog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcode-playground",[],"unfAyq8CHnbaTecbdZEJJSnoKEj2aH9tmBkVIYD0Lis",{"id":93607,"title":8724,"authors":93608,"body":93609,"breadcrumb":93939,"builders":93940,"byline":93941,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":93942,"description":93943,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":93944,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":93946,"navigation":790,"newsItems":7,"next":93947,"ogImage":7,"order":536,"outcomes":7,"path":93949,"publishDate":93599,"readingTime":5206,"related":93950,"relatedProjects":7,"seo":93951,"stem":93953,"tags":93954,"track":4616,"trackName":4594,"__hash__":93955},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcreate-project.md",[1603],{"type":9,"value":93610,"toc":93930},[93611,93618,93622,93636,93641,93645,93648,93653,93671,93674,93694,93700,93704,93711,93715,93745,93750,93757,93761,93768,93773,93880,93887,93894,93897,93909,93914,93917,93924,93927],[12,93612,93613,93614,93617],{},"This guide assumes that you have already created a free Qollab account, chosen a username, and are currently signed into the platform. If any of that sounds unfamiliar, don't fret, ",[19,93615,93616],{"href":4777},"sign in or sign up here"," first, then come back to start flexing your quantum muscles.",[25,93619,93621],{"id":93620},"starting-a-new-project","Starting a new project",[12,93623,93624,93625,93628,93629,93631,93632,93635],{},"Click the ",[9404,93626,93627],{},"Add Project"," button on the ",[19,93630,8038],{"href":4604}," page. The same ",[9404,93633,93634],{},"New Project"," action lives in the top navigation and in your account menu. Each one opens the create dialog right where you are, so nothing takes you off the page you were on.",[2175,93637],{"alt":93638,"caption":93639,"no":529,"src":93640},"The Projects page with the Add Project button in the top right corner.","The Projects page, with the “Add Project” button in the top-right corner, highlighted in orange.","\u002F_content\u002Fimages\u002Fcreate-project\u002Fprojects-add-button-2.webp",[25,93642,93644],{"id":93643},"name-your-project","Name your project",[12,93646,93647],{},"The create dialog asks for two things to get started, and both are required.",[2175,93649],{"alt":93650,"caption":93651,"no":529,"src":93652},"The create-project dialog with a Project Title field, a Project description field with a live character counter, an optional template picker, and a two-card code framework choice.","The create dialog: a title, a description, an optional template, and your code framework. The Title field is highlighted in orange.","\u002F_content\u002Fimages\u002Fcreate-project\u002Fcreate-project-modal.webp",[753,93654,93655,93665],{},[756,93656,93657,93660,93661,93664],{},[974,93658,93659],{},"Project Title:"," A concise, descriptive name, for example ",[9404,93662,93663],{},"Quantum Teleportation Visualizer",". Qollab turns this into your project's web address automatically, so there is no separate URL field to fill in. If the name is already taken, a number is added to keep the address unique. You can rename a project later from its settings.",[756,93666,93667,93670],{},[974,93668,93669],{},"Description:"," A short summary of what your project does, up to 240 characters, with a live counter as you type. This is the preview card people see when they browse, so it is worth a sentence that reads well on its own.",[12,93672,93673],{},"Two more choices sit below, and you can leave both on their defaults:",[753,93675,93676,93682],{},[756,93677,93678,93681],{},[974,93679,93680],{},"Start from a template (optional):"," Pick an existing project to begin from, and Qollab copies its code and setup into yours as a starting point. Leave it empty to start from a blank Qiskit script.",[756,93683,93684,93687,93688,93690,93691,93693],{},[974,93685,93686],{},"Code framework:"," Choose ",[9404,93689,8196],{}," (the default) or the ",[9404,93692,4786],{}," wrapper. Each card has an ⓘ tooltip explaining the difference. If you started from a template, this follows the template's framework.",[12,93695,4552,93696,93699],{},[974,93697,93698],{},"Create",", and Qollab opens your new project, ready to fill in.",[25,93701,93703],{"id":93702},"filling-in-your-project","Filling in your project",[12,93705,93706,93707,93710],{},"Your project opens as a ",[974,93708,93709],{},"draft, already in edit mode",", on its own page. Everything the old creation wizard walked through step by step now lives here on the page itself, organized into tabs, so you can work on any part in any order.",[3552,93712,93714],{"id":93713},"the-project-card-tab","The Project Card tab",[12,93716,93717,93718,1576,93721,93724,93725,93728,93729,93731,93732,1133,93734,8239,93736,93738,93739,8668,93741,1324,93743,114],{},"This is where you explain the ",[9404,93719,93720],{},"why",[9404,93722,93723],{},"how"," behind your work: your goals, your approach, and your results, so others can learn from your experience. Write your explanation in Markdown, preview it before publishing, and add math notation for the equations quantum write-ups usually need. The same tab holds an optional ",[974,93726,93727],{},"thumbnail image",", the picture that represents your project wherever it is listed. It is also home to your ",[974,93730,9197],{}," (topics like ",[57,93733,8234],{},[57,93735,9203],{},[57,93737,5823],{}," that help the community find your work), your ",[974,93740,8656],{},[974,93742,9221],{},[974,93744,9225],{},[2175,93746],{"alt":93747,"caption":93748,"no":529,"src":93749},"The Project Card tab in edit mode, showing the Markdown write-up editor, a Tags field, contributors, and repository and website link fields, with a save status line in the header.","The Project Card tab, where your write-up, tags, contributors, and links live. The save status sits in the header, highlighted in orange.","\u002F_content\u002Fimages\u002Fcreate-project\u002Fproject-card-tab.webp",[5160,93751,93752],{},[12,93753,93754,93756],{},[974,93755,93567],{}," Clear details and accurate tags make it easy for the community to discover your work when searching for specific quantum topics. Linking a repository or a live demo lets others review your full research, contribute to your code, or see your work running in the real world.",[3552,93758,93760],{"id":93759},"the-code-tab","The Code tab",[12,93762,93763,93764,93767],{},"The Code tab is where your quantum scripts live. Qollab preloads the editor with a simple Python starter using Qiskit, a two-qubit Bell state circuit, so you have a foundation to build from. Replace it with your own code or build on top of it, and pick where it runs from the ",[974,93765,93766],{},"QPU selector"," on this tab.",[2175,93769],{"alt":93770,"caption":93771,"no":529,"src":93772},"The Code tab, showing the Python and Qiskit editor preloaded with the two-qubit Bell state starter script.","The Code tab, preloaded with a runnable Qiskit starter, the Bell state, highlighted in orange. The QPU selector sits just below the editor.","\u002F_content\u002Fimages\u002Fcreate-project\u002Fproject-code-tab.webp",[524,93774,93776],{"className":526,"code":93775,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\nfrom qiskit.quantum_info import Statevector\n\n# Create a 2-qubit circuit\nqc = QuantumCircuit(2)\n\n# Apply gates\nqc.h(0)  # Hadamard gate on qubit 0\nqc.cx(0, 1)  # CNOT gate (creates entanglement)\n\n# Display the circuit\nprint(qc)\n",[57,93777,93778,93788,93798,93802,93807,93821,93825,93830,93845,93864,93868,93873],{"__ignoreMap":529},[533,93779,93780,93782,93784,93786],{"class":535,"line":536},[533,93781,877],{"class":539},[533,93783,880],{"class":543},[533,93785,883],{"class":539},[533,93787,1106],{"class":543},[533,93789,93790,93792,93794,93796],{"class":535,"line":547},[533,93791,877],{"class":539},[533,93793,84512],{"class":543},[533,93795,883],{"class":539},[533,93797,92299],{"class":543},[533,93799,93800],{"class":535,"line":575},[533,93801,891],{"emptyLinePlaceholder":790},[533,93803,93804],{"class":535,"line":590},[533,93805,93806],{"class":593},"# Create a 2-qubit circuit\n",[533,93808,93809,93811,93813,93815,93817,93819],{"class":535,"line":597},[533,93810,1121],{"class":543},[533,93812,554],{"class":553},[533,93814,1126],{"class":560},[533,93816,615],{"class":543},[533,93818,1140],{"class":625},[533,93820,637],{"class":543},[533,93822,93823],{"class":535,"line":603},[533,93824,891],{"emptyLinePlaceholder":790},[533,93826,93827],{"class":535,"line":609},[533,93828,93829],{"class":593},"# Apply gates\n",[533,93831,93832,93834,93836,93838,93840,93842],{"class":535,"line":640},[533,93833,1145],{"class":543},[533,93835,1148],{"class":560},[533,93837,615],{"class":543},[533,93839,1049],{"class":625},[533,93841,16970],{"class":543},[533,93843,93844],{"class":593},"# Hadamard gate on qubit 0\n",[533,93846,93847,93849,93851,93853,93855,93857,93859,93861],{"class":535,"line":646},[533,93848,1145],{"class":543},[533,93850,4936],{"class":560},[533,93852,615],{"class":543},[533,93854,1049],{"class":625},[533,93856,1133],{"class":543},[533,93858,1052],{"class":625},[533,93860,16970],{"class":543},[533,93862,93863],{"class":593},"# CNOT gate (creates entanglement)\n",[533,93865,93866],{"class":535,"line":658},[533,93867,891],{"emptyLinePlaceholder":790},[533,93869,93870],{"class":535,"line":680},[533,93871,93872],{"class":593},"# Display the circuit\n",[533,93874,93875,93877],{"class":535,"line":1536},[533,93876,917],{"class":553},[533,93878,93879],{"class":543},"(qc)\n",[5160,93881,93882],{},[12,93883,93884,93886],{},[974,93885,93567],{}," Sharing your actual code gives the community a tangible, runnable example to learn from. Others can test your logic, discover new implementation techniques, or build on your foundation to create something entirely new.",[12,93888,93889,93890,93893],{},"There is ",[974,93891,93892],{},"no Save button",". Your work saves on its own as you go, and a status line in the header confirms it, so you can move between tabs or step away without losing anything.",[25,93895,8710],{"id":93896},"publishing",[12,93898,93899,93900,93902,93903,93905,93906,93908],{},"Your draft is private while you work on it. When it is ready to share, click ",[974,93901,8687],{},". There is no separate dialog: the ",[9404,93904,8683],{}," label clears, your project becomes publicly reachable, and this first release is tagged ",[9404,93907,8775],{},". Publishing confirms your work follows the Community Guidelines.",[2175,93910],{"alt":93911,"caption":93912,"no":529,"src":93913},"The project header showing the Draft label next to the project title and the Publish button, both highlighted in orange.","A draft project's header: the _Draft_ label and the _Publish_ button, highlighted in orange.","\u002F_content\u002Fimages\u002Fcreate-project\u002Fproject-publish.webp",[12,93915,93916],{},"After it is live, any further edits save as a draft on top, and the header offers to publish those changes when you want them public. Your published version stays exactly as it is until you choose to update it.",[5160,93918,93919],{},[12,93920,93921,93923],{},[974,93922,93567],{}," Publishing opens your work to collaboration. By sharing it publicly, you invite constructive feedback, spark discussion, and add to the growing, shared knowledge base of the quantum computing community.",[12,93925,93926],{},"We look forward to seeing what you will build and share with the community!",[773,93928,93929],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":93931},[93932,93933,93934,93938],{"id":93620,"depth":547,"text":93621},{"id":93643,"depth":547,"text":93644},{"id":93702,"depth":547,"text":93703,"children":93935},[93936,93937],{"id":93713,"depth":575,"text":93714},{"id":93759,"depth":575,"text":93760},{"id":93896,"depth":547,"text":8710},[4349,4350,4594,8724],[],{"username":1603,"name":4349,"role":4597,"avatar":529},"How project creation works on Qollab now: one short dialog to name your work, then a live project page where you write it up, add your code, and publish when you are ready.","Create and publish a project on Qollab: name it in the create dialog, fill in your write-up and code on the project page, then publish in a single click.",{"image":93945,"alt":8724},"\u002F_content\u002Fimages\u002Fcreate-project\u002Fhero.webp",{},{"slug":93598,"title":93948,"desc":93593},"2 · Use the Code Playground","\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcreate-project",[],{"title":93952,"description":93943},"Create a Project on Qollab · Building your first Qollab project","blog\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fcreate-project",[],"q1OrmOkWHRPV7RCUj-rWAYtDmWFszdNPB0Qv25OKOr8",{"id":93957,"title":93958,"authors":93959,"body":93961,"breadcrumb":94742,"builders":94743,"byline":94744,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":94747,"description":94748,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":94749,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":94751,"navigation":790,"newsItems":7,"next":94752,"ogImage":7,"order":597,"outcomes":7,"path":94755,"publishDate":94756,"readingTime":81459,"related":94757,"relatedProjects":7,"seo":94758,"stem":94760,"tags":94761,"track":94762,"trackName":4583,"__hash__":94763},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-hardware.md","Run circuits on IonQ’s quantum hardware",[93960],"stewart-smith",{"type":9,"value":93962,"toc":94727},[93963,94019,94023,94033,94054,94076,94080,94083,94087,94121,94125,94130,94132,94136,94151,94382,94399,94403,94411,94414,94418,94436,94440,94447,94498,94504,94508,94518,94522,94529,94532,94545,94645,94648,94688,94692,94695,94699,94705,94716,94724],[12,93964,93965,93968,93969,93973,93974,93978,93979,1133,93983,1133,93987,1133,93991,1133,93995,93999,94000,94004,94005,94009,94010,94014,94015,114],{},[19,93966,84254],{"href":93967},"https:\u002F\u002Fwww.ionq.com\u002F"," is a leading quantum hardware startup, developing general-purpose ",[19,93970,93972],{"href":93971},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTrapped-ion_quantum_computer","trapped ion quantum computers"," and accompanying software to generate, optimize, and execute ",[19,93975,93977],{"href":93976},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_circuit","quantum circuits",". In this guide we will ",[19,93980,93982],{"href":93981},"#_1-upgrade-your-ionq-account","upgrade your IonQ account to a paid tier",[19,93984,93986],{"href":93985},"#_2-prepare-our-ionq-project","prepare our IonQ project",[19,93988,93990],{"href":93989},"#_3-confirm-your-ionq-qpu-access","confirm our QPU access",[19,93992,93994],{"href":93993},"#_5-estimate-your-ionq-spend","estimate our IonQ spend",[19,93996,93998],{"href":93997},"#_6-submit-your-circuit-to-ionqs-quantum-hardware-queue","send our quantum circuit to IonQ’s quantum hardware",", and ultimately ",[19,94001,94003],{"href":94002},"#_7-retrieve-ionq-circuit-results-asynchronously","retrieve our quantum circuit’s results asynchronously",". In order to follow along, it is essential that you have completed our previous guides for ",[19,94006,94008],{"href":94007},"\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-setup","installing Python via UV"," (which also covers operating a shell command-line interface), and ",[19,94011,94013],{"href":94012},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup","setting up an IonQ project",". For additional information on IonQ’s SDK, see ",[19,94016,94018],{"href":94017},"https:\u002F\u002Fdocs.ionq.com\u002Fsdks\u002Fqiskit","IonQ’s Qiskit tutorial",[25,94020,94022],{"id":94021},"_1-upgrade-your-ionq-account","1. Upgrade your IonQ account",[12,94024,94025,94026,94028,94029,94032],{},"It’s important to understand that the use of ",[9404,94027,67201],{}," quantum hardware (versus ",[9404,94030,94031],{},"simulated"," quantum hardware) is inherently expensive. Completing this tutorial will require you to purchase compute power from IonQ.",[12,94034,94035,94036,94039,94040,1133,94044,94048,94049,94053],{},"In our ",[19,94037,94038],{"href":94012},"previous IonQ guide"," we have ",[19,94041,94043],{"href":94042},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#_1-create-an-ionq-account","created an IonQ account",[19,94045,94047],{"href":94046},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#_2-generate-an-ionq-api-key","generated an IonQ API key",", and put it to use running a quantum circuit on ",[19,94050,94052],{"href":94051},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#_6-run-your-circuit-on-ionqs-cloud-simulator","IonQ’s quantum simulator",". Fantastic. But this is as far as we can go using IonQ’s free account tier. In order to run our quantum circuit on actual IonQ hardware, you must upgrade to a paid IonQ account.",[12,94055,94056,94057,94060,94061,94065,94066,94070,94071,94075],{},"If you’ve submitted a ",[19,94058,94059],{"href":79644},"Qollab RFP"," and have been approved for a grant, your IonQ account will include a generous number of credits that can be used towards a compute spend. If you do not have available IonQ credits, visit the ",[19,94062,94064],{"href":94063},"https:\u002F\u002Fcloud.ionq.com\u002Fbackends","“Backends” page of your IonQ account",", select a QPU that you would like to use, and click its “Out of Plan, Request Access” badge. Follow the prompts to request access and join a paid account tier. Additionally, you have the option to email ",[19,94067,94069],{"href":94068},"mailto:support@ionq.com","support@ionq.com"," or fill out ",[19,94072,94074],{"href":94073},"https:\u002F\u002Fsupport.ionq.com\u002Fhc\u002Fen-us\u002Frequests\u002Fnew?","this support form"," to discuss account options.",[94077,94078],"cta-link",{"href":94063,"label":94079},"IonQ Backends →",[12,94081,94082],{},"This first step in our guide to running circuits on IonQ’s quantum hardware will take some time because it requires dialogue with real human beings. Be patient. Good things will come.",[25,94084,94086],{"id":94085},"_2-prepare-our-ionq-project","2. Prepare our IonQ project",[12,94088,94035,94089,94091,94092,1133,94096,1133,94100,4801,94104,94108,94109,94112,94113,94116,94117,94120],{},[19,94090,94038],{"href":94012}," we ",[19,94093,94095],{"href":94094},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#_3-create-a-new-project","created a new project",[19,94097,94099],{"href":94098},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#install-ionqs-sdk","installed IonQ’s SDK",[19,94101,94103],{"href":94102},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#_5-update-our-transpile-settings","updated our transpile settings",[19,94105,94107],{"href":94106},"\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup#include-your-key-in-our-project","safely included our IonQ API key inside our project",". If you skipped these steps, now is the perfect time to tend to them as we will build off of their output here. You will also need to ",[19,94110,94111],{"href":94046},"generate an IonQ API key"," if you have not done so already. Once you have ",[19,94114,94115],{"href":93981},"upgraded your IonQ account to a paid tier"," (see above) and prepared your IonQ Python project (as described in our ",[19,94118,94119],{"href":94012},"previous guide","), you will be ready to proceed to the next step.",[25,94122,94124],{"id":94123},"_3-confirm-your-ionq-qpu-access","3. Confirm your IonQ QPU access",[12,94126,94127,94128,114],{},"Your IonQ account has been upgraded, and your local Python project is setup for action. Let’s confirm what IonQ hardware your API key can access. Point your Web browser to the ",[19,94129,94064],{"href":94063},[94077,94131],{"href":94063,"label":94079},[25,94133,94135],{"id":94134},"_4-prepare-our-quantum-circuit","4. Prepare our quantum circuit",[12,94137,94138,94139,94142,94143,94146,94147,94150],{},"Create a new blank file within your project folder, name it ",[57,94140,94141],{},"ionq-hardware-submit.py",", open it with your source code editor, and paste the following code into it. It should look very similar to our ",[57,94144,94145],{},"ionq-simulator.py"," code from our ",[19,94148,94149],{"href":94012},"previous tutorial",". Some differences have been highlighted here:",[524,94152,94154],{"className":526,"code":94153,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\nfrom qiskit_ionq import IonQProvider, ErrorMitigation\n\nqc = QuantumCircuit( 2, name=\"Bell state on IonQ QPU\" )\nqc.h( 0 )\nqc.cx( 0, 1 )\nqc.measure_all()\n\nprovider = IonQProvider()\nbackend = provider.get_backend( \"qpu.aria-1\" )\njob = backend.run( \n    qc, \n    shots=1000,\n    error_mitigation=ErrorMitigation.NO_DEBIASING\n)\nprint( \"Submitted job:\", job.job_id() )\nprint( \"Status:\", job.status() )\n",[57,94155,94156,94166,94182,94186,94218,94230,94246,94255,94259,94269,94295,94308,94313,94324,94342,94346,94366],{"__ignoreMap":529},[533,94157,94158,94160,94162,94164],{"class":535,"line":536},[533,94159,877],{"class":539},[533,94161,880],{"class":543},[533,94163,883],{"class":539},[533,94165,1106],{"class":543},[533,94167,94168,94170,94172,94174,94176],{"class":535,"line":547},[533,94169,877],{"class":539},[533,94171,4435],{"class":543},[533,94173,883],{"class":539},[533,94175,4454],{"class":543},[94177,94178,94179],"mark",{},[533,94180,94181],{"class":543},", ErrorMitigation",[533,94183,94184],{"class":535,"line":575},[533,94185,891],{"emptyLinePlaceholder":790},[533,94187,94188,94190,94192,94194,94197,94199,94201,94203,94205,94208,94213,94215],{"class":535,"line":590},[533,94189,1121],{"class":543},[533,94191,554],{"class":553},[533,94193,1126],{"class":560},[533,94195,94196],{"class":543},"( ",[533,94198,1140],{"class":625},[533,94200,1133],{"class":543},[533,94202,7391],{"class":567},[533,94204,554],{"class":553},[533,94206,94207],{"class":621},"\"Bell state on ",[94177,94209,94210],{},[533,94211,94212],{"class":621},"IonQ QPU",[533,94214,439],{"class":621},[533,94216,94217],{"class":543}," )\n",[533,94219,94220,94222,94224,94226,94228],{"class":535,"line":597},[533,94221,1145],{"class":543},[533,94223,1148],{"class":560},[533,94225,94196],{"class":543},[533,94227,1049],{"class":625},[533,94229,94217],{"class":543},[533,94231,94232,94234,94236,94238,94240,94242,94244],{"class":535,"line":603},[533,94233,1145],{"class":543},[533,94235,4936],{"class":560},[533,94237,94196],{"class":543},[533,94239,1049],{"class":625},[533,94241,1133],{"class":543},[533,94243,1052],{"class":625},[533,94245,94217],{"class":543},[533,94247,94248,94250,94253],{"class":535,"line":609},[533,94249,1145],{"class":543},[533,94251,94252],{"class":560},"measure_all",[533,94254,1217],{"class":543},[533,94256,94257],{"class":535,"line":640},[533,94258,891],{"emptyLinePlaceholder":790},[533,94260,94261,94263,94265,94267],{"class":535,"line":646},[533,94262,4449],{"class":543},[533,94264,554],{"class":553},[533,94266,4454],{"class":560},[533,94268,1217],{"class":543},[533,94270,94271,94273,94275,94277,94279,94281,94283,94291,94293],{"class":535,"line":658},[533,94272,4471],{"class":543},[533,94274,554],{"class":553},[533,94276,4476],{"class":543},[533,94278,4479],{"class":560},[533,94280,94196],{"class":543},[533,94282,439],{"class":621},[94177,94284,94285],{},[94286,94287,94288],"var",{},[533,94289,94290],{"class":621},"qpu.aria-1",[533,94292,439],{"class":621},[533,94294,94217],{"class":543},[533,94296,94297,94299,94301,94303,94305],{"class":535,"line":680},[533,94298,4513],{"class":543},[533,94300,554],{"class":553},[533,94302,557],{"class":543},[533,94304,561],{"class":560},[533,94306,94307],{"class":543},"( \n",[533,94309,94310],{"class":535,"line":1536},[533,94311,94312],{"class":543},"    qc, \n",[533,94314,94315,94318,94320,94322],{"class":535,"line":1552},[533,94316,94317],{"class":567},"    shots",[533,94319,554],{"class":553},[533,94321,1240],{"class":625},[533,94323,1549],{"class":543},[533,94325,94326,94329],{"class":535,"line":1911},[533,94327,94328],{"class":567},"    ",[94177,94330,94331,94334,94336,94339],{},[533,94332,94333],{"class":567},"error_mitigation",[533,94335,554],{"class":553},[533,94337,94338],{"class":543},"ErrorMitigation.",[533,94340,94341],{"class":625},"NO_DEBIASING",[533,94343,94344],{"class":535,"line":1940},[533,94345,637],{"class":543},[533,94347,94348],{"class":535,"line":1968},[94177,94349,94350,94352,94354,94357,94360,94363],{},[533,94351,917],{"class":553},[533,94353,94196],{"class":543},[533,94355,94356],{"class":621},"\"Submitted job:\"",[533,94358,94359],{"class":543},", job.",[533,94361,94362],{"class":560},"job_id",[533,94364,94365],{"class":543},"() )",[533,94367,94368,94370,94372,94375,94377,94379],{"class":535,"line":1995},[533,94369,917],{"class":553},[533,94371,94196],{"class":543},[533,94373,94374],{"class":621},"\"Status:\"",[533,94376,94359],{"class":543},[533,94378,80910],{"class":560},[533,94380,94381],{"class":543},"() )\n",[12,94383,94384,94385,94388,94389,94391,94392,94394,94395,94398],{},"Be certain to swap out the QPU ",[57,94386,94387],{},"id"," in the example above for the ",[57,94390,94387],{}," of a QPU that you have access to. For example, our code above calls upon the ",[57,94393,94290],{}," QPU, but perhaps you are using ",[57,94396,94397],{},"qpu.forte-1",", etc.",[25,94400,94402],{"id":94401},"_5-estimate-your-ionq-spend","5. Estimate your IonQ spend",[12,94404,94405,94406,94410],{},"How much credit might you need for experimenting? ",[19,94407,94409],{"href":94408},"https:\u002F\u002Fwww.ionq.com\u002Fprograms\u002Fresearch-credits\u002Fresource-estimator","IonQ’s Resource Estimator"," enables you to predict your potential spend ahead of time according to your circuit’s number of qubit registers, gates, and so on. Our simple Bell state circuit above, run for one thousand shots, one single time, on IonQ’s “Aria” device without error mitigation, would cost just a bit above USD 12 at current early 2026 rates. But the same setup run on IonQ’s “Forte” architecture with error mitigation enabled would cost nearly USD 170. (You’ll find that the cost of error mitigation is relatively higher for small to medium circuits, and relatively lower for large circuits.) Always use the IonQ’s Resource Estimator beforehand to reduce unwanted surprises.",[94077,94412],{"href":94408,"label":94413},"IonQ Resource Estimator →",[3552,94415,94417],{"id":94416},"a-note-on-error-mitigation","A note on error mitigation",[12,94419,94420,94421,94423,94424,94427,94428,94432,94433,94435],{},"IonQ enables error mitigation be default. In our ",[57,94422,94141],{}," script above, we purposely disable error mitigation. Why would we do this? Because error mitigation is rather expensive and we don’t need it in order to demonstrate how to send jobs to IonQ’s QPUs. However, it’s likely that ",[9404,94425,94426],{},"you will want to enable error mitigation on future jobs"," in order to obtain the most useful results from real quantum hardware. (What is IonQ’s quantum error mitigation, and how does it work? Read ",[19,94429,94431],{"href":94430},"https:\u002F\u002Fdocs.ionq.com\u002Fguides\u002Ferror-mitigation-debiasing","IonQ’s guide to debiasing"," for more information.) Experiment with ",[19,94434,94409],{"href":94408}," and use your own judgement regarding when to employ error mitigation for your own circuits.",[25,94437,94439],{"id":94438},"_6-submit-your-circuit-to-ionqs-quantum-hardware-queue","6. Submit your circuit to IonQ’s quantum hardware queue",[12,94441,94442,94443,94446],{},"It’s time. Everything has led up to this moment of executing your quantum circuit on ",[9404,94444,94445],{},"real quantum hardware."," Enter the following into our shell:",[524,94448,94452],{"className":94449,"code":94450,"language":94451,"meta":529,"style":529},"language-bash shiki shiki-themes one-dark-pro","set -a;\nsource .\u002F.env; \nset +a; \nuv run python ionq-hardware-submit.py\n","bash",[57,94453,94454,94464,94475,94484],{"__ignoreMap":529},[533,94455,94456,94459,94462],{"class":535,"line":536},[533,94457,94458],{"class":553},"set",[533,94460,94461],{"class":625}," -a",[533,94463,2415],{"class":543},[533,94465,94466,94469,94472],{"class":535,"line":547},[533,94467,94468],{"class":553},"source",[533,94470,94471],{"class":621}," .\u002F.env",[533,94473,94474],{"class":543},"; \n",[533,94476,94477,94479,94482],{"class":535,"line":575},[533,94478,94458],{"class":553},[533,94480,94481],{"class":621}," +a",[533,94483,94474],{"class":543},[533,94485,94486,94489,94492,94495],{"class":535,"line":590},[533,94487,94488],{"class":560},"uv",[533,94490,94491],{"class":621}," run",[533,94493,94494],{"class":621}," python",[533,94496,94497],{"class":621}," ionq-hardware-submit.py\n",[12,94499,94500,94501,94503],{},"Our shell will respond with a job ",[57,94502,94387],{},". This is your ticket to read the results of your real quantum operation once those results are ready.",[3552,94505,94507],{"id":94506},"patience-please","Patience, please",[12,94509,94510,94511,94514,94515,114],{},"While simulator results arrive near-instantly (at least for simple circuits), ",[974,94512,94513],{},"hardware jobs are queued, processed in order of their queue index, and take some time to resolve",". To get an overview of current IonQ QPU job queue times, visit your account’s ",[19,94516,94517],{"href":94063},"Backend page",[25,94519,94521],{"id":94520},"_7-retrieve-ionq-circuit-results-asynchronously","7. Retrieve IonQ circuit results asynchronously",[12,94523,94524,94525,114],{},"Once we’ve submitted a job to one of IonQ’s QPUs, we can check on that job’s status using the ",[19,94526,94528],{"href":94527},"https:\u002F\u002Fcloud.ionq.com\u002Fjobs","“My Jobs” tab of your account page",[94077,94530],{"href":94527,"label":94531},"IonQ “My jobs” →",[12,94533,94534,94535,94538,94539,94542,94543,114],{},"You can also programmatically poll the status of a job using a script similar to the following. Create a new file within your project’s folder and name it ",[57,94536,94537],{},"ionq-hardware-results.py",". Copy the following code into your file, replacing “",[57,94540,94541],{},"PASTE_JOB_ID_HERE","” with your real job’s ",[57,94544,94387],{},[524,94546,94548],{"className":526,"code":94547,"language":528,"meta":529,"style":529},"from qiskit_ionq import IonQProvider\n\nprovider = IonQProvider()\nbackend  = provider.get_backend( \"qpu.aria-1\" )\njob = backend.retrieve_job( \"PASTE_JOB_ID_HERE\" )\nprint( job.status() )\nprint( job.get_counts() )\n",[57,94549,94550,94560,94564,94574,94599,94624,94635],{"__ignoreMap":529},[533,94551,94552,94554,94556,94558],{"class":535,"line":536},[533,94553,877],{"class":539},[533,94555,4435],{"class":543},[533,94557,883],{"class":539},[533,94559,4440],{"class":543},[533,94561,94562],{"class":535,"line":547},[533,94563,891],{"emptyLinePlaceholder":790},[533,94565,94566,94568,94570,94572],{"class":535,"line":575},[533,94567,4449],{"class":543},[533,94569,554],{"class":553},[533,94571,4454],{"class":560},[533,94573,1217],{"class":543},[533,94575,94576,94579,94581,94583,94585,94587,94589,94595,94597],{"class":535,"line":590},[533,94577,94578],{"class":543},"backend  ",[533,94580,554],{"class":553},[533,94582,4476],{"class":543},[533,94584,4479],{"class":560},[533,94586,94196],{"class":543},[533,94588,439],{"class":621},[94177,94590,94591],{},[94286,94592,94593],{},[533,94594,94290],{"class":621},[533,94596,439],{"class":621},[533,94598,94217],{"class":543},[533,94600,94601,94603,94605,94607,94610,94612,94614,94620,94622],{"class":535,"line":597},[533,94602,4513],{"class":543},[533,94604,554],{"class":553},[533,94606,557],{"class":543},[533,94608,94609],{"class":560},"retrieve_job",[533,94611,94196],{"class":543},[533,94613,439],{"class":621},[94177,94615,94616],{},[94286,94617,94618],{},[533,94619,94541],{"class":621},[533,94621,439],{"class":621},[533,94623,94217],{"class":543},[533,94625,94626,94628,94631,94633],{"class":535,"line":603},[533,94627,917],{"class":553},[533,94629,94630],{"class":543},"( job.",[533,94632,80910],{"class":560},[533,94634,94381],{"class":543},[533,94636,94637,94639,94641,94643],{"class":535,"line":609},[533,94638,917],{"class":553},[533,94640,94630],{"class":543},[533,94642,1214],{"class":560},[533,94644,94381],{"class":543},[12,94646,94647],{},"Enter the following into your shell, from within your project’s folder:",[524,94649,94651],{"className":94449,"code":94650,"language":94451,"meta":529,"style":529},"set -a; \nsource .\u002F.env; \nset +a; \nuv run python ionq-hardware-results.py\n",[57,94652,94653,94661,94669,94677],{"__ignoreMap":529},[533,94654,94655,94657,94659],{"class":535,"line":536},[533,94656,94458],{"class":553},[533,94658,94461],{"class":625},[533,94660,94474],{"class":543},[533,94662,94663,94665,94667],{"class":535,"line":547},[533,94664,94468],{"class":553},[533,94666,94471],{"class":621},[533,94668,94474],{"class":543},[533,94670,94671,94673,94675],{"class":535,"line":575},[533,94672,94458],{"class":553},[533,94674,94481],{"class":621},[533,94676,94474],{"class":543},[533,94678,94679,94681,94683,94685],{"class":535,"line":590},[533,94680,94488],{"class":560},[533,94682,94491],{"class":621},[533,94684,94494],{"class":621},[533,94686,94687],{"class":621}," ionq-hardware-results.py\n",[25,94689,94691],{"id":94690},"celebrate","Celebrate",[12,94693,94694],{},"Have you received your hardware results yet? Yes? Then you've accomplished a lot: you set up a local toolchain, wrote a Qiskit circuit, and ran it on a real quantum computer. Take a beat and savor the moment.",[25,94696,94698],{"id":94697},"give-your-work-a-public-home","Give your work a public home",[12,94700,94701,94702,94704],{},"You just did the full manual path: upgrading an IonQ account, managing an API key, and estimating spend before every run. You got real results, but they live on your machine. ",[19,94703,4349],{"href":2941}," runs the same quantum hardware straight from your browser, on Qollab credits instead of your own provider account and billing, and every project gets a public page that others can read, run, and fork.",[12,94706,94707,94708,94711,94712,94715],{},"Publishing there turns the circuit you just built into something other people can find and build on, not a file on your laptop. If you are new to Qollab, ",[19,94709,94710],{"href":4711},"create your first project"," to see the full flow. Already have a circuit like this one? ",[19,94713,4387],{"href":94714},"\u002Flearn\u002Fbuilding-your-first-qollab-project\u002Fbring-your-own-code"," puts your local Qiskit straight onto a shareable project page.",[12,94717,94718,94719,94723],{},"For more on the Qiskit SDK itself, IBM's ",[19,94720,94722],{"href":94721},"https:\u002F\u002Fwww.youtube.com\u002F@qiskit","Qiskit YouTube channel"," is an excellent resource.",[773,94725,94726],{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":94728},[94729,94730,94731,94732,94733,94736,94739,94740,94741],{"id":94021,"depth":547,"text":94022},{"id":94085,"depth":547,"text":94086},{"id":94123,"depth":547,"text":94124},{"id":94134,"depth":547,"text":94135},{"id":94401,"depth":547,"text":94402,"children":94734},[94735],{"id":94416,"depth":575,"text":94417},{"id":94438,"depth":547,"text":94439,"children":94737},[94738],{"id":94506,"depth":575,"text":94507},{"id":94520,"depth":547,"text":94521},{"id":94690,"depth":547,"text":94691},{"id":94697,"depth":547,"text":94698},[4349,4350,4583,93958],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Stewart Smith","Creative technologist","Run a quantum circuit on IonQ’s quantum hardware and receive the results asynchronously. Builds upon our previous tutorials for executing quantum circuits on IonQ’s cloud simulator, and installing Python via UV.","Run a quantum circuit on IonQ's real hardware and get the results asynchronously, building on our earlier lessons on the IonQ cloud simulator.",{"image":94750,"alt":93958},"\u002F_content\u002Fimages\u002Fionq-hardware\u002Fhero.webp",{},{"slug":93949,"title":94753,"desc":94754},"Next · Create your first Qollab project","This guide highlights the steps to build and publish your project; a step-by-step walkthrough of Qollab's project creation process, from naming…","\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-hardware","2026-01-09",[],{"title":94759,"description":94748},"Run circuits on IonQ hardware · Quantum computing with Python and Qiskit","blog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-hardware",[],"quantum-computing-with-python","WYfAIh4bmaX-mHXL2Nss5izXwCZHYbdF62DanrXhCO0",{"id":94765,"title":94766,"authors":94767,"body":94768,"breadcrumb":96020,"builders":96021,"byline":96022,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":96023,"description":96024,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":96025,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":96027,"navigation":790,"newsItems":7,"next":96028,"ogImage":7,"order":590,"outcomes":7,"path":96031,"publishDate":96032,"readingTime":96033,"related":96034,"relatedProjects":7,"seo":96035,"stem":96037,"tags":96038,"track":94762,"trackName":4583,"__hash__":96039},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup.md","Setup and simulate with IonQ",[93960],{"type":9,"value":94769,"toc":95999},[94770,94809,94813,94824,94827,94831,94835,94846,94850,94853,94861,94865,94869,94889,94900,94938,94950,94954,94957,94975,94978,94997,95001,95025,95029,95032,95050,95053,95071,95075,95081,95094,95097,95112,95115,95119,95125,95143,95150,95154,95161,95175,95178,95212,95215,95287,95292,95316,95328,95336,95340,95350,95357,95361,95366,95423,95434,95443,95446,95467,95473,95494,95501,95505,95521,95670,95674,95677,95741,95751,95754,95788,95791,95846,95849,95874,95878,95888,95972,95976,95996],[12,94771,94772,93968,94774,93973,94776,93978,94778,1133,94782,1133,94785,1133,94789,94793,94794,94798,94799,94803,94804,94806,94807,114],{},[19,94773,84254],{"href":93967},[19,94775,93972],{"href":93971},[19,94777,93977],{"href":93976},[19,94779,94781],{"href":94780},"#_1-create-an-ionq-account","create an IonQ account",[19,94783,94111],{"href":94784},"#_2-generate-an-ionq-api-key",[19,94786,94788],{"href":94787},"#_3-create-a-new-project","create a new Python project",[19,94790,94792],{"href":94791},"#install-ionqs-sdk","install IonQ’s SDK"," (which is built upon ",[19,94795,94797],{"href":94796},"\u002Flearn\u002Fquantum-computing-with-python\u002Fqiskit-setup","IBM’s Qiskit","), and run an example quantum circuit on ",[19,94800,94802],{"href":94801},"#_6-run-your-circuit-on-ionqs-cloud-simulator","IonQ’s cloud simulator",". In order to follow along, it is essential that you have completed our previous guide for ",[19,94805,94008],{"href":94007},", which also covers operating a shell command-line interface. For additional information on IonQ’s SDK, see ",[19,94808,94018],{"href":94017},[25,94810,94812],{"id":94811},"_1-create-an-ionq-account","1. Create an IonQ account",[12,94814,94815,94816,94819,94820,94823],{},"Together, we are going to code a simple quantum circuit and execute it on IonQ’s cloud-based simulator. In order to connect to IonQ’s servers we must have authorization, and that comes in the form of an IonQ API key. To generate an API key, we must have an IonQ user account. Sign up for a new IonQ account by visiting ",[19,94817,94818],{"href":94818},"https:\u002F\u002Fcloud.ionq.com",". Click on the ",[974,94821,94822],{},"“Get started for free”"," link. From there you can create your account using an email address and password combination.",[94077,94825],{"href":94818,"label":94826},"Sign up for IonQ →",[2175,94828],{"alt":529,"caption":94829,"no":529,"src":94830},"Screen grab of the IonQ signup page with the “Get started for free” link circled in orange by hand.","\u002F_content\u002Fimages\u002Fionq-setup\u002Fionq-signin.webp",[25,94832,94834],{"id":94833},"_2-generate-an-ionq-api-key","2. Generate an IonQ API key",[12,94836,94837,94838,94841,94842,94845],{},"Now that you have created an IonQ account, visit the “API Keys” tab of your account settings page: ",[19,94839,94840],{"href":94840},"https:\u002F\u002Fcloud.ionq.com\u002Fsettings\u002Fkeys",". Log in if you are not presently signed in, then click on the “",[974,94843,94844],{},"Generate key","” button.",[2175,94847],{"alt":529,"caption":94848,"no":529,"src":94849},"Screen grab of IonQ’s “API Keys”tab of the account settings page with the “Generate key” button in the upper-right corner of the interface, circled in orange by hand and a hand-drawn orange arrow pointing to it.","\u002F_content\u002Fimages\u002Fionq-setup\u002Fionq-generate-button.webp",[12,94851,94852],{},"You will be prompted to provide a descriptive name for your key, and to choose an associated project. Note that using special characters in the description field may prevent the “Generate key” button from enabling itself. If you have not created any projects within your IonQ workspace, or have not been added to another account’s IonQ workspace project, you can always choose “Personal Workspace” as your key’s associated project.",[16838,94854,94855],{},[12,94856,94857,94860],{},[974,94858,94859],{},"Caution",": Your API key will only be revealed to you this once. Store it somewhere private and treat it as you would a regular password.",[2175,94862],{"alt":529,"caption":94863,"no":529,"src":94864},"Screen grab of the generated key modal dialogue box (with the actual API key text obscured here).","\u002F_content\u002Fimages\u002Fionq-setup\u002Fionq-key-generated.webp",[25,94866,94868],{"id":94867},"_3-create-a-new-project","3. Create a new project",[12,94870,94871,94872,94874,94875,94878,94879,94883,94884,94888],{},"We’re going to create a new Python project that resides locally on our own machine and communicates with IonQ’s servers. If you have not already followed our guide to ",[19,94873,94008],{"href":94007},", do that now, and then return to this step. That guide explains the easy installation process, and also provides some familiarity with entering basic commands into a shell command-line interface. (If you are currently a ",[57,94876,94877],{},"venv"," user, ",[19,94880,94882],{"href":94881},"https:\u002F\u002Fconda.org\u002F","Conda"," user, or are accustomed to using unmanaged Python, we still strongly encourage you to switch to ",[19,94885,94887],{"href":94886},"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F","UV",". Your future self will thank you.)",[12,94890,94891,94892,94895,94896,94899],{},"Create a new folder on your Desktop titled ",[57,94893,94894],{},"qollab-ionq",". (The exact name and location of this folder doesn’t matter so much, as long as it’s easy for you to access and work with.) Open a new shell prompt. ",[974,94897,94898],{},"Be sure to navigate to inside your project’s folder",", then enter the following command:",[524,94901,94903],{"className":94449,"code":94902,"language":94451,"meta":529,"style":529},"uv python install 3.12; uv python pin 3.12; uv init --app\n",[57,94904,94905],{"__ignoreMap":529},[533,94906,94907,94909,94911,94914,94917,94919,94921,94923,94926,94928,94930,94932,94935],{"class":535,"line":536},[533,94908,94488],{"class":560},[533,94910,94494],{"class":621},[533,94912,94913],{"class":621}," install",[533,94915,94916],{"class":625}," 3.12",[533,94918,2661],{"class":543},[533,94920,94488],{"class":560},[533,94922,94494],{"class":621},[533,94924,94925],{"class":621}," pin",[533,94927,94916],{"class":625},[533,94929,2661],{"class":543},[533,94931,94488],{"class":560},[533,94933,94934],{"class":621}," init",[533,94936,94937],{"class":625}," --app\n",[12,94939,94940,94941,94943,94944,94947,94948,114],{},"This will ensure that a Qiskit-compatible version of Python is installed and that our project is “pinned” to this version. (As of this writing, January 2026, Python 3.12 is the latest release that is fully compatible with the Qiskit SDK core, its various add-on packages that we will use in upcoming tutorials, and IonQ’s SDK. If you are one of those folks that becomes itchy at the prospect of not using the absolute lastest version of Python, be our guest. ",[19,94942,94887],{"href":94886}," makes it quick and easy to switch Python versions.) Finally, the ",[57,94945,94946],{},"init"," command initializes our app, creating several useful default files. If you experience trouble with this step, refer to our more detailed guide to ",[19,94949,94008],{"href":94007},[3552,94951,94953],{"id":94952},"install-ionqs-sdk","Install IonQ’s SDK",[12,94955,94956],{},"IonQ’s SDK is built upon IBM’s Qiskit, allowing us to take advantage of Qiskit’s flourishing ecosystem and IonQ’s unqiue quantum hardware. Enter the following command into our shell to install the latest versions of both IBM’s Qiskit SDK and IonQ’s SDK:",[524,94958,94960],{"className":94449,"code":94959,"language":94451,"meta":529,"style":529},"uv add qiskit qiskit-ionq\n",[57,94961,94962],{"__ignoreMap":529},[533,94963,94964,94966,94969,94972],{"class":535,"line":536},[533,94965,94488],{"class":560},[533,94967,94968],{"class":621}," add",[533,94970,94971],{"class":621}," qiskit",[533,94973,94974],{"class":621}," qiskit-ionq\n",[12,94976,94977],{},"Once this process is complete you can enter the following command into our shell to perform an optional sanity check. If all’s gone well, our shell will respond with an IonQ SDK version number.",[524,94979,94981],{"className":94449,"code":94980,"language":94451,"meta":529,"style":529},"uv run python -c \"import qiskit_ionq; print('IonQ SDK', qiskit_ionq.__version__)\"\n",[57,94982,94983],{"__ignoreMap":529},[533,94984,94985,94987,94989,94991,94994],{"class":535,"line":536},[533,94986,94488],{"class":560},[533,94988,94491],{"class":621},[533,94990,94494],{"class":621},[533,94992,94993],{"class":625}," -c",[533,94995,94996],{"class":621}," \"import qiskit_ionq; print('IonQ SDK', qiskit_ionq.__version__)\"\n",[25,94998,95000],{"id":94999},"_4-handle-your-ionq-api-key","4. Handle your IonQ API key",[12,95002,95003,95004,95007,95008,95011,95012,95015,95016,95019,95020,95024],{},"In order to communicate with IonQ’s servers, our new Python project requires your ",[19,95005,95006],{"href":94784},"IonQ API key",". (Recall that your API key is akin to a password, and should be treated as such.) IonQ’s ",[57,95009,95010],{},"IonQProvider"," package will ",[9404,95013,95014],{},"automatically"," look for an environment variable named ",[57,95017,95018],{},"IONQ_API_KEY",", and we have a few options for safely providing this. (See also ",[19,95021,95023],{"href":95022},"https:\u002F\u002Fdocs.ionq.com\u002Fguides\u002Fmanaging-api-keys","IonQ’s own guide to managing API keys",".)",[3552,95026,95028],{"id":95027},"set-a-key-for-this-shell-session","Set a key for this shell session",[12,95030,95031],{},"This is a quick, temporary solution that will make your API key available to our current shell session. (That means if we close our current shell and open a new one, or execute our Python script from within a different shell session than the one we’ve set your key in, your key value won’t be available to the Python script.) On macOS or Linux, enter the following into our shell:",[524,95033,95035],{"className":94449,"code":95034,"language":94451,"meta":529,"style":529},"export IONQ_API_KEY=\"your_real_key_here\"\n",[57,95036,95037],{"__ignoreMap":529},[533,95038,95039,95042,95045,95047],{"class":535,"line":536},[533,95040,95041],{"class":539},"export",[533,95043,95044],{"class":2387}," IONQ_API_KEY",[533,95046,554],{"class":553},[533,95048,95049],{"class":621},"\"your_real_key_here\"\n",[12,95051,95052],{},"Or on Windows, set it in PowerShell instead:",[524,95054,95056],{"className":94449,"code":95055,"language":94451,"meta":529,"style":529},"$Env:IONQ_API_KEY=\"your_real_key_here\"\n",[57,95057,95058],{"__ignoreMap":529},[533,95059,95060,95063,95065,95067,95069],{"class":535,"line":536},[533,95061,95062],{"class":2387},"$Env",[533,95064,38724],{"class":543},[533,95066,95018],{"class":2387},[533,95068,554],{"class":553},[533,95070,95049],{"class":621},[3552,95072,95074],{"id":95073},"confirm-your-key-is-present","Confirm your key is present",[12,95076,95077,95078,95080],{},"Regardless of whether we set your key only for this current shell session, or for every shell session that your user profile initiates, your key must be present in order to be read by IonQ’s ",[57,95079,95010],{}," package. We can confirm its presence on macOS or Linux by entering the following into our shell:",[524,95082,95084],{"className":94449,"code":95083,"language":94451,"meta":529,"style":529},"echo $IONQ_API_KEY\n",[57,95085,95086],{"__ignoreMap":529},[533,95087,95088,95091],{"class":535,"line":536},[533,95089,95090],{"class":553},"echo",[533,95092,95093],{"class":2387}," $IONQ_API_KEY\n",[12,95095,95096],{},"Or confirm it on Windows with PowerShell:",[524,95098,95100],{"className":94449,"code":95099,"language":94451,"meta":529,"style":529},"echo $Env:IONQ_API_KEY\n",[57,95101,95102],{"__ignoreMap":529},[533,95103,95104,95106,95109],{"class":535,"line":536},[533,95105,95090],{"class":553},[533,95107,95108],{"class":2387}," $Env",[533,95110,95111],{"class":621},":IONQ_API_KEY\n",[12,95113,95114],{},"Our shell should respond with your IonQ API key.",[3552,95116,95118],{"id":95117},"confirm-that-your-key-is-functional","Confirm that your key is functional",[12,95120,95121,95122,95124],{},"Just because ",[57,95123,95018],{}," is available in our environment and contains a value doesn’t necessarily mean we’re authorized to access IonQ’s servers. Enter the following into our shell to confirm that we have access to various IonQ backends:",[524,95126,95128],{"className":94449,"code":95127,"language":94451,"meta":529,"style":529},"uv run python -c \"from qiskit_ionq import IonQProvider; p=IonQProvider(); print([b.name for b in p.backends()])\"\n",[57,95129,95130],{"__ignoreMap":529},[533,95131,95132,95134,95136,95138,95140],{"class":535,"line":536},[533,95133,94488],{"class":560},[533,95135,94491],{"class":621},[533,95137,94494],{"class":621},[533,95139,94993],{"class":625},[533,95141,95142],{"class":621}," \"from qiskit_ionq import IonQProvider; p=IonQProvider(); print([b.name for b in p.backends()])\"\n",[12,95144,95145,95146,95149],{},"Our shell should respond with a list of backends available to your account. Regardless of whether your account is on a free tier or paid tier, you should see a ",[9404,95147,95148],{},"simulator"," profile in this list. If your account in on a paid tier you might also see available hardware profiles. (A free tier account may see a single generic hardware profile that serves as a placeholder, but you will be unable to send jobs to any actual quantum hardware.) If your key is missing or invalid then you will receive an authorization error rather than a list of backend profiles.",[3552,95151,95153],{"id":95152},"include-your-key-in-our-project","Include your key in our project",[12,95155,95156,95157,95160],{},"We’ve entered your key into our shell’s environment and confirmed that it functions. But what about the next time we open a new shell window? Wouldn’t it be easier if going forward our project always had access to your API key? We can accomplish this by creating a hidden “environment file” for our project that will seed our shell environment with your API key (and whatever other variables we may wish to set). Create a ",[57,95158,95159],{},".env"," file inside of our project’s folder, add the following line, and save the file:",[524,95162,95163],{"className":94449,"code":95034,"language":94451,"meta":529,"style":529},[57,95164,95165],{"__ignoreMap":529},[533,95166,95167,95169,95171,95173],{"class":535,"line":536},[533,95168,95041],{"class":539},[533,95170,95044],{"class":2387},[533,95172,554],{"class":553},[533,95174,95049],{"class":621},[12,95176,95177],{},"On macOS or Linux, when we’re ready to use this key we would enter the following into our shell to load our environment file and run a Python script.",[524,95179,95181],{"className":94449,"code":95180,"language":94451,"meta":529,"style":529},"set -a; source .\u002F.env; set +a; uv run python our-future-script.py\n",[57,95182,95183],{"__ignoreMap":529},[533,95184,95185,95187,95189,95191,95193,95195,95197,95199,95201,95203,95205,95207,95209],{"class":535,"line":536},[533,95186,94458],{"class":553},[533,95188,94461],{"class":625},[533,95190,2661],{"class":543},[533,95192,94468],{"class":553},[533,95194,94471],{"class":621},[533,95196,2661],{"class":543},[533,95198,94458],{"class":553},[533,95200,94481],{"class":621},[533,95202,2661],{"class":543},[533,95204,94488],{"class":560},[533,95206,94491],{"class":621},[533,95208,94494],{"class":621},[533,95210,95211],{"class":621}," our-future-script.py\n",[12,95213,95214],{},"Or in Windows PowerShell we would do the following:",[524,95216,95218],{"className":94449,"code":95217,"language":94451,"meta":529,"style":529},"Get-Content .env | ForEach-Object { if ($_ -match '^\\s*([^#=]+?)\\s*=\\s*(.*)\\s*$') { Set-Item -Path \"Env:$($matches[1])\" -Value $matches[2] }}\nuv run python our-future-script.py\n",[57,95219,95220,95277],{"__ignoreMap":529},[533,95221,95222,95225,95228,95231,95234,95236,95238,95241,95244,95247,95250,95253,95256,95259,95262,95265,95268,95271,95274],{"class":535,"line":536},[533,95223,95224],{"class":560},"Get-Content",[533,95226,95227],{"class":621}," .env",[533,95229,95230],{"class":543}," | ",[533,95232,95233],{"class":560},"ForEach-Object",[533,95235,1383],{"class":621},[533,95237,73381],{"class":621},[533,95239,95240],{"class":543}," ($_ ",[533,95242,95243],{"class":625},"-match",[533,95245,95246],{"class":621}," '^\\s*([^#=]+?)\\s*=\\s*(.*)\\s*$'",[533,95248,95249],{"class":543},") { ",[533,95251,95252],{"class":560},"Set-Item",[533,95254,95255],{"class":625}," -Path",[533,95257,95258],{"class":621}," \"Env:$(",[533,95260,95261],{"class":2387},"$matches",[533,95263,95264],{"class":621},"[1])\"",[533,95266,95267],{"class":625}," -Value",[533,95269,95270],{"class":2387}," $matches",[533,95272,95273],{"class":621},"[2]",[533,95275,95276],{"class":621}," }}\n",[533,95278,95279,95281,95283,95285],{"class":535,"line":547},[533,95280,94488],{"class":560},[533,95282,94491],{"class":621},[533,95284,94494],{"class":621},[533,95286,95211],{"class":621},[95288,95289,95291],"h4",{"id":95290},"protect-your-api-key","Protect your API key",[12,95293,95294,95295,95297,95298,95301,95302,95304,95305,95307,95308,95311,95312,95315],{},"Perhaps our project is part of a shared code repository. The last thing we want is to accidentally publish your private API key along with the codebase. In that case, add ",[57,95296,95159],{}," to our ",[57,95299,95300],{},".gitignore"," list. (If the ",[57,95303,95300],{}," does not exist within our project folder, create it, enter the text ",[57,95306,95159],{}," on a single line, and save it.) As a courtesy to our teammates and future selves, also create an ",[9404,95309,95310],{},"example"," environment file that serves as a reminder and template for what information must be provided in order for the project to function. Name this file ",[57,95313,95314],{},".env.example"," and include the following line in it:",[524,95317,95319],{"className":94449,"code":95318,"language":94451,"meta":529,"style":529},"IONQ_API_KEY=\n",[57,95320,95321],{"__ignoreMap":529},[533,95322,95323,95325],{"class":535,"line":536},[533,95324,95018],{"class":2387},[533,95326,95327],{"class":553},"=\n",[12,95329,95330,95331,5181,95333,95335],{},"Now our teammates (or future us) can simply copy this file from ",[57,95332,95314],{},[57,95334,95159],{}," and fill in the appropriate information locally. (This is a standard “don’t leak tokens” pattern.)",[25,95337,95339],{"id":95338},"_5-update-our-transpile-settings","5. Update our transpile settings",[12,95341,95342,95343,95346,95347],{},"There’s always a gap between the theoretical and the actual, between the clear expression of intent and the dirty business of actually making something ",[9404,95344,95345],{},"function."," When we code a quantum circuit, more often than not we are creating idealistically. Part of Qiskit’s magic is that it transforms our quantum circuit design in two ways: It reconfigures our gates for IBM’s specific quantum hardware architecture, and also optimizes our algorithms for maximum efficiency, also based on IBM’s available hardware. This optimization process can reduce register depth, merge gates, and change the overall circuit structure while preserving its semantics. The process of compiling code for one model, then translating that compilation to function on a different model, is called ",[9404,95348,95349],{},"transpiling.",[12,95351,95352,95353,95356],{},"The twist with our scenario is that we are ",[9404,95354,95355],{},"not using IBM’s architecture"," to execute our quantum circuit. We are instead using’s IonQ’s architecture. IonQ’s SDK has its own methods for translating and optimizing our circuit designs, based on its own unique quantum hardware. We want IonQ to have direct access to our original circuit design, not a version that has been “optimized” for some other architecture. (That would be like working from a lossy copy when we have access to the original right in front of us.) In order to hand IonQ’s SDK our original, unaltered circuit design, we must tell Qiskit to only make minimal, necessary changes.",[3552,95358,95360],{"id":95359},"qiskits-transpile-levels","Qiskit’s transpile levels",[12,95362,95363,95364,114],{},"The following table describes each of Qiskit’s transpile levels, its general approach to optimization, and what it’s best suited for. We’re most interested in creating “early experiments” and “transpiling at scale”, and will opt for an optimization level of ",[57,95365,1052],{},[30,95367,95368,95382],{},[33,95369,95370],{},[36,95371,95372,95376,95379],{},[39,95373,95375],{"align":95374},"center","Level",[39,95377,95378],{},"Optimization",[39,95380,95381],{},"Best suited for",[49,95383,95384,95393,95403,95413],{},[36,95385,95386,95388,95390],{},[54,95387,1049],{"align":95374},[54,95389,3838],{},[54,95391,95392],{},"Hardware-native backends (IonQ, neutral atoms), learning, debugging, preserving algorithm structure.",[36,95394,95395,95397,95400],{},[54,95396,1052],{"align":95374},[54,95398,95399],{},"Light",[54,95401,95402],{},"Early experiments, hardware with mild noise, transpiling at scale.",[36,95404,95405,95407,95410],{},[54,95406,1140],{"align":95374},[54,95408,95409],{},"Medium",[54,95411,95412],{},"General IBM hardware usage, balanced workflows.",[36,95414,95415,95417,95420],{},[54,95416,1157],{"align":95374},[54,95418,95419],{},"Heavy",[54,95421,95422],{},"Final production runs on noisy IBM devices.",[12,95424,95425,95426,95429,95430,95433],{},"To ensure that all of our future IonQ circuits run as expected, we can edit Qiskit’s user configuration file. The Qiskit installation process creates a hidden ",[57,95427,95428],{},".qiskit"," folder within your home folder. We need to create (or edit) a ",[57,95431,95432],{},"settings.conf"," file within that folder. On macOS or Linux that location should be:",[524,95435,95437],{"className":94449,"code":95436,"language":94451,"meta":529,"style":529},"~\u002F.qiskit\u002Fsettings.conf\n",[57,95438,95439],{"__ignoreMap":529},[533,95440,95441],{"class":535,"line":536},[533,95442,95436],{"class":543},[12,95444,95445],{},"On Windows that location should be:",[524,95447,95449],{"className":94449,"code":95448,"language":94451,"meta":529,"style":529},"$HOME\\.qiskit\\settings.conf\n",[57,95450,95451],{"__ignoreMap":529},[533,95452,95453,95456,95459,95461,95464],{"class":535,"line":536},[533,95454,95455],{"class":2387},"$HOME",[533,95457,95458],{"class":553},"\\.",[533,95460,8234],{"class":543},[533,95462,95463],{"class":553},"\\s",[533,95465,95466],{"class":543},"ettings.conf\n",[12,95468,95469,95470,95472],{},"Open (or create) that ",[57,95471,95432],{}," file, add the following two lines of code, then save the file:",[524,95474,95478],{"className":95475,"code":95476,"language":95477,"meta":529,"style":529},"language-ini shiki shiki-themes one-dark-pro","[default]\ntranspile_optimization_level = 1\n","ini",[57,95479,95480,95485],{"__ignoreMap":529},[533,95481,95482],{"class":535,"line":536},[533,95483,95484],{"class":560},"[default]\n",[533,95486,95487,95490,95492],{"class":535,"line":547},[533,95488,95489],{"class":539},"transpile_optimization_level",[533,95491,4899],{"class":543},[533,95493,16942],{"class":621},[12,95495,95496,95497,95500],{},"This will prevent Qiskit from making aggressive rewrites to our circuit design, handing it off cleanly to IonQ’s own transpiler. (It will also prevent a warning from IonQ’s SDK when we run our quantum circuit just a bit further down in this tutorial.) For additional information, see IonQ’s article “",[19,95498,95499],{"href":341},"Compilation and native gates with Qiskit",".”",[25,95502,95504],{"id":95503},"_6-run-your-circuit-on-ionqs-cloud-simulator","6. Run your circuit on IonQ’s cloud simulator",[12,95506,95507,95508,4801,95511,95513,95514,95517,95518,95520],{},"With our ",[19,95509,95510],{"href":94007},"UV-initiated project folder",[19,95512,95006],{"href":94784}," in place, we’re ready to use IonQ’s quantum ",[9404,95515,95516],{},"simulator."," Create a new blank file within your project folder named ",[57,95519,94145],{},", open it with your source code editor, paste the following code into it, and save the file:",[524,95522,95524],{"className":526,"code":95523,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\nfrom qiskit_ionq import IonQProvider\n\nqc = QuantumCircuit( 2, name=\"Bell state on IonQ simulator\" )\nqc.h( 0 )\nqc.cx( 0, 1 )\nqc.measure_all()\n\nprovider = IonQProvider()\nbackend  = provider.get_backend( \"simulator\" )\njob = backend.run( qc, shots=1000 )\nprint( job.get_counts() )\n",[57,95525,95526,95536,95546,95550,95573,95585,95601,95609,95613,95623,95639,95660],{"__ignoreMap":529},[533,95527,95528,95530,95532,95534],{"class":535,"line":536},[533,95529,877],{"class":539},[533,95531,880],{"class":543},[533,95533,883],{"class":539},[533,95535,1106],{"class":543},[533,95537,95538,95540,95542,95544],{"class":535,"line":547},[533,95539,877],{"class":539},[533,95541,4435],{"class":543},[533,95543,883],{"class":539},[533,95545,4440],{"class":543},[533,95547,95548],{"class":535,"line":575},[533,95549,891],{"emptyLinePlaceholder":790},[533,95551,95552,95554,95556,95558,95560,95562,95564,95566,95568,95571],{"class":535,"line":590},[533,95553,1121],{"class":543},[533,95555,554],{"class":553},[533,95557,1126],{"class":560},[533,95559,94196],{"class":543},[533,95561,1140],{"class":625},[533,95563,1133],{"class":543},[533,95565,7391],{"class":567},[533,95567,554],{"class":553},[533,95569,95570],{"class":621},"\"Bell state on IonQ simulator\"",[533,95572,94217],{"class":543},[533,95574,95575,95577,95579,95581,95583],{"class":535,"line":597},[533,95576,1145],{"class":543},[533,95578,1148],{"class":560},[533,95580,94196],{"class":543},[533,95582,1049],{"class":625},[533,95584,94217],{"class":543},[533,95586,95587,95589,95591,95593,95595,95597,95599],{"class":535,"line":603},[533,95588,1145],{"class":543},[533,95590,4936],{"class":560},[533,95592,94196],{"class":543},[533,95594,1049],{"class":625},[533,95596,1133],{"class":543},[533,95598,1052],{"class":625},[533,95600,94217],{"class":543},[533,95602,95603,95605,95607],{"class":535,"line":609},[533,95604,1145],{"class":543},[533,95606,94252],{"class":560},[533,95608,1217],{"class":543},[533,95610,95611],{"class":535,"line":640},[533,95612,891],{"emptyLinePlaceholder":790},[533,95614,95615,95617,95619,95621],{"class":535,"line":646},[533,95616,4449],{"class":543},[533,95618,554],{"class":553},[533,95620,4454],{"class":560},[533,95622,1217],{"class":543},[533,95624,95625,95627,95629,95631,95633,95635,95637],{"class":535,"line":658},[533,95626,94578],{"class":543},[533,95628,554],{"class":553},[533,95630,4476],{"class":543},[533,95632,4479],{"class":560},[533,95634,94196],{"class":543},[533,95636,4484],{"class":621},[533,95638,94217],{"class":543},[533,95640,95641,95643,95645,95647,95649,95652,95654,95656,95658],{"class":535,"line":680},[533,95642,4513],{"class":543},[533,95644,554],{"class":553},[533,95646,557],{"class":543},[533,95648,561],{"class":560},[533,95650,95651],{"class":543},"( qc, ",[533,95653,269],{"class":567},[533,95655,554],{"class":553},[533,95657,1240],{"class":625},[533,95659,94217],{"class":543},[533,95661,95662,95664,95666,95668],{"class":535,"line":1536},[533,95663,917],{"class":553},[533,95665,94630],{"class":543},[533,95667,1214],{"class":560},[533,95669,94381],{"class":543},[3552,95671,95673],{"id":95672},"our-first-ionq-bell-state","Our first IonQ Bell state",[12,95675,95676],{},"Before we run our short Python script above, let’s break down what it intends to accomplish. First, we import Qiskit’s tools for describing quantum circuits. Then we import IonQ’s interface for talking to various resources for executing quantum circuits. These two imports are all we need to begin our circuit building journey.",[12,95678,95679,95680,95683,95684,1576,95688,95692,95693,95696,95697,95700,95701,95705,95706,95708,95709,95713,95714,95700,95717,95721,95722,95724,95725,95727,95728,95732,95733,95735,95736,95740],{},"The command ",[57,95681,95682],{},"QuantumCircuit( 2, … )"," creates a quantum circuit composed of two qubit registers, both initialized to a | 0 ⟩ (“ket zero”) state. (Need a refresher on ",[19,95685,95687],{"href":95686},"\u002Flearn\u002Fquantum-foundations\u002Fqubits","qubits",[19,95689,95691],{"href":95690},"\u002Flearn\u002Fquantum-foundations\u002Fqubits#ket-notation","ket notation","? See our ",[19,95694,95695],{"href":95686},"guide to qubits",".) We use the command ",[57,95698,95699],{},"qc.h( 0 )"," to place a ",[19,95702,95704],{"href":95703},"\u002Flearn\u002Fquantum-foundations\u002Fgates#hadamard-gate","Hadamard gate"," onto register ",[57,95707,1049],{},", flipping that qubit into ",[19,95710,95712],{"href":95711},"\u002Flearn\u002Fquantum-foundations\u002Fqubits#superposition","superposition",". Next, we use the command ",[57,95715,95716],{},"qc.cx( 0, 1 )",[19,95718,95720],{"href":95719},"\u002Flearn\u002Fquantum-foundations\u002Fgates#controlled-not-gate","CNOT gate"," across the two registers, using register ",[57,95723,1049],{}," as the control qubit and register ",[57,95726,1052],{}," as the target qubit. This creates a ",[19,95729,95731],{"href":95730},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBell_state","Bell state",", distributing register ",[57,95734,1049],{},"’s superposition across the two qubits, ",[19,95737,95739],{"href":95738},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_entanglement","entangling"," them.",[12,95742,95743,95744,95747,95748,95750],{},"Finally, we use ",[57,95745,95746],{},"qc.measure_all()"," to measure both qubit registers, collapsing the distributed superposition into a definitive value. The two possible measured values are | 00 ⟩ and | 11 ⟩ , each with a 50% probabilty of occurrence. This simulation is run 1,000 times (",[57,95749,832],{},") and the results of these “shots” are output to our shell. While it is extremely unlikely that your result will divide into exactly 500 of each value, it should arrive reasonably close.",[12,95752,95753],{},"Now that we have a better idea of what our script does, let’s execute it. On macOS or Linux, enter the following into our shell to load our environment variables and execute our script:",[524,95755,95757],{"className":94449,"code":95756,"language":94451,"meta":529,"style":529},"set -a; source .\u002F.env; set +a; uv run python ionq-simulator.py\n",[57,95758,95759],{"__ignoreMap":529},[533,95760,95761,95763,95765,95767,95769,95771,95773,95775,95777,95779,95781,95783,95785],{"class":535,"line":536},[533,95762,94458],{"class":553},[533,95764,94461],{"class":625},[533,95766,2661],{"class":543},[533,95768,94468],{"class":553},[533,95770,94471],{"class":621},[533,95772,2661],{"class":543},[533,95774,94458],{"class":553},[533,95776,94481],{"class":621},[533,95778,2661],{"class":543},[533,95780,94488],{"class":560},[533,95782,94491],{"class":621},[533,95784,94494],{"class":621},[533,95786,95787],{"class":621}," ionq-simulator.py\n",[12,95789,95790],{},"Or in Windows PowerShell enter the following:",[524,95792,95794],{"className":94449,"code":95793,"language":94451,"meta":529,"style":529},"Get-Content .env | ForEach-Object { if ($_ -match '^\\s*([^#=]+?)\\s*=\\s*(.*)\\s*$') { Set-Item -Path \"Env:$($matches[1])\" -Value $matches[2] }}\nuv run python ionq-simulator.py\n",[57,95795,95796,95836],{"__ignoreMap":529},[533,95797,95798,95800,95802,95804,95806,95808,95810,95812,95814,95816,95818,95820,95822,95824,95826,95828,95830,95832,95834],{"class":535,"line":536},[533,95799,95224],{"class":560},[533,95801,95227],{"class":621},[533,95803,95230],{"class":543},[533,95805,95233],{"class":560},[533,95807,1383],{"class":621},[533,95809,73381],{"class":621},[533,95811,95240],{"class":543},[533,95813,95243],{"class":625},[533,95815,95246],{"class":621},[533,95817,95249],{"class":543},[533,95819,95252],{"class":560},[533,95821,95255],{"class":625},[533,95823,95258],{"class":621},[533,95825,95261],{"class":2387},[533,95827,95264],{"class":621},[533,95829,95267],{"class":625},[533,95831,95270],{"class":2387},[533,95833,95273],{"class":621},[533,95835,95276],{"class":621},[533,95837,95838,95840,95842,95844],{"class":535,"line":547},[533,95839,94488],{"class":560},[533,95841,94491],{"class":621},[533,95843,94494],{"class":621},[533,95845,95787],{"class":621},[12,95847,95848],{},"Take a patient breath as IonQ’s cloud simulator processes our circuit. In a few moments we should receive results similar to the following:",[524,95850,95852],{"className":94449,"code":95851,"language":94451,"meta":529,"style":529},"{'00': 492, '11': 508}\n",[57,95853,95854],{"__ignoreMap":529},[533,95855,95856,95858,95861,95863,95866,95869,95872],{"class":535,"line":536},[533,95857,626],{"class":543},[533,95859,95860],{"class":560},"'00'",[533,95862,38724],{"class":553},[533,95864,95865],{"class":621}," 492,",[533,95867,95868],{"class":621}," '11':",[533,95870,95871],{"class":625}," 508",[533,95873,1405],{"class":621},[3552,95875,95877],{"id":95876},"optional-use-ionqs-noisy-simulator","Optional: Use IonQ’s “noisy simulator”",[12,95879,95880,95881,95883,95884,95887],{},"In addition to its basic simulator, IonQ provides “noise models” that produce results closer to that of actual quantum hardware. Insert the highlighted line of code below into your existing ",[57,95882,94145],{}," as indicated to use IonQ’s ",[57,95885,95886],{},"aria-1"," noise model in your simulations:",[524,95889,95891],{"className":526,"code":95890,"language":528,"meta":529,"style":529},"provider = IonQProvider()\nbackend  = provider.get_backend( \"simulator\" )\nbackend.set_options( noise_model=\"aria-1\" )\njob = backend.run( qc, shots=1000 )\nprint( job.get_counts() )\n",[57,95892,95893,95903,95919,95942,95962],{"__ignoreMap":529},[533,95894,95895,95897,95899,95901],{"class":535,"line":536},[533,95896,4449],{"class":543},[533,95898,554],{"class":553},[533,95900,4454],{"class":560},[533,95902,1217],{"class":543},[533,95904,95905,95907,95909,95911,95913,95915,95917],{"class":535,"line":547},[533,95906,94578],{"class":543},[533,95908,554],{"class":553},[533,95910,4476],{"class":543},[533,95912,4479],{"class":560},[533,95914,94196],{"class":543},[533,95916,4484],{"class":621},[533,95918,94217],{"class":543},[533,95920,95921],{"class":535,"line":575},[94177,95922,95923,95926,95929,95931,95934,95936,95939],{},[533,95924,95925],{"class":543},"backend.",[533,95927,95928],{"class":560},"set_options",[533,95930,94196],{"class":543},[533,95932,95933],{"class":567},"noise_model",[533,95935,554],{"class":553},[533,95937,95938],{"class":621},"\"aria-1\"",[533,95940,95941],{"class":543}," )",[533,95943,95944,95946,95948,95950,95952,95954,95956,95958,95960],{"class":535,"line":590},[533,95945,4513],{"class":543},[533,95947,554],{"class":553},[533,95949,557],{"class":543},[533,95951,561],{"class":560},[533,95953,95651],{"class":543},[533,95955,269],{"class":567},[533,95957,554],{"class":553},[533,95959,1240],{"class":625},[533,95961,94217],{"class":543},[533,95963,95964,95966,95968,95970],{"class":535,"line":597},[533,95965,917],{"class":553},[533,95967,94630],{"class":543},[533,95969,1214],{"class":560},[533,95971,94381],{"class":543},[25,95973,95975],{"id":95974},"next-steps","Next steps",[12,95977,95978,95979,1133,95981,1133,95983,1133,95986,95988,95989,95991,95992,95995],{},"We’ve ",[19,95980,94043],{"href":94780},[19,95982,94047],{"href":94784},[19,95984,95985],{"href":94787},"created a new Python project",[19,95987,94099],{"href":94791},", and run an example quantum circuit on ",[19,95990,94802],{"href":94801},". (That’s not a bad run for today!) Our next goal is to ",[19,95993,95994],{"href":94},"run quantum circuits on IonQ’s actual quantum hardware",". Keep in mind that this will require a paid tier account and some patience. We must create a support request for accessing IonQ’s QPUs, and wait for that request to be honored. Then once we do have access we must be mindful that QPU jobs are queued for execution and our circuits may need to wait several hours behind previously queued jobs before it’s our turn. When you’re ready to take your quantum journey to the next level join us on the hardware side!",[773,95997,95998],{},"html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}",{"title":529,"searchDepth":547,"depth":547,"links":96000},[96001,96002,96003,96006,96012,96015,96019],{"id":94811,"depth":547,"text":94812},{"id":94833,"depth":547,"text":94834},{"id":94867,"depth":547,"text":94868,"children":96004},[96005],{"id":94952,"depth":575,"text":94953},{"id":94999,"depth":547,"text":95000,"children":96007},[96008,96009,96010,96011],{"id":95027,"depth":575,"text":95028},{"id":95073,"depth":575,"text":95074},{"id":95117,"depth":575,"text":95118},{"id":95152,"depth":575,"text":95153},{"id":95338,"depth":547,"text":95339,"children":96013},[96014],{"id":95359,"depth":575,"text":95360},{"id":95503,"depth":547,"text":95504,"children":96016},[96017,96018],{"id":95672,"depth":575,"text":95673},{"id":95876,"depth":575,"text":95877},{"id":95974,"depth":547,"text":95975},[4349,4350,4583,94766],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Create and leverage a free IonQ account to run an example quantum circuit on IonQ’s cloud simulator. Builds upon our previous tutorials for installing Python via UV, and installing IBM’s Qiskit SDK.","Create a free IonQ account and run an example circuit on IonQ's cloud simulator, building on our earlier Python and Qiskit setup lessons.",{"image":96026,"alt":94766},"\u002F_content\u002Fimages\u002Fionq-setup\u002Fhero.webp",{},{"slug":94755,"title":96029,"desc":96030},"5 · Run circuits on IonQ’s quantum hardware","Run a quantum circuit on IonQ’s quantum hardware and receive the results asynchronously. Builds upon our previous tutorials for executing quantum…","\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup","2026-01-02","18 min read",[],{"title":96036,"description":96024},"Setup and simulate with IonQ · Quantum computing with Python and Qiskit","blog\u002Flearn\u002Fquantum-computing-with-python\u002Fionq-setup",[],"CjdxJFJFHY1cfuztoMqNifBhN128a72FdBtG0FYgdwU",{"id":96041,"title":4594,"authors":96042,"body":96043,"breadcrumb":96047,"builders":7,"byline":96048,"category":7,"categoryName":7,"challenge":7,"courseAuthor":96049,"courseLead":96053,"dek":96054,"description":96055,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":96056,"lessonCount":7,"meta":96057,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":96058,"path":96065,"publishDate":96066,"readingTime":7,"related":96067,"relatedProjects":7,"seo":96068,"stem":96070,"tags":96071,"track":4616,"trackName":7,"__hash__":96072},"blog\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project.md",[1603],{"type":9,"value":96044,"toc":96045},[],{"title":529,"searchDepth":547,"depth":547,"links":96046},[],[4349,4350,4594],{"username":1603,"name":4349,"role":4597,"avatar":529},{"name":4349,"role":4597,"bio":96050,"avatar":529,"links":96051},"Guides from the Qollab team on building, running, and sharing quantum projects on the platform.",[96052],{"label":4360,"href":2941},"This short course gets you from an empty project to a shared one, entirely in your browser. You create a project on Qollab, then use the Code Playground to run a quantum circuit live, choose where it runs, and read your results. You can also fork any public project to build on published work. Nothing to install.","Create a project on Qollab and run your first quantum circuit live in the browser, nothing to install.","Create your first project on Qollab and run quantum circuits live in your browser, with nothing to install. A short, hands-on walkthrough.","landing",{},[96059,96060,96061,96062,96063,96064],"How to create a project on Qollab, from naming it to publishing","How to run a Qiskit circuit live in your browser with the Code Playground","How to build a visual, interactive project in JavaScript with the Qiskit API","How to choose where your circuit runs, from free simulators to real hardware","How to fork a public project and keep building on it","How to bring code you wrote locally into Qollab and run it","\u002Fblog\u002Flearn\u002Fbuilding-your-first-qollab-project","2026-01-01",[],{"title":96069,"description":96055},"Building your first Qollab project · Learn by building","blog\u002Flearn\u002Fbuilding-your-first-qollab-project",[],"1S61xyjoilTjtPGz_EF8FNMVRODDfPtCVS7wT79S4x4",{"id":96074,"title":4583,"authors":96075,"body":96076,"breadcrumb":96080,"builders":7,"byline":96081,"category":7,"categoryName":7,"challenge":7,"courseAuthor":96082,"courseLead":96087,"dek":96088,"description":96089,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":96056,"lessonCount":7,"meta":96090,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":96091,"path":96096,"publishDate":96066,"readingTime":7,"related":96097,"relatedProjects":7,"seo":96098,"stem":96101,"tags":96102,"track":94762,"trackName":7,"__hash__":96103},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python.md",[93960],{"type":9,"value":96077,"toc":96078},[],{"title":529,"searchDepth":547,"depth":547,"links":96079},[],[4349,4350,4583],{"username":93960,"name":94745,"role":94746,"avatar":529},{"name":94745,"role":94746,"bio":96083,"avatar":529,"links":96084},"Stewart Smith is an award-winning creative technologist, artist, writer, and speaker. He’s led innovation teams across ten time zones, and wields wisdom accrued from his years with Google, Amazon, and Unity. Educated as a graphic designer (MFA, Yale University), his work has spanned quantum computing, artificial intelligence, spatial computing, aerospace, and fine art.",[96085],{"label":4360,"href":96086},"\u002Fu\u002Fstewart-smith","This course sets up a real quantum computing toolchain on your own machine. You install Python, UV, and Qiskit, learn the Python you need, then build and run your first circuits, starting on a cloud simulator and moving to real quantum hardware. Qiskit is the through-line, so the skills carry across quantum providers.","Set up Python and Qiskit locally, write your first quantum circuits, and run them on a simulator and then real hardware.","A free, hands-on course: set up Python and Qiskit locally, write your first quantum circuits, and run them on a simulator and real hardware.",{},[96092,96093,96094,96095],"How to set up a local Python, UV, and Qiskit toolchain","The Python basics that quantum programs are written with","How to build and run a Qiskit circuit on a cloud simulator","How to run your first circuit on real quantum hardware","\u002Fblog\u002Flearn\u002Fquantum-computing-with-python",[],{"title":96099,"description":96100},"Quantum computing with Python and Qiskit · Free hands-on course","Learn quantum computing with Python and Qiskit: set up the toolchain locally, write your first circuits, and run them on a simulator and real hardware.","blog\u002Flearn\u002Fquantum-computing-with-python",[],"cs4werQ2-XA7oZsgPR9vlfls97H5Cz9FKpzq969miTI",{"id":96105,"title":96106,"authors":96107,"body":96108,"breadcrumb":97728,"builders":97729,"byline":97730,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":97731,"description":97732,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":97733,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":97735,"navigation":790,"newsItems":7,"next":97736,"ogImage":7,"order":547,"outcomes":7,"path":97740,"publishDate":96066,"readingTime":97741,"related":97742,"relatedProjects":7,"seo":97743,"stem":97745,"tags":97746,"track":94762,"trackName":4583,"__hash__":97747},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-basics.md","Learn Python language basics",[93960],{"type":9,"value":96109,"toc":97698},[96110,96130,96134,96156,96174,96180,96194,96204,96214,96230,96234,96247,96290,96293,96299,96331,96354,96358,96389,96392,96489,96493,96631,96635,96639,96665,96669,96694,96697,96730,96733,96759,96762,96795,96798,96831,96835,96868,96874,96878,96950,96954,96991,96996,97000,97003,97007,97010,97054,97067,97115,97119,97166,97169,97226,97229,97289,97293,97296,97300,97321,97325,97348,97352,97376,97380,97404,97408,97443,97447,97476,97480,97483,97555,97559,97584,97587,97591,97695],[12,96111,96112,96113,96116,96117,96120,96121,96125,96126,96129],{},"This guide assumes that you have already installed the ",[19,96114,96115],{"href":94886},"UV package manager"," and latest version of ",[19,96118,80587],{"href":96119},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPython%3C\u002Fem%3E(programming_language)"," on your machine. It also assumes that you are able to open a ",[19,96122,96124],{"href":96123},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FShell%3C\u002Fem%3E(computing)","shell application",", and are comfortable editing code. If any of that sounds unfamiliar or outside your expertise, don’t fret! We have a simple guide for that: ",[19,96127,96128],{"href":94007},"Setup Python on your machine",". Give that guide a thorough look over first, then come back here to start flexing your code muscles.",[25,96131,96133],{"id":96132},"running-python","Running Python",[12,96135,96136,96137,96141,96142,96145,96146,96148,96149,96152,96153,96155],{},"Python runs line-by-line, like a ",[19,96138,96140],{"href":96139},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRead%E2%80%93eval%E2%80%93print_loop","Read-Evaluate-Print Loop (REPL)",". Python scripts are just plain text files, often with file names ending in a ",[57,96143,96144],{},".py"," suffix. Our code examples rely on the ",[19,96147,96115],{"href":94886},". (See our guide for ",[19,96150,96151],{"href":94007},"Setting up Python and UV on your machine",".) A simple one-line Python script can be run from the command-line shell via ",[57,96154,94488],{}," like so:",[524,96157,96159],{"className":94449,"code":96158,"language":94451,"meta":529,"style":529},"uv run python -c \"print('Hello, World!')\"\n",[57,96160,96161],{"__ignoreMap":529},[533,96162,96163,96165,96167,96169,96171],{"class":535,"line":536},[533,96164,94488],{"class":560},[533,96166,94491],{"class":621},[533,96168,94494],{"class":621},[533,96170,94993],{"class":625},[533,96172,96173],{"class":621}," \"print('Hello, World!')\"\n",[12,96175,96176,96177,96179],{},"To enter a full Python REPL via ",[57,96178,94488],{},", enter the following into your shell:",[524,96181,96183],{"className":94449,"code":96182,"language":94451,"meta":529,"style":529},"uv run python\n",[57,96184,96185],{"__ignoreMap":529},[533,96186,96187,96189,96191],{"class":535,"line":536},[533,96188,94488],{"class":560},[533,96190,94491],{"class":621},[533,96192,96193],{"class":621}," python\n",[12,96195,96196,96197,354,96200,96203],{},"To exit the Python REPL, type ",[57,96198,96199],{},"exit()",[57,96201,96202],{},"quit()"," and press Enter. For Python 3.13 and later, those parenthesis may be omitted.",[12,96205,96206,96207,96209,96210,96213],{},"To run a Python script file via ",[57,96208,94488],{},", enter the following, replacing ",[57,96211,96212],{},"main.py"," with the name of the script you wish to execute.",[524,96215,96217],{"className":94449,"code":96216,"language":94451,"meta":529,"style":529},"uv run python main.py\n",[57,96218,96219],{"__ignoreMap":529},[533,96220,96221,96223,96225,96227],{"class":535,"line":536},[533,96222,94488],{"class":560},[533,96224,94491],{"class":621},[533,96226,94494],{"class":621},[533,96228,96229],{"class":621}," main.py\n",[25,96231,96233],{"id":96232},"basic-syntax","Basic Syntax",[12,96235,96236,96239,96240,1133,96242,8239,96244,96246],{},[974,96237,96238],{},"Variable creation is implicit",". Unlike other scripting languages, there’s no ",[57,96241,94286],{},[57,96243,2566],{},[57,96245,2615],{}," keywords required in order to create a variable handle. Assignment binds a name to a value:",[524,96248,96250],{"className":526,"code":96249,"language":528,"meta":529,"style":529},"x = 10\ny = \"hello\"\nz = [1, 2, 3]\n",[57,96251,96252,96261,96270],{"__ignoreMap":529},[533,96253,96254,96256,96258],{"class":535,"line":536},[533,96255,14994],{"class":543},[533,96257,554],{"class":553},[533,96259,96260],{"class":625}," 10\n",[533,96262,96263,96265,96267],{"class":535,"line":547},[533,96264,76956],{"class":543},[533,96266,554],{"class":553},[533,96268,96269],{"class":621}," \"hello\"\n",[533,96271,96272,96274,96276,96278,96280,96282,96284,96286,96288],{"class":535,"line":575},[533,96273,78285],{"class":543},[533,96275,554],{"class":553},[533,96277,13464],{"class":543},[533,96279,1052],{"class":625},[533,96281,1133],{"class":543},[533,96283,1140],{"class":625},[533,96285,1133],{"class":543},[533,96287,1157],{"class":625},[533,96289,14965],{"class":543},[12,96291,96292],{},"Everything is an object. Variables are labels, not boxes.",[12,96294,96295,96298],{},[974,96296,96297],{},"Indentation"," (not curly braces or other visible characters) defines scope blocks:",[524,96300,96302],{"className":526,"code":96301,"language":528,"meta":529,"style":529},"if cond:\n    do_something()\nelse:\n    do_other()\n",[57,96303,96304,96311,96318,96324],{"__ignoreMap":529},[533,96305,96306,96308],{"class":535,"line":536},[533,96307,5724],{"class":539},[533,96309,96310],{"class":543}," cond:\n",[533,96312,96313,96316],{"class":535,"line":547},[533,96314,96315],{"class":560},"    do_something",[533,96317,1217],{"class":543},[533,96319,96320,96322],{"class":535,"line":575},[533,96321,7221],{"class":539},[533,96323,544],{"class":543},[533,96325,96326,96329],{"class":535,"line":590},[533,96327,96328],{"class":560},"    do_other",[533,96330,1217],{"class":543},[12,96332,96333,96336,96337,96341,96342,96345,96346,96350,96351,96353],{},[974,96334,96335],{},"Indentation is semantic",", that is, your ",[19,96338,96340],{"href":96339},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FNegative_space","negative space"," carries logical meaning. Therefore, your code must consistenly use ",[9404,96343,96344],{},"either"," tabs or spaces for indentation without deviation. The ",[19,96347,96349],{"href":96348},"https:\u002F\u002Fpeps.python.org\u002Fpep-0008\u002F","offical style guide for Python (“PEP 8”)"," specifies an indentation level as ",[974,96352,1183],{}," spaces wide.",[25,96355,96357],{"id":96356},"functions","Functions",[524,96359,96361],{"className":526,"code":96360,"language":528,"meta":529,"style":529},"def add(a, b):\n    return a + b\n",[57,96362,96363,96379],{"__ignoreMap":529},[533,96364,96365,96367,96369,96371,96373,96375,96377],{"class":535,"line":536},[533,96366,1754],{"class":539},[533,96368,94968],{"class":560},[533,96370,615],{"class":543},[533,96372,19],{"class":1762},[533,96374,1133],{"class":543},[533,96376,6086],{"class":1762},[533,96378,1771],{"class":543},[533,96380,96381,96383,96385,96387],{"class":535,"line":547},[533,96382,1880],{"class":539},[533,96384,11510],{"class":543},[533,96386,6350],{"class":553},[533,96388,11515],{"class":543},[12,96390,96391],{},"Python functions capture variables lexically (like JS closures), but the write rules differ, explained in scoping below. Default arguments are evaluated once (careful!):",[524,96393,96395],{"className":526,"code":96394,"language":528,"meta":529,"style":529},"def append_to_list(value, lst=[]):  # BAD\n    lst.append(value)\n    return lst\nUse:\ndef append_to_list(value, lst=None):\n    if lst is None:\n        lst = []\n    return lst\n",[57,96396,96397,96419,96429,96436,96441,96461,96474,96483],{"__ignoreMap":529},[533,96398,96399,96401,96404,96406,96408,96410,96413,96416],{"class":535,"line":536},[533,96400,1754],{"class":539},[533,96402,96403],{"class":560}," append_to_list",[533,96405,615],{"class":543},[533,96407,71351],{"class":1762},[533,96409,1133],{"class":543},[533,96411,96412],{"class":1762},"lst",[533,96414,96415],{"class":543},"=[]):  ",[533,96417,96418],{"class":593},"# BAD\n",[533,96420,96421,96424,96426],{"class":535,"line":547},[533,96422,96423],{"class":543},"    lst.",[533,96425,6216],{"class":560},[533,96427,96428],{"class":543},"(value)\n",[533,96430,96431,96433],{"class":535,"line":575},[533,96432,1880],{"class":539},[533,96434,96435],{"class":543}," lst\n",[533,96437,96438],{"class":535,"line":590},[533,96439,96440],{"class":543},"Use:\n",[533,96442,96443,96445,96447,96449,96451,96453,96455,96457,96459],{"class":535,"line":597},[533,96444,1754],{"class":539},[533,96446,96403],{"class":560},[533,96448,615],{"class":543},[533,96450,71351],{"class":1762},[533,96452,1133],{"class":543},[533,96454,96412],{"class":1762},[533,96456,554],{"class":543},[533,96458,3838],{"class":625},[533,96460,1771],{"class":543},[533,96462,96463,96465,96468,96470,96472],{"class":535,"line":603},[533,96464,1814],{"class":539},[533,96466,96467],{"class":543}," lst ",[533,96469,3900],{"class":539},[533,96471,3906],{"class":625},[533,96473,544],{"class":543},[533,96475,96476,96479,96481],{"class":535,"line":609},[533,96477,96478],{"class":543},"        lst ",[533,96480,554],{"class":553},[533,96482,42383],{"class":543},[533,96484,96485,96487],{"class":535,"line":640},[533,96486,1880],{"class":539},[533,96488,96435],{"class":543},[25,96490,96492],{"id":96491},"classes-python-style-oop","Classes (Python-style OOP)",[524,96494,96496],{"className":526,"code":96495,"language":528,"meta":529,"style":529},"class Car:\n    def __init__(self, make):\n        self.make = make\n\n    def honk(self):\n        print(\"beep\")\n\nc = Car(\"Tesla\")\nc.honk()\nMethods need self explicitly. Inheritance uses the class name:\nclass SportsCar(Car):\n    pass\n",[57,96497,96498,96507,96526,96539,96543,96556,96567,96571,96586,96596,96613,96627],{"__ignoreMap":529},[533,96499,96500,96502,96505],{"class":535,"line":536},[533,96501,11173],{"class":539},[533,96503,96504],{"class":2393}," Car",[533,96506,544],{"class":543},[533,96508,96509,96511,96514,96516,96519,96521,96524],{"class":535,"line":547},[533,96510,41897],{"class":539},[533,96512,96513],{"class":553}," __init__",[533,96515,615],{"class":543},[533,96517,2981],{"class":96518},"sKU4T",[533,96520,1133],{"class":543},[533,96522,96523],{"class":1762},"make",[533,96525,1771],{"class":543},[533,96527,96528,96531,96534,96536],{"class":535,"line":575},[533,96529,96530],{"class":2393},"        self",[533,96532,96533],{"class":543},".make ",[533,96535,554],{"class":553},[533,96537,96538],{"class":543}," make\n",[533,96540,96541],{"class":535,"line":590},[533,96542,891],{"emptyLinePlaceholder":790},[533,96544,96545,96547,96550,96552,96554],{"class":535,"line":597},[533,96546,41897],{"class":539},[533,96548,96549],{"class":560}," honk",[533,96551,615],{"class":543},[533,96553,2981],{"class":96518},[533,96555,1771],{"class":543},[533,96557,96558,96560,96562,96565],{"class":535,"line":603},[533,96559,45979],{"class":553},[533,96561,615],{"class":543},[533,96563,96564],{"class":621},"\"beep\"",[533,96566,637],{"class":543},[533,96568,96569],{"class":535,"line":609},[533,96570,891],{"emptyLinePlaceholder":790},[533,96572,96573,96575,96577,96579,96581,96584],{"class":535,"line":640},[533,96574,65612],{"class":543},[533,96576,554],{"class":553},[533,96578,96504],{"class":560},[533,96580,615],{"class":543},[533,96582,96583],{"class":621},"\"Tesla\"",[533,96585,637],{"class":543},[533,96587,96588,96591,96594],{"class":535,"line":646},[533,96589,96590],{"class":543},"c.",[533,96592,96593],{"class":560},"honk",[533,96595,1217],{"class":543},[533,96597,96598,96601,96603,96606,96608,96611],{"class":535,"line":658},[533,96599,96600],{"class":543},"Methods need ",[533,96602,2981],{"class":2393},[533,96604,96605],{"class":543}," explicitly. Inheritance uses the ",[533,96607,11173],{"class":539},[533,96609,96610],{"class":2393}," name",[533,96612,544],{"class":543},[533,96614,96615,96617,96620,96622,96625],{"class":535,"line":680},[533,96616,11173],{"class":539},[533,96618,96619],{"class":2393}," SportsCar",[533,96621,615],{"class":543},[533,96623,96624],{"class":2393},"Car",[533,96626,1771],{"class":543},[533,96628,96629],{"class":535,"line":1536},[533,96630,66777],{"class":539},[25,96632,96634],{"id":96633},"collections","Collections",[3552,96636,96638],{"id":96637},"list-array","List (array)",[524,96640,96642],{"className":526,"code":96641,"language":528,"meta":529,"style":529},"a = [1, 2, 3]\n",[57,96643,96644],{"__ignoreMap":529},[533,96645,96646,96649,96651,96653,96655,96657,96659,96661,96663],{"class":535,"line":536},[533,96647,96648],{"class":543},"a ",[533,96650,554],{"class":553},[533,96652,13464],{"class":543},[533,96654,1052],{"class":625},[533,96656,1133],{"class":543},[533,96658,1140],{"class":625},[533,96660,1133],{"class":543},[533,96662,1157],{"class":625},[533,96664,14965],{"class":543},[3552,96666,96668],{"id":96667},"tuple-immutable","Tuple (immutable)",[524,96670,96672],{"className":526,"code":96671,"language":528,"meta":529,"style":529},"t = (1, 2, 3)\n",[57,96673,96674],{"__ignoreMap":529},[533,96675,96676,96678,96680,96682,96684,96686,96688,96690,96692],{"class":535,"line":536},[533,96677,19416],{"class":543},[533,96679,554],{"class":553},[533,96681,5037],{"class":543},[533,96683,1052],{"class":625},[533,96685,1133],{"class":543},[533,96687,1140],{"class":625},[533,96689,1133],{"class":543},[533,96691,1157],{"class":625},[533,96693,637],{"class":543},[3552,96695,96696],{"id":40776},"Dict",[524,96698,96700],{"className":526,"code":96699,"language":528,"meta":529,"style":529},"d = {\"name\": \"Stewart\", \"role\": \"CTO\"}\n",[57,96701,96702],{"__ignoreMap":529},[533,96703,96704,96707,96709,96711,96713,96715,96718,96720,96723,96725,96728],{"class":535,"line":536},[533,96705,96706],{"class":543},"d ",[533,96708,554],{"class":553},[533,96710,1383],{"class":543},[533,96712,4022],{"class":621},[533,96714,1389],{"class":543},[533,96716,96717],{"class":621},"\"Stewart\"",[533,96719,1133],{"class":543},[533,96721,96722],{"class":621},"\"role\"",[533,96724,1389],{"class":543},[533,96726,96727],{"class":621},"\"CTO\"",[533,96729,1405],{"class":543},[3552,96731,96732],{"id":94458},"Set",[524,96734,96736],{"className":526,"code":96735,"language":528,"meta":529,"style":529},"s = {1, 2, 3}\n",[57,96737,96738],{"__ignoreMap":529},[533,96739,96740,96743,96745,96747,96749,96751,96753,96755,96757],{"class":535,"line":536},[533,96741,96742],{"class":543},"s ",[533,96744,554],{"class":553},[533,96746,1383],{"class":543},[533,96748,1052],{"class":625},[533,96750,1133],{"class":543},[533,96752,1140],{"class":625},[533,96754,1133],{"class":543},[533,96756,1157],{"class":625},[533,96758,1405],{"class":543},[12,96760,96761],{},"List comprehensions:",[524,96763,96765],{"className":526,"code":96764,"language":528,"meta":529,"style":529},"squares = [x*x for x in range(10)]\n",[57,96766,96767],{"__ignoreMap":529},[533,96768,96769,96772,96774,96777,96779,96781,96783,96785,96787,96789,96791,96793],{"class":535,"line":536},[533,96770,96771],{"class":543},"squares ",[533,96773,554],{"class":553},[533,96775,96776],{"class":543}," [x",[533,96778,2469],{"class":553},[533,96780,14994],{"class":543},[533,96782,3180],{"class":539},[533,96784,12662],{"class":543},[533,96786,2786],{"class":539},[533,96788,2976],{"class":553},[533,96790,615],{"class":543},[533,96792,1579],{"class":625},[533,96794,19758],{"class":543},[12,96796,96797],{},"Dictionary comprehensions:",[524,96799,96801],{"className":526,"code":96800,"language":528,"meta":529,"style":529},"doubles = {x: x*2 for x in range(5)}\n",[57,96802,96803],{"__ignoreMap":529},[533,96804,96805,96808,96810,96813,96815,96817,96819,96821,96823,96825,96827,96829],{"class":535,"line":536},[533,96806,96807],{"class":543},"doubles ",[533,96809,554],{"class":553},[533,96811,96812],{"class":543}," {x: x",[533,96814,2469],{"class":553},[533,96816,1140],{"class":625},[533,96818,88146],{"class":539},[533,96820,12662],{"class":543},[533,96822,2786],{"class":539},[533,96824,2976],{"class":553},[533,96826,615],{"class":543},[533,96828,1220],{"class":625},[533,96830,87129],{"class":543},[25,96832,96834],{"id":96833},"modules-imports","Modules \u002F Imports",[524,96836,96838],{"className":526,"code":96837,"language":528,"meta":529,"style":529},"import math\nfrom pathlib import Path\nfrom mymodule import helper\n",[57,96839,96840,96846,96856],{"__ignoreMap":529},[533,96841,96842,96844],{"class":535,"line":536},[533,96843,883],{"class":539},[533,96845,11121],{"class":543},[533,96847,96848,96850,96852,96854],{"class":535,"line":547},[533,96849,877],{"class":539},[533,96851,39301],{"class":543},[533,96853,883],{"class":539},[533,96855,39306],{"class":543},[533,96857,96858,96860,96863,96865],{"class":535,"line":575},[533,96859,877],{"class":539},[533,96861,96862],{"class":543}," mymodule ",[533,96864,883],{"class":539},[533,96866,96867],{"class":543}," helper\n",[12,96869,96870,96871,114],{},"Scripts are modules. Packages are directories with ",[57,96872,96873],{},"__init__.py",[25,96875,96877],{"id":96876},"exceptions","Exceptions",[524,96879,96881],{"className":526,"code":96880,"language":528,"meta":529,"style":529},"try:\n    risky()\nexcept ValueError:\n    print(\"Nope\")\nexcept Exception as e:\n    print(\"Other error:\", e)\nfinally:\n    cleanup()\n",[57,96882,96883,96889,96896,96903,96914,96924,96936,96943],{"__ignoreMap":529},[533,96884,96885,96887],{"class":535,"line":536},[533,96886,688],{"class":539},[533,96888,544],{"class":543},[533,96890,96891,96894],{"class":535,"line":547},[533,96892,96893],{"class":560},"    risky",[533,96895,1217],{"class":543},[533,96897,96898,96900],{"class":535,"line":575},[533,96899,64604],{"class":539},[533,96901,96902],{"class":543}," ValueError:\n",[533,96904,96905,96907,96909,96912],{"class":535,"line":590},[533,96906,612],{"class":553},[533,96908,615],{"class":543},[533,96910,96911],{"class":621},"\"Nope\"",[533,96913,637],{"class":543},[533,96915,96916,96918,96920,96922],{"class":535,"line":597},[533,96917,64604],{"class":539},[533,96919,651],{"class":543},[533,96921,584],{"class":539},[533,96923,587],{"class":543},[533,96925,96926,96928,96930,96933],{"class":535,"line":603},[533,96927,612],{"class":553},[533,96929,615],{"class":543},[533,96931,96932],{"class":621},"\"Other error:\"",[533,96934,96935],{"class":543},", e)\n",[533,96937,96938,96941],{"class":535,"line":609},[533,96939,96940],{"class":539},"finally",[533,96942,544],{"class":543},[533,96944,96945,96948],{"class":535,"line":640},[533,96946,96947],{"class":560},"    cleanup",[533,96949,1217],{"class":543},[25,96951,96953],{"id":96952},"file-io","File I\u002FO",[524,96955,96957],{"className":526,"code":96956,"language":528,"meta":529,"style":529},"with open(\"data.txt\") as f:\n    text = f.read()\n",[57,96958,96959,96976],{"__ignoreMap":529},[533,96960,96961,96963,96965,96967,96970,96972,96974],{"class":535,"line":536},[533,96962,76820],{"class":539},[533,96964,76823],{"class":553},[533,96966,615],{"class":543},[533,96968,96969],{"class":621},"\"data.txt\"",[533,96971,7047],{"class":543},[533,96973,584],{"class":539},[533,96975,76840],{"class":543},[533,96977,96978,96981,96983,96986,96989],{"class":535,"line":547},[533,96979,96980],{"class":543},"    text ",[533,96982,554],{"class":553},[533,96984,96985],{"class":543}," f.",[533,96987,96988],{"class":560},"read",[533,96990,1217],{"class":543},[12,96992,4657,96993,96995],{},[57,96994,76820],{}," block ensures cleanup (context manager).",[25,96997,96999],{"id":96998},"python-variable-scoping-legb-rule","Python Variable Scoping (LEGB Rule)",[12,97001,97002],{},"Python scoping follows L-E-G-B: - Local, inside current function - Enclosing, outer function scopes (closures) - Global, module-level - Built-in, len, print, etc This is very similar to JavaScript lexical scoping except Python treats assignment differently.",[3552,97004,97006],{"id":97005},"important-rule","Important Rule",[12,97008,97009],{},"Any variable you assign to inside a function is considered local unless you explicitly declare otherwise. This catches people:",[524,97011,97013],{"className":526,"code":97012,"language":528,"meta":529,"style":529},"x = 10\n\ndef f():\n    print(x)     # ERROR? Actually, UnboundLocalError!\n    x = 20\n",[57,97014,97015,97023,97027,97035,97045],{"__ignoreMap":529},[533,97016,97017,97019,97021],{"class":535,"line":536},[533,97018,14994],{"class":543},[533,97020,554],{"class":553},[533,97022,96260],{"class":625},[533,97024,97025],{"class":535,"line":547},[533,97026,891],{"emptyLinePlaceholder":790},[533,97028,97029,97031,97033],{"class":535,"line":575},[533,97030,1754],{"class":539},[533,97032,42413],{"class":560},[533,97034,2795],{"class":543},[533,97036,97037,97039,97042],{"class":535,"line":590},[533,97038,612],{"class":553},[533,97040,97041],{"class":543},"(x)     ",[533,97043,97044],{"class":593},"# ERROR? Actually, UnboundLocalError!\n",[533,97046,97047,97050,97052],{"class":535,"line":597},[533,97048,97049],{"class":543},"    x ",[533,97051,554],{"class":553},[533,97053,39599],{"class":625},[12,97055,97056,97057,97060,97061,97063,97064,97066],{},"Why? Because the presence of ",[57,97058,97059],{},"x = 20"," makes ",[57,97062,29076],{}," local to ",[57,97065,618],{},". Python sees “you assign to x somewhere in the function” → therefore x is local everywhere in that function. To mutate the module-level x:",[524,97068,97070],{"className":526,"code":97069,"language":528,"meta":529,"style":529},"x = 10\n\ndef f():\n    global x\n    print(x)\n    x = 20\n",[57,97071,97072,97080,97084,97092,97100,97107],{"__ignoreMap":529},[533,97073,97074,97076,97078],{"class":535,"line":536},[533,97075,14994],{"class":543},[533,97077,554],{"class":553},[533,97079,96260],{"class":625},[533,97081,97082],{"class":535,"line":547},[533,97083,891],{"emptyLinePlaceholder":790},[533,97085,97086,97088,97090],{"class":535,"line":575},[533,97087,1754],{"class":539},[533,97089,42413],{"class":560},[533,97091,2795],{"class":543},[533,97093,97094,97097],{"class":535,"line":590},[533,97095,97096],{"class":539},"    global",[533,97098,97099],{"class":543}," x\n",[533,97101,97102,97104],{"class":535,"line":597},[533,97103,612],{"class":553},[533,97105,97106],{"class":543},"(x)\n",[533,97108,97109,97111,97113],{"class":535,"line":603},[533,97110,97049],{"class":543},[533,97112,554],{"class":553},[533,97114,39599],{"class":625},[3552,97116,97118],{"id":97117},"closures-enclosing-scope","Closures (Enclosing scope)",[524,97120,97122],{"className":526,"code":97121,"language":528,"meta":529,"style":529},"def outer():\n    x = 10\n    def inner():\n        print(x)     # OK\n    inner()\n",[57,97123,97124,97133,97141,97150,97159],{"__ignoreMap":529},[533,97125,97126,97128,97131],{"class":535,"line":536},[533,97127,1754],{"class":539},[533,97129,97130],{"class":560}," outer",[533,97132,2795],{"class":543},[533,97134,97135,97137,97139],{"class":535,"line":547},[533,97136,97049],{"class":543},[533,97138,554],{"class":553},[533,97140,96260],{"class":625},[533,97142,97143,97145,97148],{"class":535,"line":575},[533,97144,41897],{"class":539},[533,97146,97147],{"class":560}," inner",[533,97149,2795],{"class":543},[533,97151,97152,97154,97156],{"class":535,"line":590},[533,97153,45979],{"class":553},[533,97155,97041],{"class":543},[533,97157,97158],{"class":593},"# OK\n",[533,97160,97161,97164],{"class":535,"line":597},[533,97162,97163],{"class":560},"    inner",[533,97165,1217],{"class":543},[12,97167,97168],{},"But trying to assign inside the closure fails:",[524,97170,97172],{"className":526,"code":97171,"language":528,"meta":529,"style":529},"def outer():\n    x = 10\n    def inner():\n        x = 20      # This creates NEW local x\n    inner()\n    print(x)        # still 10\n",[57,97173,97174,97182,97190,97198,97210,97216],{"__ignoreMap":529},[533,97175,97176,97178,97180],{"class":535,"line":536},[533,97177,1754],{"class":539},[533,97179,97130],{"class":560},[533,97181,2795],{"class":543},[533,97183,97184,97186,97188],{"class":535,"line":547},[533,97185,97049],{"class":543},[533,97187,554],{"class":553},[533,97189,96260],{"class":625},[533,97191,97192,97194,97196],{"class":535,"line":575},[533,97193,41897],{"class":539},[533,97195,97147],{"class":560},[533,97197,2795],{"class":543},[533,97199,97200,97202,97204,97207],{"class":535,"line":590},[533,97201,84723],{"class":543},[533,97203,554],{"class":553},[533,97205,97206],{"class":625}," 20",[533,97208,97209],{"class":593},"      # This creates NEW local x\n",[533,97211,97212,97214],{"class":535,"line":597},[533,97213,97163],{"class":560},[533,97215,1217],{"class":543},[533,97217,97218,97220,97223],{"class":535,"line":603},[533,97219,612],{"class":553},[533,97221,97222],{"class":543},"(x)        ",[533,97224,97225],{"class":593},"# still 10\n",[12,97227,97228],{},"To mutate the enclosing scope’s variable use nonlocal:",[524,97230,97232],{"className":526,"code":97231,"language":528,"meta":529,"style":529},"def outer():\n    x = 10\n    def inner():\n        nonlocal x\n        x = 20\n    inner()\n    print(x)   # 20\n",[57,97233,97234,97242,97250,97258,97265,97273,97279],{"__ignoreMap":529},[533,97235,97236,97238,97240],{"class":535,"line":536},[533,97237,1754],{"class":539},[533,97239,97130],{"class":560},[533,97241,2795],{"class":543},[533,97243,97244,97246,97248],{"class":535,"line":547},[533,97245,97049],{"class":543},[533,97247,554],{"class":553},[533,97249,96260],{"class":625},[533,97251,97252,97254,97256],{"class":535,"line":575},[533,97253,41897],{"class":539},[533,97255,97147],{"class":560},[533,97257,2795],{"class":543},[533,97259,97260,97263],{"class":535,"line":590},[533,97261,97262],{"class":539},"        nonlocal",[533,97264,97099],{"class":543},[533,97266,97267,97269,97271],{"class":535,"line":597},[533,97268,84723],{"class":543},[533,97270,554],{"class":553},[533,97272,39599],{"class":625},[533,97274,97275,97277],{"class":535,"line":603},[533,97276,97163],{"class":560},[533,97278,1217],{"class":543},[533,97280,97281,97283,97286],{"class":535,"line":609},[533,97282,612],{"class":553},[533,97284,97285],{"class":543},"(x)   ",[533,97287,97288],{"class":593},"# 20\n",[25,97290,97292],{"id":97291},"pythonic-style-cheat-sheet","Pythonic Style Cheat Sheet",[12,97294,97295],{},"Idiomatic ways to write things:",[3552,97297,97299],{"id":97298},"iteration","Iteration",[524,97301,97303],{"className":526,"code":97302,"language":528,"meta":529,"style":529},"for x in items:\n    ...\n",[57,97304,97305,97316],{"__ignoreMap":529},[533,97306,97307,97309,97311,97313],{"class":535,"line":536},[533,97308,3180],{"class":539},[533,97310,12662],{"class":543},[533,97312,2786],{"class":539},[533,97314,97315],{"class":543}," items:\n",[533,97317,97318],{"class":535,"line":547},[533,97319,97320],{"class":625},"    ...\n",[3552,97322,97324],{"id":97323},"enumerate-with-index","Enumerate with index",[524,97326,97328],{"className":526,"code":97327,"language":528,"meta":529,"style":529},"for i, x in enumerate(items):\n    ...\n",[57,97329,97330,97344],{"__ignoreMap":529},[533,97331,97332,97334,97337,97339,97341],{"class":535,"line":536},[533,97333,3180],{"class":539},[533,97335,97336],{"class":543}," i, x ",[533,97338,2786],{"class":539},[533,97340,13380],{"class":553},[533,97342,97343],{"class":543},"(items):\n",[533,97345,97346],{"class":535,"line":547},[533,97347,97320],{"class":625},[3552,97349,97351],{"id":97350},"iterate-dict","Iterate dict",[524,97353,97355],{"className":526,"code":97354,"language":528,"meta":529,"style":529},"for k, v in d.items():\n    ...\n",[57,97356,97357,97372],{"__ignoreMap":529},[533,97358,97359,97361,97363,97365,97368,97370],{"class":535,"line":536},[533,97360,3180],{"class":539},[533,97362,4183],{"class":543},[533,97364,2786],{"class":539},[533,97366,97367],{"class":543}," d.",[533,97369,2792],{"class":560},[533,97371,2795],{"class":543},[533,97373,97374],{"class":535,"line":547},[533,97375,97320],{"class":625},[3552,97377,97379],{"id":97378},"ternary","Ternary",[524,97381,97383],{"className":526,"code":97382,"language":528,"meta":529,"style":529},"msg = \"ok\" if status else \"bad\"\n",[57,97384,97385],{"__ignoreMap":529},[533,97386,97387,97390,97392,97395,97397,97399,97401],{"class":535,"line":536},[533,97388,97389],{"class":543},"msg ",[533,97391,554],{"class":553},[533,97393,97394],{"class":621}," \"ok\"",[533,97396,73381],{"class":539},[533,97398,88951],{"class":543},[533,97400,7221],{"class":539},[533,97402,97403],{"class":621}," \"bad\"\n",[3552,97405,97407],{"id":97406},"with-open-file-handling","With-open file handling",[524,97409,97411],{"className":526,"code":97410,"language":528,"meta":529,"style":529},"with open(\"file.txt\") as f:\n    data = f.read()\n",[57,97412,97413,97430],{"__ignoreMap":529},[533,97414,97415,97417,97419,97421,97424,97426,97428],{"class":535,"line":536},[533,97416,76820],{"class":539},[533,97418,76823],{"class":553},[533,97420,615],{"class":543},[533,97422,97423],{"class":621},"\"file.txt\"",[533,97425,7047],{"class":543},[533,97427,584],{"class":539},[533,97429,76840],{"class":543},[533,97431,97432,97435,97437,97439,97441],{"class":535,"line":547},[533,97433,97434],{"class":543},"    data ",[533,97436,554],{"class":553},[533,97438,96985],{"class":543},[533,97440,96988],{"class":560},[533,97442,1217],{"class":543},[3552,97444,97446],{"id":97445},"write-generator-expression","Write generator expression",[524,97448,97450],{"className":526,"code":97449,"language":528,"meta":529,"style":529},"total = sum(x*x for x in nums)\n",[57,97451,97452],{"__ignoreMap":529},[533,97453,97454,97456,97458,97460,97463,97465,97467,97469,97471,97473],{"class":535,"line":536},[533,97455,86403],{"class":543},[533,97457,554],{"class":553},[533,97459,88139],{"class":553},[533,97461,97462],{"class":543},"(x",[533,97464,2469],{"class":553},[533,97466,14994],{"class":543},[533,97468,3180],{"class":539},[533,97470,12662],{"class":543},[533,97472,2786],{"class":539},[533,97474,97475],{"class":543}," nums)\n",[25,97477,97479],{"id":97478},"tiny-gotchas-you-should-know-immediately","Tiny “gotchas” you should know immediately",[12,97481,97482],{},"Mutability matters. Lists, dicts, sets = mutable. Tuples, ints, strings = immutable. Everything is reference by default.",[524,97484,97486],{"className":526,"code":97485,"language":528,"meta":529,"style":529},"a = [1,2]\nb = a\nb.append(3)\na == [1,2,3]\u002F\u002F True!\n\n",[57,97487,97488,97504,97514,97527],{"__ignoreMap":529},[533,97489,97490,97492,97494,97496,97498,97500,97502],{"class":535,"line":536},[533,97491,96648],{"class":543},[533,97493,554],{"class":553},[533,97495,13464],{"class":543},[533,97497,1052],{"class":625},[533,97499,2464],{"class":543},[533,97501,1140],{"class":625},[533,97503,14965],{"class":543},[533,97505,97506,97509,97511],{"class":535,"line":547},[533,97507,97508],{"class":543},"b ",[533,97510,554],{"class":553},[533,97512,97513],{"class":543}," a\n",[533,97515,97516,97519,97521,97523,97525],{"class":535,"line":575},[533,97517,97518],{"class":543},"b.",[533,97520,6216],{"class":560},[533,97522,615],{"class":543},[533,97524,1157],{"class":625},[533,97526,637],{"class":543},[533,97528,97529,97531,97533,97535,97537,97539,97541,97543,97545,97547,97550,97552],{"class":535,"line":590},[533,97530,96648],{"class":543},[533,97532,2768],{"class":553},[533,97534,13464],{"class":543},[533,97536,1052],{"class":625},[533,97538,2464],{"class":543},[533,97540,1140],{"class":625},[533,97542,2464],{"class":543},[533,97544,1157],{"class":625},[533,97546,30516],{"class":543},[533,97548,97549],{"class":553},"\u002F\u002F",[533,97551,71998],{"class":625},[533,97553,97554],{"class":543},"!\n",[25,97556,97558],{"id":97557},"truthiness","Truthiness:",[524,97560,97562],{"className":526,"code":97561,"language":528,"meta":529,"style":529},"0, \"\", [], {}, None, False → falsey\n",[57,97563,97564],{"__ignoreMap":529},[533,97565,97566,97568,97570,97572,97575,97577,97579,97581],{"class":535,"line":536},[533,97567,1049],{"class":625},[533,97569,1133],{"class":543},[533,97571,41862],{"class":621},[533,97573,97574],{"class":543},", [], {}, ",[533,97576,3838],{"class":625},[533,97578,1133],{"class":543},[533,97580,1930],{"class":625},[533,97582,97583],{"class":543}," → falsey\n",[12,97585,97586],{},"Everything else is truthy.",[25,97588,97590],{"id":97589},"_10-line-example-that-uses-everything-above","10-line example that uses everything above",[524,97592,97594],{"className":526,"code":97593,"language":528,"meta":529,"style":529},"def make_counter():\n    count = 0\n    def inc():\n        nonlocal count\n        count += 1\n        return count\n    return inc\n\ncounter = make_counter()\nprint(counter())  # 1\nprint(counter())  # 2\n",[57,97595,97596,97605,97614,97623,97630,97639,97645,97652,97656,97667,97682],{"__ignoreMap":529},[533,97597,97598,97600,97603],{"class":535,"line":536},[533,97599,1754],{"class":539},[533,97601,97602],{"class":560}," make_counter",[533,97604,2795],{"class":543},[533,97606,97607,97610,97612],{"class":535,"line":547},[533,97608,97609],{"class":543},"    count ",[533,97611,554],{"class":553},[533,97613,16932],{"class":625},[533,97615,97616,97618,97621],{"class":535,"line":575},[533,97617,41897],{"class":539},[533,97619,97620],{"class":560}," inc",[533,97622,2795],{"class":543},[533,97624,97625,97627],{"class":535,"line":590},[533,97626,97262],{"class":539},[533,97628,97629],{"class":543}," count\n",[533,97631,97632,97635,97637],{"class":535,"line":597},[533,97633,97634],{"class":543},"        count ",[533,97636,2843],{"class":553},[533,97638,16942],{"class":625},[533,97640,97641,97643],{"class":535,"line":603},[533,97642,4169],{"class":539},[533,97644,97629],{"class":543},[533,97646,97647,97649],{"class":535,"line":609},[533,97648,1880],{"class":539},[533,97650,97651],{"class":543}," inc\n",[533,97653,97654],{"class":535,"line":640},[533,97655,891],{"emptyLinePlaceholder":790},[533,97657,97658,97661,97663,97665],{"class":535,"line":646},[533,97659,97660],{"class":543},"counter ",[533,97662,554],{"class":553},[533,97664,97602],{"class":560},[533,97666,1217],{"class":543},[533,97668,97669,97671,97673,97676,97679],{"class":535,"line":658},[533,97670,917],{"class":553},[533,97672,615],{"class":543},[533,97674,97675],{"class":560},"counter",[533,97677,97678],{"class":543},"())  ",[533,97680,97681],{"class":593},"# 1\n",[533,97683,97684,97686,97688,97690,97692],{"class":535,"line":680},[533,97685,917],{"class":553},[533,97687,615],{"class":543},[533,97689,97675],{"class":560},[533,97691,97678],{"class":543},[533,97693,97694],{"class":593},"# 2\n",[773,97696,97697],{},"html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}html pre.shiki code .sKU4T, html code.shiki .sKU4T{--shiki-default:#E5C07B;--shiki-default-font-style:italic}",{"title":529,"searchDepth":547,"depth":547,"links":97699},[97700,97701,97702,97703,97704,97710,97711,97712,97713,97717,97725,97726,97727],{"id":96132,"depth":547,"text":96133},{"id":96232,"depth":547,"text":96233},{"id":96356,"depth":547,"text":96357},{"id":96491,"depth":547,"text":96492},{"id":96633,"depth":547,"text":96634,"children":97705},[97706,97707,97708,97709],{"id":96637,"depth":575,"text":96638},{"id":96667,"depth":575,"text":96668},{"id":40776,"depth":575,"text":96696},{"id":94458,"depth":575,"text":96732},{"id":96833,"depth":547,"text":96834},{"id":96876,"depth":547,"text":96877},{"id":96952,"depth":547,"text":96953},{"id":96998,"depth":547,"text":96999,"children":97714},[97715,97716],{"id":97005,"depth":575,"text":97006},{"id":97117,"depth":575,"text":97118},{"id":97291,"depth":547,"text":97292,"children":97718},[97719,97720,97721,97722,97723,97724],{"id":97298,"depth":575,"text":97299},{"id":97323,"depth":575,"text":97324},{"id":97350,"depth":575,"text":97351},{"id":97378,"depth":575,"text":97379},{"id":97406,"depth":575,"text":97407},{"id":97445,"depth":575,"text":97446},{"id":97478,"depth":547,"text":97479},{"id":97557,"depth":547,"text":97558},{"id":97589,"depth":547,"text":97590},[4349,4350,4583,96106],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Python has become the de facto programming language of quantum computing. This guide highlights some basic Python commands and logic; foundational elements to build from.","Python has become the de facto language of quantum computing. This guide covers the basic Python commands and logic to build from.",{"image":97734,"alt":96106},"\u002F_content\u002Fimages\u002Fpython-basics\u002Fhero.webp",{},{"slug":97737,"title":97738,"desc":97739},"\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fqiskit-setup","3 · Setup IBM’s Qiskit SDK","This guide details how to install IBM’s Qiskit quantum computing packages for Python, using the UV package manager.","\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-basics","5 min read",[],{"title":97744,"description":97732},"Learn Python language basics · Quantum computing with Python and Qiskit","blog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-basics",[],"c7PweoFX9GMulYF7u2G4Sl7e5IT940ynYI_xv6ylyI4",{"id":97749,"title":96128,"authors":97750,"body":97751,"breadcrumb":98676,"builders":98677,"byline":98678,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":98679,"description":98679,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":98680,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":98682,"navigation":790,"newsItems":7,"next":98683,"ogImage":7,"order":536,"outcomes":7,"path":98686,"publishDate":96066,"readingTime":98687,"related":98688,"relatedProjects":7,"seo":98689,"stem":98691,"tags":98692,"track":94762,"trackName":4583,"__hash__":98693},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-setup.md",[93960],{"type":9,"value":97752,"toc":98651},[97753,97790,97794,97815,97819,97836,97840,97866,97899,97903,97937,97941,97958,97964,97968,97986,98002,98006,98013,98028,98048,98052,98059,98063,98077,98083,98095,98101,98110,98113,98117,98120,98134,98138,98141,98144,98148,98151,98165,98173,98177,98180,98198,98211,98215,98218,98235,98241,98245,98248,98252,98255,98262,98274,98278,98281,98286,98298,98302,98309,98312,98323,98335,98339,98345,98357,98360,98397,98400,98428,98432,98435,98449,98452,98468,98474,98478,98517,98530,98627,98629,98632,98648],[12,97754,97755,97756,97759,97760,97763,97764,97766,97767,97769,97770,97773,97774,97777,97778,97781,97782,97785,97786,97789],{},"Like any language, ",[19,97757,80587],{"href":97758},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPython_(programming_language)"," is a collection of ",[9404,97761,97762],{},"ideas"," for how to communicate. We can’t download and install ",[9404,97765,97762],{},". But we can download and install a ",[9404,97768,88584],{}," that follows these ideas to the letter; using them as a strict guide for translating our commands into action. This sort of program is called an ",[9404,97771,97772],{},"interpreter."," For brevity we’re going to use “Python” interchangeably to refer to both the ",[9404,97775,97776],{},"language (ideas)"," and the actual ",[9404,97779,97780],{},"interpreter software"," that puts those ideas into action. When you encounter phrases like “running Python” you’ll know this actually means running a Python ",[9404,97783,97784],{},"interpreter"," to make use of the Python ",[9404,97787,97788],{},"language."," Let’s get to it.",[25,97791,97793],{"id":97792},"juggling-pythons","Juggling pythons",[12,97795,97796,97797,97800,97801,97805,97806,8239,97810,97814],{},"There are many versions of Python. Perhaps your computer shipped with a particular version of Python pre-installed by the manufacturer. This is referred to as your “System Python” because it’s a specific version of Python used by your machine’s ",[9404,97798,97799],{},"operating system",", like ",[19,97802,97804],{"href":97803},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMacOS","Apple’s macOS",", or a brand of ",[19,97807,97809],{"href":97808},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux","Linux",[19,97811,97813],{"href":97812},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMicrosoft_Windows","Microsoft’s Windows",". Because your OS relies on its System Python remaining exactly in its current state (with its specific version, settings, plugins, and so on), we’d like to leave it untouched. Thankfully, it’s easy to install multiple versions of Python alongside each other, keeping them completely separate from one another. (Installing multiple versions of Python is a common practice, and it doesn’t take up much hard drive space.)",[25,97816,97818],{"id":97817},"_1-open-a-shell","1. Open a “shell”",[12,97820,97821,97822,97826,97827,97831,97832,114],{},"A “shell” is a program that allows you to enter text-based commands through a ",[19,97823,97825],{"href":97824},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCommand-line_interface","command-line interface"," (or “CLI” for short). This is in contrast to a ",[19,97828,97830],{"href":97829},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGraphical_user_interface","graphic user interface"," (or “GUI”) that you might be accustomed to; using a pointing device like a mouse or your finger to interact with graphic representations of data and actions to perform. (The term “shell” is a linguistic expansion on labeling an operating system’s core as its “kernel.” The shell “wraps” the kernel and is the user-facing surface that handles interactions with it.) For our purposes it’s unnecessary to become a shell expert, but if you’re curious to know more, this video is an excellent resource: ",[19,97833,97835],{"href":97834},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IYZDIhfAUM0","Become a shell wizard in ~12 mins",[3552,97837,97839],{"id":97838},"open-a-shell-in-macos","Open a shell in MacOS",[1267,97841,97842,97853,97859],{},[756,97843,97844,97845,97848,97849,97852],{},"Press your keyboard’s ",[974,97846,97847],{},"⌘"," key and ",[974,97850,97851],{},"spacebar"," simultaneously to open the Spotlight prompt.",[756,97854,97855,97856,114],{},"Type ",[57,97857,97858],{},"Terminal",[756,97860,97861,97862,97865],{},"Press the ",[974,97863,97864],{},"Enter"," key.",[12,97867,97868,97869,97873,97874,97878,97879,97883,97884,97888,97889,97892,97893,97895,97896,114],{},"This will open the ",[19,97870,97872],{"href":97871},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTerminal_(macOS)","macOS Terminal application",". On ",[19,97875,97877],{"href":97876},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMacOS_Ventura","macOS Ventura"," or later, Terminal defaults to ",[19,97880,97882],{"href":97881},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FZ_shell","Z Shell (zsh)",". On older versions of macOS, Terminal defaults to ",[19,97885,97887],{"href":97886},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBash%3C\u002Fem%3E(Unix_shell)","Bash Shell",". (Either shell is perfectly usable.) You can check which shell you are using by typing (or pasting in) ",[57,97890,97891],{},"echo $SHELL"," and pressing your ",[974,97894,97864],{}," key. This command reveals the file location of the shell program you are using, and the names within that location’s path will imply which shell is active. For example, if using Z Shell you might see the path ",[57,97897,97898],{},"\u002Fbin\u002Fzsh",[3552,97900,97902],{"id":97901},"open-a-shell-in-linux","Open a shell in Linux",[1267,97904,97905],{},[756,97906,97844,97907,1133,97910,4801,97913,97915,97916,1133,97920,1133,97924,97928,97929,97933,97934,114],{},[974,97908,97909],{},"Ctrl",[974,97911,97912],{},"Alt",[974,97914,6090],{}," keys simultaneously to open the Terminal application. (This should work on ",[19,97917,97919],{"href":97918},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FUbuntu","Ubuntu",[19,97921,97923],{"href":97922},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux_Mint","Linux Mint",[19,97925,97927],{"href":97926},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPop!_OS","Pop!_OS",", and many ",[19,97930,97932],{"href":97931},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGNOME","GNOME","-based Linux flavors.) The default shell is usually ",[19,97935,97936],{"href":97886},"Bash",[3552,97938,97940],{"id":97939},"open-a-shell-in-windows","Open a shell in Windows",[1267,97942,97943,97948,97954],{},[756,97944,97844,97945,97865],{},[974,97946,97947],{},"Windows",[756,97949,97855,97950,97953],{},[57,97951,97952],{},"PowerShell"," into the prompt area.",[756,97955,97861,97956,97865],{},[974,97957,97864],{},[12,97959,97868,97960,114],{},[19,97961,97963],{"href":97962},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPowerShell","Windows PowerShell application",[25,97965,97967],{"id":97966},"_2-install-uv","2. Install UV",[12,97969,97970,97971,354,97975,97978,97979,97981,97982,114],{},"We need a clean way to install a new version of Python on our system, and to keep it separate from any existing (or future) installations of Python. In the past we may have recommended solutions like ",[19,97972,97974],{"href":97973},"https:\u002F\u002Fwiki.python.org\u002Fmoin\u002FVirtualenv","virtualenv",[19,97976,94882],{"href":97977},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FConda%3C\u002Fem%3E(package_manager)",". But these days the winning solution is ",[19,97980,94887],{"href":94886},", a single application that is blazingly fast and replaces (or wraps) several common Python-related tools and package managers such as ",[19,97983,97985],{"href":97984},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPip%3C\u002Fem%3E(package_manager)","pip",[12,97987,97988,97989,97993,97994,97997,97998,114],{},"The following installation instructions come from ",[19,97990,97992],{"href":97991},"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F","UV’s installation guide",". For troubleshooting or additional details, refer to their documentation: ",[19,97995,97996],{"href":97991},"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation",". See also, the ",[19,97999,98001],{"href":98000},"https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv","UV GitHub repository",[3552,98003,98005],{"id":98004},"install-uv-on-macos-or-linux","Install UV on macOS or Linux",[12,98007,98008,98009,98012],{},"Enter the following command into your shell application: curl -LsSf ",[19,98010,98011],{"href":98011},"https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh"," | sh",[12,98014,98015,98016,98019,98020,98023,98024,98027],{},"If you receive an error similar to “",[57,98017,98018],{},"command not found: curl","”, it could mean the your system does not have ",[57,98021,98022],{},"curl"," installed. Don’t worry. Give this ",[57,98025,98026],{},"wget"," command a try instead:",[524,98029,98031],{"className":94449,"code":98030,"language":94451,"meta":529,"style":529},"wget -qO- https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n",[57,98032,98033],{"__ignoreMap":529},[533,98034,98035,98037,98040,98043,98045],{"class":535,"line":536},[533,98036,98026],{"class":560},[533,98038,98039],{"class":625}," -qO-",[533,98041,98042],{"class":621}," https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh",[533,98044,95230],{"class":543},[533,98046,98047],{"class":560},"sh\n",[3552,98049,98051],{"id":98050},"install-uv-on-windows","Install UV on Windows",[12,98053,98054,98055,98058],{},"Enter the following command into your shell application: powershell -ExecutionPolicy ByPass -c \"irm ",[19,98056,98057],{"href":98057},"https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1"," | iex\"",[3552,98060,98062],{"id":98061},"make-uv-available","Make UV available",[12,98064,98065,98066,98068,98069,98072,98073,98076],{},"Congratulations. You now have UV installed on your system. But the ",[57,98067,94488],{}," command is ",[9404,98070,98071],{},"not"," available in our current shell window. The easiest way to start using UV immediately is to ",[974,98074,98075],{},"close your current shell window and open a fresh new one",". Give that a try now.",[12,98078,98079,98080,98082],{},"In a fresh shell window, enter the following to ask for the UV version number. This will confirm that the ",[57,98081,94488],{}," command is available to you.",[524,98084,98086],{"className":94449,"code":98085,"language":94451,"meta":529,"style":529},"uv --version\n",[57,98087,98088],{"__ignoreMap":529},[533,98089,98090,98092],{"class":535,"line":536},[533,98091,94488],{"class":560},[533,98093,98094],{"class":625}," --version\n",[12,98096,98097,98098,98100],{},"Your shell should respond with one line indicating the freshly installed version number. (Did something not go as planned? That’s ok. Refer to ",[19,98099,97992],{"href":97991}," as a first step for troubleshooting.) For a full list of UV’s available commands, enter the following into your shell:",[524,98102,98104],{"className":94449,"code":98103,"language":94451,"meta":529,"style":529},"uv\n",[57,98105,98106],{"__ignoreMap":529},[533,98107,98108],{"class":535,"line":536},[533,98109,98103],{"class":560},[12,98111,98112],{},"That’s right, just asking for UV will provide you with a whole menu of commands and useful information.",[25,98114,98116],{"id":98115},"_3-install-python","3. Install Python",[12,98118,98119],{},"Using UV, we can now safely install a sandboxed Python, separate from any past or future installations of Python. To install the latest Python, enter the following into your shell:",[524,98121,98123],{"className":94449,"code":98122,"language":94451,"meta":529,"style":529},"uv python install\n",[57,98124,98125],{"__ignoreMap":529},[533,98126,98127,98129,98131],{"class":535,"line":536},[533,98128,94488],{"class":560},[533,98130,94494],{"class":621},[533,98132,98133],{"class":621}," install\n",[3552,98135,98137],{"id":98136},"macos-command-line-developer-tools","macOS command-line developer tools",[12,98139,98140],{},"If you’re on macOS and have not previously installed the command-line developer tools, you will be prompted to do so now. It’s a hefty download, but will enable you to compile and run all of the tools you may wish to use in the future, including installing Python right now.",[2175,98142],{"alt":529,"caption":529,"no":529,"src":98143},"\u002F_content\u002Fimages\u002Fpython-setup\u002Fdeveloper-tools-2.webp",[3552,98145,98147],{"id":98146},"confirm-python-installed","Confirm Python installed",[12,98149,98150],{},"Once UV has finished installing the latest version of Python, you can verify this (as well as detect previously installed versions of Python) by entering the following into your shell:",[524,98152,98154],{"className":94449,"code":98153,"language":94451,"meta":529,"style":529},"uv python list\n",[57,98155,98156],{"__ignoreMap":529},[533,98157,98158,98160,98162],{"class":535,"line":536},[533,98159,94488],{"class":560},[533,98161,94494],{"class":621},[533,98163,98164],{"class":621}," list\n",[16838,98166,98167],{},[12,98168,98169,98170],{},"UV can do a whole lot more than list some versions of Python. Here’s a handy cheat sheet for UV’s management commands: ",[19,98171,98172],{"href":98172},"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Ffeatures\u002F",[3552,98174,98176],{"id":98175},"hello-world","Hello, World!",[12,98178,98179],{},"Now that we definitely have Python installed, let’s run a tiny “Hello, World!” program right from the command line. Enter this into your shell:",[524,98181,98183],{"className":94449,"code":98182,"language":94451,"meta":529,"style":529},"uv run python -c 'print( \"Hello, World!\" )'\n",[57,98184,98185],{"__ignoreMap":529},[533,98186,98187,98189,98191,98193,98195],{"class":535,"line":536},[533,98188,94488],{"class":560},[533,98190,94491],{"class":621},[533,98192,94494],{"class":621},[533,98194,94993],{"class":625},[533,98196,98197],{"class":621}," 'print( \"Hello, World!\" )'\n",[12,98199,98200,98201,98203,98204,98207,98208,98210],{},"Our shell responds with “",[57,98202,98176],{},"” (And we can deduce that the ",[57,98205,98206],{},"-c"," flag tells ",[57,98209,94488],{}," to execute any command that follows.) This is progress. But running one command at a time isn’t going to get us very far. Let’s start thinking a little larger.",[25,98212,98214],{"id":98213},"_4-create-your-first-project","4. Create your first project",[12,98216,98217],{},"We’d like to create a sandboxed environment that both “pins” a specific version of Python for use, and houses any additional code packages we require. This ensures that anything we add to Python remains tidily within our sandbox, and anything done outside of our sandbox is kept at a safe distance and won’t damage our project. Our UV project will be composed of:",[753,98219,98220,98223,98229,98232],{},[756,98221,98222],{},"A folder.",[756,98224,90123,98225,98228],{},[57,98226,98227],{},"pyproject.toml"," file.",[756,98230,98231],{},"A local virtual environment (created automatically).",[756,98233,98234],{},"Our Python files.",[12,98236,98237,98238,98240],{},"Create a project folder on your Desktop called ",[57,98239,1603],{},". (The exact name and location of this folder doesn’t matter so much, as long as it’s easy for you to get to and work with.)",[3552,98242,98244],{"id":98243},"to-shell-and-back","To shell and back",[12,98246,98247],{},"As we build up our project, you will likely want to jump back and forth between your graphic user interface (like macOS Finder, Windows Explorer, etc.) and your shell program (like macOS Terminal, Windows PowerShell, etc). Here’s an easy guide for jumping between the two and always landing in the exact folder you need:",[95288,98249,98251],{"id":98250},"macos-finder-and-terminal","macOS: Finder and Terminal",[12,98253,98254],{},"To jump from Finder to Terminal while remaining in the same folder: 1. Within Finder, navigate to your intended folder. 2. Right-click inside the folder (or on the folder itself) to open a context menu. 3. Choose the “New Terminal at Folder” option.",[12,98256,98257,98258,98261],{},"(If you don’t see this option, go to your System Settings → Privacy & Security → Extensions → Finder → enable Terminal.) To jump from Terminal to Finder while remaining in the same folder: 1. Within Terminal, navigate to your intended folder. 2. Enter the following and press Enter. (Yes, include the ",[9404,98259,98260],{},"empty space"," followed by a period. In this context the period is an alias for “here”, as in “open here.”)",[524,98263,98265],{"className":94449,"code":98264,"language":94451,"meta":529,"style":529},"open .\n",[57,98266,98267],{"__ignoreMap":529},[533,98268,98269,98271],{"class":535,"line":536},[533,98270,48713],{"class":560},[533,98272,98273],{"class":621}," .\n",[95288,98275,98277],{"id":98276},"linux-file-manager-and-terminal","Linux: File Manager and Terminal",[12,98279,98280],{},"To jump from File Manager to Terminal while remaining in the same folder (Ubuntu, Fedora, Debian, Arch, Mint, etc.): 1. Within File Manager, navigate to your intended folder. 2. Right-click inside the folder to open a context menu. 3. Choose the “Open in Terminal” option.",[12,98282,98283,98284,98261],{},"To jump from Terminal to File Manager while remaining in the same folder: 1. Within Terminal, navigate to your intended folder. 2. Enter the following and press Enter. (Yes, include the ",[9404,98285,98260],{},[524,98287,98289],{"className":94449,"code":98288,"language":94451,"meta":529,"style":529},"xdg-open .\n",[57,98290,98291],{"__ignoreMap":529},[533,98292,98293,98296],{"class":535,"line":536},[533,98294,98295],{"class":560},"xdg-open",[533,98297,98273],{"class":621},[95288,98299,98301],{"id":98300},"windows-explorer-and-powershell","Windows: Explorer and PowerShell",[12,98303,98304,98305,98308],{},"To jump from File Explorer to PowerShell while remaining in the same folder: 1. Within File Explorer, navigate to your intended folder. 2. Click the address bar. 3. Type ",[57,98306,98307],{},"powershell"," and press Enter.",[12,98310,98311],{},"To jump from PowerShell to Explorer while remaining in the same folder:",[1267,98313,98314,98317],{},[756,98315,98316],{},"Within PowerShell, navigate to your intended folder.",[756,98318,98319,98320,98322],{},"Enter the following and press Enter. (Yes, include the ",[9404,98321,98260],{}," followed by a period. In this context the period is an alias for “here”, as in “explore here.”)",[524,98324,98326],{"className":94449,"code":98325,"language":94451,"meta":529,"style":529},"explorer .\n",[57,98327,98328],{"__ignoreMap":529},[533,98329,98330,98333],{"class":535,"line":536},[533,98331,98332],{"class":560},"explorer",[533,98334,98273],{"class":621},[3552,98336,98338],{"id":98337},"initialize-the-project-with-uv","Initialize the project with UV",[12,98340,98341,98342,98344],{},"Now that we have a ",[57,98343,1603],{}," project folder on our Desktop (and know how to jump between our graphic interface and a shell), open a shell to your project’s folder and enter the following command:",[524,98346,98348],{"className":94449,"code":98347,"language":94451,"meta":529,"style":529},"uv init\n",[57,98349,98350],{"__ignoreMap":529},[533,98351,98352,98354],{"class":535,"line":536},[533,98353,94488],{"class":560},[533,98355,98356],{"class":621}," init\n",[12,98358,98359],{},"This little command packs quite a punch. It creates several files for us, some of which are hidden from view (in order to reduce clutter). Let’s have a look at the visible files first:",[753,98361,98362,98367,98372,98382],{},[756,98363,98364,98366],{},[974,98365,98227],{},". This file specifies what version of Python our project ought to use, as well as any depencies we decide to include later. This a human-editable file, it’s yours to update.",[756,98368,98369,98371],{},[974,98370,96212],{},". A minimal (yet executable) Python file that we can begin editing and build from. (We’ll run this file in just a moment!)",[756,98373,98374,98377,98378,98381],{},[974,98375,98376],{},"README.md",". An empty “Read me” ",[19,98379,9168],{"href":98380},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown"," file for documenting our project.",[756,98383,98384,98387,98388,98390,98391,98393,98394,98396],{},[974,98385,98386],{},"uv.lock",". In contrast to ",[57,98389,98227],{},", this file is machine-generated and should not be manually edited. While ",[57,98392,98227],{}," decribes our intent, ",[57,98395,98386],{}," is a detailed documentation of what packages and versions are actually in use.",[12,98398,98399],{},"The hidden files are also informative:",[753,98401,98402,98412,98422],{},[756,98403,98404,689,98407,98411],{},[974,98405,98406],{},".python-version",[19,98408,98410],{"href":98409},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDoes_exactly_what_it_says_on_the_tin","Just what it says on the tin",": A file specifying the version of Python required.",[756,98413,98414,98416,98417,98421],{},[974,98415,95300],{},". As part of our project’s initialization, UV automatically created a local ",[19,98418,98420],{"href":98419},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGit","git code repository"," for us, and included this handy list of files and file types to ignore in our commits.",[756,98423,98424,98427],{},[974,98425,98426],{},".venv",". An entire folder dedicated to specifying and maintaining our project’s virtual environment. Leave this folder and its content alone.",[3552,98429,98431],{"id":98430},"run-our-uv-project","Run our UV project",[12,98433,98434],{},"As UV was kind enough to generate a skeletal Python file for us, let’s take it for a test drive. Be sure that your shell is still within our project’s folder and enter the following:",[524,98436,98437],{"className":94449,"code":96216,"language":94451,"meta":529,"style":529},[57,98438,98439],{"__ignoreMap":529},[533,98440,98441,98443,98445,98447],{"class":535,"line":536},[533,98442,94488],{"class":560},[533,98444,94491],{"class":621},[533,98446,94494],{"class":621},[533,98448,96229],{"class":621},[12,98450,98451],{},"Depending on what you named your project folder, your shell should respond with something similar to:",[524,98453,98455],{"className":94449,"code":98454,"language":94451,"meta":529,"style":529},"Hello from qollab!\n",[57,98456,98457],{"__ignoreMap":529},[533,98458,98459,98462,98465],{"class":535,"line":536},[533,98460,98461],{"class":560},"Hello",[533,98463,98464],{"class":621}," from",[533,98466,98467],{"class":621}," qollab!\n",[12,98469,98470],{},[19,98471,98473],{"href":98472},"https:\u002F\u002Fen.wiktionary.org\u002Fwiki\u002Fcooking_with_gas","Now we’re cooking with gas!",[25,98475,98477],{"id":98476},"_5-pick-a-text-editor","5. Pick a text editor",[12,98479,98480,98481,98484,98485,354,98489,98493,98494,98498,98499,98502,98503,98506,98507,98511,98512,98516],{},"It’s time to start writing your own Python code, and that means editing text files. Python code is just ",[9404,98482,98483],{},"plain text",", after all. That means your operating system’s built-in apps (like ",[19,98486,98488],{"href":98487},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTextEdit","Text Edit",[19,98490,98492],{"href":98491},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWindows_Notepad","Notepad",") are already enough to write and edit Python (provided you have ",[19,98495,98497],{"href":98496},"https:\u002F\u002Fsites.radford.edu\u002F~rstepno\u002F326\u002Ftextedit\u002Findex.html","rich text turned off",", of course). But a ",[9404,98500,98501],{},"robust"," code editing environment can actually make coding ",[9404,98504,98505],{},"enjoyable"," through modern conveniences like ",[19,98508,98510],{"href":98509},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSyntax_highlighting","syntax highlighting",", auto-",[19,98513,98515],{"href":98514},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIndentation_style","indentation",", and more.",[12,98518,98519,98520,98524,98525,98529],{},"If you don’t already have a favorite text editor or ",[19,98521,98523],{"href":98522},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntegrated_development_environment","Integrated Development Environment (IDE)",", now’s the time to discover one that’s right for you. While Wikipedia provides a ",[19,98526,98528],{"href":98527},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FComparison_of_text_editors#Programming_features","comprehensive comparison of text editors",", this more curated list of free, cross-platform coding apps will help you get started.",[30,98531,98532,98545],{},[33,98533,98534],{},[36,98535,98536,98539,98542],{},[39,98537,98538],{},"Name",[39,98540,98541],{"align":95374},"Friendliness",[39,98543,98544],{},"Description",[49,98546,98547,98561,98574,98587,98600,98614],{},[36,98548,98549,98555,98558],{},[54,98550,98551],{},[19,98552,98554],{"href":98553},"https:\u002F\u002Fcode.visualstudio.com","VS Code",[54,98556,98557],{"align":95374},"✅",[54,98559,98560],{},"Extension-driven code editor that balances approachability with serious IDE-level power.",[36,98562,98563,98569,98571],{},[54,98564,98565],{},[19,98566,98568],{"href":98567},"https:\u002F\u002Fwww.sublimetext.com","Sublime",[54,98570,98557],{"align":95374},[54,98572,98573],{},"Blazing-fast, minimalist editor famous for multi-cursor editing and near-instant responsiveness.",[36,98575,98576,98582,98584],{},[54,98577,98578],{},[19,98579,98581],{"href":98580},"https:\u002F\u002Fkate-editor.org","Kate",[54,98583,98557],{"align":95374},[54,98585,98586],{},"Capable, lightweight KDE editor with strong syntax highlighting and project features without IDE heaviness.",[36,98588,98589,98595,98597],{},[54,98590,98591],{},[19,98592,98594],{"href":98593},"https:\u002F\u002Fwww.geany.org","Geany",[54,98596,98557],{"align":95374},[54,98598,98599],{},"Small, simple IDE-style editor that offers compilation and tooling with minimal resource usage.",[36,98601,98602,98608,98611],{},[54,98603,98604],{},[19,98605,98607],{"href":98606},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Femacs","Emacs",[54,98609,98610],{"align":95374},"😅",[54,98612,98613],{},"Deeply extensible, keyboard-centric editor that doubles as a programmable computing environment.",[36,98615,98616,98622,98624],{},[54,98617,98618],{},[19,98619,98621],{"href":98620},"https:\u002F\u002Fwww.vim.org","Vim",[54,98623,98610],{"align":95374},[54,98625,98626],{},"Modal, terminal-native editor optimized for extreme speed and precision once its commands are mastered.",[25,98628,95975],{"id":95974},[12,98630,98631],{},"You can open a shell. You can bounce between your shell and GUI while staying within your project’s code folder. You’ve installed UV and Python. You’ve created a UV Python project and run some Python code. With a good text editor in hand, you’re ready to start making some really productive mistakes, an exciting start to your journey. You’re ready to venture on to more Qollab tutorials:",[753,98633,98634,98639,98644],{},[756,98635,98636,114],{},[19,98637,96106],{"href":98638},"\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-basics",[756,98640,98641,114],{},[19,98642,98643],{"href":94796},"Setup the Qiskit SDK",[756,98645,98646,114],{},[19,98647,94766],{"href":94012},[773,98649,98650],{},"html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":529,"searchDepth":547,"depth":547,"links":98652},[98653,98654,98659,98664,98669,98674,98675],{"id":97792,"depth":547,"text":97793},{"id":97817,"depth":547,"text":97818,"children":98655},[98656,98657,98658],{"id":97838,"depth":575,"text":97839},{"id":97901,"depth":575,"text":97902},{"id":97939,"depth":575,"text":97940},{"id":97966,"depth":547,"text":97967,"children":98660},[98661,98662,98663],{"id":98004,"depth":575,"text":98005},{"id":98050,"depth":575,"text":98051},{"id":98061,"depth":575,"text":98062},{"id":98115,"depth":547,"text":98116,"children":98665},[98666,98667,98668],{"id":98136,"depth":575,"text":98137},{"id":98146,"depth":575,"text":98147},{"id":98175,"depth":575,"text":98176},{"id":98213,"depth":547,"text":98214,"children":98670},[98671,98672,98673],{"id":98243,"depth":575,"text":98244},{"id":98337,"depth":575,"text":98338},{"id":98430,"depth":575,"text":98431},{"id":98476,"depth":547,"text":98477},{"id":95974,"depth":547,"text":95975},[4349,4350,4583,96128],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"This guide will walk you through downloading, installing, and enjoying Python via the UV package installer and project manager.",{"image":98681,"alt":96128},"\u002F_content\u002Fimages\u002Fpython-setup\u002Fhero.webp",{},{"slug":97740,"title":98684,"desc":98685},"2 · Learn Python language basics","Python has become the de facto programming language of quantum computing. This guide highlights some basic Python commands and logic; foundational…","\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-setup","12 min read",[],{"title":98690,"description":98679},"Setup Python on your machine · Quantum computing with Python and Qiskit","blog\u002Flearn\u002Fquantum-computing-with-python\u002Fpython-setup",[],"WxQnHjViQ0nmk35KS1rDr3HI2Ns1Hng4AWXfGNcOpRQ",{"id":98695,"title":98696,"authors":98697,"body":98698,"breadcrumb":99258,"builders":99259,"byline":99260,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":97739,"description":97739,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":99261,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":99263,"navigation":790,"newsItems":7,"next":99264,"ogImage":7,"order":575,"outcomes":7,"path":97737,"publishDate":96066,"readingTime":74878,"related":99267,"relatedProjects":7,"seo":99268,"stem":99270,"tags":99271,"track":94762,"trackName":4583,"__hash__":99272},"blog\u002Fblog\u002Flearn\u002Fquantum-computing-with-python\u002Fqiskit-setup.md","Setup IBM’s Qiskit SDK",[93960],{"type":9,"value":98699,"toc":99248},[98700,98718,98722,98728,98732,98735,98748,98781,98785,98788,98814,98818,98835,98847,98853,98857,98860,98872,98875,98887,98891,98894,98907,98910,98928,98939,98953,98956,98974,98978,98984,99164,99190,99196,99209,99212,99235,99238,99242,99245],[12,98701,98702,98703,98707,98708,98710,98711,98714,98715,114],{},"IBM’s Qiskit is a leading quantum Software Development Kit (SDK) used as a foundation, not just for use with IBM hardware, but for various other quantum computing hardware architectures as well. IBM already has excellent ",[19,98704,98706],{"href":98705},"https:\u002F\u002Fquantum.cloud.ibm.com\u002Fdocs\u002Fen\u002Ftutorials","Qiskit tutorials"," available online for free. Our Qollab Qiskit guides take a specific, ",[19,98709,94887],{"href":94886},"-based approach to managing Python projects. If you have not installed UV (or Python), take a look at our previous guide: ",[19,98712,98713],{"href":94007},"Setup Python (and UV) on your machine",". For a crash course in Python fundamentals, see our guide: ",[19,98716,98717],{"href":98638},"Learn Python basics",[25,98719,98721],{"id":98720},"_1-create-a-new-project","1. Create a new project",[12,98723,98724,98725,98240],{},"Create a project folder on your Desktop titled ",[57,98726,98727],{},"our-qollab",[3552,98729,98731],{"id":98730},"initialize-our-app","Initialize our app",[12,98733,98734],{},"Open a shell to your project’s folder and enter the following command:",[524,98736,98738],{"className":94449,"code":98737,"language":94451,"meta":529,"style":529},"uv init --app\n",[57,98739,98740],{"__ignoreMap":529},[533,98741,98742,98744,98746],{"class":535,"line":536},[533,98743,94488],{"class":560},[533,98745,94934],{"class":621},[533,98747,94937],{"class":625},[12,98749,98750,98751,98754,98755,98758,98759,98762,98763,98766,98767,98770,98771,98773,98774,354,98777,98780],{},"This will initialize your new ",[19,98752,98753],{"href":94886},"UV-managed"," project. The ",[57,98756,98757],{},"uv init"," command has two main modes: 1. ",[974,98760,98761],{},"Library mode"," (default): For building a script that is primarily intended to be a reusable package, imported by other applications. 2. ",[974,98764,98765],{},"Application mode"," (using the ",[57,98768,98769],{},"--app"," flag): For building a script that is intended to be executable on its own. The ",[57,98772,98769],{}," flag instructs UV to assume the app will be run via ",[57,98775,98776],{},"uv run ...",[57,98778,98779],{},"uv run python -m ...",". It’s not meant to be installed as a dependency, and entry points matter more than exports.",[3552,98782,98784],{"id":98783},"select-a-python-version","Select a Python version",[12,98786,98787],{},"We want to be selective about which Python version our application uses because Qiskit and its various packages have particular compatibility requirements, and sometimes lag behind the most recent Python release. As of this writing, Python 3.12 is a safe choice for use. Enter the following into your shell to install Python 3.12 (if not already available) and explitly pin it as the version required by our application.",[524,98789,98791],{"className":94449,"code":98790,"language":94451,"meta":529,"style":529},"uv python install 3.12\nuv python pin 3.12\n",[57,98792,98793,98804],{"__ignoreMap":529},[533,98794,98795,98797,98799,98801],{"class":535,"line":536},[533,98796,94488],{"class":560},[533,98798,94494],{"class":621},[533,98800,94913],{"class":621},[533,98802,98803],{"class":625}," 3.12\n",[533,98805,98806,98808,98810,98812],{"class":535,"line":547},[533,98807,94488],{"class":560},[533,98809,94494],{"class":621},[533,98811,94925],{"class":621},[533,98813,98803],{"class":625},[95288,98815,98817],{"id":98816},"pitfalls-to-avoid","Pitfalls to avoid",[12,98819,98820,98821,4801,98825,10700,98827,98831,98832,98834],{},"Qiskit only supports ",[19,98822,98824],{"href":98823},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCPython","CPython",[9404,98826,98071],{},[19,98828,98830],{"href":98829},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPyPy","PyPy",". You can confirm your Python versions via ",[57,98833,94488],{}," by entering the following into your shell:",[524,98836,98837],{"className":94449,"code":98153,"language":94451,"meta":529,"style":529},[57,98838,98839],{"__ignoreMap":529},[533,98840,98841,98843,98845],{"class":535,"line":536},[533,98842,94488],{"class":560},[533,98844,94494],{"class":621},[533,98846,98164],{"class":621},[12,98848,98849,98850,114],{},"If you’re upgrading across major Qiskit eras, don’t “upgrade in place” inside an old virtual environment. Instead, make a new virtual environment for each project using ",[57,98851,98852],{},"uv venv",[3552,98854,98856],{"id":98855},"create-a-virtual-environment","Create a virtual environment",[12,98858,98859],{},"Initializing a UV app will “lazily” create a virtual environment. That is, the virtual environment ought to create and activate on-demand when it is first needed. But out of precaution we’d like to manually do that now ourselves. Enter the following into your shell:",[524,98861,98863],{"className":94449,"code":98862,"language":94451,"meta":529,"style":529},"uv venv\n",[57,98864,98865],{"__ignoreMap":529},[533,98866,98867,98869],{"class":535,"line":536},[533,98868,94488],{"class":560},[533,98870,98871],{"class":621}," venv\n",[12,98873,98874],{},"At this point our shell may ask us to enter something similar the following in order to activate our virtual environment:",[524,98876,98878],{"className":94449,"code":98877,"language":94451,"meta":529,"style":529},"source .venv\u002Fbin\u002Factivate\n",[57,98879,98880],{"__ignoreMap":529},[533,98881,98882,98884],{"class":535,"line":536},[533,98883,94468],{"class":553},[533,98885,98886],{"class":621}," .venv\u002Fbin\u002Factivate\n",[25,98888,98890],{"id":98889},"_2-add-qiskit-packages","2. Add Qiskit packages",[12,98892,98893],{},"Enter the following into your shell to install Qiskit’s core package:",[524,98895,98897],{"className":94449,"code":98896,"language":94451,"meta":529,"style":529},"uv add qiskit\n",[57,98898,98899],{"__ignoreMap":529},[533,98900,98901,98903,98905],{"class":535,"line":536},[533,98902,94488],{"class":560},[533,98904,94968],{"class":621},[533,98906,85369],{"class":621},[12,98908,98909],{},"Let’s confirm that Qiskit has installed correctly. Enter the following into your shell and it should respond with a Qiskit version number:",[524,98911,98913],{"className":94449,"code":98912,"language":94451,"meta":529,"style":529},"uv run python -c \"import qiskit; print('Qiskit', qiskit.__version__)\"\n",[57,98914,98915],{"__ignoreMap":529},[533,98916,98917,98919,98921,98923,98925],{"class":535,"line":536},[533,98918,94488],{"class":560},[533,98920,94491],{"class":621},[533,98922,94494],{"class":621},[533,98924,94993],{"class":625},[533,98926,98927],{"class":621}," \"import qiskit; print('Qiskit', qiskit.__version__)\"\n",[12,98929,98930,98931,98933,98934,98938],{},"Our first Qiskit app is going to use a quantum ",[9404,98932,95148],{}," that runs on your local machine, as opposed to using a cloud-based simulator or actual quantum hardware. (Don’t worry, we’ll get to real quantum hardware soon enough.) Install Qiskit’s fast local simulator (",[19,98935,98937],{"href":98936},"https:\u002F\u002Fqiskit.github.io\u002Fqiskit-aer\u002F","Qiskit Aer",") by entering the following into your shell:",[524,98940,98942],{"className":94449,"code":98941,"language":94451,"meta":529,"style":529},"uv add qiskit-aer\n",[57,98943,98944],{"__ignoreMap":529},[533,98945,98946,98948,98950],{"class":535,"line":536},[533,98947,94488],{"class":560},[533,98949,94968],{"class":621},[533,98951,98952],{"class":621}," qiskit-aer\n",[12,98954,98955],{},"We can run a similiar sanity check for Aer as well:",[524,98957,98959],{"className":94449,"code":98958,"language":94451,"meta":529,"style":529},"uv run python -c \"import qiskit_aer; print('Qiskit Aer', qiskit_aer.__version__)\"\n",[57,98960,98961],{"__ignoreMap":529},[533,98962,98963,98965,98967,98969,98971],{"class":535,"line":536},[533,98964,94488],{"class":560},[533,98966,94491],{"class":621},[533,98968,94494],{"class":621},[533,98970,94993],{"class":625},[533,98972,98973],{"class":621}," \"import qiskit_aer; print('Qiskit Aer', qiskit_aer.__version__)\"\n",[25,98975,98977],{"id":98976},"_3-run-a-local-simulation","3. Run a local simulation",[12,98979,98980,98981,98983],{},"Now that we’ve installed some Qiskit packages, let’s put them to use. Open up your project’s ",[57,98982,96212],{}," Python script with your favorite text editor. Replace its contents with the following, and save it to disk:",[524,98985,98987],{"className":526,"code":98986,"language":528,"meta":529,"style":529},"from qiskit import QuantumCircuit\nfrom qiskit_aer import AerSimulator\n\ndef main():\n    qc = QuantumCircuit(2)\n    qc.h(0)\n    qc.cx(0, 1)\n    qc.measure_all()\n\n    sim = AerSimulator()\n    result = sim.run(qc, shots=1000).result()\n    counts = result.get_counts()\n    print(\"Counts:\", counts)\n\nif __name__ == \"__main__\":\n    main()\n",[57,98988,98989,98999,99011,99015,99023,99037,99049,99065,99073,99077,99089,99114,99126,99138,99142,99157],{"__ignoreMap":529},[533,98990,98991,98993,98995,98997],{"class":535,"line":536},[533,98992,877],{"class":539},[533,98994,880],{"class":543},[533,98996,883],{"class":539},[533,98998,1106],{"class":543},[533,99000,99001,99003,99006,99008],{"class":535,"line":547},[533,99002,877],{"class":539},[533,99004,99005],{"class":543}," qiskit_aer ",[533,99007,883],{"class":539},[533,99009,99010],{"class":543}," AerSimulator\n",[533,99012,99013],{"class":535,"line":575},[533,99014,891],{"emptyLinePlaceholder":790},[533,99016,99017,99019,99021],{"class":535,"line":590},[533,99018,1754],{"class":539},[533,99020,80861],{"class":560},[533,99022,2795],{"class":543},[533,99024,99025,99027,99029,99031,99033,99035],{"class":535,"line":597},[533,99026,1778],{"class":543},[533,99028,554],{"class":553},[533,99030,1126],{"class":560},[533,99032,615],{"class":543},[533,99034,1140],{"class":625},[533,99036,637],{"class":543},[533,99038,99039,99041,99043,99045,99047],{"class":535,"line":603},[533,99040,1799],{"class":543},[533,99042,1148],{"class":560},[533,99044,615],{"class":543},[533,99046,1049],{"class":625},[533,99048,637],{"class":543},[533,99050,99051,99053,99055,99057,99059,99061,99063],{"class":535,"line":609},[533,99052,1799],{"class":543},[533,99054,4936],{"class":560},[533,99056,615],{"class":543},[533,99058,1049],{"class":625},[533,99060,1133],{"class":543},[533,99062,1052],{"class":625},[533,99064,637],{"class":543},[533,99066,99067,99069,99071],{"class":535,"line":640},[533,99068,1799],{"class":543},[533,99070,94252],{"class":560},[533,99072,1217],{"class":543},[533,99074,99075],{"class":535,"line":646},[533,99076,891],{"emptyLinePlaceholder":790},[533,99078,99079,99082,99084,99087],{"class":535,"line":658},[533,99080,99081],{"class":543},"    sim ",[533,99083,554],{"class":553},[533,99085,99086],{"class":560}," AerSimulator",[533,99088,1217],{"class":543},[533,99090,99091,99093,99095,99098,99100,99102,99104,99106,99108,99110,99112],{"class":535,"line":680},[533,99092,67157],{"class":543},[533,99094,554],{"class":553},[533,99096,99097],{"class":543}," sim.",[533,99099,561],{"class":560},[533,99101,904],{"class":543},[533,99103,269],{"class":567},[533,99105,554],{"class":553},[533,99107,1240],{"class":625},[533,99109,1205],{"class":543},[533,99111,1208],{"class":560},[533,99113,1217],{"class":543},[533,99115,99116,99118,99120,99122,99124],{"class":535,"line":1536},[533,99117,80943],{"class":543},[533,99119,554],{"class":553},[533,99121,3584],{"class":543},[533,99123,1214],{"class":560},[533,99125,1217],{"class":543},[533,99127,99128,99130,99132,99135],{"class":535,"line":1552},[533,99129,612],{"class":553},[533,99131,615],{"class":543},[533,99133,99134],{"class":621},"\"Counts:\"",[533,99136,99137],{"class":543},", counts)\n",[533,99139,99140],{"class":535,"line":1911},[533,99141,891],{"emptyLinePlaceholder":790},[533,99143,99144,99146,99149,99152,99155],{"class":535,"line":1940},[533,99145,5724],{"class":539},[533,99147,99148],{"class":2387}," __name__",[533,99150,99151],{"class":553}," ==",[533,99153,99154],{"class":621}," \"__main__\"",[533,99156,544],{"class":543},[533,99158,99159,99162],{"class":535,"line":1968},[533,99160,99161],{"class":560},"    main",[533,99163,1217],{"class":543},[12,99165,99166,99167,99170,99171,95705,99173,99175,99176,95721,99178,95724,99180,95727,99182,95732,99184,99186,99187,99189],{},"This Python script imports Qiskit and Qiskit’s “Aer” local simulator. The command ",[57,99168,99169],{},"QuantumCircuit(2)"," creates a quantum circuit composed of two qubit registers, both initialized to a | 0 ⟩ (“ket zero”) state. It then places a ",[19,99172,95704],{"href":95703},[57,99174,1049],{},", flipping that qubit into superposition. Next, it places a ",[19,99177,95720],{"href":95719},[57,99179,1049],{},[57,99181,1052],{},[19,99183,95731],{"href":95730},[57,99185,1049],{},"’s superposition across the two qubits, entangling them. Finally, we measure both qubit registers, collapsing the distributed superposition into a definitive value. The two possible measured values are | 00 ⟩ and | 11 ⟩ , each with a 50% probabilty of occurrence. This simulation is run 1,000 times (",[57,99188,832],{},") and the results of these “shots” and printed to the command line.",[12,99191,99192,99193,99195],{},"Execute this new ",[57,99194,96212],{}," quantum script by entering the following into your shell:",[524,99197,99199],{"className":94449,"code":99198,"language":94451,"meta":529,"style":529},"uv run main.py\n",[57,99200,99201],{"__ignoreMap":529},[533,99202,99203,99205,99207],{"class":535,"line":536},[533,99204,94488],{"class":560},[533,99206,94491],{"class":621},[533,99208,96229],{"class":621},[12,99210,99211],{},"It will respond with output similar to the following:",[524,99213,99215],{"className":94449,"code":99214,"language":94451,"meta":529,"style":529},"Counts: {'00': 517, '11': 483}\n",[57,99216,99217],{"__ignoreMap":529},[533,99218,99219,99222,99225,99228,99230,99233],{"class":535,"line":536},[533,99220,99221],{"class":560},"Counts:",[533,99223,99224],{"class":621}," {'00':",[533,99226,99227],{"class":621}," 517,",[533,99229,95868],{"class":621},[533,99231,99232],{"class":625}," 483",[533,99234,1405],{"class":621},[12,99236,99237],{},"Congratulations. You’ve just executed an incredibly convoluted coin-flip routine!",[25,99239,99241],{"id":99240},"coming-soon","Coming soon",[12,99243,99244],{},"Stay tuned for our guide to running quantum simulations in the cloud, performing operations on actual quantum hardware, and making use of IonQ hardware architectures.",[773,99246,99247],{},"html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}",{"title":529,"searchDepth":547,"depth":547,"links":99249},[99250,99255,99256,99257],{"id":98720,"depth":547,"text":98721,"children":99251},[99252,99253,99254],{"id":98730,"depth":575,"text":98731},{"id":98783,"depth":575,"text":98784},{"id":98855,"depth":575,"text":98856},{"id":98889,"depth":547,"text":98890},{"id":98976,"depth":547,"text":98977},{"id":99240,"depth":547,"text":99241},[4349,4350,4583,98696],[],{"username":93960,"name":94745,"role":94746,"avatar":529},{"image":99262,"alt":98696},"\u002F_content\u002Fimages\u002Fqiskit-setup\u002Fhero.webp",{},{"slug":96031,"title":99265,"desc":99266},"4 · Setup and simulate with IonQ","Create and leverage a free IonQ account to run an example quantum circuit on IonQ’s cloud simulator. Builds upon our previous tutorials for…",[],{"title":99269,"description":97739},"Setup IBM’s Qiskit SDK · Quantum computing with Python and Qiskit","blog\u002Flearn\u002Fquantum-computing-with-python\u002Fqiskit-setup",[],"PSdcpQ_oE5Jlwj_qrt4AqrStc3dMMEIMDlMMx59tRaw",{"id":99274,"title":99275,"authors":99276,"body":99277,"breadcrumb":99284,"builders":99285,"byline":99286,"category":7,"categoryName":7,"challenge":7,"courseAuthor":99287,"courseLead":99290,"dek":99291,"description":99292,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":7,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":96056,"lessonCount":7,"meta":99293,"navigation":790,"newsItems":7,"next":7,"ogImage":7,"order":7,"outcomes":99294,"path":99299,"publishDate":99300,"readingTime":7,"related":99301,"relatedProjects":7,"seo":99302,"stem":99304,"tags":99305,"track":99306,"trackName":7,"__hash__":99307},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations.md","Quantum foundations",[93960],{"type":9,"value":99278,"toc":99282},[99279],[12,99280,99281],{},"Quantum computing is easier than you might think. (Remember it’s just computing, it’s not quantum physics!) Some quick math brush-ups and few concept primers…",{"title":529,"searchDepth":547,"depth":547,"links":99283},[],[4349,4350,99275],[],{"username":93960,"name":94745,"role":529,"avatar":529},{"name":94745,"role":529,"bio":96083,"avatar":529,"links":99288},[99289],{"label":4360,"href":96086},"Start from zero and build up the math that quantum computing actually runs on. By the end you can read qubits, gates, and circuits well enough to open the Code Playground and run your first circuit on real hardware.","Qubits, gates, and what actually makes quantum different. No prior quantum needed.","A free five-lesson course on the foundations of quantum computing: qubits, gates, matrices, and complex numbers. About an hour, no account needed.",{},[99295,99296,99297,99298],"Why quantum computers matter, and what they are actually for","The math they run on: complex numbers, matrices, and vectors","What a qubit really is: state vectors, superposition, the Bloch sphere","The core quantum gates and how they transform qubits","\u002Fblog\u002Flearn\u002Fquantum-foundations","2025-12-08",[],{"title":99303,"description":99292},"Quantum foundations · Learn by building","blog\u002Flearn\u002Fquantum-foundations",[],"quantum-foundations","9HHlSvsbtChkZDN-4ZDYY0BfvM0der-rHTq7aq5oUhQ",{"id":99309,"title":99310,"authors":99311,"body":99312,"breadcrumb":99400,"builders":99401,"byline":99402,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":99403,"description":99403,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":99404,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":99406,"navigation":790,"newsItems":7,"next":99407,"ogImage":7,"order":547,"outcomes":7,"path":99411,"publishDate":99300,"readingTime":5206,"related":99412,"relatedProjects":7,"seo":99413,"stem":99415,"tags":99416,"track":99306,"trackName":99275,"__hash__":99417},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers.md","Complex numbers",[93960],{"type":9,"value":99313,"toc":99395},[99314,99317,99321,99329,99334,99337,99344,99348,99358,99365,99370,99373,99378,99382,99390],[12,99315,99316],{},"We’ll start with what you know: regular numbers. Then we’ll introduce “imaginary” numbers. A complex number is just a combination of a regular number with an imaginary one. Let’s go.",[25,99318,99320],{"id":99319},"real-numbers-ℝ","Real numbers ( ℝ )",[12,99322,99323,99324,99328],{},"Our regular, ordinary, everyday numbers are called ",[19,99325,99327],{"href":99326},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FReal_number","real numbers",". These include integers and decimals. You can visualize real numbers as existing along an infinite number line, with zero in the middle, positive numbers counting up forever to infinity on the right, and negative numbers doing the exact opposite on the left.",[2175,99330],{"alt":99331,"caption":99332,"no":529,"src":99333},"A horizontal number line of Real Numbers with values labeled from -5 (left) to +5 (right) and arrows on either extreme indicating that these numbers extend infinitely in either direction.","The Real number line.","\u002F_content\u002Fimages\u002Fcomplex-numbers\u002Freal-numberline-3.webp",[12,99335,99336],{},"When a real number is multiplied by itself the product is always positive. For example, if we choose the number 2 we see that 2 × 2 = 4. Similarly, had we chosen the negative number -2, the product would still be positive because two negative numbers multiplied together also produce a positive result; -2 × -2 = 4. For brevity we could rewrite these equations as 22 = 4 and (-2)2 = 4, respectively.",[12,99338,4657,99339,99343],{},[19,99340,99342],{"href":99341},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSquare_root","square root"," of a real number has two possible answers. The square root of 4, for example, is both 2 and -2 because both are solutions for x in the equation x = 4.",[25,99345,99347],{"id":99346},"imaginary-numbers-𝕀","Imaginary numbers ( 𝕀 )",[12,99349,99350,99351,99354,99355,99357],{},"But suppose we wanted to find the square root of a ",[9404,99352,99353],{},"negative"," number. Is there any number that could solve for x in the equation x = -4? Sadly, there is not. Or more precisely: there is not any ",[9404,99356,67201],{}," solution for the square root of a negative number.",[12,99359,99360,99364],{},[19,99361,99363],{"href":99362},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FImaginary_number","Imaginary numbers"," might be considered an “intermediate impossible.” The symbol i is defined as the imaginary solution to the equation x = -1, therefore i2 = -1. With this imaginary device we now have a solution to the above equation x = -4 and that solution is 2i. (And also -2i, of course. We can indicate this “plus or minus” possibility as ±2i.) Let’s inspect this more closely.",[16838,99366,99367],{},[12,99368,99369],{},"x = -4 x = 4 × -1 x = 4 × -1 x = ±2 × -1 x = ±2 × i x = ±2i",[12,99371,99372],{},"2i is an imaginary number that consists of a real number multiplier, 2, and our imaginary solution to -1, called i. Like real numbers, imaginary numbers also exist along an infinite number line. We plotted our real number line horizontally, so let’s plot our imaginary number line vertically.",[2175,99374],{"alt":99375,"caption":99376,"no":529,"src":99377},"A vertical number line of Imaginary Numbers with values labeled from -5i (bottom) to +5 (top) and arrows on either extreme indicating that these numbers extend infinitely in either direction.","The Imaginary number line.","\u002F_content\u002Fimages\u002Fcomplex-numbers\u002Fimaginary-numberline-3.webp",[25,99379,99381],{"id":99380},"complex-numbers-ℂ","Complex numbers ( ℂ )",[12,99383,99384,99385,99389],{},"We just saw that multiplying a real number by i yields an imaginary number. But what if you add a real number to an imaginary one? Things get complex. A ",[19,99386,99388],{"href":99387},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FComplex_number","complex number"," is a number that can be expressed in the form a + bi, where a is the real component and bi is the imaginary component. Some examples might be 1 + 2i or 3 - 4i.",[2175,99391],{"alt":99392,"caption":99393,"no":529,"src":99394},"Complex plane diagram.","The Complex plane.","\u002F_content\u002Fimages\u002Fcomplex-numbers\u002Fcomplex-plane-3.webp",{"title":529,"searchDepth":547,"depth":547,"links":99396},[99397,99398,99399],{"id":99319,"depth":547,"text":99320},{"id":99346,"depth":547,"text":99347},{"id":99380,"depth":547,"text":99381},[4349,4350,99275,99310],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Complex numbers are a key part of orchestrating quantum algorithms, and you can learn what they are in just a few minutes.",{"image":99405,"alt":99310},"\u002F_content\u002Fimages\u002Fcomplex-numbers\u002Fhero.webp",{},{"slug":99408,"title":99409,"desc":99410},"\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fmatrices","3 · Matrices","Matrices are the mathematical building blocks for quantum bits, quantum gates, and quantum circuits.","\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers",[],{"title":99414,"description":99403},"Complex numbers · Quantum foundations","blog\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers",[],"f0mQk5_ni1F0HvSOLxrUQXKhDoNTiVYVUo7zco01iGs",{"id":99419,"title":99420,"authors":99421,"body":99422,"breadcrumb":99828,"builders":99829,"byline":99830,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":99831,"description":99831,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":99832,"fork":7,"hero":99833,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":99835,"navigation":790,"newsItems":7,"next":99836,"ogImage":7,"order":597,"outcomes":7,"path":99838,"publishDate":99300,"readingTime":99839,"related":99840,"relatedProjects":7,"seo":99841,"stem":99843,"tags":99844,"track":99306,"trackName":99275,"__hash__":99845},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fgates.md","Quantum logic gates",[93960],{"type":9,"value":99423,"toc":99810},[99424,99430,99434,99450,99471,99478,99499,99502,99539,99543,99547,99550,99553,99572,99576,99586,99590,99605,99608,99631,99635,99650,99653,99657,99668,99672,99676,99682,99686,99703,99707,99748,99752,99763,99767,99773,99777,99800,99804],[12,99425,99426,99427,114],{},"We’ll learn how quantum gates can act on a single qubit or multiple qubits in order to compute. While there’s no need to memorize the exact values that each gate uses to perform its operations, understanding the effect of some basic quantum gates is a solid foundation for understanding (and coding your own) ",[19,99428,93977],{"href":99429},"\u002Flearn\u002Fbuilding-your-first-qollab-project",[25,99431,99433],{"id":99432},"matrices-all-the-way-down","Matrices, all the way down",[12,99435,99436,99437,99439,99440,99444,99445,99449],{},"A quantum computer is just a collection of ",[19,99438,95687],{"href":95686},". These qubits hold probability values for resolving to either 0 or 1. A quantum computer is able to calculate things by changing the value of its qubits over time. We tell the computer exactly how it should change the value of a qubit by instructing it to “walk through” a series of ",[19,99441,99443],{"href":99442},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate","quantum gates",". As the qubit ",[19,99446,99448],{"href":99447},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FThe_Gates","“walks through” each gate"," its value is changed based on the type of gate it is passing through.",[12,99451,99452,99453,99456,99457,99461,99462,99465,99466,99470],{},"Contrary to what pop-science might tell you, there is nothing random or unpredictable about this process. Mathematically, a ",[19,99454,99455],{"href":95686},"qubit"," is just a ",[19,99458,99460],{"href":99459},"\u002Flearn\u002Fquantum-foundations\u002Fmatrices","matrix",". Similarly, a gate is also just a matrix. To apply a gate to a qubit is to ",[9404,99463,99464],{},"multiply"," these matrices together. To demonstrate this, let’s begin with a ",[19,99467,99469],{"href":99468},"\u002Flearn\u002Fquantum-foundations\u002Fqubits#named-couples","“Horizontal” qubit",", commonly thought of as representing “zero” or “off.” It has the following matrix form:",[12,99472,99473,99474,99477],{},"We would like to flip the value of this qubit from “off” to “on.” The result will be a ",[19,99475,99476],{"href":99468},"“Vertical” qubit"," with the following matrix form:",[12,99479,99480,99481,99484,99485,99488,99489,99493,99494,99498],{},"By looking at the pair of numbers that represent each qubit, you can see that a ",[19,99482,99483],{"href":99468},"Horizontal qubit"," is the inverse (or “flipped”) version of a ",[19,99486,99487],{"href":99468},"Vertical qubit",". In order to “flip” from one to the other we must apply a ",[19,99490,99492],{"href":99491},"#pauli-x-gate","Pauli X gate"," to our qubit. Because Pauli X gates have the effect of “flipping” the value of a qubit, they are often thought of as the quantum equivalent of a ",[19,99495,99497],{"href":99496},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInverter_(logic_gate)","classical “NOT” gate",". Pauli X gates have the following matrix form:",[12,99500,99501],{},"We can now apply the Pauli X gate to the Horizontal qubit by multiplying their matrices together. It’s okay if your matrix multiplication is rusty, that’s what computers are for! The important part is just to recall that both qubits and quantum gates can be represented by matrices, and so can be multiplied together.",[12,99503,99504,99505,99507,99508,99511,99512,99515,99516,10700,99518,99522,99523,99525,99526,99528,99529,99525,99531,99533,99534,99538],{},"As anticipated, the resulting product matrix represents a ",[19,99506,99487],{"href":99468},". Note how the gate’s matrix is the ",[9404,99509,99510],{},"first"," factor (all the way to the left) and the qubit’s matrix is the ",[9404,99513,99514],{},"second"," factor (second in from the left, with the resulting product to the right of the equals sign). This order matters because matrix multiplication is ",[974,99517,98071],{},[19,99519,99521],{"href":99520},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCommutative_property#Commutative_operations_in_mathematics","commutative",". With plain numbers (that is, numbers not contained within matrices), the order of the factors does not change the product outcome. a × b = b × a But with matrices, a different order yields a different outcome. ",[533,99524,19],{}," × ",[533,99527,6086],{}," ≠ ",[533,99530,6086],{},[533,99532,19],{}," See ",[19,99535,99537],{"href":99536},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMatrix_multiplication","matrix multiplication"," for an in-depth explanation.",[25,99540,99542],{"id":99541},"single-qubit-gates","Single-qubit gates",[3552,99544,99546],{"id":99545},"indentity-gate","Indentity gate",[12,99548,99549],{},"An Identity gate has no effect on the value of the qubit it operates on; equivalent to multiplying a value by one. (Generally when a circuit is created from text or another source, any included identity gates are ignored. It is included here for completeness.)",[3552,99551,99492],{"id":99552},"pauli-x-gate",[12,99554,4657,99555,99558,99559,99563,99564,99566,99567,99571],{},[19,99556,99492],{"href":99557},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Pauli-X_gate"," represents a rotation on the ",[19,99560,99562],{"href":99561},"\u002Flearn\u002Fquantum-foundations\u002Fqubits#bloch-sphere","Bloch sphere"," around the ",[974,99565,9471],{},"-axis by π radians. It is the quantum equivalent of the ",[19,99568,99570],{"href":99569},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInverter%3C\u002Fem%3E(logic_gate)","classical NOT gate"," in that it maps | 0 ⟩ to | 1 ⟩ and | 1 ⟩ to | 0 ⟩ .",[3552,99573,99575],{"id":99574},"pauli-y-gate","Pauli Y gate",[12,99577,4657,99578,99558,99581,99563,99583,99585],{},[19,99579,99575],{"href":99580},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Pauli-Y_gate",[19,99582,99562],{"href":99561},[974,99584,23238],{},"-axis by π radians. It maps | 0 ⟩ to i | 1 ⟩ and | 1 ⟩ to -i | 0 ⟩ .",[3552,99587,99589],{"id":99588},"pauli-z-gate","Pauli Z gate",[12,99591,4657,99592,99558,99595,99563,99597,99599,99600,99604],{},[19,99593,99589],{"href":99594},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Pauli-Z_gate",[19,99596,99562],{"href":99561},[974,99598,9468],{},"-axis by π radians. It is a special case of a ",[19,99601,99603],{"href":99602},"#phase-shift-gates","Phase shift gate"," where ϕ = π, and is therefore sometimes referred to as a “phase-flip” gate. It leaves the basis state | 0 ⟩ unchanged and maps | 1 ⟩ to - | 1 ⟩ .",[3552,99606,95704],{"id":99607},"hadamard-gate",[12,99609,99610,99611,99615,99616,99619,99620,99622,99623,99627,99628,1205],{},"Applies a ",[19,99612,99614],{"href":99613},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Hadamard_(H)_gate","Hadamard transform"," to a single qubit. For the basis qubit states of | 0 ⟩ and | 1 ⟩ this has the effect of putting a qubit into ",[19,99617,95712],{"href":99618},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_superposition",". It represents a rotation on the ",[19,99621,99562],{"href":99561}," around the Z-axis by π radians, followed by a rotation around the Y-axis by π ÷ 2 radians. This maps the basis state | 0 ⟩ to | 0 ⟩ + | 1 ⟩ 2 (also referred to as | + ⟩ or ",[19,99624,99626],{"href":99625},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBra%E2%80%93ket_notation","“ket plus”",") and | 1 ⟩ to | 0 ⟩ - | 1 ⟩ 2 (also referred to as | - ⟩ or ",[19,99629,99630],{"href":99625},"“ket minus”",[3552,99632,99634],{"id":99633},"phase-shift-gates","Phase shift gates",[12,99636,99637,99641,99642,99644,99645,99563,99647,99649],{},[19,99638,99640],{"href":99639},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Phase_shift_gates","Phase gates"," are a family of quantum gates that employ the variable ϕ (phi) to represent tracing a horizontal arc (a line of latitude) of ϕ radians around the ",[19,99643,99562],{"href":99561},". They leave the basis state | 0 ⟩ unchanged and map | 1 ⟩ to eiφ | 1 ⟩ . The probability of measuring a | 0 ⟩ or | 1 ⟩ is unchanged after applying a phase shift gate, however modifying the phase of a quantum state (thankfully) does have implications within a quantum algorithm. The example form shown here represents a rotation on the ",[19,99646,99562],{"href":99561},[974,99648,9468],{},"-axis of π ÷ 2 radians.",[12,99651,99652],{},"Remember that ϕ (phi) is a variable here. You can substitute whatever values you would like for ϕ without changing the gate’s properties as described above.",[3552,99654,99656],{"id":99655},"t-gate","T gate",[12,99658,99659,99660,99664,99665,99667],{},"The T gate is also known as the “π÷8” gate and is a special case of a Phase shift gate where the ϕ (phi) variable is set to π÷4. (But why is it called “π÷8” when it actually divides π by 4? ",[19,99661,99663],{"href":99662},"https:\u002F\u002Fwww.quora.com\u002FWhy-is-the-quantum-T-gate-called-pi-8-gate-as-it-only-adds-a-phase-difference-of-pi-4-instead-of-pi-8-to-the-state-vector-1","It’s a little mathy",".) Like all phase shift gates, it represents a rotation on the Bloch sphere around the ",[974,99666,9468],{},"-axis.",[25,99669,99671],{"id":99670},"multi-qubit-gates","Multi-qubit gates",[3552,99673,99675],{"id":99674},"swap-gate","Swap gate",[12,99677,4657,99678,99681],{},[19,99679,99675],{"href":99680},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Swap_(SWAP)_gate"," swaps the value of two qubits. It is defined here with respect to the bases | 00 ⟩ , | 01 ⟩ , | 10 ⟩ , and | 11 ⟩ .",[3552,99683,99685],{"id":99684},"squareroot-swap-gate","Squareroot swap gate",[12,99687,4657,99688,99692,99693,99696,99697,99699,99700,99702],{},[19,99689,99691],{"href":99690},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Square_root_of_Swap_gate_(%E2%88%9ASWAP)","√Swap gate"," performs ",[9404,99694,99695],{},"half"," of a swap between two qubits. It is ",[9404,99698,98071],{}," maximally entangling. More than one application of it is required to produce a ",[19,99701,95731],{"href":95730}," from its product states. As with the Swap gate, is defined here with respect to the bases | 00 ⟩ , | 01 ⟩ , | 10 ⟩ , and | 11 ⟩ .",[3552,99704,99706],{"id":99705},"controlled-gates","Controlled gates",[12,99708,99709,99712,99713,1576,99715,99717,99718,99721,99722,99726,99727,88311,99731,354,99734,99737,99738,99741,99742,99744,99745,99747],{},[19,99710,99706],{"href":99711},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_logic_gate#Controlled_gates"," act on two or more qubits, where one qubit acts as the “target” of the operation and the remaining qubits act as “controls” determining ",[9404,99714,5724],{},[9404,99716,93723],{}," that target qubit is operated upon. In its most elementary form (a ",[19,99719,95720],{"href":99720},"#controlled-not-gate","), a controlled gate operation acts as a sort of ",[19,99723,99725],{"href":99724},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FConditional_(computer_programming)","“if” statement",", operating on the target qubit only when that “if” statement is satisfied, or to the degree with which it is satisfied. (Because qubits represent probabilities, they are not limited to strict ",[19,99728,99730],{"href":99729},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBoolean_algebra","Boolean values",[57,99732,99733],{},"YES",[57,99735,99736],{},"NO",". You might imagine the “if” statement being ",[9404,99739,99740],{},"partially"," satisifed, and thus ",[9404,99743,99740],{}," operating on the target qubit.) Through this process, controlled gates have the ability to ",[19,99746,87153],{"href":95738}," and disentangle qubits.",[95288,99749,99751],{"id":99750},"controlled-not-gate","Controlled NOT gate",[12,99753,99754,99755,99759,99760,99762],{},"The foundational example of a controlled gate is the ",[19,99756,99758],{"href":99757},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FControlled_NOT_gate","Controlled-Not (CNOT) gate",". The CNOT gate accepts two qubits as input, a control qubit and a target qubit, only operating on the target qubit according to the state of the control qubit. If the control qubit’s state is | 0 ⟩ (“off”) the target qubit remains untouched. However, if the control cubit’s state is | 1 ⟩ (“on”) then the target qubit’s state will be inverted by a ",[19,99761,99492],{"href":99491},". Of course, a qubit’s state is not limited to | 0 ⟩ or | 1 ⟩ and therein lies the fun. Its matrix representation is akin to an identity matrix and an inversion matrix globbed together:",[95288,99764,99766],{"id":99765},"controlled-swap-fredkin-gate","Controlled Swap (Fredkin) gate",[12,99768,4657,99769,99772],{},[19,99770,99766],{"href":99771},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFredkin_gate"," operates on three qubits, using one as a control and two as targets. True to its name, it swaps the states of the two target qubits according to the state of the control bit. As we can see here, more qubits means more matrix values.",[95288,99774,99776],{"id":99775},"toffolli-ccnot-gate","Toffolli (CCNOT) gate",[12,99778,4657,99779,99783,99784,99788,99789,99792,99793,99795,99796,99799],{},[19,99780,99782],{"href":99781},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FToffoli_gate","Toffolli gate"," is also known as the CCNOT gate, a “controlled-controlled-not” gate. Like the ",[19,99785,99787],{"href":99786},"#controlled-swap-fredkin-gate","Controlled-swap “Fredkin” gate",", it operates on 3 qubits. Here we use ",[9404,99790,99791],{},"two"," control qubits to apply a ",[19,99794,99492],{"href":99491}," to a ",[9404,99797,99798],{},"single"," target qubit.",[25,99801,99803],{"id":99802},"ungated","Ungated",[12,99805,99806,99807,114],{},"Now that you’ve had a crash course in quantum gates, it’s probably a good time to step away from the screen, take a walk, and let some of this sink in. When you’re ready when can begin to explore ",[19,99808,99809],{"href":99429},"coding quantum circuits",{"title":529,"searchDepth":547,"depth":547,"links":99811},[99812,99813,99822,99827],{"id":99432,"depth":547,"text":99433},{"id":99541,"depth":547,"text":99542,"children":99814},[99815,99816,99817,99818,99819,99820,99821],{"id":99545,"depth":575,"text":99546},{"id":99552,"depth":575,"text":99492},{"id":99574,"depth":575,"text":99575},{"id":99588,"depth":575,"text":99589},{"id":99607,"depth":575,"text":95704},{"id":99633,"depth":575,"text":99634},{"id":99655,"depth":575,"text":99656},{"id":99670,"depth":547,"text":99671,"children":99823},[99824,99825,99826],{"id":99674,"depth":575,"text":99675},{"id":99684,"depth":575,"text":99685},{"id":99705,"depth":575,"text":99706},{"id":99802,"depth":547,"text":99803},[4349,4350,99275,99420],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Quantum logic gates are the means of “getting work done” on a quantum computer. They perform computation by altering the values of quantum bits (“qubits”).","That’s Quantum foundations, start to finish.",{"image":99834,"alt":99420},"\u002F_content\u002Fimages\u002Fgates\u002Fhero.webp",{},{"slug":98686,"title":4594,"desc":99837},"Set up Python and Qiskit, run your first circuit on real IonQ hardware, then publish your project to Qollab.","\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fgates","19 min read",[],{"title":99842,"description":99831},"Quantum logic gates · Quantum foundations","blog\u002Flearn\u002Fquantum-foundations\u002Fgates",[],"NGU34jkFXe9Ju6pLpaUvROGbEH9lSGPHcMmfq9J07RY",{"id":99847,"title":99848,"authors":99849,"body":99850,"breadcrumb":99943,"builders":99944,"byline":99945,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":99410,"description":99410,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":99946,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":99948,"navigation":790,"newsItems":7,"next":99949,"ogImage":7,"order":575,"outcomes":7,"path":99408,"publishDate":99300,"readingTime":5206,"related":99953,"relatedProjects":7,"seo":99954,"stem":99956,"tags":99957,"track":99306,"trackName":99275,"__hash__":99958},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fmatrices.md","Matrices",[93960],{"type":9,"value":99851,"toc":99937},[99852,99859,99863,99869,99872,99876,99884,99888,99898,99916,99919],[12,99853,99854,99855,99858],{},"This quick review of matrices will prime you to learn what qubits actually represent, including a concrete, non-",[9404,99856,99857],{},"woo-woo"," definition of superposition. Let’s get started.",[25,99860,99862],{"id":99861},"grid-of-numbers","Grid of numbers",[12,99864,90123,99865,99868],{},[19,99866,99460],{"href":99867},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMatrix_(mathematics)"," is just a grid of numbers; rows and columns containing values. Matrices can be of any size. Here’s an example of a 3×2 matrix. It is 3 columns wide and 2 rows tall, containing the values 1 through 6.",[12,99870,99871],{},"When describing the dimensions of a matrix we always specify the number of rows first, then the number of columns. The above is an example of a 3×2 matrix, while below is a matrix containing similar data, but in a 2×3 configuration.",[25,99873,99875],{"id":99874},"order-matters","Order matters",[12,99877,99878,99879,99883],{},"For our purposes, we’ll express our matrices in ",[19,99880,99882],{"href":99881},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRow-_and_column-major_order","row-major order",". This means we read the values just as they are ordered above, starting with the top-most row, reading values from left to right, then proceeding to the next row down and repeating that process. Our choice of row-major order makes reading and writing matrix values more akin to reading and writing in English; easier to type and program here.",[25,99885,99887],{"id":99886},"vectors-are-slices","Vectors are slices",[12,99889,99890,99891,99893,99894,99897],{},"While a matrix is a two-dimensional ",[9404,99892,17098],{}," of numbers, a vector is more like a ",[9404,99895,99896],{},"slice"," of numbers, such as a “skinny” matrix that is only one column wide, or a “flat” matrix that is only one row high. Let’s look at some examples of matrices that are simultaneously vectors.",[12,99899,99900,99901,99904,99905,99908,99909,99912,99913,99915],{},"While the above 2×2 matrix is not a vector, you could say that it ",[9404,99902,99903],{},"contains"," vectors: Two ",[9404,99906,99907],{},"column"," vectors or two ",[9404,99910,99911],{},"row"," vectors. Because vectors are just a type of matrix we can add them, multiply them, and so on, just like any other matrix. Vectors will play a prominent role in defining ",[19,99914,7530],{"href":95686}," and expressing the state of a quantum circuit.",[25,99917,99310],{"id":99918},"complex-numbers",[12,99920,99921,99922,99926,99927,1389,99930,99932,99933,99936],{},"In addition to storing regular numbers, matrices can contain ",[19,99923,99925],{"href":99924},"\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers","complex numbers",". This is both useful and ",[9404,99928,99929],{},"necessary",[19,99931,7530],{"href":95686}," are really just a pair of complex numbers that we store in a 1×2 matrix. So, yes, the example matrices above are each ",[9404,99934,99935],{},"larger"," than a qubit!",{"title":529,"searchDepth":547,"depth":547,"links":99938},[99939,99940,99941,99942],{"id":99861,"depth":547,"text":99862},{"id":99874,"depth":547,"text":99875},{"id":99886,"depth":547,"text":99887},{"id":99918,"depth":547,"text":99310},[4349,4350,99275,99848],[],{"username":93960,"name":94745,"role":94746,"avatar":529},{"image":99947,"alt":99848},"\u002F_content\u002Fimages\u002Fmatrices\u002Fhero.webp",{},{"slug":99950,"title":99951,"desc":99952},"\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fqubits","4 · Qubits (quantum bits)","Like bits in classical computing, qubits are the fundamental containers for storing value in a quantum circuit. These stored values can be altered…",[],{"title":99955,"description":99410},"Matrices · Quantum foundations","blog\u002Flearn\u002Fquantum-foundations\u002Fmatrices",[],"KkLp4nFthjXp1lSyiw5dL9U7Jxum7rk47vLoWLJVM7o",{"id":99960,"title":99961,"authors":99962,"body":99963,"breadcrumb":100424,"builders":100425,"byline":100426,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":100427,"description":100428,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":100429,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":100431,"navigation":790,"newsItems":7,"next":100432,"ogImage":7,"order":590,"outcomes":7,"path":99950,"publishDate":99300,"readingTime":100435,"related":100436,"relatedProjects":7,"seo":100437,"stem":100439,"tags":100440,"track":99306,"trackName":99275,"__hash__":100441},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fqubits.md","Qubits (quantum bits)",[93960],{"type":9,"value":99964,"toc":100414},[99965,99968,99972,99983,100014,100033,100037,100040,100048,100056,100060,100076,100084,100092,100098,100102,100111,100139,100142,100162,100181,100184,100188,100204,100219,100233,100240,100242,100265,100277,100294,100297,100300,100303,100306,100312,100316,100327,100372,100380,100395,100398,100410],[12,99966,99967],{},"We’ll learn that qubits are mathematically simple structures, yet provide tremendous computational power. While there are multiple ways to implement physical qubits, we’re only interested in the mathematical concept of a qubit. Regardless of what method a quantum computer uses to implement its physical qubits, how they operate as a computing tools remains the same.",[25,99969,99971],{"id":99970},"perfect-pairs","Perfect pairs",[12,99973,90123,99974,99977,99978,99982],{},[19,99975,99455],{"href":99976},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQubit"," is just a pair of numbers. That’s it, two ",[19,99979,99981],{"href":99980},"https:\u002F\u002Fyoutu.be\u002FYYOKMUTTDdA","shiny happy number values, holding hands",". Let’s call the first number “alpha” and the second number “beta.” Look at this handsome couple:",[12,99984,99985,99986,99988,99989,99992,99993,99995,99996,100000,100001,100003,100004,95692,100006,100009,100010,100013],{},"We can package alpha and beta together by storing them in a very small ",[19,99987,99460],{"href":99459}," that is only ",[974,99990,99991],{},"one"," unit wide and ",[974,99994,99791],{}," units tall, and because this matrix is only one unit wide it is not merely a matrix, it’s also a ",[19,99997,99999],{"href":99998},"\u002Flearn\u002Fquantum-foundations\u002Fmatrices#vectors-are-slices","vector",". (What’s a ",[19,100002,99460],{"href":99459},"? What’s a ",[19,100005,99999],{"href":99998},[19,100007,100008],{"href":99459},"matrix explainer"," for quick refreshers on both.) So when you think of a qubit you can imagine it as a 1 × 2 ",[19,100011,99460],{"href":100012},"\u002Flearn\u002Fquantum-foundations\u002Fmatrices\u002F"," containing its alpha value on the top and its beta value on the bottom, like so:",[12,100015,100016,100017,100019,100020,100024,100025,100028,100029,100032],{},"Now that we know a qubit is a ",[19,100018,99460],{"href":99459},", we also know that we can perform ",[19,100021,100023],{"href":100022},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMatrix_addition","addition"," with qubits, perform ",[19,100026,100027],{"href":99536},"multiplication"," with qubits, and so on, just as one can do with any matrix. (That will become rather important when we eventually introduce the idea of ",[19,100030,99443],{"href":100031},"\u002Flearn\u002Fquantum-foundations\u002Fgates",", which are also matrices.)",[25,100034,100036],{"id":100035},"predictable-couples","Predictable couples",[12,100038,100039],{},"The thing that makes this pair of numbers special is their relationship to each other, which we can define as follows: alpha multiplied by alpha, added to beta multiplied by beta, must always equal one. We can express this as an equation:",[12,100041,100042,100043,100047],{},"The parentheses in the equation above are not strictly necessary as the ",[19,100044,100046],{"href":100045},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOrder_of_operations","“order of operations” rules"," dictate that these multiplications must be carried out prior to the additions, but emphasis can often be more helpful than brevity when learning something new. And now that we understand this relationship we can express it more compactly using exponents rather than multiplications: alpha squared added to beta squared must always equal one.",[12,100049,100050,100051,100055],{},"A bit ",[19,100052,100054],{"href":100053},"#complex-couples","further below"," we’ll add one small wrinkle to this equation, but otherwise this is what defines a qubit. That’s it. It’s that easy.",[25,100057,100059],{"id":100058},"named-couples","Named couples",[12,100061,100062,100063,100067,100068,100071,100072,100075],{},"Let’s start plugging in values for alpha and beta. Each different value combination makes a different sort of qubit. The most frequently used qubit value combinations have names and belong to a set of named vectors called ",[19,100064,100066],{"href":100065},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJones_calculus#The_Jones_vector","Jones vectors",". We’ll begin with the two simplest qubits. This first qubit is named ",[9404,100069,100070],{},"Horizontal"," and the second is named ",[9404,100073,100074],{},"Vertical",". Both are composed from a zero and a one and we can see that this satisfies our qubit definition above.",[12,100077,100078,100079,354,100081,100083],{},"What does it mean to be named ",[9404,100080,100070],{},[9404,100082,100074],{},"? Where do these orientation-based names come from? Are there more orientation-based names? To understand, let’s plot these two qubit vectors on a graph. We’ll use the alpha value as our x coordinate and the beta value as our y coordinate:",[12,100085,100086,100087,100089,100090,114],{},"Plotting alpha and beta as x and y yields (1,0) for a ",[9404,100088,99483],{}," and (0,1) for a ",[9404,100091,99487],{},[12,100093,100094,100095,100097],{},"We can see that the values from a Horizontal qubit, when plotted as x and y, form a horizontal line from the origin (0,0) out to (1,0). Meanwhile, when we plot the values of a Vertical qubit as x and y, it forms a vertical line from the origin (0,0) up to (0,1). Before we introduce more named ",[19,100096,100066],{"href":100065}," let’s take what we’ve learned about qubit values and generalize it for vectors with more than two elements so we can better understand what these qubit values truly mean.",[25,100099,100101],{"id":100100},"state-vectors","State vectors",[12,100103,100104,100105,100107,100108,100110],{},"Did it seem strange to read that the qubit we refer to as “",[57,100106,1049],{},"” begins with an alpha value of 1? (Or that the qubit we refer to as “",[57,100109,1052],{},"” begins with an alpha value of 0?) Does that mean we refer to qubits by their beta values? Is that some sort of quantum computing convention?",[12,100112,100113,100114,100117,100118,100120,100121,100125,100126,100128,100129,100132,100133,100135,100136,114],{},"The short answer is “No.” To understand why, we must recognize that a qubit is the simplest example of a quantum ",[9404,100115,100116],{},"state vector",", a list of all possible states for a quantum system to exist in, with each possible state accompanied by the probability that the system is indeed in that state. When a single qubit is measured there are only two possible states for it to be in: 0 or 1. This is why a qubit is represented by a two-element vector; one element per possible outcome. On this very short list of possible outcomes, 0 is the first possible outcome and 1 is the second possible outcome. When we say that a Horizontal qubit is “",[57,100119,1049],{},"” ",[19,100122,100124],{"href":100123},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DfSL-HeIrxA","we’re not referring to the qubit’s beta value at all",". We’re instead highlighting the fact that the 1 in this (1,0) pair happens to be in the “zeroth” slot, the alpha slot of this (alpha,beta) pair. We’re saying that for the possible outcome “",[57,100127,1049],{},"” our qubit is voting 1, or ",[57,100130,100131],{},"TRUE",". At the same time we’re saying that for the possible outcome “",[57,100134,1052],{},"”, our qubit is voting 0, or ",[57,100137,100138],{},"FALSE",[12,100140,100141],{},"For good measure let’s look at the converse example.",[12,100143,100144,100145,100147,100148,1576,100150,100152,100153,1133,100155,1133,100157,4801,100159,100161],{},"To further clarify, and to hint at how a quantum circuit functions, let’s look at a state vector for a quantum system composed of ",[974,100146,99791],{}," qubits. With one qubit there were two possible outcomes: ",[57,100149,1049],{},[57,100151,1052],{},". (And because there are only two elements of a qubit vector we named them alpha and beta to make referring to them more convenient.) For two qubits there are four possible outcomes: ",[57,100154,1593],{},[57,100156,1575],{},[57,100158,1579],{},[57,100160,1596],{},". (We won’t bother to name elements of state vectors larger than two. It would get unwieldy rather quickly.) Which of those four possible outcomes might the following state vector represent?",[12,100163,100164,100165,5037,100167,100169,100170,5037,100172,100174,100175,100177,100178,100180],{},"The above vector represents four possible outcomes and we see that three out of those four possible outcomes are ",[57,100166,100138],{},[57,100168,1049],{},"). Meanwhile, the third of those four possible outcomes is ",[57,100171,100131],{},[57,100173,1052],{},"). Because the result value of the third possible outcome is ",[57,100176,1579],{}," we see that this two qubit vector state is telling us it represents a result of ",[57,100179,1579],{},". Let’s break this down the same way we did with Horizontal and Vertical qubits.",[12,100182,100183],{},"We’ve learned that a single qubit is the simplest example of a quantum state vector. It is a list of the votes per each possible outcome, and for a single qubit there are only two possible outcomes. We’ve also seen that we can represent the state of a multi-qubit system where there are more than two possible outcomes.",[25,100185,100187],{"id":100186},"ket-notation","Ket notation",[12,100189,100190,100194,100195,100198,100199,100203],{},[19,100191,100193],{"href":100192},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPaul_Dirac","Paul Dirac","’s ",[19,100196,100197],{"href":99625},"“bra-ket” notation"," offers us a more compact means of describing ",[19,100200,100202],{"href":100201},"#state-vectors","quantum state vectors",", and by extension, qubits. (While “bra-ket” offers us two named elements, “bra” and “ket”, for our purposes we need only focus on the latter.) Kets represent the result value that our quantum vector state represents. They are expressed as values enclosed between a vertical bar and a rightward angle bracket. The following is pronounced “ket zero.”",[12,100205,100206,100207,100211,100212,100214,100215,100218],{},"We ",[19,100208,100210],{"href":100209},"#named-couples","began"," by stating that a Horizontal qubit represents “",[57,100213,1049],{},"”, and later ",[19,100216,100217],{"href":100201},"explained"," why this was so. Kets provide us a convenient way to refer to this result state directly as in-line text rather than a clunky matrix.",[12,100220,100221,100222,100225,100226,100228,100229,100232],{},"Similarly, we ",[19,100223,100224],{"href":100209},"defined"," a Vertical qubit as representing “",[57,100227,1052],{},"” and ",[19,100230,100231],{"href":100201},"illustrated this"," as well. We can now also express this column vector as a ket.",[12,100234,100235,100236,114],{},"The convenience of ket notation becomes more apparent as we represent state vectors that are larger than a single qubit. (For n qubits we must use a state vector that has 2n elements. Meanwhile our ket values are still just n digits long.) Here we express four possible states of a two qubit system as both state vectors and their ",[19,100237,100239],{"href":100238},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQubit#Standard_representation","equivalent kets",[25,100241,1335],{"id":95712},[12,100243,100244,100245,100247,100248,100252,100253,100255,100256,100258,100259,100261,100262,100264],{},"You’ve probably heard the term “",[19,100246,95712],{"href":99618},"”, and along with that you’ve likely been spoonfed some measure of mysticism; ",[19,100249,100251],{"href":100250},"https:\u002F\u002Fyoutu.be\u002FCMdHDHEuOUE","pizza-bagels"," and whatnot. In the real, physical world, superposition is indeed weird magic. But mathematically it’s dead simple: Superposition is any qubit state where the alpha and beta values are anything other than exactly 0 or exactly 1. Up until now we’ve thought of alpha and beta values as being either ",[57,100254,100131],{}," (1) or ",[57,100257,100138],{}," (0) but each is actually capable of expressing an entire spectrum between ",[57,100260,100131],{}," (1) and ",[57,100263,100138],{}," (0). Let’s investigate that idea by building on what we’ve already learned.",[12,100266,100267,100268,100272,100273,100276],{},"Given the constraint alpha 2 + beta 2 = 1 , if we plot all of the possible alpha and beta values on a graph as x and y respectively, the outcome is a circle with a radius of 1 centered at the origin ( 0 , 0 ) ; ie. a ",[19,100269,100271],{"href":100270},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FUnit_circle","unit circle","). All possible combinations of alpha and beta lay on the perimeter of this circle. To illustrate this, here’s a plot of named ",[19,100274,100066],{"href":100275},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJones_calculus#Jones_vectors"," as well as their conjugates.",[12,100278,100279,100280,100284,100285,100289,100290,100293],{},"What the alpha and beta values represent are the individual ",[19,100281,100283],{"href":100282},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProbability_amplitude","probability amplitudes"," for each outcome; that a qubit when measured will be in either a | 0 ⟩ or a | 1 ⟩ state. Measurement itself causes a qubit’s ",[19,100286,100288],{"href":100287},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWave_function_collapse","probability wave to collapse",", bringing an end to its superposition. The probability that upon measurement a qubit’s ",[19,100291,100292],{"href":100282},"probability amplitude"," will collapse to | 0 ⟩ is alpha2, while the probability that it will collapse to | 1 ⟩ is beta2.",[12,100295,100296],{},"We already know that a Horizontal qubit exists in a state of | 0 ⟩ (“ket zero”) and therefore has a 100% chance of being measured as | 0 ⟩ .",[12,100298,100299],{},"Similarly, we also know that a Vertical qubit exists in a state of | 1 ⟩ (“ket one”) and therefore has a 100% chance of being measured as | 1 ⟩ .",[12,100301,100302],{},"Meanwhile, a Diagonal qubit exists in a state of superposition as | + ⟩ (“ket plus”). It is a state which does not have a definite result value prior to measurement but it does of course have a definite state vector and that state vector has a positive orientation. (Recall our unit circle diagram above to see how this value lays in a positive quadrant of the graph.) There is a 50% chance of it being measured as | 0 ⟩ (“ket zero”) and a 50% chance of it being measured as | 1 ⟩ (“ket one”).",[12,100304,100305],{},"And finally, an Anti-diagonal qubit also exists in a state of superposition, but as | - ⟩ (“ket minus”). Like the Diagonal qubit it has a 50% chance of being measured as | 0 ⟩ (“ket zero”) and a 50% chance of being measured as | 1 ⟩ (“ket one”).",[12,100307,100308,100309,100311],{},"What does it mean that a Diagonal qubit state and an Anti-diagonal qubit state collapse with the same probabilies? What about their conjugates which also behave in this same fashion? ",[19,100310,93977],{"href":99429}," the aspects of quantum computing that quantum algorithms are engineered to take advantage of.",[25,100313,100315],{"id":100314},"complex-couples","Complex couples",[12,100317,100318,100319,100323,100324,114],{},"We’ve spent the majority of this primer describing qubits as containing alpha and beta values ranging from 0 up to 1. The ",[19,100320,100322],{"href":100321},"#superposition","unit circle above"," illustrates that these values can also range from 0 down to −1. While all of this remains true, the story is slightly more ",[9404,100325,100326],{},"complex",[12,100328,100329,100330,100333,100334,100337,100338,100341,100342,1133,100345,4801,100349,100352,100353,100355,100356,100359,100360,100362,100363,100365,100366,100368,100369,100371],{},"Qubits are actually made of ",[19,100331,99388],{"href":100332},"\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers\u002F"," pairs, meaning there is an ",[9404,100335,100336],{},"imaginary component."," (See the ",[19,100339,100340],{"href":100332},"Complex Numbers page"," for a quick refresher on ",[19,100343,67201],{"href":100344},"\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers\u002F#real-numbers-%E2%84%9D",[19,100346,100348],{"href":100347},"\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers\u002F#imaginary-numbers-%F0%9D%95%80","imaginary",[19,100350,99925],{"href":100351},"\u002Flearn\u002Fquantum-foundations\u002Fcomplex-numbers\u002F#complex-numbers-%E2%84%82",".) This means ",[9404,100354,99991],{}," qubit is actually made of ",[9404,100357,100358],{},"four"," parts: The alpha value has a ① ",[19,100361,67201],{"href":100344}," component and an ② ",[19,100364,100348],{"href":100347}," one. The beta value also has a ③ ",[19,100367,67201],{"href":100344}," component and an ④ ",[19,100370,100348],{"href":100347}," one.",[12,100373,100374,100375,100379],{},"To account for this we must slightly evolve our definition of a qubit; specifically the relationship between its alpha and beta values. Rather than simply adding their squares together, we must instead add the squares of their ",[19,100376,100378],{"href":100377},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAbsolute_value","absolute values",". Our evolved equation, which indicates absolute values by enclosing numbers between vertical bars, now looks like this:",[12,100381,100382,100383,100385,100386,100389,100390,354,100392,100394],{},"By taking the ",[19,100384,100378],{"href":100377}," of alpha and beta before squaring them, we continue to ensure that our sum of squares will equal exactly 1; that it continues to equal a simple, ",[19,100387,100388],{"href":100344},"real number"," rather than an ",[19,100391,100348],{"href":100347},[19,100393,100326],{"href":100351}," number.",[25,100396,99562],{"id":100397},"bloch-sphere",[12,100399,100400,100401,100403,100404,100406,100407,114],{},"And that’s really it. That’s what makes a mathematical qubit. But with that last-minute addition of ",[19,100402,99925],{"href":100351}," above, we can no longer visualize a qubit as a two-dimensional ",[19,100405,100271],{"href":100321},". Instead we must map our two complex values onto a three dimensional graph known as a ",[19,100408,99562],{"href":100409},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBloch_sphere",[100411,100412],"bloch-visualizer",{"state":100413},"|+⟩",{"title":529,"searchDepth":547,"depth":547,"links":100415},[100416,100417,100418,100419,100420,100421,100422,100423],{"id":99970,"depth":547,"text":99971},{"id":100035,"depth":547,"text":100036},{"id":100058,"depth":547,"text":100059},{"id":100100,"depth":547,"text":100101},{"id":100186,"depth":547,"text":100187},{"id":95712,"depth":547,"text":1335},{"id":100314,"depth":547,"text":100315},{"id":100397,"depth":547,"text":99562},[4349,4350,99275,99961],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Like bits in classical computing, qubits are the fundamental containers for storing value in a quantum circuit. These stored values can be altered by applying quantum gates to them.","Like classical bits, qubits are the fundamental containers that store a value in a quantum circuit. That value changes when you apply quantum gates.",{"image":100430,"alt":99961},"\u002F_content\u002Fimages\u002Fqubits\u002Fhero.webp",{},{"slug":99838,"title":100433,"desc":100434},"5 · Quantum logic gates","Quantum logic gates are the means of “getting work done” on a quantum computer. They perform computation by altering the values of quantum bits…","24 min read",[],{"title":100438,"description":100428},"Qubits (quantum bits) · Quantum foundations","blog\u002Flearn\u002Fquantum-foundations\u002Fqubits",[],"mP8sUlw4SfDzqMtHqvPh7Lnw6uqmcMuXyov-rq0x_tI",{"id":100443,"title":100444,"authors":100445,"body":100446,"breadcrumb":100725,"builders":100726,"byline":100727,"category":7,"categoryName":7,"challenge":7,"courseAuthor":7,"courseLead":7,"dek":100728,"description":100729,"draft":786,"extension":787,"eyebrow":7,"featured":786,"finish":7,"fork":7,"hero":100730,"heroAlt":7,"heroCta":7,"heroImage":7,"homepageFeatured":786,"kind":4601,"lessonCount":597,"meta":100732,"navigation":790,"newsItems":7,"next":100733,"ogImage":7,"order":536,"outcomes":7,"path":100735,"publishDate":99300,"readingTime":81459,"related":100736,"relatedProjects":7,"seo":100737,"stem":100739,"tags":100740,"track":99306,"trackName":99275,"__hash__":100741},"blog\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fwhats-quantum-computing.md","What’s quantum computing?",[93960],{"type":9,"value":100447,"toc":100704},[100448,100466,100470,100473,100477,100484,100488,100499,100503,100509,100513,100541,100545,100570,100574,100577,100581,100588,100599,100602,100606,100609,100613,100628,100632,100635,100639,100651,100654,100657,100661,100675,100679,100697,100701],[12,100449,100450,100451,1133,100455,100458,100459,100462,100463,114],{},"This page provides a gentle explanation of what a quantum computer is, why quantum computers are important, and then provides links to ",[19,100452,100454],{"href":100453},"\u002Flearn\u002Fquantum-foundations","quantum concept primers",[19,100456,100457],{"href":99429},"software development kits",", and other relevant resources. These modules are far from comprehensive. They’re not the ",[9404,100460,100461],{},"conclusion"," of your learning journey. They are the ",[9404,100464,100465],{},"beginning",[25,100467,100469],{"id":100468},"whats-a-quantum-computer","What’s a quantum computer?",[12,100471,100472],{},"A quantum computer isn’t really a computer, at least, not in the way we use the word “computer” today. Usually when we speak about “computers” we’re referring to something with a screen. A keyboard. Some kind of pointing device like a mouse, trackpad, or even a touch screen. Your desktop or laptop computer might even have a camera, microphone, or speakers. A quantum computer doesn’t have any of those things.",[3552,100474,100476],{"id":100475},"like-a-graphics-card","Like a graphics card",[12,100478,100479,100480,100483],{},"Quantum computers are more like graphics cards. If you’re not familiar, a graphics card is a piece of hardware that slots into your computer’s innards and boosts its ability to render complex, high resolution graphics. The crown jewel of a graphics card is its GPU, or Graphics Processing Unit. The GPU is a special computer chip built for rendering graphics quickly. Graphics cards aren’t “computers” in the way we commonly use that word, but they are absolutely computers in the sense that their job is to ",[9404,100481,100482],{},"compute."," In fact, that is all that they do.",[3552,100485,100487],{"id":100486},"different-tools-for-different-problems","Different tools for different problems",[12,100489,100490,100491,100494,100495,100498],{},"So why bother with a graphics card? Your computer already contains a CPU, or Central Processing Unit. Isn’t that good enough? Yes and no. CPUs are designed to execute a very long series of instructions incredibly quickly, one instruction at a time. But a ",[9404,100492,100493],{},"GPU"," is engineered to execute ",[9404,100496,100497],{},"millions of copies of one tiny program at once."," Most software, like applications for composing and editing text documents, are perfectly suited for CPUs. But some problems, like computing the color values for millions of pixels in order to paint one frame of a large 3D scene, are more efficiently solved by GPUs. Certain procedures lend themselves to one kind of tool, while other procedures are more efficiently solved by another.",[3552,100500,100502],{"id":100501},"a-new-kind-of-tool","A new kind of tool",[12,100504,100505,100506,100508],{},"That’s where quantum computers come in. A quantum computer has its own crown jewel: the QPU, or Quantum Processing Unit. QPUs are a third style of hardware architecture, engineered to more efficiently answer a special set of logic questions that are ",[9404,100507,98071],{}," as easily answered by either CPUs or GPUs. Just like a graphics card, a quantum computer must be attached to a “regular computer”, that is, a computer that has a screen, keyboard, and pointing device, in order for us humans to tell the quantum computer what to do. (And for receiving \u002F rendering the results of a quantum computation.) Quantum computers are a different kind of tool for a different kind of problem.",[3552,100510,100512],{"id":100511},"a-quantum-tool","A quantum tool",[12,100514,100515,100516,100520,100521,1133,100523,1133,100525,4801,100529,100533,100534,100536,100537,100540],{},"Quantum computers are different because unlike other computing architectures, they harness properties of ",[19,100517,100519],{"href":100518},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_mechanics","quantum mechanics"," in order to solve logic problems. These properties include interesting and often counterintuitive behaviors like ",[19,100522,95712],{"href":99618},[19,100524,5823],{"href":95738},[19,100526,100528],{"href":100527},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWave_interference","interference",[19,100530,100532],{"href":100531},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantum_teleportation","teleportation",". (No, quantum teleportation is ",[9404,100535,98071],{}," like Star Trek, sadly.) There are different types of quantum computer hardware architectures, but ",[9404,100538,100539],{},"all"," of them leverage these same quantum principles.",[3552,100542,100544],{"id":100543},"math-not-physics","Math, not physics",[12,100546,100547,100548,100551,100552,100555,100556,100558,100559,1133,100561,1133,100564,4801,100566,100569],{},"Thankfully, you don’t need to be an expert in quantum physics to begin coding quantum programs (known in the industry as “quantum ",[9404,100549,100550],{},"circuits","”) for a quantum computer. In fact, you don’t need to understand the physics ",[9404,100553,100554],{},"at all."," Quantum software is just software. And software is just math expressed as a story. In order to write your quantum stories you’ll need to brush up on a tiny bit of math. To assist you with this, we’ve written a few ",[19,100557,100454],{"href":100453},". These cover ",[19,100560,99925],{"href":99924},[19,100562,100563],{"href":99459},"matrices",[19,100565,95687],{"href":95686},[19,100567,100568],{"href":100031},"quantum logic gates",". With just these intellectual tools under your belt, you’ll understand the building blocks of quantum algorithms, and you’ll be able to write your own.",[25,100571,100573],{"id":100572},"why-do-quantum-computers-matter","Why do quantum computers matter?",[12,100575,100576],{},"Quantum computers allow us compute using the physics of the universe itself, opening up problems that are inaccessible to classical computation. They allow us to solve certain logic puzzles that would otherwise take a lot longer, sometimes longer than a human lifespan. Let’s look at some examples.",[3552,100578,100580],{"id":100579},"_1-they-access-exponentially-large-state-spaces","1. They access exponentially large state spaces",[12,100582,100583,100584,100587],{},"A classical computer stores one configuration of bits at a time. A quantum computer stores a ",[19,100585,100586],{"href":99924},"complex-valued"," amplitude over 2ⁿ possible bitstrings simultaneously.",[753,100589,100590,100593,100596],{},[756,100591,100592],{},"10 qubits → amplitudes over 1,024 states.",[756,100594,100595],{},"50 qubits → amplitudes over 1 quadrillion states.",[756,100597,100598],{},"1,000 logical qubits → amplitudes over 10³⁰⁰ states (more than atoms in the universe).",[12,100600,100601],{},"This doesn’t mean “magical parallel computing.” It means quantum computers can represent (and operate on) huge structured spaces compactly. They matter for tasks where that structure can be used instead of collapsing into noise.",[3552,100603,100605],{"id":100604},"_2-they-use-interference-as-a-computational-primitive","2. They use interference as a computational primitive",[12,100607,100608],{},"Classical bits don’t “cancel each other out.” Quantum amplitudes do. Quantum algorithms work by: Spreading amplitude over many candidate solutions Computing a phase pattern that encodes a problem Using interference to amplify the correct solutions and suppress incorrect ones This interference is the heart of algorithms like: Grover (search) Shor (period finding → factoring) HHL (linear systems) VQE & QAOA (optimization via physics dynamics) Interference is why the right answer “pops out” without needing to know it ahead of time.",[3552,100610,100612],{"id":100611},"_3-they-implement-linear-algebra-natively","3. They implement linear algebra natively",[12,100614,100615,100616,100619,100620,100623,100624,100627],{},"Quantum operations are matrices. Quantum states are vectors. Quantum evolution is matrix multiplication. Anything that requires huge vectors, huge matrices, transformations (like Fourier transforms, eigenvalue estimation, or simulation of unitary dynamics), all get a natural hardware-level boost. This is why quantum computers matter for: - ",[974,100617,100618],{},"Chemistry",". Simulating molecules is exponentially hard classically because electron wavefunctions live in huge Hilbert spaces. Quantum hardware matches that structure. - ",[974,100621,100622],{},"Materials",". Superconductors, catalysts, batteries, photovoltaics, these are quantum many-body systems. - ",[974,100625,100626],{},"Optimization & machine learning",". Quantum systems naturally explore complex energy landscapes and encode correlations compactly.",[3552,100629,100631],{"id":100630},"_4-they-can-simulate-physics-in-ways-classical-computers-fundamentally-cannot","4. They can simulate physics in ways classical computers fundamentally cannot",[12,100633,100634],{},"Our universe is quantum mechanical. If you’re aiming to simulate the nitty-gritty aspects of it, you just can’t rely on classical computation. You need quantum computation in order to match the behavior of our reality. Quantum simulation is likely the first mega-use-case that reaches real-world impact: - Drug discovery. - Materials design. - Climate and energy applications. - Quantum chemistry (enzymes, catalysts). - Superconductivity and quantum phases of matter.",[25,100636,100638],{"id":100637},"how-can-i-play-with-quantum-computing","How can I play with quantum computing?",[12,100640,100641,100642,100646,100647,100650],{},"Use the ",[19,100643,100645],{"href":100644},"#resources-sitemap","Resources sitemap"," below as your personal roadmap to quantum computing. First, we’ll brush up on just a tiny bit of math. Then, we’ll get some quantum programming software setup on your own personal computer. From there we can run quantum ",[9404,100648,100649],{},"simulations"," either on your own machine or in the cloud. And that’s when we reach the summit: We’ll run your quantum circuits on actual quantum computing hardware connected to the cloud.",[25,100652,100645],{"id":100653},"resources-sitemap",[12,100655,100656],{},"You don’t need to be a physicist to write quantum software. Let’s get you up and running.",[3552,100658,100660],{"id":100659},"quantum-concept-primers","Quantum concept primers",[12,100662,100663,100664,100666,100667,100669,100670,100672,100673],{},"These math references are your foundation for understanding the building blocks of quantum algorithms. (No physics degree required.) They progress in order, so start from the top. 1. ",[19,100665,99310],{"href":99924}," 2. ",[19,100668,99848],{"href":99459}," 3. ",[19,100671,99961],{"href":95686}," 4. ",[19,100674,99420],{"href":100031},[3552,100676,100678],{"id":100677},"quantum-software-tools","Quantum software tools",[12,100680,100681,100682,100685,100686,100689,100690,100693,100694],{},"You know what a Hadamard gate is and you feel you’re ready to cook. Let’s look at some common software tools, programming languages and software development kits (SDKs), that will allow you to replicate tutorial examples, ",[9404,100683,100684],{},"simulate"," quantum outcomes, potentially execute your code on ",[9404,100687,100688],{},"actual quantum hardware",", and begin dreaming up your very own quantum algorithms. These tutorials are in progress, so if you don’t find what you’re looking for check back soon. - ",[19,100691,100692],{"href":98638},"Python (programming language)"," - ",[19,100695,100696],{"href":94796},"IBM Qiskit SDK",[3552,100698,100700],{"id":100699},"upskill-to-quantum","Upskill to quantum",[12,100702,100703],{},"Looking to make the leap from your current day job to a quantum computing role? Stay tuned! We’re drafting a roster of “upskill” tutorials to take you from roles like Web developer, AI engineer, or even musician, to a future entry-level role in quantum computing.",{"title":529,"searchDepth":547,"depth":547,"links":100705},[100706,100713,100719,100720],{"id":100468,"depth":547,"text":100469,"children":100707},[100708,100709,100710,100711,100712],{"id":100475,"depth":575,"text":100476},{"id":100486,"depth":575,"text":100487},{"id":100501,"depth":575,"text":100502},{"id":100511,"depth":575,"text":100512},{"id":100543,"depth":575,"text":100544},{"id":100572,"depth":547,"text":100573,"children":100714},[100715,100716,100717,100718],{"id":100579,"depth":575,"text":100580},{"id":100604,"depth":575,"text":100605},{"id":100611,"depth":575,"text":100612},{"id":100630,"depth":575,"text":100631},{"id":100637,"depth":547,"text":100638},{"id":100653,"depth":547,"text":100645,"children":100721},[100722,100723,100724],{"id":100659,"depth":575,"text":100660},{"id":100677,"depth":575,"text":100678},{"id":100699,"depth":575,"text":100700},[4349,4350,99275,100444],[],{"username":93960,"name":94745,"role":94746,"avatar":529},"Quantum computing is easier than you might think. (Remember it’s just computing, it’s not quantum physics!) Some quick math brush-ups and few concept primers are all you need to start making meaningful mistakes.","Quantum computing is easier than you think. It's computing, not physics. A little math and a few concept primers are all you need to start.",{"image":100731,"alt":100444},"\u002F_content\u002Fimages\u002Fwhats-quantum-computing\u002Fhero.webp",{},{"slug":99411,"title":100734,"desc":99403},"2 · Complex numbers","\u002Fblog\u002Flearn\u002Fquantum-foundations\u002Fwhats-quantum-computing",[],{"title":100738,"description":100729},"What’s quantum computing? · Quantum foundations","blog\u002Flearn\u002Fquantum-foundations\u002Fwhats-quantum-computing",[],"82b4po0D-1N6kALB9oL81uMUENAhzoSxDWR6CvUWhIA",1788974871896]