filter_functions 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. filter_functions-1.2.0/.github/workflows/main.yml +80 -0
  2. filter_functions-1.2.0/.readthedocs.yml +26 -0
  3. filter_functions-1.2.0/CITATION.cff +101 -0
  4. filter_functions-1.2.0/CONTRIBUTING.md +6 -0
  5. filter_functions-1.2.0/LICENSE +622 -0
  6. filter_functions-1.2.0/PKG-INFO +777 -0
  7. filter_functions-1.2.0/README.md +92 -0
  8. filter_functions-1.2.0/doc/Makefile +197 -0
  9. filter_functions-1.2.0/doc/make.bat +264 -0
  10. filter_functions-1.2.0/doc/requirements.txt +7 -0
  11. filter_functions-1.2.0/doc/source/_static/.gitignore +3 -0
  12. filter_functions-1.2.0/doc/source/_static/hadamard.png +0 -0
  13. filter_functions-1.2.0/doc/source/_static/qft.png +0 -0
  14. filter_functions-1.2.0/doc/source/_static/qft.tex +16 -0
  15. filter_functions-1.2.0/doc/source/_static/qft_HR2R3_boxed.png +0 -0
  16. filter_functions-1.2.0/doc/source/_static/qft_HR2R3_boxed.tex +21 -0
  17. filter_functions-1.2.0/doc/source/_static/qft_HR2R3_boxed_separately.png +0 -0
  18. filter_functions-1.2.0/doc/source/_static/qft_HR2R3_boxed_separately.tex +18 -0
  19. filter_functions-1.2.0/doc/source/_static/qft_with_echo.png +0 -0
  20. filter_functions-1.2.0/doc/source/_static/qft_with_echo.tex +19 -0
  21. filter_functions-1.2.0/doc/source/api.rst +8 -0
  22. filter_functions-1.2.0/doc/source/conf.py +284 -0
  23. filter_functions-1.2.0/doc/source/examples/advanced_concatenation.ipynb +358 -0
  24. filter_functions-1.2.0/doc/source/examples/calculating_quantum_processes.ipynb +1391 -0
  25. filter_functions-1.2.0/doc/source/examples/examples.rst +14 -0
  26. filter_functions-1.2.0/doc/source/examples/extending_pulses.ipynb +264 -0
  27. filter_functions-1.2.0/doc/source/examples/getting_started.ipynb +327 -0
  28. filter_functions-1.2.0/doc/source/examples/periodic_driving.ipynb +658 -0
  29. filter_functions-1.2.0/doc/source/examples/quantum_fourier_transform.ipynb +3422 -0
  30. filter_functions-1.2.0/doc/source/examples/qutip_integration.ipynb +163 -0
  31. filter_functions-1.2.0/doc/source/index.rst +33 -0
  32. filter_functions-1.2.0/environment.yml +12 -0
  33. filter_functions-1.2.0/examples/data/CNOT.mat +0 -0
  34. filter_functions-1.2.0/examples/data/X2ID.mat +0 -0
  35. filter_functions-1.2.0/examples/data/Y2ID.mat +0 -0
  36. filter_functions-1.2.0/examples/qft.py +154 -0
  37. filter_functions-1.2.0/examples/randomized_benchmarking.py +259 -0
  38. filter_functions-1.2.0/filter_functions/__init__.py +37 -0
  39. filter_functions-1.2.0/filter_functions/analytic.py +88 -0
  40. filter_functions-1.2.0/filter_functions/basis.py +815 -0
  41. filter_functions-1.2.0/filter_functions/gradient.py +676 -0
  42. filter_functions-1.2.0/filter_functions/numeric.py +2334 -0
  43. filter_functions-1.2.0/filter_functions/plotting.py +892 -0
  44. filter_functions-1.2.0/filter_functions/pulse_sequence.py +2613 -0
  45. filter_functions-1.2.0/filter_functions/superoperator.py +286 -0
  46. filter_functions-1.2.0/filter_functions/types.py +65 -0
  47. filter_functions-1.2.0/filter_functions/util.py +1150 -0
  48. filter_functions-1.2.0/pyproject.toml +99 -0
  49. filter_functions-1.2.0/tests/__init__.py +31 -0
  50. filter_functions-1.2.0/tests/gradient_testutil.py +142 -0
  51. filter_functions-1.2.0/tests/test_basis.py +445 -0
  52. filter_functions-1.2.0/tests/test_core.py +1260 -0
  53. filter_functions-1.2.0/tests/test_extras.py +70 -0
  54. filter_functions-1.2.0/tests/test_gradient.py +218 -0
  55. filter_functions-1.2.0/tests/test_plotting.py +388 -0
  56. filter_functions-1.2.0/tests/test_precision.py +727 -0
  57. filter_functions-1.2.0/tests/test_sequencing.py +1447 -0
  58. filter_functions-1.2.0/tests/test_superoperator.py +187 -0
  59. filter_functions-1.2.0/tests/test_util.py +780 -0
  60. filter_functions-1.2.0/tests/testutil.py +265 -0
