noiselab 0.1.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 (58) hide show
  1. noiselab-0.1.0/.github/workflows/build_matrix.yml +80 -0
  2. noiselab-0.1.0/.github/workflows/build_native.yml +41 -0
  3. noiselab-0.1.0/.github/workflows/release.yml +54 -0
  4. noiselab-0.1.0/.github/workflows/ruff.yml +25 -0
  5. noiselab-0.1.0/.github/workflows/test-release.yml +59 -0
  6. noiselab-0.1.0/.github/workflows/tests.yml +48 -0
  7. noiselab-0.1.0/.gitignore +158 -0
  8. noiselab-0.1.0/.gitmodules +3 -0
  9. noiselab-0.1.0/.pre-commit-config.yaml +13 -0
  10. noiselab-0.1.0/.vscode/settings.json +10 -0
  11. noiselab-0.1.0/LICENSE +21 -0
  12. noiselab-0.1.0/MANIFEST.in +2 -0
  13. noiselab-0.1.0/PKG-INFO +66 -0
  14. noiselab-0.1.0/Pipfile +15 -0
  15. noiselab-0.1.0/Pipfile.lock +195 -0
  16. noiselab-0.1.0/README.md +34 -0
  17. noiselab-0.1.0/notebooks/TDigest distributions.ipynb +309 -0
  18. noiselab-0.1.0/pyproject.toml +142 -0
  19. noiselab-0.1.0/requirements.txt +15 -0
  20. noiselab-0.1.0/setup.cfg +4 -0
  21. noiselab-0.1.0/setup.py +30 -0
  22. noiselab-0.1.0/src/noiselab/__init__.py +3 -0
  23. noiselab-0.1.0/src/noiselab/_version.py +34 -0
  24. noiselab-0.1.0/src/noiselab/adev/.gitignore +1 -0
  25. noiselab-0.1.0/src/noiselab/adev/__init__.py +12 -0
  26. noiselab-0.1.0/src/noiselab/adev/_adev.c +37525 -0
  27. noiselab-0.1.0/src/noiselab/adev/_adev.pyi +52 -0
  28. noiselab-0.1.0/src/noiselab/adev/_adev.pyx +247 -0
  29. noiselab-0.1.0/src/noiselab/adev/base.py +55 -0
  30. noiselab-0.1.0/src/noiselab/adev/oavar.py +46 -0
  31. noiselab-0.1.0/src/noiselab/generators/.gitignore +2 -0
  32. noiselab-0.1.0/src/noiselab/generators/__init__.py +7 -0
  33. noiselab-0.1.0/src/noiselab/generators/_markov.c +27006 -0
  34. noiselab-0.1.0/src/noiselab/generators/_markov.pyi +3 -0
  35. noiselab-0.1.0/src/noiselab/generators/_markov.pyx +9 -0
  36. noiselab-0.1.0/src/noiselab/generators/_relaxation.c +37090 -0
  37. noiselab-0.1.0/src/noiselab/generators/_relaxation.pyi +50 -0
  38. noiselab-0.1.0/src/noiselab/generators/_relaxation.pyx +379 -0
  39. noiselab-0.1.0/src/noiselab/generators/base.py +30 -0
  40. noiselab-0.1.0/src/noiselab/generators/markov.py +74 -0
  41. noiselab-0.1.0/src/noiselab/generators/relaxation.py +42 -0
  42. noiselab-0.1.0/src/noiselab/generators/white.py +27 -0
  43. noiselab-0.1.0/src/noiselab/generators/wiener.py +40 -0
  44. noiselab-0.1.0/src/noiselab/py.typed +0 -0
  45. noiselab-0.1.0/src/noiselab/tdigest/.gitignore +1 -0
  46. noiselab-0.1.0/src/noiselab/tdigest/__init__.py +3 -0
  47. noiselab-0.1.0/src/noiselab/tdigest/_tdigest.c +34064 -0
  48. noiselab-0.1.0/src/noiselab/tdigest/_tdigest.pyi +46 -0
  49. noiselab-0.1.0/src/noiselab/tdigest/_tdigest.pyx +168 -0
  50. noiselab-0.1.0/src/noiselab.egg-info/PKG-INFO +66 -0
  51. noiselab-0.1.0/src/noiselab.egg-info/SOURCES.txt +56 -0
  52. noiselab-0.1.0/src/noiselab.egg-info/dependency_links.txt +1 -0
  53. noiselab-0.1.0/src/noiselab.egg-info/requires.txt +7 -0
  54. noiselab-0.1.0/src/noiselab.egg-info/top_level.txt +1 -0
  55. noiselab-0.1.0/tests/adev/.gitignore +1 -0
  56. noiselab-0.1.0/tests/adev/test_oavar.py +58 -0
  57. noiselab-0.1.0/tests/adev/test_realtime.py +75 -0
  58. noiselab-0.1.0/tests/tdigest/test_tdigest.py +63 -0
