paramrf 0.18.2__tar.gz → 0.18.3__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 (136) hide show
  1. {paramrf-0.18.2/paramrf.egg-info → paramrf-0.18.3}/PKG-INFO +2 -3
  2. {paramrf-0.18.2 → paramrf-0.18.3}/README.rst +1 -2
  3. {paramrf-0.18.2 → paramrf-0.18.3}/docs/api/index.rst +7 -0
  4. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/model_building.rst +2 -3
  5. {paramrf-0.18.2 → paramrf-0.18.3}/docs/quickstart.rst +1 -2
  6. {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/1_cable_fitting.ipynb +68 -13
  7. {paramrf-0.18.2 → paramrf-0.18.3/paramrf.egg-info}/PKG-INFO +2 -3
  8. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/__init__.py +20 -1
  9. paramrf-0.18.3/pmrf/constraints.py +33 -0
  10. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/distributions.py +3 -23
  11. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/jax_utils.py +1 -0
  12. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/base.py +23 -0
  13. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/parameters.py +31 -85
  14. {paramrf-0.18.2 → paramrf-0.18.3}/pyproject.toml +1 -1
  15. paramrf-0.18.2/pmrf/constraints.py +0 -73
  16. {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/docs.yml +0 -0
  17. {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/publish.yml +0 -0
  18. {paramrf-0.18.2 → paramrf-0.18.3}/.github/workflows/tests.yml +0 -0
  19. {paramrf-0.18.2 → paramrf-0.18.3}/.gitignore +0 -0
  20. {paramrf-0.18.2 → paramrf-0.18.3}/CONTRIBUTING.md +0 -0
  21. {paramrf-0.18.2 → paramrf-0.18.3}/LICENSE +0 -0
  22. {paramrf-0.18.2 → paramrf-0.18.3}/assets/logo.png +0 -0
  23. {paramrf-0.18.2 → paramrf-0.18.3}/docs/Makefile +0 -0
  24. {paramrf-0.18.2 → paramrf-0.18.3}/docs/_static/custom.css +0 -0
  25. {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/class.rst +0 -0
  26. {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/function.rst +0 -0
  27. {paramrf-0.18.2 → paramrf-0.18.3}/docs/_templates/autosummary/module.rst +0 -0
  28. {paramrf-0.18.2 → paramrf-0.18.3}/docs/conf.py +0 -0
  29. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/circuit_clc.png +0 -0
  30. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/index.rst +0 -0
  31. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/jax_overview.rst +0 -0
  32. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/main_classes.rst +0 -0
  33. {paramrf-0.18.2 → paramrf-0.18.3}/docs/core_concepts/optimization_and_inference.rst +0 -0
  34. {paramrf-0.18.2 → paramrf-0.18.3}/docs/index.rst +0 -0
  35. {paramrf-0.18.2 → paramrf-0.18.3}/docs/license.rst +0 -0
  36. {paramrf-0.18.2 → paramrf-0.18.3}/docs/make.bat +0 -0
  37. {paramrf-0.18.2 → paramrf-0.18.3}/docs/skrf_comparison.rst +0 -0
  38. {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/data/CBN-1.5FT-SMSM.s2p +0 -0
  39. {paramrf-0.18.2 → paramrf-0.18.3}/docs/tutorials/index.rst +0 -0
  40. {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/SOURCES.txt +0 -0
  41. {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/dependency_links.txt +0 -0
  42. {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/requires.txt +0 -0
  43. {paramrf-0.18.2 → paramrf-0.18.3}/paramrf.egg-info/top_level.txt +0 -0
  44. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/constants.py +0 -0
  45. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/covariance_kernels.py +0 -0
  46. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/discrepancy_models.py +0 -0
  47. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/evaluators.py +0 -0
  48. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/__init__.py +0 -0
  49. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/minimize.py +0 -0
  50. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/result.py +0 -0
  51. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/routers.py +0 -0
  52. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/fitting/sample.py +0 -0
  53. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/frequency.py +0 -0
  54. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/__init__.py +0 -0
  55. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/__init__.py +0 -0
  56. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/blackjax.py +0 -0
  57. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/backends/polychord.py +0 -0
  58. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/base.py +0 -0
  59. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/result.py +0 -0
  60. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/infer/sample.py +0 -0
  61. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/likelihoods.py +0 -0
  62. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/losses.py +0 -0
  63. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/__init__.py +0 -0
  64. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/aggregations.py +0 -0
  65. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/conversions.py +0 -0
  66. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/losses.py +0 -0
  67. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/math/misc.py +0 -0
  68. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/__init__.py +0 -0
  69. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/__init__.py +0 -0
  70. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/base.py +0 -0
  71. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/bridge.py +0 -0
  72. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/callable.py +0 -0
  73. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/adapters/static.py +0 -0
  74. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/__init__.py +0 -0
  75. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/ideal.py +0 -0
  76. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/__init__.py +0 -0
  77. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/nonuniform.py +0 -0
  78. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lines/uniform.py +0 -0
  79. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/lumped.py +0 -0
  80. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/nonideal.py +0 -0
  81. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/components/topological.py +0 -0
  82. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/__init__.py +0 -0
  83. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/collection.py +0 -0
  84. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/interconnected.py +0 -0
  85. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/nodal.py +0 -0
  86. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/composite/transformed.py +0 -0
  87. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/__init__.py +0 -0
  88. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/expansion.py +0 -0
  89. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/models/surrogates/rational.py +0 -0
  90. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/network_collection.py +0 -0
  91. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/noise_models.py +0 -0
  92. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/__init__.py +0 -0
  93. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/__init__.py +0 -0
  94. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/jaxopt.py +0 -0
  95. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/optimistix.py +0 -0
  96. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/backends/scipy.py +0 -0
  97. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/base.py +0 -0
  98. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/minimize.py +0 -0
  99. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/optimize/result.py +0 -0
  100. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/problem.py +0 -0
  101. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/__init__.py +0 -0
  102. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/cascades.py +0 -0
  103. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/connections.py +0 -0
  104. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/conversions.py +0 -0
  105. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/rf/terminations.py +0 -0
  106. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/serialization.py +0 -0
  107. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/solve/__init__.py +0 -0
  108. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/__init__.py +0 -0
  109. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/array.py +0 -0
  110. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/network.py +0 -0
  111. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/random.py +0 -0
  112. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/rf.py +0 -0
  113. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/tree.py +0 -0
  114. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/utils/type.py +0 -0
  115. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/viz/__init__.py +0 -0
  116. {paramrf-0.18.2 → paramrf-0.18.3}/pmrf/viz/plots.py +0 -0
  117. {paramrf-0.18.2 → paramrf-0.18.3}/setup.cfg +0 -0
  118. {paramrf-0.18.2 → paramrf-0.18.3}/tests/__init__.py +0 -0
  119. {paramrf-0.18.2 → paramrf-0.18.3}/tests/data/10m_cable.s2p +0 -0
  120. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_evaluators.py +0 -0
  121. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fitting_minimize.py +0 -0
  122. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fitting_routers.py +0 -0
  123. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_fittting_sample.py +0 -0
  124. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_frequency.py +0 -0
  125. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_infer_base.py +0 -0
  126. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_infer_sample.py +0 -0
  127. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_model.py +0 -0
  128. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_adapters.py +0 -0
  129. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_interconnected.py +0 -0
  130. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_lines.py +0 -0
  131. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_lumped.py +0 -0
  132. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_nodal.py +0 -0
  133. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_topological.py +0 -0
  134. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_models/test_transformed.py +0 -0
  135. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_optimize_base.py +0 -0
  136. {paramrf-0.18.2 → paramrf-0.18.3}/tests/test_optimize_minimize.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paramrf
3
- Version: 0.18.2
3
+ Version: 0.18.3
4
4
  Summary: Parametric radio frequency modeling, optimization and sampling
5
5
  Author-email: Gary Allen <gvcallen@gmail.com>
6
6
  Project-URL: homepage, https://github.com/gvcallen/paramrf
@@ -91,11 +91,10 @@ The example below shows how to define and optimize a simple RLC model to satisfy
91
91
  .. code-block:: python
92
92
 
93
93
  import pmrf as prf
94
- from pmrf.parameters import Scaled
95
94
  from pmrf.models import Resistor, Inductor, Capacitor
96
95
 
97
96
  freq = prf.Frequency(1, 10, 101, 'GHz')
98
- rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
97
+ rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
99
98
 
100
99
  opt_freq = prf.Frequency(4, 6, 101, 'GHz')
101
100
  goal = prf.evaluators.Goal('s11_db', '<', -20)
@@ -52,11 +52,10 @@ The example below shows how to define and optimize a simple RLC model to satisfy
52
52
  .. code-block:: python
53
53
 
54
54
  import pmrf as prf
55
- from pmrf.parameters import Scaled
56
55
  from pmrf.models import Resistor, Inductor, Capacitor
57
56
 
58
57
  freq = prf.Frequency(1, 10, 101, 'GHz')
59
- rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
58
+ rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
60
59
 
61
60
  opt_freq = prf.Frequency(4, 6, 101, 'GHz')
62
61
  goal = prf.evaluators.Goal('s11_db', '<', -20)
@@ -23,6 +23,13 @@ Core
23
23
  pmrf.Frequency
24
24
  pmrf.Param
25
25
  pmrf.param
26
+ pmrf.as_param
27
+ pmrf.Free
28
+ pmrf.Fixed
29
+ pmrf.Scaled
30
+ pmrf.Bounded
31
+ pmrf.Constrained
32
+ pmrf.Random
26
33
 
27
34
  Modules
28
35
  -------------
@@ -153,7 +153,6 @@ As a last resort, overriding ``__init__`` is still possible, but ``super().__ini
153
153
  .. code-block:: python
154
154
 
155
155
  import pmrf as prf
156
- from pmrf.parameters import Bounded
157
156
  from pmrf.models import Capacitor, Inductor, Circuit, Port, Ground
158
157
 
159
158
  import jax.numpy as jnp
@@ -163,8 +162,8 @@ As a last resort, overriding ``__init__`` is still possible, but ``super().__ini
163
162
 
164
163
  # To be instantiated in post init
165
164
  cap1: Capacitor = prf.field(default=None)
166
- cap2: Capacitor = Capacitor(C=Bounded(0.0, 10.0, value=2.0, scale=1e-12))
167
- ind: Inductor = Inductor(L=Bounded(0.0, 10.0, value=2.0, scale=1e-12))
165
+ cap2: Capacitor = Capacitor(C=prf.Bounded(0.0, 10.0, value=2.0, scale=1e-12))
166
+ ind: Inductor = Inductor(L=prf.Bounded(0.0, 10.0, value=2.0, scale=1e-12))
168
167
 
169
168
  def __post_init__(self, C1_divided_by_5: float):
170
169
  self.cap1 = Capacitor(C1_divided_by_5 * 5.0)
@@ -20,14 +20,13 @@ Models can easily be built using composition with the built in :mod:`pmrf.models
20
20
  .. code-block:: python
21
21
 
22
22
  import pmrf as prf
23
- from pmrf.parameters import Scaled
24
23
  from pmrf.models import Resistor, Inductor, Capacitor
25
24
 
26
25
  # Define the frequency band
27
26
  freq = prf.Frequency(1, 10, 101, 'GHz')
28
27
 
29
28
  # Cascade elements using the ** operator
30
- rlc_model = Resistor(50) ** Inductor(Scaled(1.0, 1e-9)) ** Capacitor(Scaled(1.0, 1e-12))
29
+ rlc_model = Resistor(50) ** Inductor(prf.Scaled(1.0, 1e-9)) ** Capacitor(prf.Scaled(1.0, 1e-12))
31
30
 
32
31
  # Plot the model's S11 parameter
33
32
  rlc_model.plot_s_db(freq, m=0, n=0)