The Walrus

  • Paper
  • GitHub

Navigation

  • index
  • modules |
  • next |
  • previous |
  • The Walrus 0.22.0 documentation »
  • Tutorials and gallery

Getting started

  • Installation and Downloads
  • Research and contribution
  • Quick guide
  • Tutorials and gallery

Background

  • The hafnian
  • The loop hafnian
  • The algorithms
  • Multidimensional Hermite polynomials
  • Gaussian States in the Fock basis
  • Gaussian Boson Sampling
  • Notation
  • References

The Walrus API

  • Overview
  • The Walrus
  • brs()
  • grad_hermite_multidimensional()
  • hafnian()
  • hafnian_banded()
  • hafnian_batched()
  • hafnian_repeated()
  • hafnian_sparse()
  • hermite_multidimensional()
  • lmtl()
  • loop_hafnian()
  • ltor()
  • matched_reps()
  • mtl()
  • perm()
  • permanent_repeated()
  • reduction()
  • tor()
  • ubrs()
  • version()
  • Quantum algorithms
  • Amat()
  • Covmat()
  • Qmat()
  • Xmat()
  • adj_scaling()
  • adj_scaling_torontonian()
  • adj_to_qmat()
  • characteristic_function()
  • complex_to_real_displacements()
  • entanglement_entropy()
  • fidelity()
  • find_classical_subsystem()
  • fock_tensor()
  • is_classical_cov()
  • is_pure_cov()
  • is_symplectic()
  • is_valid_cov()
  • log_negativity()
  • loss_mat()
  • mean_clicks()
  • n_body_marginals()
  • normal_ordered_expectation()
  • photon_number_covar()
  • photon_number_covmat()
  • photon_number_cumulant()
  • photon_number_expectation()
  • photon_number_mean()
  • photon_number_mean_vector()
  • photon_number_moment()
  • photon_number_squared_expectation()
  • probabilities()
  • pure_state_distribution()
  • real_to_complex_displacements()
  • reduced_gaussian()
  • s_ordered_expectation()
  • total_photon_number_distribution()
  • tvd_cutoff_bounds()
  • update_probabilities_with_loss()
  • update_probabilities_with_noise()
  • variance_clicks()
  • vonneumann_entropy()
  • Sampling algorithms
  • generate_hafnian_sample()
  • generate_torontonian_sample()
  • hafnian_sample_classical_state()
  • hafnian_sample_graph()
  • hafnian_sample_graph_rank_one()
  • hafnian_sample_state()
  • photon_number_sampler()
  • threshold_detection_prob()
  • torontonian_sample_classical_state()
  • torontonian_sample_graph()
  • torontonian_sample_state()
  • Classical sampling algorithms
  • generate_thermal_samples()
  • rescale_adjacency_matrix()
  • rescale_adjacency_matrix_thermal()
  • Symplectic operations
  • beam_splitter()
  • expand()
  • expand_passive()
  • expand_vector()
  • interferometer()
  • is_symplectic()
  • loss()
  • mean_photon_number()
  • passive_transformation()
  • reduced_state()
  • rotation()
  • squeezing()
  • sympmat()
  • two_mode_squeezing()
  • vacuum_state()
  • xpxp_to_xxpp()
  • xxpp_to_xpxp()
  • Characteristic polynomials
  • apply_householder()
  • charpoly()
  • get_reflection_vector()
  • powertrace()
  • reduce_matrix_to_hessenberg()
  • Random matrices
  • randnc()
  • random_banded_interferometer()
  • random_block_interferometer()
  • random_covariance()
  • random_interferometer()
  • random_symplectic()
  • Fock representations
  • beamsplitter()
  • displacement()
  • grad_beamsplitter()
  • grad_displacement()
  • grad_mzgate()
  • grad_squeezing()
  • grad_two_mode_squeezing()
  • mzgate()
  • squeezing()
  • two_mode_squeezing()
  • Decompositions
  • blochmessiah()
  • iwasawa()
  • pre_iwasawa()
  • symplectic_eigenvals()
  • takagi()
  • williamson()
  • Reference implementations
  • T()
  • bitstrings()
  • mapper()
  • memoized()
  • mtl()
  • partitions()
  • pmp()
  • rpmp()
  • rspm()
  • splitter()
  • spm()
  1. Docs
  2. Tutorials and gallery
  3. Show on GitHub

Tutorials and gallery¶

Tutorials¶

The following tutorials introduce core mathematical concepts provided by The Walrus, including the hafnian, loop hafnian, the permanent and the torontonian.

../_images/hafnian.png

Basics of Hafnians and Loop Hafnians¶

../_images/haf_benchmark.png

Benchmarking the Hafnian¶

../_images/perm_benchmark.png

Benchmarking the Permanent¶

../_images/tor_benchmark.png

Benchmarking the Torontonian¶

Non-Gaussian states gallery¶

Here you can find a curated list of Gaussian circuits and photon-number-resolved measurements to prepare non-Gaussian states of interest in quantum optics, information, metrology and computing.

The original idea of using general Gaussian states and photon-number-resolved measurements to generate complex non-Gaussian states was introduced by K.K. Sabapathy, H. Qi, J. Izaac, and C. Weedbrook in Phys. Rev. A 100, 012326, (2019) and it was further theoretically analyzed by D. Su, C.R. Myers, and K.K. Sabapathy in Phys. Rev. A 100, 052301, (2019) and arXiv:1902.02331.

If you develop a new circuit and measurement scheme to prepare a non-Gaussian state, add it to the gallery!

../_images/fock.png

Fock states¶

../_images/kitten.png

Kitten states¶

../_images/cubic.png

Cubic phase states¶

../_images/photon_added.png

Photon added states¶

../_images/cat.png

Cat states¶

../_images/four_cat.png

Four-headed cat states¶

../_images/gkp.png

GKP states¶

gallery/gallery
 
Download Python script
 
Download Notebook
 
View on GitHub
Previous
Next

Contents

  • Tutorials and gallery
    • Tutorials
    • Non-Gaussian states gallery

Navigation

  • index
  • modules |
  • next |
  • previous |
  • The Walrus 0.22.0 documentation »
  • Tutorials and gallery

Xanadu

Located in the heart of downtown Toronto, we've brought together exceptional minds from around the world to build quantum computers that are useful and available to people everywhere.

PennyLane

  • Home
  • Documentation
  • Forum
  • GitHub
  • Slack
  • Twitter
Strawberry Fields

  • Home
  • Documentation
  • GitHub
  • Slack
About

  • Home
  • About
  • Hardware
  • Research
  • Cloud
  • Blog

Stay updated with our newsletter
Copyright © 2022 Xanadu Quantum Technologies