@@ -0,0 +1,80 @@
1
+ name: Build all packages
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+ workflow_call:
9
+
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ build_wheels:
16
+ name: Build wheels for ${{ matrix.os }}
17
+ runs-on: ${{ matrix.runs-on }}
18
+ strategy:
19
+ matrix:
20
+ include:
21
+ - os: linux-intel
22
+ runs-on: ubuntu-latest
23
+ - os: linux-arm
24
+ runs-on: ubuntu-24.04-arm
25
+ # - os: windows-intel
26
+ # runs-on: windows-latest
27
+ # - os: windows-arm
28
+ # runs-on: windows-11-arm
29
+ - os: macos-intel
30
+ # macos-15-intel is the last x86_64 runner
31
+ runs-on: macos-15-intel
32
+ - os: macos-arm
33
+ # macos-14+ (including latest) are ARM64 runners
34
+ runs-on: macos-latest
35
+ fail-fast: false
36
+
37
+ steps:
38
+ - uses: actions/checkout@v6
39
+ with:
40
+ submodules: true
41
+ persist-credentials: false
42
+
43
+ - name: Set up QEMU
44
+ if: runner.os == 'Linux' && runner.arch == 'X64'
45
+ uses: docker/setup-qemu-action@v4
46
+ with:
47
+ platforms: all
48
+
49
+ - name: Build wheels
50
+ uses: pypa/cibuildwheel@v3.4.0
51
+ # env:
52
+ # # configure cibuildwheel on Linux to build native archs ('auto') and to build arm7 on x86_64
53
+ # CIBW_ARCHS_LINUX: ${{ runner.arch == 'X64' && 'auto armv7l' || 'auto' }}
54
+
55
+ - name: Store the distribution packages
56
+ uses: actions/upload-artifact@v7
57
+ with:
58
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
59
+ path: ./wheelhouse/*.whl
60
+ if-no-files-found: error
61
+ retention-days: 7
62
+
63
+
64
+ build_sdist:
65
+ name: Build source distribution
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v6
69
+ with:
70
+ persist-credentials: false
71
+
72
+ - name: Build sdist
73
+ run: pipx run build --sdist
74
+
75
+ - uses: actions/upload-artifact@v7
76
+ with:
77
+ name: cibw-sdist
78
+ path: dist/*.tar.gz
79
+ if-no-files-found: error
80
+ retention-days: 7
@@ -0,0 +1,41 @@
1
+ name: Build native package
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+ - develop
8
+
9
+ workflow_dispatch:
10
+ workflow_call:
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ build_wheels:
18
+ name: Build native linux wheel
19
+ runs-on: ubuntu-latest
20
+
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ with:
24
+ submodules: true
25
+ persist-credentials: false
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: "3.x"
31
+
32
+ - name: Build package
33
+ run: pipx run build
34
+
35
+ - name: Store the distribution packages
36
+ uses: actions/upload-artifact@v7
37
+ with:
38
+ name: python-package-distributions
39
+ path: dist/
40
+ if-no-files-found: error
41
+ retention-days: 7
@@ -0,0 +1,54 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ workflow_dispatch: # Allows manual trigger from GitHub UI
9
+
10
+ jobs:
11
+ build:
12
+ uses: ./.github/workflows/build_matrix.yml
13
+ secrets: inherit
14
+
15
+ github-release:
16
+ name: Upload to GitHub Release 📂
17
+ needs: build
18
+ runs-on: ubuntu-latest
19
+ permissions:
20
+ contents: write # Mandatory for uploading to releases
21
+ steps:
22
+ - name: Download dists
23
+ uses: actions/download-artifact@v8
24
+ with:
25
+ pattern: cibw-*
26
+ path: dist
27
+ merge-multiple: true
28
+
29
+ - name: Upload artifacts to GitHub Release
30
+ uses: softprops/action-gh-release@v2
31
+ with:
32
+ files: dist/*
33
+ prerelease: ${{ contains(github.ref_name, 'rc') }}
34
+ generate_release_notes: true
35
+
36
+ pypi-publish:
37
+ name: Publish to PyPI 🚀
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+ environment:
41
+ name: pypi
42
+ url: https://pypi.org/p/noiselab
43
+ permissions:
44
+ id-token: write # Required for Trusted Publishing
45
+ steps:
46
+ - name: Download dists
47
+ uses: actions/download-artifact@v8
48
+ with:
49
+ pattern: cibw-*
50
+ path: dist
51
+ merge-multiple: true
52
+
53
+ - name: Publish distribution 📦 to PyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,25 @@
1
+ name: Ruff
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'main'
7
+ - 'develop'
8
+ - 'update/ruff'
9
+
10
+ pull_request:
11
+ branches:
12
+ - 'main'
13
+ - 'develop'
14
+ - 'update/ruff'
15
+
16
+ workflow_dispatch:
17
+
18
+ jobs:
19
+ ruff:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: astral-sh/ruff-action@v3
24
+ with:
25
+ version: "latest"
@@ -0,0 +1,59 @@
1
+ name: Publish to TestPyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'test-v*'
7
+
8
+ workflow_dispatch: # Allows manual trigger from GitHub UI
9
+
10
+ jobs:
11
+ build:
12
+ uses: ./.github/workflows/build_matrix.yml
13
+ secrets: inherit
14
+
15
+ github-release:
16
+ name: Upload to GitHub Release 📂
17
+ needs: build
18
+ runs-on: ubuntu-latest
19
+ permissions:
20
+ contents: write # Mandatory for uploading to releases
21
+ steps:
22
+ - name: Download dists
23
+ uses: actions/download-artifact@v8
24
+ with:
25
+ pattern: cibw-*
26
+ path: dist
27
+ merge-multiple: true
28
+
29
+ - name: Upload artifacts to GitHub Release
30
+ uses: softprops/action-gh-release@v2
31
+ with:
32
+ files: dist/*
33
+ prerelease: true
34
+ generate_release_notes: true
35
+
36
+ test-publish:
37
+ name: Publish to TestPyPI 🧪
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+ environment:
41
+ name: testpypi
42
+ url: https://test.pypi.org/p/noiselab
43
+ permissions:
44
+ id-token: write # Required for Trusted Publishing
45
+ steps:
46
+ - name: Download dists
47
+ uses: actions/download-artifact@v8
48
+ with:
49
+ pattern: cibw-*
50
+ path: dist
51
+ merge-multiple: true
52
+
53
+ - name: Publish distribution 📦 to TestPyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
55
+ with:
56
+ repository-url: https://test.pypi.org/legacy/
57
+ # Optional: allow overwriting the same version on TestPyPI
58
+ skip-existing: true
59
+ verbose: true
@@ -0,0 +1,48 @@
1
+ name: Pytest
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'main'
7
+ - 'develop'
8
+ - 'update/tests'
9
+
10
+ pull_request:
11
+ branches:
12
+ - 'main'
13
+ - 'develop'
14
+ - 'update/tests'
15
+
16
+ workflow_dispatch:
17
+
18
+ concurrency:
19
+ group: ${{ github.workflow }}-${{ github.head_ref }}
20
+ cancel-in-progress: true
21
+
22
+ jobs:
23
+ test:
24
+ runs-on: ubuntu-latest
25
+ strategy:
26
+ matrix:
27
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
28
+ fail-fast: false
29
+
30
+ steps:
31
+ - name: Checkout repo
32
+ uses: actions/checkout@v6
33
+ with:
34
+ submodules: 'true'
35
+
36
+ - name: Setup Python
37
+ uses: actions/setup-python@v6
38
+ with:
39
+ python-version: ${{ matrix.python-version }}
40
+ cache: 'pip'
41
+
42
+ - name: Build and install Python package
43
+ run: |
44
+ pip install -e .[dev]
45
+
46
+ - name: Test with pytest
47
+ run: |
48
+ pytest ./tests --doctest-modules --junitxml=junit/test-results-${{ matrix.python-version }}.xml
@@ -0,0 +1,158 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ .idea/
157
+
158
+ src/noiselab/_version.py
@@ -0,0 +1,3 @@
1
+ [submodule "noiselab/tdigest/t-digest-c"]
2
+ path = src/noiselab/tdigest/t-digest-c
3
+ url = https://github.com/RedisBloom/t-digest-c.git
@@ -0,0 +1,13 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.15.6
4
+ hooks:
5
+ - id: ruff-check
6
+ types_or: [ python, pyi ]
7
+ args: [ --fix ]
8
+
9
+ - repo: https://github.com/pre-commit/pre-commit-hooks
10
+ rev: v6.0.0
11
+ hooks:
12
+ - id: no-commit-to-branch
13
+ args: ['--branch', 'main']
@@ -0,0 +1,10 @@
1
+ {
2
+ "python.testing.pytestArgs": [
3
+ "tests"
4
+ ],
5
+ "python.testing.unittestEnabled": false,
6
+ "python.testing.pytestEnabled": true,
7
+ "cmake.ignoreCMakeListsMissing": true,
8
+ "files.autoSave": "afterDelay",
9
+ "files.trimTrailingWhitespace": true
10
+ }
noiselab-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Jonathan Kohler
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ recursive-include src/noiselab/tdigest/t-digest-c/src/ *.h
2
+ recursive-include src/noiselab/tdigest/t-digest-c/src/ *.c
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: noiselab
3
+ Version: 0.1.0
4
+ Summary: Efficient algorithms for noise generation and analysis in Python.
5
+ Author-email: Jonathan Kohler <kohler.jonathan@gmail.com>
6
+ Maintainer-email: Jonathan Kohler <kohler.jonathan@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: source, https://github.com/kohlerjl/python-noiselab
9
+ Project-URL: download, https://pypi.python.org/pypi/noiselab
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
13
+ Classifier: Topic :: Scientific/Engineering :: Physics
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Requires-Python: >=3.9
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: numpy>=1.23
26
+ Requires-Dist: scipy
27
+ Provides-Extra: dev
28
+ Requires-Dist: ruff>=0.14.0; extra == "dev"
29
+ Requires-Dist: pytest>=7.2.2; extra == "dev"
30
+ Requires-Dist: pre-commit; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ # python-noiselab
34
+
35
+ noiselab is a collection of Cython- or C-optimized implementations of algorithms for the simulation and analysis of
36
+ continuous-variable random processes in Python. In particular, this library is currently focused on the simulation of
37
+ stochastic signals in time with non-trivial temporal correlations and distributions.
38
+
39
+ There are a collection of Generator classes, which can generate continuous streams of stochastic signals with various
40
+ power spectra. These noisy signals can then be analyzed using Power Spectral Density estimation routines in noiselab.psd
41
+ or the Allan deviation, in noiselab.adev. This library also contains a wrapper for a fast TDigest library written in C,
42
+ which can be used to efficiently estimate quantiles of arbitrary noise distributions.
43
+
44
+ # Generators
45
+
46
+ * WhitenoiseProcess: White noise
47
+ * WienerProcess: Brownian noise / Wiener process
48
+ * MarkovProcess: Orenstein-Uhlenbeck / 1st-order Markov process
49
+ * RelaxationProcess: $\alpha = 0 - 2$ Power-law noise (PLNoise)
50
+
51
+ ## RelaxationProcess - PLNoise
52
+
53
+ Fast Cython implemention of PLNoise2 power-low noise generation algorithm described in the following references:
54
+
55
+ Milotti, Edoardo (2005), "Exact numerical simulation of power-law noises", Physical Review E, Volume 72, Issue 5, https://doi.org/10.1103/PhysRevE.72.056701 (https://arxiv.org/abs/physics/0509237)
56
+
57
+ Milotti, Edoardo (2007), "New version of PLNoise: a package for exact numerical simulation of power-law noises", Computer Physics Communications, Volume 177, Issue 4
58
+ Link: https://doi.org/10.1016/j.cpc.2007.04.005
59
+
60
+ Milotti, Edoardo (2007), “New version of PLNoise: a package for exact numerical simulation of power-law noises ”, Mendeley Data, V1, doi: 10.17632/nt7mcwh98m.1
61
+ Link: https://doi.org/10.17632/nt7mcwh98m.1
62
+
63
+
64
+ # TDigest
65
+ * https://arxiv.org/abs/1902.04023
66
+ * Python bindings for C library: https://github.com/RedisBloom/t-digest-c
noiselab-0.1.0/Pipfile ADDED
@@ -0,0 +1,15 @@
1
+ [[source]]
2
+ url = "https://pypi.org/simple"
3
+ verify_ssl = true
4
+ name = "pypi"
5
+
6
+ [requires]
7
+ python_version = "3.11"
8
+
9
+ [packages]
10
+ cython = ">=0.29"
11
+ numpy = ">=1.23"
12
+ scipy = "*"
13
+
14
+ [dev-packages]
15
+ pytest = "*"