@@ -0,0 +1,80 @@
1
+ name: Main
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ test:
9
+ name: Run tests
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ python_version: ['3.9', '3.10', '3.11', '3.12', '3.13']
15
+ install_extras: ['tests', 'plotting,fancy_progressbar,tests', 'plotting,bloch_sphere_visualization,fancy_progressbar,doc,tests']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Set up Python ${{ matrix.python_version }}
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python_version }}
24
+ cache: pip
25
+ check-latest: true
26
+
27
+ - name: Install
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ python -m pip install hatch .[${{ matrix.install_extras }}]
31
+
32
+ - name: Test with pytest
33
+ run: |
34
+ python -m pytest
35
+
36
+ - name: Upload coverage to Codecov
37
+ uses: codecov/codecov-action@v5
38
+ with:
39
+ name: ${{ matrix.python }} - ${{ matrix.install_extras }}
40
+ env_vars: OS,PYTHON
41
+ fail_ci_if_error: false
42
+ token: ${{ secrets.CODECOV_TOKEN }} # required
43
+ verbose: true
44
+ - name: Upload test results to Codecov
45
+ if: ${{ !cancelled() }}
46
+ uses: codecov/test-results-action@v1
47
+ with:
48
+ name: ${{ matrix.python }} - ${{ matrix.install_extras }}
49
+ token: ${{ secrets.CODECOV_TOKEN }}
50
+
51
+
52
+ release:
53
+ name: Publish to PyPi
54
+ runs-on: ubuntu-latest
55
+ needs: test
56
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
57
+
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+
61
+ - uses: actions/setup-python@v5
62
+ with:
63
+ python-version: '3.13'
64
+ cache: pip
65
+
66
+ - name: Install dependencies
67
+ run: |
68
+ python -m pip install --upgrade pip
69
+ python -m pip install hatch
70
+
71
+ - name: Build package
72
+ run: |
73
+ python -m hatch build
74
+
75
+ - name: Publish package
76
+ env:
77
+ HATCH_INDEX_USER: __token__
78
+ HATCH_INDEX_AUTH: ${{ secrets.PYPI_API_TOKEN }}
79
+ run: |
80
+ python -m hatch publish
@@ -0,0 +1,26 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: mambaforge-latest
7
+
8
+ conda:
9
+ environment: environment.yml
10
+
11
+ python:
12
+ install:
13
+ - method: pip
14
+ path: .
15
+ extra_requirements:
16
+ - doc
17
+ - plotting
18
+ - bloch_sphere_visualization
19
+
20
+ sphinx:
21
+ builder: html
22
+ configuration: doc/source/conf.py
23
+
24
+ formats:
25
+ - pdf
26
+ - epub
@@ -0,0 +1,101 @@
1
+ # This CITATION.cff file was generated with cffinit.
2
+ # Visit https://bit.ly/cffinit to generate yours today!
3
+
4
+ cff-version: 1.2.0
5
+ title: >-
6
+ filter_functions
7
+ message: >-
8
+ If this software has benefited your research, please
9
+ consider citing it as below.
10
+ type: software
11
+ doi: 10.5281/zenodo.4575000
12
+ authors:
13
+ - given-names: Tobias
14
+ family-names: Hangleiter
15
+ email: tobias.hangleiter@rwth-aachen.de
16
+ affiliation: >-
17
+ JARA-FIT Institute for Quantum Information,
18
+ Forschungszentrum Jülich GmbH and RWTH Aachen
19
+ University, 52074 Aachen, Germany
20
+ orcid: 'https://orcid.org/0000-0002-5177-6162'
21
+ - given-names: Isabel
22
+ family-names: Nha Minh Le
23
+ email: isabel.le@rwth-aachen.de
24
+ affiliation: >-
25
+ JARA-FIT Institute for Quantum Information,
26
+ Forschungszentrum Jülich GmbH and RWTH Aachen
27
+ University, 52074 Aachen, Germany
28
+ orcid: 'https://orcid.org/0000-0001-6707-044X'
29
+ - given-names: Julian D.
30
+ family-names: Teske
31
+ email: julian.teske@rwth-aachen.de
32
+ affiliation: >-
33
+ JARA-FIT Institute for Quantum Information,
34
+ Forschungszentrum Jülich GmbH and RWTH Aachen
35
+ University, 52074 Aachen, Germany
36
+ orcid: 'https://orcid.org/0000-0002-7590-7876'
37
+ preferred-citation:
38
+ type: article
39
+ authors:
40
+ - given-names: Tobias
41
+ family-names: Hangleiter
42
+ email: tobias.hangleiter@rwth-aachen.de
43
+ affiliation: >-
44
+ JARA-FIT Institute for Quantum Information,
45
+ Forschungszentrum Jülich GmbH and RWTH Aachen
46
+ University, 52074 Aachen, Germany
47
+ orcid: 'https://orcid.org/0000-0002-5177-6162'
48
+ - given-names: Pascal
49
+ family-names: Cerfontaine
50
+ email: pascal.cerfontaine@rwth-aachen.de
51
+ affiliation: >-
52
+ JARA-FIT Institute for Quantum Information,
53
+ Forschungszentrum Jülich GmbH and RWTH Aachen
54
+ University, 52074 Aachen, Germany
55
+ orcid: 'https://orcid.org/0000-0002-8227-4018'
56
+ - given-names: Hendrik
57
+ family-names: Bluhm
58
+ email: bluhm@physik.rwth-aachen.de
59
+ affiliation: >-
60
+ JARA-FIT Institute for Quantum Information,
61
+ Forschungszentrum Jülich GmbH and RWTH Aachen
62
+ University, 52074 Aachen, Germany
63
+ orcid: 'https://orcid.org/0000-0002-5224-7254'
64
+ doi: 10.1103/PhysRevResearch.3.043047
65
+ journal: Physical Review Research
66
+ month: 10
67
+ year: 2021
68
+ start: 043047
69
+ title: >-
70
+ Filter-function formalism and software package
71
+ to compute quantum processes of gate sequences
72
+ for classical non-Markovian noise
73
+ issue: 4
74
+ volume: 3
75
+ identifiers:
76
+ - type: doi
77
+ value: 10.1103/PhysRevResearch.3.043047
78
+ description: >-
79
+ Article on the formalism and software
80
+ implementation
81
+ - type: doi
82
+ value: 10.5281/zenodo.4575000
83
+ description: Zenodo DOI for the software package
84
+ - type: doi
85
+ value: 10.1103/PhysRevLett.127.170403
86
+ description: Letter introducing parts of the formalism
87
+ - type: doi
88
+ value: 10.1103/PhysRevApplied.17.024006
89
+ description: Article on analytic derivatives
90
+ repository-code: 'https://github.com/qutech/filter_functions'
91
+ url: >-
92
+ https://www.quantuminfo.physik.rwth-aachen.de/cms/Quantuminfo/Forschung/Quantum-Technology-Group/~zcsx/code/lidx/1/
93
+ keywords:
94
+ - python
95
+ - physics
96
+ - quantum computing
97
+ - quantum information
98
+ - qutip
99
+ - filter functions
100
+ - quantum control
101
+ license: GPL-3.0
@@ -0,0 +1,6 @@
1
+ # Contributing to this project
2
+ ## Licensing strategy
3
+
4
+ We are committed to make our research software available to other researchers with minimal limitations and hope to motivate some to help improving it. However, economic and strategic interests are becoming increasingly influential in the field of quantum computing. We have therefore [chosen the copyleft GPL license](LICENSE) to prevent an uncontrolled incorporation in proprietary software packages. However, to facilitate a potential future use in a commercial context, we would like to retain the possibility to offer the software packages developed under our lead under a different license. As this requires control of the copyright, we may ask contributors to execute a copyright assignment agreement. Following common practice, this agreement will license back all relevant rights of contributors regarding their contributions. We feel that this is a fair arrangement at least for minor contributions.
5
+
6
+ We hope that this strategy will not be a barrier to using the software at hand or to contributing to its advancement. If it does, please do not hesitate to contact us to consider alternative approaches.