Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

QuantumFramework

Tutorials

  • Getting Started

Guides

  • Wolfram Quantum Computation Framework

Tech Notes

  • Exploring Fundamentals of Quantum Theory
  • Quantum Computation

Symbols

  • QuantumBasis
  • QuantumChannel
  • QuantumCircuitOperator
  • QuantumDistance
  • QuantumEntangledQ
  • QuantumEntanglementMonotone
  • QuantumMeasurement
  • QuantumMeasurementOperator
  • QuantumOperator
  • QuantumPartialTrace
  • QuantumState
  • QuantumTensorProduct
  • QuditBasis
  • QuditName

Getting Started

How to install and load the paclet
Install the paclet from the cloud:
In[1]:=
PacletInstall["https://www.wolframcloud.com/obj/wolframquantumframework/QuantumFramework.paclet",ForceVersionInstallTrue]
Out[1]=
PacletObject
Name: Wolfram/QuantumFramework
Version: 1.0.5

Load the paclet:
In[2]:=
<<Wolfram`QuantumFramework`
Check whether definitions are now available:
In[3]:=
Names["Quantum*"]
Out[3]=
{QuantumBasis,QuantumChannel,QuantumCircuitOperator,QuantumDistance,QuantumEntangledQ,QuantumEntanglementMonotone,QuantumMeasurement,QuantumMeasurementOperator,QuantumOperator,QuantumPartialTrace,QuantumState,QuantumTensorProduct,QuantumWignerTransform}
A quantum gate for the magic basis transformation (transforming 2 qubit computational basis to the Bell basis):
In[4]:=
qc=
QuantumCircuitOperator

QuantumOperator
["S"],
QuantumOperator
["S",{2}],
QuantumOperator
["H",{2}],
QuantumOperator
["CNOT",{2,1}];​​qc["Diagram"]
Out[4]=
In[5]:=
qc
QuantumState
["00"]
QuantumState
["PhiPlus"]
Out[5]=
True
In[6]:=
qc
QuantumState
["10"]
QuantumState
["PsiPlus"]
Out[6]=
True
In[7]:=
qc
QuantumState
["01"]
QuantumState
["PhiMinus"]
Out[7]=
True
In[8]:=
qc
QuantumState
["11"]
QuantumState
["PsiMinus"]
Out[8]=
True
Decomposition of a general controlled-controlled-U gate using
V=
Sqrt
[U]
:
In[9]:=
u=
QuantumOperator
["H",{3}];​​qc=
QuantumCircuitOperator

QuantumOperator
[{"ControlledU",u,{1,2}}];​​qc["Diagram"]
Out[9]=
Define the quantum operator v as the square-root of u:
In[23]:=
v=
QuantumOperator
[Sqrt[u],"Label""V"]
Out[23]=
QuantumOperator
Picture: Schrödinger
Arity: 1
Dimension: 2→2
Qudits: 1→1

Construct the decomposition circuit:
In[24]:=
decomp=
QuantumCircuitOperator

QuantumOperator
[{"ControlledU",v,{2}}],
QuantumOperator
["CX"],
QuantumOperator
[{"ControlledU",v["Dagger"],{2}}],
QuantumOperator
["CX"],
QuantumOperator
[{"ControlledU",v,{1}}];​​decomp["Diagram"]
Out[25]=
​
​
""

Powered by the Wolfram Cloud More about Wolfram Technology

© 2022 Wolfram Research, Inc. All rights reserved. Terms of Use Privacy Contact Us