quotonic


Namequotonic JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryA platform for performing efficient simulations of nonlinear quantum photonic circuits.
upload_time2025-10-24 20:46:54
maintainerNone
docs_urlNone
authorNone
requires_python<4.0,>=3.10
licenseMIT License Copyright (c) 2025 Jacob Ewaniuk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords quantum photonics optics neural networks machine learning light-matter interactions
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # quotonic

[![python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-ff69b4)]()
[![license](https://img.shields.io/badge/license-MIT-blueviolet)](https://github.com/jewaniuk/quotonic/blob/main/LICENSE)
[![build](https://github.com/jewaniuk/quotonic/actions/workflows/quality.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/quality.yml)
[![tests](https://github.com/jewaniuk/quotonic/actions/workflows/tests.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/tests.yml)
[![docs](https://github.com/jewaniuk/quotonic/actions/workflows/docs.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/docs.yml)
[![wheels](https://github.com/jewaniuk/quotonic/actions/workflows/wheels.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/wheels.yml)
[![commits](https://img.shields.io/github/commit-activity/m/jewaniuk/quotonic)](https://img.shields.io/github/commit-activity/m/jewaniuk/quotonic)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![coverage](./badges/coverage.svg)](https://pytest-cov.readthedocs.io/en/latest/)
[![flake8](./badges/flake8.svg)](https://flake8.pycqa.org/en/latest/)

<p>
<img src="docs/img/light/qpnn-visualization.png" alt="qpnn visualization">
</p>

`quotonic` is a package created for studying nonlinear quantum photonic circuits, including yet not limited to,
quantum photonic neural networks (QPNNs). It is designed to accommodate new circuit models that explore unknown
capabilities, teaching all of us what can be accomplished when a handful of photons are combined with strong few-photon
optical nonlinearities. We hope that you will use this package as a platform to begin answering pertinent research
questions around nonlinear quantum photonic circuits like QPNNs. If you are able to do so, and would like to make
additions here, please let us know! We would  love for this package to grow, including many different models that can
be explored in tandem.

When it comes to simulating quantum dynamics using classical computational resources, there is often a need to closely
consider performance. Here, we write circuit models to be compatible with [`jax`](https://github.com/jax-ml/jax) and
thus owe a massive thank you to the developers at [Google DeepMind](https://deepmind.google/). It is also necessary to
mention and thank similar packages, each of which have inspired some of the code within `quotonic`.
- [Bosonic: A Quantum Optics Library](https://github.com/steinbrecher/bosonic)
- [Cascaded Optical Systems Approach to Neural Networks (CasOptAx)](https://github.com/JasvithBasani/CasOptAx)
- [Piquasso](https://github.com/Budapest-Quantum-Computing-Group/piquasso)
- [The Walrus](https://github.com/XanaduAI/thewalrus)

The documentation for `quotonic` is live at [jewaniuk.github.io/quotonic](https://jewaniuk.github.io/quotonic/). It was
prepared using [`mkdocstrings`](https://mkdocstrings.github.io/) with
[`mkdocs-material`](https://squidfunk.github.io/mkdocs-material/).

## Installation
You can install the latest release of `quotonic` from PyPI as
```shell
pip install quotonic
```
or install the latest development version from GitHub
```shell
pip install git+https://github.com/jewaniuk/quotonic.git
```

## Getting Started
`quotonic.qpnn` contains a variety of models of QPNNs, the simplest of which is `IdealQPNN`, which follows their
original  proposal. Each model is accompanied by a trainer from `quotonic.trainer`, and can be trained to perform some
task defined by a training set from `quotonic.training_sets`. In this example, we will train a two-layer, four-mode
QPNN to act as a deterministic two-photon CNOT gate.

```python
>>> from quotonic.qpnn import IdealQPNN
>>> from quotonic.trainer import IdealTrainer
>>> from quotonic.training_sets import CNOT

>>> n = 2  # number of photons
>>> m = 4  # number of optical modes
>>> L = 2  # number of network layers
```
We'll choose to perform one optimization trial that proceeds through 100 epochs.
```python

>>> num_trials = 1  # number of optimization trials to perform
>>> num_epochs = 100  # number of epochs to train for per trial
```
Now, we simply prepare the training set, instantiate a QPNN followed by a trainer, then train!
```python
>>> training_set = CNOT()
>>> qpnn = IdealQPNN(n, m, L, training_set=training_set)
>>> trainer = IdealTrainer(qpnn, num_trials, num_epochs)

>>> results = trainer.train()
Trial: 1
Epoch: 0 	 Cost: 9.3885e-01 	 Fidelity: 0.06115
Epoch: 10 	 Cost: 7.1853e-01 	 Fidelity: 0.2815
Epoch: 20 	 Cost: 6.6739e-01 	 Fidelity: 0.3326
Epoch: 30 	 Cost: 5.4786e-01 	 Fidelity: 0.4521
Epoch: 40 	 Cost: 4.2395e-01 	 Fidelity: 0.576
Epoch: 50 	 Cost: 3.0212e-01 	 Fidelity: 0.6979
Epoch: 60 	 Cost: 1.6486e-01 	 Fidelity: 0.8351
Epoch: 70 	 Cost: 7.8349e-02 	 Fidelity: 0.9217
Epoch: 80 	 Cost: 3.2369e-02 	 Fidelity: 0.9676
Epoch: 90 	 Cost: 1.2706e-02 	 Fidelity: 0.9873
Epoch: 100 	 Cost: 5.2117e-03 	 Fidelity: 0.9948
Epoch: 110 	 Cost: 2.0834e-03 	 Fidelity: 0.9979
Epoch: 120 	 Cost: 8.6629e-04 	 Fidelity: 0.9991
Epoch: 130 	 Cost: 3.8522e-04 	 Fidelity: 0.9996
Epoch: 140 	 Cost: 1.8960e-04 	 Fidelity: 0.9998
COMPLETE! 	 Cost: 1.1343e-04 	 Fidelity: 0.9999
```
This particular trial was able to tune the network parameters to achieve a fidelity of ~99.99%. The optimized parameters
are passed back in `results`, so we can calculate the fidelity directly using them to check.
```python
>>> qpnn.calc_fidelity(results["phi"][0], results["theta"][0], results["delta"][0])
Array(0.99989176, dtype=float32)
```

## Example Usage

Here, we provide example scripts that illustrate the methodology used in our previous research on QPNNs.

### [Imperfect Quantum Photonic Neural Networks](https://doi.org/10.1002/qute.202200125)
```python
import os

os.environ["XLA_FLAGS"] = "--xla_force_host_platform_device_count=8"

import numpy as np
from jax import config

config.update("jax_enable_x64", True)

from quotonic.qpnn import ImperfectQPNN
from quotonic.trainer import ImperfectTrainer
from quotonic.training_sets import BSA

n = 2
m = 4
L = 2
varphi = np.pi / 2

ell_mzi = (0.00861, 0.00057)  # (0.00861 +/- 0.00057) dB loss per MZI, sota model
ell_ps = (0.0015, 0.0001)  # (0.0015 +/- 0.0001) dB loss per phase shifter, sota model
t_dc = (0.5000, 0.0508)  # (50.00 +/- 5.08) % T:R directional coupler splitting ratio

num_trials = 200
num_epochs = 1000
print_every = 100

tset = BSA()
qpnn = ImperfectQPNN(n, m, L, varphi=varphi, ell_mzi=ell_mzi, ell_ps=ell_ps, t_dc=t_dc, training_set=tset)
trainer = ImperfectTrainer(qpnn, num_trials, num_epochs, print_every=print_every)

results = trainer.train()
```

### [Large-Scale Tree-Type Photonic Cluster State Generation with Recurrent Quantum Photonic Neural Networks](https://doi.org/10.48550/arXiv.2505.14628)
```python
import os

os.environ["XLA_FLAGS"] = "--xla_force_host_platform_device_count=8"

import numpy as np
from jax import config

config.update("jax_enable_x64", True)

from quotonic.qpnn import TreeQPNN
from quotonic.trainer import TreeTrainer
from quotonic.training_sets import Tree

b = 2
n = b + 1
m = 2 * n
L = 2
varphi = (0.0, np.pi)

ell_mzi = (0.0210, 0.0016)  # (0.0210 +/- 0.0016) dB loss per MZI, multi model
ell_ps = (0.0100, 0.0006)  # (0.0100 +/- 0.0006) dB loss per phase shifter, multi model
t_dc = (0.50, 0.005)  # (50 +/- 0.5) % T:R directional coupler splitting ratio

num_trials = 200
num_epochs = 1000
print_every = 100

tset = Tree(b)
qpnn = TreeQPNN(b, L, varphi=varphi, ell_mzi=ell_mzi, ell_ps=ell_ps, t_dc=t_dc, training_set=tset)
trainer = TreeTrainer(qpnn, num_trials, num_epochs, print_every=print_every)

results = trainer.train()
```

## Citing
Rather than citing the package directly, please cite the following works that it was developed for:
```
@article{Ewaniuk:23,
title   = {{Imperfect Quantum Photonic Neural Networks}},
author  = {Jacob Ewaniuk and Jacques Carolan and Bhavin J. Shastri and Nir Rotenberg},
journal = {Advanced Quantum Technologies},
volume  = {6},
pages   = {2200125},
year    = {2023},
doi     = {https://doi.org/10.1002/qute.202200125},
}
```
```
@misc{Ewaniuk:25,
title   = {{Large-Scale Tree-Type Photonic Cluster State Generation with Recurrent Quantum Photonic Neural Networks}},
author  = {Jacob Ewaniuk and Bhavin J. Shastri and Nir Rotenberg},
year    = {2025},
howpublished = {Preprint at https://arxiv.org/abs/2505.14628},
}
```

## Authors
`quotonic` was initially created by [Jacob Ewaniuk](https://www.linkedin.com/in/jacobewaniuk/) as part of his doctoral
studies at [Queen's University](https://www.queensu.ca/), working with the
[Quantum Nanophotonics Lab](https://www.queensu.ca/physics/qnl/) and
[Shastri Lab](https://www.queensu.ca/physics/shastrilab/). Currently, it is in active use as a research tool by a
number of graduate students in each of these research groups. As further contributions are made, additional authors
will be listed here.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "quotonic",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": "Jacob Ewaniuk <jacob.ewaniuk@queensu.ca>",
    "keywords": "quantum, photonics, optics, neural networks, machine learning, light-matter interactions",
    "author": null,
    "author_email": "Jacob Ewaniuk <jacob.ewaniuk@queensu.ca>",
    "download_url": "https://files.pythonhosted.org/packages/df/6e/6ef835a5856c34071f047fe8d8c0c5f8c39bc2827ccd73f656ae14701b48/quotonic-1.0.1.tar.gz",
    "platform": null,
    "description": "# quotonic\n\n[![python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-ff69b4)]()\n[![license](https://img.shields.io/badge/license-MIT-blueviolet)](https://github.com/jewaniuk/quotonic/blob/main/LICENSE)\n[![build](https://github.com/jewaniuk/quotonic/actions/workflows/quality.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/quality.yml)\n[![tests](https://github.com/jewaniuk/quotonic/actions/workflows/tests.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/tests.yml)\n[![docs](https://github.com/jewaniuk/quotonic/actions/workflows/docs.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/docs.yml)\n[![wheels](https://github.com/jewaniuk/quotonic/actions/workflows/wheels.yml/badge.svg)](https://github.com/jewaniuk/quotonic/actions/workflows/wheels.yml)\n[![commits](https://img.shields.io/github/commit-activity/m/jewaniuk/quotonic)](https://img.shields.io/github/commit-activity/m/jewaniuk/quotonic)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![coverage](./badges/coverage.svg)](https://pytest-cov.readthedocs.io/en/latest/)\n[![flake8](./badges/flake8.svg)](https://flake8.pycqa.org/en/latest/)\n\n<p>\n<img src=\"docs/img/light/qpnn-visualization.png\" alt=\"qpnn visualization\">\n</p>\n\n`quotonic` is a package created for studying nonlinear quantum photonic circuits, including yet not limited to,\nquantum photonic neural networks (QPNNs). It is designed to accommodate new circuit models that explore unknown\ncapabilities, teaching all of us what can be accomplished when a handful of photons are combined with strong few-photon\noptical nonlinearities. We hope that you will use this package as a platform to begin answering pertinent research\nquestions around nonlinear quantum photonic circuits like QPNNs. If you are able to do so, and would like to make\nadditions here, please let us know! We would  love for this package to grow, including many different models that can\nbe explored in tandem.\n\nWhen it comes to simulating quantum dynamics using classical computational resources, there is often a need to closely\nconsider performance. Here, we write circuit models to be compatible with [`jax`](https://github.com/jax-ml/jax) and\nthus owe a massive thank you to the developers at [Google DeepMind](https://deepmind.google/). It is also necessary to\nmention and thank similar packages, each of which have inspired some of the code within `quotonic`.\n- [Bosonic: A Quantum Optics Library](https://github.com/steinbrecher/bosonic)\n- [Cascaded Optical Systems Approach to Neural Networks (CasOptAx)](https://github.com/JasvithBasani/CasOptAx)\n- [Piquasso](https://github.com/Budapest-Quantum-Computing-Group/piquasso)\n- [The Walrus](https://github.com/XanaduAI/thewalrus)\n\nThe documentation for `quotonic` is live at [jewaniuk.github.io/quotonic](https://jewaniuk.github.io/quotonic/). It was\nprepared using [`mkdocstrings`](https://mkdocstrings.github.io/) with\n[`mkdocs-material`](https://squidfunk.github.io/mkdocs-material/).\n\n## Installation\nYou can install the latest release of `quotonic` from PyPI as\n```shell\npip install quotonic\n```\nor install the latest development version from GitHub\n```shell\npip install git+https://github.com/jewaniuk/quotonic.git\n```\n\n## Getting Started\n`quotonic.qpnn` contains a variety of models of QPNNs, the simplest of which is `IdealQPNN`, which follows their\noriginal  proposal. Each model is accompanied by a trainer from `quotonic.trainer`, and can be trained to perform some\ntask defined by a training set from `quotonic.training_sets`. In this example, we will train a two-layer, four-mode\nQPNN to act as a deterministic two-photon CNOT gate.\n\n```python\n>>> from quotonic.qpnn import IdealQPNN\n>>> from quotonic.trainer import IdealTrainer\n>>> from quotonic.training_sets import CNOT\n\n>>> n = 2  # number of photons\n>>> m = 4  # number of optical modes\n>>> L = 2  # number of network layers\n```\nWe'll choose to perform one optimization trial that proceeds through 100 epochs.\n```python\n\n>>> num_trials = 1  # number of optimization trials to perform\n>>> num_epochs = 100  # number of epochs to train for per trial\n```\nNow, we simply prepare the training set, instantiate a QPNN followed by a trainer, then train!\n```python\n>>> training_set = CNOT()\n>>> qpnn = IdealQPNN(n, m, L, training_set=training_set)\n>>> trainer = IdealTrainer(qpnn, num_trials, num_epochs)\n\n>>> results = trainer.train()\nTrial: 1\nEpoch: 0 \t Cost: 9.3885e-01 \t Fidelity: 0.06115\nEpoch: 10 \t Cost: 7.1853e-01 \t Fidelity: 0.2815\nEpoch: 20 \t Cost: 6.6739e-01 \t Fidelity: 0.3326\nEpoch: 30 \t Cost: 5.4786e-01 \t Fidelity: 0.4521\nEpoch: 40 \t Cost: 4.2395e-01 \t Fidelity: 0.576\nEpoch: 50 \t Cost: 3.0212e-01 \t Fidelity: 0.6979\nEpoch: 60 \t Cost: 1.6486e-01 \t Fidelity: 0.8351\nEpoch: 70 \t Cost: 7.8349e-02 \t Fidelity: 0.9217\nEpoch: 80 \t Cost: 3.2369e-02 \t Fidelity: 0.9676\nEpoch: 90 \t Cost: 1.2706e-02 \t Fidelity: 0.9873\nEpoch: 100 \t Cost: 5.2117e-03 \t Fidelity: 0.9948\nEpoch: 110 \t Cost: 2.0834e-03 \t Fidelity: 0.9979\nEpoch: 120 \t Cost: 8.6629e-04 \t Fidelity: 0.9991\nEpoch: 130 \t Cost: 3.8522e-04 \t Fidelity: 0.9996\nEpoch: 140 \t Cost: 1.8960e-04 \t Fidelity: 0.9998\nCOMPLETE! \t Cost: 1.1343e-04 \t Fidelity: 0.9999\n```\nThis particular trial was able to tune the network parameters to achieve a fidelity of ~99.99%. The optimized parameters\nare passed back in `results`, so we can calculate the fidelity directly using them to check.\n```python\n>>> qpnn.calc_fidelity(results[\"phi\"][0], results[\"theta\"][0], results[\"delta\"][0])\nArray(0.99989176, dtype=float32)\n```\n\n## Example Usage\n\nHere, we provide example scripts that illustrate the methodology used in our previous research on QPNNs.\n\n### [Imperfect Quantum Photonic Neural Networks](https://doi.org/10.1002/qute.202200125)\n```python\nimport os\n\nos.environ[\"XLA_FLAGS\"] = \"--xla_force_host_platform_device_count=8\"\n\nimport numpy as np\nfrom jax import config\n\nconfig.update(\"jax_enable_x64\", True)\n\nfrom quotonic.qpnn import ImperfectQPNN\nfrom quotonic.trainer import ImperfectTrainer\nfrom quotonic.training_sets import BSA\n\nn = 2\nm = 4\nL = 2\nvarphi = np.pi / 2\n\nell_mzi = (0.00861, 0.00057)  # (0.00861 +/- 0.00057) dB loss per MZI, sota model\nell_ps = (0.0015, 0.0001)  # (0.0015 +/- 0.0001) dB loss per phase shifter, sota model\nt_dc = (0.5000, 0.0508)  # (50.00 +/- 5.08) % T:R directional coupler splitting ratio\n\nnum_trials = 200\nnum_epochs = 1000\nprint_every = 100\n\ntset = BSA()\nqpnn = ImperfectQPNN(n, m, L, varphi=varphi, ell_mzi=ell_mzi, ell_ps=ell_ps, t_dc=t_dc, training_set=tset)\ntrainer = ImperfectTrainer(qpnn, num_trials, num_epochs, print_every=print_every)\n\nresults = trainer.train()\n```\n\n### [Large-Scale Tree-Type Photonic Cluster State Generation with Recurrent Quantum Photonic Neural Networks](https://doi.org/10.48550/arXiv.2505.14628)\n```python\nimport os\n\nos.environ[\"XLA_FLAGS\"] = \"--xla_force_host_platform_device_count=8\"\n\nimport numpy as np\nfrom jax import config\n\nconfig.update(\"jax_enable_x64\", True)\n\nfrom quotonic.qpnn import TreeQPNN\nfrom quotonic.trainer import TreeTrainer\nfrom quotonic.training_sets import Tree\n\nb = 2\nn = b + 1\nm = 2 * n\nL = 2\nvarphi = (0.0, np.pi)\n\nell_mzi = (0.0210, 0.0016)  # (0.0210 +/- 0.0016) dB loss per MZI, multi model\nell_ps = (0.0100, 0.0006)  # (0.0100 +/- 0.0006) dB loss per phase shifter, multi model\nt_dc = (0.50, 0.005)  # (50 +/- 0.5) % T:R directional coupler splitting ratio\n\nnum_trials = 200\nnum_epochs = 1000\nprint_every = 100\n\ntset = Tree(b)\nqpnn = TreeQPNN(b, L, varphi=varphi, ell_mzi=ell_mzi, ell_ps=ell_ps, t_dc=t_dc, training_set=tset)\ntrainer = TreeTrainer(qpnn, num_trials, num_epochs, print_every=print_every)\n\nresults = trainer.train()\n```\n\n## Citing\nRather than citing the package directly, please cite the following works that it was developed for:\n```\n@article{Ewaniuk:23,\ntitle   = {{Imperfect Quantum Photonic Neural Networks}},\nauthor  = {Jacob Ewaniuk and Jacques Carolan and Bhavin J. Shastri and Nir Rotenberg},\njournal = {Advanced Quantum Technologies},\nvolume  = {6},\npages   = {2200125},\nyear    = {2023},\ndoi     = {https://doi.org/10.1002/qute.202200125},\n}\n```\n```\n@misc{Ewaniuk:25,\ntitle   = {{Large-Scale Tree-Type Photonic Cluster State Generation with Recurrent Quantum Photonic Neural Networks}},\nauthor  = {Jacob Ewaniuk and Bhavin J. Shastri and Nir Rotenberg},\nyear    = {2025},\nhowpublished = {Preprint at https://arxiv.org/abs/2505.14628},\n}\n```\n\n## Authors\n`quotonic` was initially created by [Jacob Ewaniuk](https://www.linkedin.com/in/jacobewaniuk/) as part of his doctoral\nstudies at [Queen's University](https://www.queensu.ca/), working with the\n[Quantum Nanophotonics Lab](https://www.queensu.ca/physics/qnl/) and\n[Shastri Lab](https://www.queensu.ca/physics/shastrilab/). Currently, it is in active use as a research tool by a\nnumber of graduate students in each of these research groups. As further contributions are made, additional authors\nwill be listed here.\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 Jacob Ewaniuk\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "A platform for performing efficient simulations of nonlinear quantum photonic circuits.",
    "version": "1.0.1",
    "project_urls": {
        "documentation": "https://jewaniuk.github.io/quotonic/",
        "repository": "https://github.com/jewaniuk/quotonic"
    },
    "split_keywords": [
        "quantum",
        " photonics",
        " optics",
        " neural networks",
        " machine learning",
        " light-matter interactions"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4bf46cb9dccfc99913a9ade62f7b825d303c9128cdf95f1e3286293d44fbf521",
                "md5": "ff9a42959342a174cf06c80e0468ca3f",
                "sha256": "798a8bf785cb44a2b21deccff565a3a7075ac1fa54b5dccd14369cd1ba225544"
            },
            "downloads": -1,
            "filename": "quotonic-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ff9a42959342a174cf06c80e0468ca3f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 50437,
            "upload_time": "2025-10-24T20:46:53",
            "upload_time_iso_8601": "2025-10-24T20:46:53.665508Z",
            "url": "https://files.pythonhosted.org/packages/4b/f4/6cb9dccfc99913a9ade62f7b825d303c9128cdf95f1e3286293d44fbf521/quotonic-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "df6e6ef835a5856c34071f047fe8d8c0c5f8c39bc2827ccd73f656ae14701b48",
                "md5": "ccaf3f5f3cec28fbdc6c37545640973e",
                "sha256": "edab1743d08aebce45f5a14427ff386e888222f6967479fab466bee6a6c1f230"
            },
            "downloads": -1,
            "filename": "quotonic-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ccaf3f5f3cec28fbdc6c37545640973e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 48006,
            "upload_time": "2025-10-24T20:46:54",
            "upload_time_iso_8601": "2025-10-24T20:46:54.999051Z",
            "url": "https://files.pythonhosted.org/packages/df/6e/6ef835a5856c34071f047fe8d8c0c5f8c39bc2827ccd73f656ae14701b48/quotonic-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-24 20:46:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jewaniuk",
    "github_project": "quotonic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "quotonic"
}
        
Elapsed time: 1.38683s