-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add symplectic representation feature #15
Conversation
I haven't had a chance to look through the code in detail, but just wanted to comment that it looks like in the examples you have here, the |
Yes, the symplectic map for a displacement unitary is the identity matrix (and tensor products of them as well). Are you saying that's wrong? Or maybe that there's a more efficient way of storing it? I agree with the latter very much and will address that in future PRs. |
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Gabs.jl/Gabs.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
|
Codecov ReportAttention: Patch coverage is
|
Discussed in #10. This will be a breaking change necessary for representing Gaussian states, unitaries, channels, etc in different symplectic representations. For instance, in the quadrature pair representation where the symplectic form is
$\Omega = \bigoplus_{i = 1}^{N}\begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}$ , we would express a displacement unitary operator as follows:
Here, we have defined the symplectic basis
basis
to be of typeQuadPairBasis
, which wraps around the corresponding number of nodes. What's also nice (and was easy to implement) is that now we can form tensor products from predefined methods such asdisplace
, e.g., we can make a tensor product of the same unitary:Or we can make a tensor product of different displacement unitaries by calling a vector of complex numbers (alphas) whose size is the number of modes of the output state, e.g.,:
There's still a few things that need to be done before this is merged:
QuadBlockBasis
, the symplectic representation with form