Repository: AUTODIAL/AutoEIS (language: python)

Issue:
`Attribute Error` in `plot_*` modules
AttributeError: module 'autoeis' has no attribute 'metrics'
`apply_heuristic_rules` should not modify dataframe's structure (i.e., columns)
Currently, `apply_heuristic_rules` takes in a results dataframe containing only two columns (parameters and circuit string), and progressivly adds more columns to it as it applies different filters. We should standardize the results dataframe, so that it has all necessary columns from the start. With the current approach, if one decides NOT to apply these filters, they can't move on with the BI, because those columns are required.


Discussion / hints:
it can be solved, if you replace metrics by utils
in all respective lines, so please update you Repo. Thanks
Thanks for reporting this. We'll look into it. 


Fix patch:
diff --git a/.gitignore b/.gitignore
index 9f12ea52..72b091f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -165,4 +165,12 @@ cython_debug/
 examples/**/*.png
 examples/**/*.csv
 examples/**/*.txt
-results*/
+results/
+
+# Local development
+benchmark_jaxfit.py
+dump.py
+sandbox.py
+sandbox.jl
+scratchpad.py
+test.py
diff --git a/autoeis/__init__.py b/autoeis/__init__.py
index f302f67e..0e126773 100644
--- a/autoeis/__init__.py
+++ b/autoeis/__init__.py
@@ -1,6 +1,7 @@
 from . import core, io, metrics, parser, utils, visualization  # noqa: F401
 from .core import *
 from .version import __equivalent_circuits_jl_version__, __version__  # noqa: F401
+from .visualization import rich_print  # noqa: F401
 
 # Set up rich traceback for nicer exception printing
 utils.setup_rich_tracebacks()
diff --git a/autoeis/core.py b/autoeis/core.py
index 0103bf21..a98a3af0 100644
--- a/autoeis/core.py
+++ b/autoeis/core.py
@@ -21,7 +21,6 @@
 import jax.numpy as jnp  # noqa: F401
 import numpy as np
 import numpyro
-import numpyro.distributions as dist
 import pandas as pd
 from impedance.validation import linKK
 from jax import random
@@ -33,6 +32,10 @@
 import autoeis.julia_helpers as julia_helpers
 import autoeis.visualization as viz
 from autoeis import io, metrics, parser, utils
+from autoeis.models import (
+    circuit_component_regression,
+    circuit_component_regression_fn_wrapped,
+)
 
 # AutoEIS datasets are not small-enough that CPU is much faster than GPU
 numpyro.set_platform("cpu")
@@ -484,8 +487,9 @@ def perform_bayesian_inference(
     Z: np.ndarray[complex],
     freq: np.ndarray[float],
     p0: Union[np.ndarray[float], dict[str, float]] = None,
-    num_warmup=500,
-    num_samples=500,
+    num_warmup=1000,
+    num_samples=1000,
+    num_chains=1,
     seed: int = None,
     progress_bar: bool = True,
 ) -> numpyro.infer.mcmc.MCMC:
@@ -520,62 +524,29 @@ def perform_bayesian_inference(
     if p0 is None:
         p0 = utils.fit_circuit_parameters(circuit, Z, freq)
     assert isinstance(p0, dict), "p0 must be a dictionary"
-    p0_values = np.array(list(p0.values()))
 
-    # Zfunc = circuit_to_function(circuit, use_jax=True)
     circuit_fn = utils.generate_circuit_fn(circuit)
-    Z_pred = circuit_fn(p0_values, freq)
-
-    # Compute R2, MSE, RMSE, and MAPE using the initial guess
-    r2_init = metrics.r2_score(Z, Z_pred)
-    r2_real_init = metrics.r2_score(Z.real, Z_pred.real)
-    r2_imag_init = metrics.r2_score(Z.imag, Z_pred.imag)
-    mse_init = metrics.mse_score(Z, Z_pred)
-    rmse_init = metrics.rmse_score(Z, Z_pred)
-    mape_init = metrics.mape_score(Z, Z_pred)
-
-    log.info(f"R² = {r2_init:.3f} (initial)")
-    log.info(f"R² (Re) = {r2_real_init:.3f} (initial)")
-    log.info(f"R² (Im) = {r2_imag_init:.3f} (initial)")
-    log.info(f"MSE = {mse_init:.3e} (initial)")
-    log.info(f"RMSE = {rmse_init:.3e} (initial)")
-    log.info(f"MAPE = {mape_init:.3f}% (initial)")
-
-    def model(F, Z_true, priors: dict, circuit_func: callable):
-        # Sample each element of X separately
-        X = jnp.array([numpyro.sample(k, v) for k, v in priors.items()])
-        # Predict Z using the model
-        Z_pred = circuit_func(X, F)
-        # Define observation model for real and imaginary parts of Z
-        sigma_real = numpyro.sample("sigma_real", dist.Exponential(rate=1.0))
-        numpyro.sample("obs_real", dist.Normal(Z_pred.real, sigma_real), obs=Z_true.real)
-        sigma_imag = numpyro.sample("sigma_imag", dist.Exponential(rate=1.0))
-        numpyro.sample("obs_imag", dist.Normal(Z_pred.imag, sigma_imag), obs=Z_true.imag)
+    circuit_fn = jax.jit(circuit_fn)
 
     # Compute prior predictive distribution using the initial guess
-    prior_predictive = Predictive(model, num_samples=200)
     priors = utils.initialize_priors(p0, variables=p0.keys())
-    rng_key, rng_subkey = random.split(rng_key)
-    kwargs = {"F": freq, "Z_true": Z, "priors": priors, "circuit_func": circuit_fn}
-    # TODO: somehow include prior predictive in the results
-    prior_prediction = prior_predictive(rng_subkey, **kwargs)
-    
-    nuts_kernel = NUTS(model)
+    rng_key, rng_subkey = random.split(rng_key)   
+    # nuts_kernel = NUTS(circuit_component_regression)
+    nuts_kernel = NUTS(
+        model=circuit_component_regression_fn_wrapped,
+        init_strategy=numpyro.infer.init_to_median
+    )
     kwargs_mcmc = {
         "num_samples": num_samples,
         "num_warmup": num_warmup,
-        "num_chains": 1,
+        "num_chains": num_chains,
         "progress_bar": progress_bar
     }
     mcmc = MCMC(nuts_kernel, **kwargs_mcmc)
     rng_key, rng_subkey = jax.random.split(rng_key)
-    mcmc.run(rng_subkey, F=freq, Z_true=Z, priors=priors, circuit_func=circuit_fn)
-
-    # Calculate AIC
-    # FIXME: Remove next line once confirmed that `iloc` is correctly used.
-    # AIC_value = az.waic(mcmc_i)[0] * (-2) + 2 * parser.count_parameters(circuit)
-    # aic = az.waic(mcmc).iloc[0] * (-2) + 2 * parser.count_parameters(circuit)
-    # log.info(f"AIC = {aic:.1f}")
+    # kwargs_inference = {"Z": Z, "freq": freq, "priors": priors, "circuit": circuit}
+    kwargs_inference = {"Z": Z, "freq": freq, "priors": priors, "circuit_fn": circuit_fn}
+    mcmc.run(rng_subkey, **kwargs_inference)
 
     return mcmc
 
diff --git a/autoeis/models.py b/autoeis/models.py
new file mode 100644
index 00000000..7c2ba627
--- /dev/null
+++ b/autoeis/models.py
@@ -0,0 +1,57 @@
+"""
+Collection of functions to be used as models for Bayesian inference.
+
+.. currentmodule:: autoeis.models
+
+.. autosummary::
+   :toctree: generated/
+
+    circuit_component_regression
+    circuit_component_regression_fn_wrapped
+
+"""
+import jax
+import jax.numpy as jnp
+import numpy as np
+import numpyro
+import numpyro.distributions as dist
+
+from autoeis import utils
+
+
+def circuit_component_regression(
+    Z: np.ndarray[complex],
+    freq: np.ndarray[float],
+    priors: dict[str, dist.Distribution],
+    circuit: str,
+):
+    """NumpyRo model for Bayesian inference of circuit component values."""
+    # Sample each element of X separately
+    X = jnp.array([numpyro.sample(k, v) for k, v in priors.items()])
+    # Predict Z using the model
+    circuit_fn = utils.generate_circuit_fn(circuit)
+    circuit_fn = jax.jit(circuit_fn)
+    Z_pred = circuit_fn(X, freq)
+    # Define observation model for real and imaginary parts of Z
+    sigma_real = numpyro.sample("sigma_real", dist.Exponential(rate=1.0))
+    numpyro.sample("obs_real", dist.Normal(Z_pred.real, sigma_real), obs=Z.real)
+    sigma_imag = numpyro.sample("sigma_imag", dist.Exponential(rate=1.0))
+    numpyro.sample("obs_imag", dist.Normal(Z_pred.imag, sigma_imag), obs=Z.imag)
+
+
+def circuit_component_regression_fn_wrapped(
+    Z: np.ndarray[complex],
+    freq: np.ndarray[float],
+    priors: dict[str, dist.Distribution],
+    circuit_fn: callable,
+):
+    """NumpyRo model for Bayesian inference of circuit component values."""
+    # Sample each element of X separately
+    X = jnp.array([numpyro.sample(k, v) for k, v in priors.items()])
+    # Predict Z using the model
+    Z_pred = circuit_fn(X, freq)
+    # Define observation model for real and imaginary parts of Z
+    sigma_real = numpyro.sample("sigma_real", dist.Exponential(rate=1.0))
+    numpyro.sample("obs_real", dist.Normal(Z_pred.real, sigma_real), obs=Z.real)
+    sigma_imag = numpyro.sample("sigma_imag", dist.Exponential(rate=1.0))
+    numpyro.sample("obs_imag", dist.Normal(Z_pred.imag, sigma_imag), obs=Z.imag)
diff --git a/autoeis/utils.py b/autoeis/utils.py
index a1019c9e..5f85973a 100644
--- a/autoeis/utils.py
+++ b/autoeis/utils.py
@@ -24,15 +24,17 @@
 from functools import wraps
 from typing import Union
 
+import jax  # NOQA: F401
 import jax.numpy as jnp
 import numpy as np
 import numpyro.distributions as dist
 import rich.traceback
 from impedance.models.circuits import CustomCircuit
-from numpy import pi
+from numpy import pi  # NOQA: F401
 from rich.logging import RichHandler
-from scipy.stats import lognorm, norm
+from scipy import stats
 
+# from tensorflow_probability import distributions as tfdist  # NOQA: F401
 from autoeis import parser
 
 # >>> Logging utils
@@ -167,12 +169,13 @@ def fit_circuit_parameters(
 def generate_circuit_fn(
     circuit: str,
     return_str: bool = False,
-    label: str = "X"
+    label: str = "X",
 ) -> Union[callable, str]:
+    assert isinstance(circuit, str), "Circuit must be a string."
     """Converts a circuit string to a function of (params, freq)"""
     # Apply series-parallel conversion, e.g., [R1,R2] -> (1/R1+1/R2)**(-1)
     circuit_expr = parser.generate_mathematical_expr(circuit)
-    # Embed impedance expressions, e.g., C1 -> (1/(2*1j*np.pi*F*C1))
+    # Embed impedance expressions, e.g., C1 -> (1/(2*1j*pi*F*C1))
     circuit_expr = parser.embed_impedance_expr(circuit_expr)
     # Replace variables with array indexing, e.g., R1, P2w, P2n -> X[0], X[1], X[2]
     variables = parser.get_parameter_labels(circuit)
@@ -268,31 +271,44 @@ def initialize_priors(
             priors[var] = dist.Uniform(0, 1)
         else:
             # Search over a log-normal dist spanning [0.01*u0, 100*u0]
-            mean, std_dev = jnp.log(value), jnp.log(100)
+            mean, std_dev = jnp.log(value), jnp.log(10)
             priors[var] = dist.LogNormal(mean, std_dev)
     return priors
 
 
 def initialize_priors_from_posteriors(
     posterior: dict[str, np.ndarray[float]],
-    variables: list[str]
+    variables: list[str],
+    dist_type: str = "lognormal",
 ) -> dict[str, dist.Distribution]:
     """Creates new priors based on the posterior distributions."""
     priors = {}
     for var in variables:
-        sample = posterior[var]
+        samples = posterior[var]
         # Fit data to a truncated normal distribution for exponents of CPE elements
         # HACK: for better convergence (fewer parameters), fit a normal and truncate it
         if "n" in var:
             # Exponent of CPE elements is bounded between 0 and 1
-            loc, scale = norm.fit(sample)
-            priors[var] = dist.TruncatedNormal(loc=loc, scale=2*scale, low=0, high=1)
+            loc, scale = stats.norm.fit(samples)
+            priors[var] = dist.TruncatedNormal(loc=loc, scale=1*scale, low=0, high=1)
         # Fit data to a log-normal distribution for all other parameters
         else:
             # NOTE: s and scale in scipy.stats -> scale and np.exp(loc) in numpyro
             # NOTE: above conversion is only valid when loc = 0
-            s, loc, scale = lognorm.fit(sample, floc=0)
-            priors[var] = dist.LogNormal(loc=np.log(scale), scale=2*s)
+            if dist_type == "lognormal":
+                s, loc, scale = stats.lognorm.fit(samples, floc=0)
+                priors[var] = dist.LogNormal(loc=np.log(scale), scale=8*s)
+            elif dist_type == "normal":
+                loc, scale = stats.norm.fit(samples)
+                priors[var] = dist.TruncatedNormal(loc=loc, scale=1*scale, low=0, high=np.inf)
+            elif dist_type == "weibull":
+                c, loc, scale = stats.weibull_min.fit(samples, floc=1)
+                priors[var] = dist.Weibull(scale=scale, concentration=c)
+            elif dist_type == "t":
+                df, loc, scale = stats.t.fit(samples)
+                priors[var] = dist.StudentT(df=df, loc=loc, scale=scale)
+            else:
+                raise ValueError(f"Unknown distribution: {dist_type}")
     return priors
 
 # <<< Statistics utils
diff --git a/examples/autoeis_demo.ipynb b/examples/autoeis_demo.ipynb
index ebf42e2f..55c25574 100644
--- a/examples/autoeis_demo.ipynb
+++ b/examples/autoeis_demo.ipynb
@@ -35,6 +35,7 @@
     "import matplotlib.pyplot as plt\n",
     "import numpy as np\n",
     "import numpyro\n",
+    "import pandas as pd\n",
     "import seaborn as sns\n",
     "from IPython.display import display\n",
     "from tqdm.notebook import tqdm\n",
@@ -175,20 +176,6 @@
    "execution_count": 5,
    "metadata": {},
    "outputs": [
-    {
-     "data": {
-      "application/vnd.jupyter.widget-view+json": {
-       "model_id": "7d2d0c6a40064f65b7bde6756a85311d",
-       "version_major": 2,
-       "version_minor": 0
-      },
-      "text/plain": [
-       "Circuit Evolution:   0%|          | 0/24 [00:00<?, ?it/s]"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
     {
      "data": {
       "text/html": [
@@ -217,166 +204,159 @@
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>0</th>\n",
-       "      <td>[R1,P2]-L3-[P4,R5]-[R6,L7]</td>\n",
-       "      <td>{'R1': 717000721.7562642, 'P2w': 0.00718663620...</td>\n",
+       "      <td>P1-[P2,L3]-[P4,P5]</td>\n",
+       "      <td>{'P1w': 3.1928577593495745e-06, 'P1n': 0.79394...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>1</th>\n",
-       "      <td>[P1-P2-R3,P4]</td>\n",
-       "      <td>{'P1w': 575572678.3019015, 'P1n': 0.7330841736...</td>\n",
+       "      <td>[R1,P2]-[P3,R4]-R5-P6-R7</td>\n",
+       "      <td>{'R1': 3756228.324732959, 'P2w': 2.03557677798...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>2</th>\n",
-       "      <td>[P1,[L2,C3]-P4-[L5,R6]]</td>\n",
-       "      <td>{'P1w': 2.247002588377372e-06, 'P1n': 0.874772...</td>\n",
+       "      <td>[P1-P2-[[R3,P4],P5],R6]</td>\n",
+       "      <td>{'P1w': 2.2434807405762006e-05, 'P1n': 0.88840...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>3</th>\n",
-       "      <td>[P1,[R2,P3]-[L4,R5]]</td>\n",
-       "      <td>{'P1w': 2.247089774773077e-06, 'P1n': 0.874766...</td>\n",
+       "      <td>[L1,R2]-[P3-[L4-R5,P6],R7]</td>\n",
+       "      <td>{'L1': 1.0613558658993882e-19, 'R2': 826995570...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>4</th>\n",
-       "      <td>[P1,C2-P3-R4]</td>\n",
-       "      <td>{'P1w': 2.2329871440787923e-06, 'P1n': 0.87631...</td>\n",
+       "      <td>[[[P1,R2],R3]-L4-R5,P6]-R7</td>\n",
+       "      <td>{'P1w': 2.3011178790923626e-06, 'P1n': 0.40321...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>5</th>\n",
-       "      <td>P1-[P2-[R3,L4],[R5,P6]-L7]-L8</td>\n",
-       "      <td>{'P1w': 2.806473306944429e-06, 'P1n': 0.848755...</td>\n",
+       "      <td>[[R1-P2,R3-P4],C5-R6]</td>\n",
+       "      <td>{'R1': 676.9091823021058, 'P2w': 5.86557995820...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>6</th>\n",
-       "      <td>[[P1,R2]-R3-P4,R5]</td>\n",
-       "      <td>{'P1w': 1971.1218998893798, 'P1n': 0.992727501...</td>\n",
+       "      <td>P1-P2-[P3,P4]</td>\n",
+       "      <td>{'P1w': 0.006250677506749731, 'P1n': 0.0118602...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>7</th>\n",
-       "      <td>[R1-P2,[P3,R4]]</td>\n",
-       "      <td>{'R1': 10815257.371142618, 'P2w': 1.3483389814...</td>\n",
+       "      <td>[P1,[R2,L3]-P4]</td>\n",
+       "      <td>{'P1w': 2.247010810095234e-06, 'P1n': 0.874773...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>8</th>\n",
-       "      <td>[[R1,P2-R3],L4-P5-L6-R7]</td>\n",
-       "      <td>{'R1': 911308958.9633163, 'P2w': 5.63715602558...</td>\n",
+       "      <td>R1-[[R2,P3],P4]</td>\n",
+       "      <td>{'R1': 142.0632231537774, 'R2': 1500000000.024...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>9</th>\n",
-       "      <td>P1-R2-[P3,[P4,R5]]</td>\n",
-       "      <td>{'P1w': 5.2801770152300106e-05, 'P1n': 0.80012...</td>\n",
+       "      <td>[P1,[R2,P3]-R4]</td>\n",
+       "      <td>{'P1w': 2.230907252126471e-06, 'P1n': 0.876624...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>10</th>\n",
-       "      <td>[R1-P2,P3-L4]</td>\n",
-       "      <td>{'R1': 4847243.705556438, 'P2w': 3.61492069227...</td>\n",
+       "      <td>[[[R1,P2],C3-L4]-P5,P6]</td>\n",
+       "      <td>{'R1': 3818933.71859363, 'P2w': 2.175028698553...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>11</th>\n",
-       "      <td>[R1-[R2,P3]-[P4,R5],R6]</td>\n",
-       "      <td>{'R1': 139.15128815851816, 'R2': 802395274.185...</td>\n",
+       "      <td>[[P1,L2-[P3,R4]]-R5-P6,P7]</td>\n",
+       "      <td>{'P1w': 5207.151722389234, 'P1n': 0.9999999999...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>12</th>\n",
-       "      <td>P1-[[P2,R3],P4]-R5</td>\n",
-       "      <td>{'P1w': 5.280173876099107e-05, 'P1n': 0.800128...</td>\n",
+       "      <td>[C1-P2-R3,P4-R5]</td>\n",
+       "      <td>{'C1': 0.009999999857491889, 'P2w': 1.81745422...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>13</th>\n",
-       "      <td>R1-[P2,[P3,R4]]</td>\n",
-       "      <td>{'R1': 142.06322309319154, 'P2w': 1.7374203207...</td>\n",
+       "      <td>P1-[P2-R3-R4-L5,P6]</td>\n",
+       "      <td>{'P1w': 2.8074252438992e-06, 'P1n': 0.84883423...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>14</th>\n",
-       "      <td>[R1-P2,P3-R4]</td>\n",
-       "      <td>{'R1': 141.24734636974645, 'P2w': 1.8171284377...</td>\n",
+       "      <td>L1-R2-[P3,P4]</td>\n",
+       "      <td>{'L1': 9.052611565739006e-21, 'R2': 142.061397...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>15</th>\n",
-       "      <td>[L1-R2-P3,P4-R5]</td>\n",
-       "      <td>{'L1': 3.068675139877526e-20, 'R2': 141.247346...</td>\n",
+       "      <td>[[R1,P2],P3]-R4</td>\n",
+       "      <td>{'R1': 999999999.9999872, 'P2w': 4.06284395506...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>16</th>\n",
-       "      <td>R1-[R2-P3,[P4,R5]]</td>\n",
-       "      <td>{'R1': 141.2390806803801, 'R2': 2765403.858589...</td>\n",
+       "      <td>[R1-P2,P3-R4]-P5-R6</td>\n",
+       "      <td>{'R1': 3820950.8486733097, 'P2w': 198638277.40...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>17</th>\n",
-       "      <td>[[R1,L2]-P3,[P4,R5]]</td>\n",
-       "      <td>{'R1': 1499999853.5700588, 'L2': 4.99999999892...</td>\n",
+       "      <td>[P1,[P2,R3]]-P4</td>\n",
+       "      <td>{'P1w': 0.0021158643015816445, 'P1n': 7.770279...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>18</th>\n",
-       "      <td>[[R1,P2],P3]-R4</td>\n",
-       "      <td>{'R1': 999999999.9999851, 'P2w': 4.06284395815...</td>\n",
+       "      <td>[P1-[L2,R3],R4]-[P5,R6]</td>\n",
+       "      <td>{'P1w': 0.007186636321461309, 'P1n': 1.7216333...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>19</th>\n",
-       "      <td>[C1-P2,P3-R4]</td>\n",
-       "      <td>{'C1': 1.509520446759866e-06, 'P2w': 0.0038167...</td>\n",
+       "      <td>[[P1,R2]-P3-[P4,L5],R6]</td>\n",
+       "      <td>{'P1w': 2.009961353950956e-06, 'P1n': 0.925569...</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>20</th>\n",
-       "      <td>[R1,P2]-R3-[P4,R5]</td>\n",
-       "      <td>{'R1': 4456958.0450697765, 'P2w': 2.2077877344...</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>21</th>\n",
-       "      <td>P1-[P2,[R3-P4,R5]]</td>\n",
-       "      <td>{'P1w': 0.007080274026615172, 'P1n': 3.3897321...</td>\n",
+       "      <td>[P1,[P2,R3-R4]]-R5</td>\n",
+       "      <td>{'P1w': 1.7375194775324558e-06, 'P1n': 0.96242...</td>\n",
        "    </tr>\n",
        "  </tbody>\n",
        "</table>\n",
        "</div>"
       ],
       "text/plain": [
-       "                    circuitstring  \\\n",
-       "0      [R1,P2]-L3-[P4,R5]-[R6,L7]   \n",
-       "1                   [P1-P2-R3,P4]   \n",
-       "2         [P1,[L2,C3]-P4-[L5,R6]]   \n",
-       "3            [P1,[R2,P3]-[L4,R5]]   \n",
-       "4                   [P1,C2-P3-R4]   \n",
-       "5   P1-[P2-[R3,L4],[R5,P6]-L7]-L8   \n",
-       "6              [[P1,R2]-R3-P4,R5]   \n",
-       "7                 [R1-P2,[P3,R4]]   \n",
-       "8        [[R1,P2-R3],L4-P5-L6-R7]   \n",
-       "9              P1-R2-[P3,[P4,R5]]   \n",
-       "10                  [R1-P2,P3-L4]   \n",
-       "11        [R1-[R2,P3]-[P4,R5],R6]   \n",
-       "12             P1-[[P2,R3],P4]-R5   \n",
-       "13                R1-[P2,[P3,R4]]   \n",
-       "14                  [R1-P2,P3-R4]   \n",
-       "15               [L1-R2-P3,P4-R5]   \n",
-       "16             R1-[R2-P3,[P4,R5]]   \n",
-       "17           [[R1,L2]-P3,[P4,R5]]   \n",
-       "18                [[R1,P2],P3]-R4   \n",
-       "19                  [C1-P2,P3-R4]   \n",
-       "20             [R1,P2]-R3-[P4,R5]   \n",
-       "21             P1-[P2,[R3-P4,R5]]   \n",
+       "                 circuitstring  \\\n",
+       "0           P1-[P2,L3]-[P4,P5]   \n",
+       "1     [R1,P2]-[P3,R4]-R5-P6-R7   \n",
+       "2      [P1-P2-[[R3,P4],P5],R6]   \n",
+       "3   [L1,R2]-[P3-[L4-R5,P6],R7]   \n",
+       "4   [[[P1,R2],R3]-L4-R5,P6]-R7   \n",
+       "5        [[R1-P2,R3-P4],C5-R6]   \n",
+       "6                P1-P2-[P3,P4]   \n",
+       "7              [P1,[R2,L3]-P4]   \n",
+       "8              R1-[[R2,P3],P4]   \n",
+       "9              [P1,[R2,P3]-R4]   \n",
+       "10     [[[R1,P2],C3-L4]-P5,P6]   \n",
+       "11  [[P1,L2-[P3,R4]]-R5-P6,P7]   \n",
+       "12            [C1-P2-R3,P4-R5]   \n",
+       "13         P1-[P2-R3-R4-L5,P6]   \n",
+       "14               L1-R2-[P3,P4]   \n",
+       "15             [[R1,P2],P3]-R4   \n",
+       "16         [R1-P2,P3-R4]-P5-R6   \n",
+       "17             [P1,[P2,R3]]-P4   \n",
+       "18     [P1-[L2,R3],R4]-[P5,R6]   \n",
+       "19     [[P1,R2]-P3-[P4,L5],R6]   \n",
+       "20          [P1,[P2,R3-R4]]-R5   \n",
        "\n",
        "                                           Parameters  \n",
-       "0   {'R1': 717000721.7562642, 'P2w': 0.00718663620...  \n",
-       "1   {'P1w': 575572678.3019015, 'P1n': 0.7330841736...  \n",
-       "2   {'P1w': 2.247002588377372e-06, 'P1n': 0.874772...  \n",
-       "3   {'P1w': 2.247089774773077e-06, 'P1n': 0.874766...  \n",
-       "4   {'P1w': 2.2329871440787923e-06, 'P1n': 0.87631...  \n",
-       "5   {'P1w': 2.806473306944429e-06, 'P1n': 0.848755...  \n",
-       "6   {'P1w': 1971.1218998893798, 'P1n': 0.992727501...  \n",
-       "7   {'R1': 10815257.371142618, 'P2w': 1.3483389814...  \n",
-       "8   {'R1': 911308958.9633163, 'P2w': 5.63715602558...  \n",
-       "9   {'P1w': 5.2801770152300106e-05, 'P1n': 0.80012...  \n",
-       "10  {'R1': 4847243.705556438, 'P2w': 3.61492069227...  \n",
-       "11  {'R1': 139.15128815851816, 'R2': 802395274.185...  \n",
-       "12  {'P1w': 5.280173876099107e-05, 'P1n': 0.800128...  \n",
-       "13  {'R1': 142.06322309319154, 'P2w': 1.7374203207...  \n",
-       "14  {'R1': 141.24734636974645, 'P2w': 1.8171284377...  \n",
-       "15  {'L1': 3.068675139877526e-20, 'R2': 141.247346...  \n",
-       "16  {'R1': 141.2390806803801, 'R2': 2765403.858589...  \n",
-       "17  {'R1': 1499999853.5700588, 'L2': 4.99999999892...  \n",
-       "18  {'R1': 999999999.9999851, 'P2w': 4.06284395815...  \n",
-       "19  {'C1': 1.509520446759866e-06, 'P2w': 0.0038167...  \n",
-       "20  {'R1': 4456958.0450697765, 'P2w': 2.2077877344...  \n",
-       "21  {'P1w': 0.007080274026615172, 'P1n': 3.3897321...  "
+       "0   {'P1w': 3.1928577593495745e-06, 'P1n': 0.79394...  \n",
+       "1   {'R1': 3756228.324732959, 'P2w': 2.03557677798...  \n",
+       "2   {'P1w': 2.2434807405762006e-05, 'P1n': 0.88840...  \n",
+       "3   {'L1': 1.0613558658993882e-19, 'R2': 826995570...  \n",
+       "4   {'P1w': 2.3011178790923626e-06, 'P1n': 0.40321...  \n",
+       "5   {'R1': 676.9091823021058, 'P2w': 5.86557995820...  \n",
+       "6   {'P1w': 0.006250677506749731, 'P1n': 0.0118602...  \n",
+       "7   {'P1w': 2.247010810095234e-06, 'P1n': 0.874773...  \n",
+       "8   {'R1': 142.0632231537774, 'R2': 1500000000.024...  \n",
+       "9   {'P1w': 2.230907252126471e-06, 'P1n': 0.876624...  \n",
+       "10  {'R1': 3818933.71859363, 'P2w': 2.175028698553...  \n",
+       "11  {'P1w': 5207.151722389234, 'P1n': 0.9999999999...  \n",
+       "12  {'C1': 0.009999999857491889, 'P2w': 1.81745422...  \n",
+       "13  {'P1w': 2.8074252438992e-06, 'P1n': 0.84883423...  \n",
+       "14  {'L1': 9.052611565739006e-21, 'R2': 142.061397...  \n",
+       "15  {'R1': 999999999.9999872, 'P2w': 4.06284395506...  \n",
+       "16  {'R1': 3820950.8486733097, 'P2w': 198638277.40...  \n",
+       "17  {'P1w': 0.0021158643015816445, 'P1n': 7.770279...  \n",
+       "18  {'P1w': 0.007186636321461309, 'P1n': 1.7216333...  \n",
+       "19  {'P1w': 2.009961353950956e-06, 'P1n': 0.925569...  \n",
+       "20  {'P1w': 1.7375194775324558e-06, 'P1n': 0.96242...  "
       ]
      },
      "execution_count": 5,
@@ -448,56 +428,86 @@
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>0</th>\n",
-       "      <td>P1-R2-[P3,[P4,R5]]</td>\n",
-       "      <td>{'P1w': 5.2801770152300106e-05, 'P1n': 0.80012...</td>\n",
-       "      <td>[R2, R5]</td>\n",
+       "      <td>[R1,P2]-[P3,R4]-R5-P6-R7</td>\n",
+       "      <td>{'R1': 3756228.324732959, 'P2w': 2.03557677798...</td>\n",
+       "      <td>[R1, R4, R5, R7]</td>\n",
        "      <td>[]</td>\n",
        "      <td>[]</td>\n",
-       "      <td>[P1w, P1n, P3w, P3n, P4w, P4n]</td>\n",
+       "      <td>[P2w, P2n, P3w, P3n, P6w, P6n]</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>1</th>\n",
-       "      <td>R1-[P2,[P3,R4]]</td>\n",
-       "      <td>{'R1': 142.06322309319154, 'P2w': 1.7374203207...</td>\n",
-       "      <td>[R1, R4]</td>\n",
-       "      <td>[]</td>\n",
+       "      <td>[[[P1,R2],R3]-L4-R5,P6]-R7</td>\n",
+       "      <td>{'P1w': 2.3011178790923626e-06, 'P1n': 0.40321...</td>\n",
+       "      <td>[R2, R3, R5, R7]</td>\n",
        "      <td>[]</td>\n",
-       "      <td>[P2w, P2n, P3w, P3n]</td>\n",
+       "      <td>[L4]</td>\n",
+       "      <td>[P1w, P1n, P6w, P6n]</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>2</th>\n",
-       "      <td>R1-[R2-P3,[P4,R5]]</td>\n",
-       "      <td>{'R1': 141.2390806803801, 'R2': 2765403.858589...</td>\n",
-       "      <td>[R1, R2, R5]</td>\n",
+       "      <td>R1-[[R2,P3],P4]</td>\n",
+       "      <td>{'R1': 142.0632231537774, 'R2': 1500000000.024...</td>\n",
+       "      <td>[R1, R2]</td>\n",
        "      <td>[]</td>\n",
        "      <td>[]</td>\n",
        "      <td>[P3w, P3n, P4w, P4n]</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>3</th>\n",
-       "      <td>[R1,P2]-R3-[P4,R5]</td>\n",
-       "      <td>{'R1': 4456958.0450697765, 'P2w': 2.2077877344...</td>\n",
-       "      <td>[R1, R3, R5]</td>\n",
+       "      <td>L1-R2-[P3,P4]</td>\n",
+       "      <td>{'L1': 9.052611565739006e-21, 'R2': 142.061397...</td>\n",
+       "      <td>[R2]</td>\n",
+       "      <td>[]</td>\n",
+       "      <td>[L1]</td>\n",
+       "      <td>[P3w, P3n, P4w, P4n]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>[R1-P2,P3-R4]-P5-R6</td>\n",
+       "      <td>{'R1': 3820950.8486733097, 'P2w': 198638277.40...</td>\n",
+       "      <td>[R1, R4, R6]</td>\n",
+       "      <td>[]</td>\n",
+       "      <td>[]</td>\n",
+       "      <td>[P2w, P2n, P3w, P3n, P5w, P5n]</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>5</th>\n",
+       "      <td>[P1,[P2,R3-R4]]-R5</td>\n",
+       "      <td>{'P1w': 1.7375194775324558e-06, 'P1n': 0.96242...</td>\n",
+       "      <td>[R3, R4, R5]</td>\n",
        "      <td>[]</td>\n",
        "      <td>[]</td>\n",
-       "      <td>[P2w, P2n, P4w, P4n]</td>\n",
+       "      <td>[P1w, P1n, P2w, P2n]</td>\n",
        "    </tr>\n",
        "  </tbody>\n",
        "</table>\n",
        "</div>"
       ],
       "text/plain": [
-       "        circuitstring                                         Parameters  \\\n",
-       "0  P1-R2-[P3,[P4,R5]]  {'P1w': 5.2801770152300106e-05, 'P1n': 0.80012...   \n",
-       "1     R1-[P2,[P3,R4]]  {'R1': 142.06322309319154, 'P2w': 1.7374203207...   \n",
-       "2  R1-[R2-P3,[P4,R5]]  {'R1': 141.2390806803801, 'R2': 2765403.858589...   \n",
-       "3  [R1,P2]-R3-[P4,R5]  {'R1': 4456958.0450697765, 'P2w': 2.2077877344...   \n",
+       "                circuitstring  \\\n",
+       "0    [R1,P2]-[P3,R4]-R5-P6-R7   \n",
+       "1  [[[P1,R2],R3]-L4-R5,P6]-R7   \n",
+       "2             R1-[[R2,P3],P4]   \n",
+       "3               L1-R2-[P3,P4]   \n",
+       "4         [R1-P2,P3-R4]-P5-R6   \n",
+       "5          [P1,[P2,R3-R4]]-R5   \n",
        "\n",
-       "      Resistors Capacitors Inductors                            CPEs  \n",
-       "0      [R2, R5]         []        []  [P1w, P1n, P3w, P3n, P4w, P4n]  \n",
-       "1      [R1, R4]         []        []            [P2w, P2n, P3w, P3n]  \n",
-       "2  [R1, R2, R5]         []        []            [P3w, P3n, P4w, P4n]  \n",
-       "3  [R1, R3, R5]         []        []            [P2w, P2n, P4w, P4n]  "
+       "                                          Parameters         Resistors  \\\n",
+       "0  {'R1': 3756228.324732959, 'P2w': 2.03557677798...  [R1, R4, R5, R7]   \n",
+       "1  {'P1w': 2.3011178790923626e-06, 'P1n': 0.40321...  [R2, R3, R5, R7]   \n",
+       "2  {'R1': 142.0632231537774, 'R2': 1500000000.024...          [R1, R2]   \n",
+       "3  {'L1': 9.052611565739006e-21, 'R2': 142.061397...              [R2]   \n",
+       "4  {'R1': 3820950.8486733097, 'P2w': 198638277.40...      [R1, R4, R6]   \n",
+       "5  {'P1w': 1.7375194775324558e-06, 'P1n': 0.96242...      [R3, R4, R5]   \n",
+       "\n",
+       "  Capacitors Inductors                            CPEs  \n",
+       "0         []        []  [P2w, P2n, P3w, P3n, P6w, P6n]  \n",
+       "1         []      [L4]            [P1w, P1n, P6w, P6n]  \n",
+       "2         []        []            [P3w, P3n, P4w, P4n]  \n",
+       "3         []      [L1]            [P3w, P3n, P4w, P4n]  \n",
+       "4         []        []  [P2w, P2n, P3w, P3n, P5w, P5n]  \n",
+       "5         []        []            [P1w, P1n, P2w, P2n]  "
       ]
      },
      "execution_count": 6,
@@ -526,18 +536,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "application/vnd.jupyter.widget-view+json": {
-       "model_id": "6092e457408144bc880de5d35207eef7",
+       "model_id": "1b0a5fba17f8484f9848e745a1437733",
        "version_major": 2,
        "version_minor": 0
       },
       "text/plain": [
-       "Bayesian Inference:   0%|          | 0/4 [00:00<?, ?it/s]"
+       "Bayesian Inference:   0%|          | 0/6 [00:00<?, ?it/s]"
       ]
      },
      "metadata": {},
@@ -570,44 +580,128 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">               P1-R2-[P3,[P4,R5]], 0/1000 divergences                </span>\n",
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">            [R1,P2]-[P3,R4]-R5-P6-R7, 0/1000 divergences             </span>\n",
+       "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
+       "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
+       "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
+       "│        P2n │ 8.11e-01 │ 1.19e-07 │ 8.11e-01 │ 8.11e-01 │ 8.11e-01 │\n",
+       "│        P2w │ 1.80e-06 │ 1.14e-13 │ 1.80e-06 │ 1.80e-06 │ 1.80e-06 │\n",
+       "│        P3n │ 3.59e-01 │ 2.98e-08 │ 3.59e-01 │ 3.59e-01 │ 3.59e-01 │\n",
+       "│        P3w │ 6.75e+08 │ 6.40e+01 │ 6.75e+08 │ 6.75e+08 │ 6.75e+08 │\n",
+       "│        P6n │ 7.12e-01 │ 5.96e-08 │ 7.12e-01 │ 7.12e-01 │ 7.12e-01 │\n",
+       "│        P6w │ 1.71e-05 │ 0.00e+00 │ 1.71e-05 │ 1.71e-05 │ 1.71e-05 │\n",
+       "│         R1 │ 4.14e+06 │ 2.50e-01 │ 4.14e+06 │ 4.14e+06 │ 4.14e+06 │\n",
+       "│         R4 │ 7.21e+08 │ 6.40e+01 │ 7.21e+08 │ 7.21e+08 │ 7.21e+08 │\n",
+       "│         R5 │ 2.15e+01 │ 0.00e+00 │ 2.15e+01 │ 2.15e+01 │ 2.15e+01 │\n",
+       "│         R7 │ 8.87e+01 │ 0.00e+00 │ 8.87e+01 │ 8.87e+01 │ 8.87e+01 │\n",
+       "│ sigma_imag │ 7.36e+00 │ 4.77e-07 │ 7.36e+00 │ 7.36e+00 │ 7.36e+00 │\n",
+       "│ sigma_real │ 1.03e+01 │ 9.54e-07 │ 1.03e+01 │ 1.03e+01 │ 1.03e+01 │\n",
+       "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[3m            [R1,P2]-[P3,R4]-R5-P6-R7, 0/1000 divergences             \u001b[0m\n",
+       "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
+       "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
+       "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
+       "│        P2n │ 8.11e-01 │ 1.19e-07 │ 8.11e-01 │ 8.11e-01 │ 8.11e-01 │\n",
+       "│        P2w │ 1.80e-06 │ 1.14e-13 │ 1.80e-06 │ 1.80e-06 │ 1.80e-06 │\n",
+       "│        P3n │ 3.59e-01 │ 2.98e-08 │ 3.59e-01 │ 3.59e-01 │ 3.59e-01 │\n",
+       "│        P3w │ 6.75e+08 │ 6.40e+01 │ 6.75e+08 │ 6.75e+08 │ 6.75e+08 │\n",
+       "│        P6n │ 7.12e-01 │ 5.96e-08 │ 7.12e-01 │ 7.12e-01 │ 7.12e-01 │\n",
+       "│        P6w │ 1.71e-05 │ 0.00e+00 │ 1.71e-05 │ 1.71e-05 │ 1.71e-05 │\n",
+       "│         R1 │ 4.14e+06 │ 2.50e-01 │ 4.14e+06 │ 4.14e+06 │ 4.14e+06 │\n",
+       "│         R4 │ 7.21e+08 │ 6.40e+01 │ 7.21e+08 │ 7.21e+08 │ 7.21e+08 │\n",
+       "│         R5 │ 2.15e+01 │ 0.00e+00 │ 2.15e+01 │ 2.15e+01 │ 2.15e+01 │\n",
+       "│         R7 │ 8.87e+01 │ 0.00e+00 │ 8.87e+01 │ 8.87e+01 │ 8.87e+01 │\n",
+       "│ sigma_imag │ 7.36e+00 │ 4.77e-07 │ 7.36e+00 │ 7.36e+00 │ 7.36e+00 │\n",
+       "│ sigma_real │ 1.03e+01 │ 9.54e-07 │ 1.03e+01 │ 1.03e+01 │ 1.03e+01 │\n",
+       "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">           [[[P1,R2],R3]-L4-R5,P6]-R7, 0/1000 divergences            </span>\n",
+       "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
+       "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
+       "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
+       "│         L4 │ 3.63e+00 │ 2.38e-07 │ 3.63e+00 │ 3.63e+00 │ 3.63e+00 │\n",
+       "│        P1n │ 5.23e-01 │ 5.96e-08 │ 5.23e-01 │ 5.23e-01 │ 5.23e-01 │\n",
+       "│        P1w │ 5.20e-06 │ 4.55e-13 │ 5.20e-06 │ 5.20e-06 │ 5.20e-06 │\n",
+       "│        P6n │ 8.86e-01 │ 5.96e-08 │ 8.86e-01 │ 8.86e-01 │ 8.86e-01 │\n",
+       "│        P6w │ 1.72e-06 │ 0.00e+00 │ 1.72e-06 │ 1.72e-06 │ 1.72e-06 │\n",
+       "│         R2 │ 1.10e+09 │ 1.28e+02 │ 1.10e+09 │ 1.10e+09 │ 1.10e+09 │\n",
+       "│         R3 │ 1.49e+09 │ 1.28e+02 │ 1.49e+09 │ 1.49e+09 │ 1.49e+09 │\n",
+       "│         R5 │ 3.70e+06 │ 2.50e-01 │ 3.70e+06 │ 3.70e+06 │ 3.70e+06 │\n",
+       "│         R7 │ 1.42e+02 │ 1.53e-05 │ 1.42e+02 │ 1.42e+02 │ 1.42e+02 │\n",
+       "│ sigma_imag │ 6.17e+00 │ 0.00e+00 │ 6.17e+00 │ 6.17e+00 │ 6.17e+00 │\n",
+       "│ sigma_real │ 8.94e+00 │ 0.00e+00 │ 8.94e+00 │ 8.94e+00 │ 8.94e+00 │\n",
+       "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
+       "</pre>\n"
+      ],
+      "text/plain": [
+       "\u001b[3m           [[[P1,R2],R3]-L4-R5,P6]-R7, 0/1000 divergences            \u001b[0m\n",
+       "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
+       "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
+       "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
+       "│         L4 │ 3.63e+00 │ 2.38e-07 │ 3.63e+00 │ 3.63e+00 │ 3.63e+00 │\n",
+       "│        P1n │ 5.23e-01 │ 5.96e-08 │ 5.23e-01 │ 5.23e-01 │ 5.23e-01 │\n",
+       "│        P1w │ 5.20e-06 │ 4.55e-13 │ 5.20e-06 │ 5.20e-06 │ 5.20e-06 │\n",
+       "│        P6n │ 8.86e-01 │ 5.96e-08 │ 8.86e-01 │ 8.86e-01 │ 8.86e-01 │\n",
+       "│        P6w │ 1.72e-06 │ 0.00e+00 │ 1.72e-06 │ 1.72e-06 │ 1.72e-06 │\n",
+       "│         R2 │ 1.10e+09 │ 1.28e+02 │ 1.10e+09 │ 1.10e+09 │ 1.10e+09 │\n",
+       "│         R3 │ 1.49e+09 │ 1.28e+02 │ 1.49e+09 │ 1.49e+09 │ 1.49e+09 │\n",
+       "│         R5 │ 3.70e+06 │ 2.50e-01 │ 3.70e+06 │ 3.70e+06 │ 3.70e+06 │\n",
+       "│         R7 │ 1.42e+02 │ 1.53e-05 │ 1.42e+02 │ 1.42e+02 │ 1.42e+02 │\n",
+       "│ sigma_imag │ 6.17e+00 │ 0.00e+00 │ 6.17e+00 │ 6.17e+00 │ 6.17e+00 │\n",
+       "│ sigma_real │ 8.94e+00 │ 0.00e+00 │ 8.94e+00 │ 8.94e+00 │ 8.94e+00 │\n",
+       "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                 R1-[[R2,P3],P4], 0/1000 divergences                 </span>\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P1n │ 5.87e-01 │ 1.97e-03 │ 5.87e-01 │ 5.84e-01 │ 5.90e-01 │\n",
-       "│        P1w │ 1.23e-05 │ 2.17e-07 │ 1.23e-05 │ 1.19e-05 │ 1.26e-05 │\n",
-       "│        P3n │ 1.00e+00 │ 4.56e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P3w │ 2.05e-06 │ 6.58e-09 │ 2.05e-06 │ 2.04e-06 │ 2.06e-06 │\n",
-       "│        P4n │ 1.25e-01 │ 6.25e-04 │ 1.25e-01 │ 1.24e-01 │ 1.26e-01 │\n",
-       "│        P4w │ 4.37e-07 │ 4.34e-10 │ 4.37e-07 │ 4.37e-07 │ 4.38e-07 │\n",
-       "│<span style=\"background-color: #808000\">         R2 </span>│<span style=\"background-color: #808000\"> 9.86e+00 </span>│<span style=\"background-color: #808000\"> 1.85e+01 </span>│<span style=\"background-color: #808000\"> 2.07e+00 </span>│<span style=\"background-color: #808000\"> 1.37e-02 </span>│<span style=\"background-color: #808000\"> 4.69e+01 </span>│\n",
-       "│<span style=\"background-color: #808000\">         R5 </span>│<span style=\"background-color: #808000\"> 2.14e+14 </span>│<span style=\"background-color: #808000\"> 5.61e+15 </span>│<span style=\"background-color: #808000\"> 5.64e+10 </span>│<span style=\"background-color: #808000\"> 2.40e+09 </span>│<span style=\"background-color: #808000\"> 1.22e+13 </span>│\n",
-       "│ sigma_imag │ 2.01e+03 │ 3.37e+01 │ 2.01e+03 │ 1.96e+03 │ 2.07e+03 │\n",
-       "│ sigma_real │ 2.31e+03 │ 3.67e+01 │ 2.31e+03 │ 2.25e+03 │ 2.37e+03 │\n",
+       "│        P3n │ 1.00e+00 │ 2.52e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P3w │ 1.55e-06 │ 2.96e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│        P4n │ 2.08e-01 │ 3.25e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P4w │ 4.98e-07 │ 6.75e-10 │ 4.98e-07 │ 4.96e-07 │ 4.99e-07 │\n",
+       "│<span style=\"background-color: #808000\">         R1 </span>│<span style=\"background-color: #808000\"> 4.58e+01 </span>│<span style=\"background-color: #808000\"> 5.77e+01 </span>│<span style=\"background-color: #808000\"> 2.38e+01 </span>│<span style=\"background-color: #808000\"> 1.37e+00 </span>│<span style=\"background-color: #808000\"> 1.69e+02 </span>│\n",
+       "│<span style=\"background-color: #808000\">         R2 </span>│<span style=\"background-color: #808000\"> 1.99e+11 </span>│<span style=\"background-color: #808000\"> 3.80e+11 </span>│<span style=\"background-color: #808000\"> 9.00e+10 </span>│<span style=\"background-color: #808000\"> 2.29e+10 </span>│<span style=\"background-color: #808000\"> 7.15e+11 </span>│\n",
+       "│ sigma_imag │ 5.06e+03 │ 4.43e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.47e+01 │ 4.71e+03 │ 4.64e+03 │ 4.79e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
        "</pre>\n"
       ],
       "text/plain": [
-       "\u001b[3m               P1-R2-[P3,[P4,R5]], 0/1000 divergences                \u001b[0m\n",
+       "\u001b[3m                 R1-[[R2,P3],P4], 0/1000 divergences                 \u001b[0m\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P1n │ 5.87e-01 │ 1.97e-03 │ 5.87e-01 │ 5.84e-01 │ 5.90e-01 │\n",
-       "│        P1w │ 1.23e-05 │ 2.17e-07 │ 1.23e-05 │ 1.19e-05 │ 1.26e-05 │\n",
-       "│        P3n │ 1.00e+00 │ 4.56e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P3w │ 2.05e-06 │ 6.58e-09 │ 2.05e-06 │ 2.04e-06 │ 2.06e-06 │\n",
-       "│        P4n │ 1.25e-01 │ 6.25e-04 │ 1.25e-01 │ 1.24e-01 │ 1.26e-01 │\n",
-       "│        P4w │ 4.37e-07 │ 4.34e-10 │ 4.37e-07 │ 4.37e-07 │ 4.38e-07 │\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R2\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m9.86e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.85e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.07e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.37e-02\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.69e+01\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R5\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.14e+14\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.61e+15\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.64e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.40e+09\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.22e+13\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│ sigma_imag │ 2.01e+03 │ 3.37e+01 │ 2.01e+03 │ 1.96e+03 │ 2.07e+03 │\n",
-       "│ sigma_real │ 2.31e+03 │ 3.67e+01 │ 2.31e+03 │ 2.25e+03 │ 2.37e+03 │\n",
+       "│        P3n │ 1.00e+00 │ 2.52e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P3w │ 1.55e-06 │ 2.96e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│        P4n │ 2.08e-01 │ 3.25e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P4w │ 4.98e-07 │ 6.75e-10 │ 4.98e-07 │ 4.96e-07 │ 4.99e-07 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R1\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.58e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.77e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.38e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.37e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.69e+02\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R2\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.99e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.80e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m9.00e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.29e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m7.15e+11\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│ sigma_imag │ 5.06e+03 │ 4.43e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.47e+01 │ 4.71e+03 │ 4.64e+03 │ 4.79e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
       ]
      },
@@ -617,34 +711,34 @@
     {
      "data": {
       "text/html": [
-       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                 R1-[P2,[P3,R4]], 0/1000 divergences                 </span>\n",
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                  L1-R2-[P3,P4], 0/1000 divergences                  </span>\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P2n │ 1.00e+00 │ 2.13e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P2w │ 1.55e-06 │ 2.93e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
-       "│        P3n │ 2.08e-01 │ 3.28e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
-       "│        P3w │ 4.98e-07 │ 6.84e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
-       "│<span style=\"background-color: #808000\">         R1 </span>│<span style=\"background-color: #808000\"> 2.47e+01 </span>│<span style=\"background-color: #808000\"> 4.89e+01 </span>│<span style=\"background-color: #808000\"> 6.77e+00 </span>│<span style=\"background-color: #808000\"> 3.28e-02 </span>│<span style=\"background-color: #808000\"> 1.16e+02 </span>│\n",
-       "│<span style=\"background-color: #808000\">         R4 </span>│<span style=\"background-color: #808000\"> 1.62e+13 </span>│<span style=\"background-color: #808000\"> 1.48e+14 </span>│<span style=\"background-color: #808000\"> 5.06e+11 </span>│<span style=\"background-color: #808000\"> 4.09e+10 </span>│<span style=\"background-color: #808000\"> 3.84e+13 </span>│\n",
-       "│ sigma_imag │ 5.07e+03 │ 4.59e+01 │ 5.07e+03 │ 4.99e+03 │ 5.14e+03 │\n",
-       "│ sigma_real │ 4.71e+03 │ 4.42e+01 │ 4.71e+03 │ 4.64e+03 │ 4.79e+03 │\n",
+       "│<span style=\"background-color: #808000\">         L1 </span>│<span style=\"background-color: #808000\"> 8.83e-20 </span>│<span style=\"background-color: #808000\"> 5.99e-19 </span>│<span style=\"background-color: #808000\"> 8.59e-21 </span>│<span style=\"background-color: #808000\"> 2.64e-22 </span>│<span style=\"background-color: #808000\"> 2.62e-19 </span>│\n",
+       "│        P3n │ 2.08e-01 │ 3.46e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P3w │ 4.98e-07 │ 7.38e-10 │ 4.98e-07 │ 4.96e-07 │ 4.99e-07 │\n",
+       "│        P4n │ 1.00e+00 │ 2.51e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P4w │ 1.55e-06 │ 3.10e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│<span style=\"background-color: #808000\">         R2 </span>│<span style=\"background-color: #808000\"> 4.20e+01 </span>│<span style=\"background-color: #808000\"> 5.51e+01 </span>│<span style=\"background-color: #808000\"> 2.23e+01 </span>│<span style=\"background-color: #808000\"> 1.21e+00 </span>│<span style=\"background-color: #808000\"> 1.51e+02 </span>│\n",
+       "│ sigma_imag │ 5.07e+03 │ 4.56e+01 │ 5.07e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.37e+01 │ 4.71e+03 │ 4.64e+03 │ 4.78e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
        "</pre>\n"
       ],
       "text/plain": [
-       "\u001b[3m                 R1-[P2,[P3,R4]], 0/1000 divergences                 \u001b[0m\n",
+       "\u001b[3m                  L1-R2-[P3,P4], 0/1000 divergences                  \u001b[0m\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P2n │ 1.00e+00 │ 2.13e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P2w │ 1.55e-06 │ 2.93e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
-       "│        P3n │ 2.08e-01 │ 3.28e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
-       "│        P3w │ 4.98e-07 │ 6.84e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R1\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.47e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.89e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m6.77e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.28e-02\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.16e+02\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R4\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.62e+13\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.48e+14\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.06e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.09e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.84e+13\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│ sigma_imag │ 5.07e+03 │ 4.59e+01 │ 5.07e+03 │ 4.99e+03 │ 5.14e+03 │\n",
-       "│ sigma_real │ 4.71e+03 │ 4.42e+01 │ 4.71e+03 │ 4.64e+03 │ 4.79e+03 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        L1\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m8.83e-20\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.99e-19\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m8.59e-21\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.64e-22\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.62e-19\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│        P3n │ 2.08e-01 │ 3.46e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P3w │ 4.98e-07 │ 7.38e-10 │ 4.98e-07 │ 4.96e-07 │ 4.99e-07 │\n",
+       "│        P4n │ 1.00e+00 │ 2.51e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P4w │ 1.55e-06 │ 3.10e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R2\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.20e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.51e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.23e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.21e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.51e+02\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│ sigma_imag │ 5.07e+03 │ 4.56e+01 │ 5.07e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.37e+01 │ 4.71e+03 │ 4.64e+03 │ 4.78e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
       ]
      },
@@ -654,36 +748,40 @@
     {
      "data": {
       "text/html": [
-       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">               R1-[R2-P3,[P4,R5]], 0/1000 divergences                </span>\n",
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">               [R1-P2,P3-R4]-P5-R6, 0/1000 divergences               </span>\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P3n │ 1.00e+00 │ 2.49e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P3w │ 1.55e-06 │ 2.95e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
-       "│        P4n │ 2.08e-01 │ 3.32e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
-       "│        P4w │ 4.98e-07 │ 6.92e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
-       "│<span style=\"background-color: #808000\">         R1 </span>│<span style=\"background-color: #808000\"> 1.98e+01 </span>│<span style=\"background-color: #808000\"> 3.70e+01 </span>│<span style=\"background-color: #808000\"> 3.81e+00 </span>│<span style=\"background-color: #808000\"> 1.45e-02 </span>│<span style=\"background-color: #808000\"> 9.74e+01 </span>│\n",
-       "│<span style=\"background-color: #808000\">         R2 </span>│<span style=\"background-color: #808000\"> 1.02e+02 </span>│<span style=\"background-color: #808000\"> 1.29e+02 </span>│<span style=\"background-color: #808000\"> 5.29e+01 </span>│<span style=\"background-color: #808000\"> 1.32e+00 </span>│<span style=\"background-color: #808000\"> 3.71e+02 </span>│\n",
-       "│<span style=\"background-color: #808000\">         R5 </span>│<span style=\"background-color: #808000\"> 3.25e+13 </span>│<span style=\"background-color: #808000\"> 4.95e+14 </span>│<span style=\"background-color: #808000\"> 5.55e+11 </span>│<span style=\"background-color: #808000\"> 3.68e+10 </span>│<span style=\"background-color: #808000\"> 5.58e+13 </span>│\n",
-       "│ sigma_imag │ 5.06e+03 │ 4.75e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
-       "│ sigma_real │ 4.71e+03 │ 4.63e+01 │ 4.71e+03 │ 4.63e+03 │ 4.78e+03 │\n",
+       "│        P2n │ 4.92e-01 │ 2.88e-01 │ 4.83e-01 │ 4.70e-02 │ 9.45e-01 │\n",
+       "│<span style=\"background-color: #808000\">        P2w </span>│<span style=\"background-color: #808000\"> 2.01e+09 </span>│<span style=\"background-color: #808000\"> 9.75e+09 </span>│<span style=\"background-color: #808000\"> 2.25e+08 </span>│<span style=\"background-color: #808000\"> 4.98e+06 </span>│<span style=\"background-color: #808000\"> 7.26e+09 </span>│\n",
+       "│        P3n │ 8.94e-01 │ 1.43e-03 │ 8.94e-01 │ 8.92e-01 │ 8.97e-01 │\n",
+       "│        P3w │ 2.41e-06 │ 1.27e-08 │ 2.41e-06 │ 2.39e-06 │ 2.43e-06 │\n",
+       "│        P5n │ 5.55e-01 │ 1.78e-03 │ 5.55e-01 │ 5.52e-01 │ 5.58e-01 │\n",
+       "│        P5w │ 5.93e-06 │ 7.27e-08 │ 5.93e-06 │ 5.81e-06 │ 6.05e-06 │\n",
+       "│         R1 │ 3.21e+06 │ 1.24e+04 │ 3.21e+06 │ 3.19e+06 │ 3.23e+06 │\n",
+       "│<span style=\"background-color: #808000\">         R4 </span>│<span style=\"background-color: #808000\"> 1.07e+01 </span>│<span style=\"background-color: #808000\"> 1.64e+01 </span>│<span style=\"background-color: #808000\"> 4.85e+00 </span>│<span style=\"background-color: #808000\"> 2.07e-01 </span>│<span style=\"background-color: #808000\"> 4.14e+01 </span>│\n",
+       "│<span style=\"background-color: #808000\">         R6 </span>│<span style=\"background-color: #808000\"> 1.55e+01 </span>│<span style=\"background-color: #808000\"> 1.92e+01 </span>│<span style=\"background-color: #808000\"> 8.51e+00 </span>│<span style=\"background-color: #808000\"> 5.82e-01 </span>│<span style=\"background-color: #808000\"> 5.25e+01 </span>│\n",
+       "│ sigma_imag │ 3.50e+03 │ 3.73e+01 │ 3.50e+03 │ 3.44e+03 │ 3.56e+03 │\n",
+       "│ sigma_real │ 5.27e+03 │ 4.63e+01 │ 5.27e+03 │ 5.19e+03 │ 5.35e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
        "</pre>\n"
       ],
       "text/plain": [
-       "\u001b[3m               R1-[R2-P3,[P4,R5]], 0/1000 divergences                \u001b[0m\n",
+       "\u001b[3m               [R1-P2,P3-R4]-P5-R6, 0/1000 divergences               \u001b[0m\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P3n │ 1.00e+00 │ 2.49e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
-       "│        P3w │ 1.55e-06 │ 2.95e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
-       "│        P4n │ 2.08e-01 │ 3.32e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
-       "│        P4w │ 4.98e-07 │ 6.92e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R1\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.98e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.70e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.81e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.45e-02\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m9.74e+01\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R2\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.02e+02\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.29e+02\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.29e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.32e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.71e+02\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R5\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.25e+13\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.95e+14\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.55e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.68e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.58e+13\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│ sigma_imag │ 5.06e+03 │ 4.75e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
-       "│ sigma_real │ 4.71e+03 │ 4.63e+01 │ 4.71e+03 │ 4.63e+03 │ 4.78e+03 │\n",
+       "│        P2n │ 4.92e-01 │ 2.88e-01 │ 4.83e-01 │ 4.70e-02 │ 9.45e-01 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m       P2w\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.01e+09\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m9.75e+09\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.25e+08\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.98e+06\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m7.26e+09\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│        P3n │ 8.94e-01 │ 1.43e-03 │ 8.94e-01 │ 8.92e-01 │ 8.97e-01 │\n",
+       "│        P3w │ 2.41e-06 │ 1.27e-08 │ 2.41e-06 │ 2.39e-06 │ 2.43e-06 │\n",
+       "│        P5n │ 5.55e-01 │ 1.78e-03 │ 5.55e-01 │ 5.52e-01 │ 5.58e-01 │\n",
+       "│        P5w │ 5.93e-06 │ 7.27e-08 │ 5.93e-06 │ 5.81e-06 │ 6.05e-06 │\n",
+       "│         R1 │ 3.21e+06 │ 1.24e+04 │ 3.21e+06 │ 3.19e+06 │ 3.23e+06 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R4\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.07e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.64e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.85e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.07e-01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.14e+01\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R6\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.55e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.92e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m8.51e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.82e-01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.25e+01\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│ sigma_imag │ 3.50e+03 │ 3.73e+01 │ 3.50e+03 │ 3.44e+03 │ 3.56e+03 │\n",
+       "│ sigma_real │ 5.27e+03 │ 4.63e+01 │ 5.27e+03 │ 5.19e+03 │ 5.35e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
       ]
      },
@@ -693,36 +791,36 @@
     {
      "data": {
       "text/html": [
-       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">               [R1,P2]-R3-[P4,R5], 0/1000 divergences                </span>\n",
+       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">               [P1,[P2,R3-R4]]-R5, 0/1000 divergences                </span>\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃<span style=\"font-weight: bold\">  Parameter </span>┃<span style=\"font-weight: bold\">     Mean </span>┃<span style=\"font-weight: bold\">      Std </span>┃<span style=\"font-weight: bold\">   Median </span>┃<span style=\"font-weight: bold\">     5.0% </span>┃<span style=\"font-weight: bold\">    95.0% </span>┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P2n │ 9.12e-01 │ 9.65e-04 │ 9.12e-01 │ 9.10e-01 │ 9.13e-01 │\n",
-       "│        P2w │ 2.24e-06 │ 9.07e-09 │ 2.24e-06 │ 2.22e-06 │ 2.25e-06 │\n",
-       "│        P4n │ 7.14e-01 │ 2.65e-03 │ 7.14e-01 │ 7.10e-01 │ 7.19e-01 │\n",
-       "│        P4w │ 9.81e-06 │ 1.60e-07 │ 9.81e-06 │ 9.56e-06 │ 1.01e-05 │\n",
-       "│         R1 │ 3.14e+06 │ 1.19e+04 │ 3.14e+06 │ 3.12e+06 │ 3.16e+06 │\n",
-       "│<span style=\"background-color: #808000\">         R3 </span>│<span style=\"background-color: #808000\"> 4.63e+00 </span>│<span style=\"background-color: #808000\"> 9.51e+00 </span>│<span style=\"background-color: #808000\"> 1.29e+00 </span>│<span style=\"background-color: #808000\"> 7.18e-03 </span>│<span style=\"background-color: #808000\"> 2.20e+01 </span>│\n",
-       "│         R5 │ 8.19e+06 │ 5.90e+04 │ 8.19e+06 │ 8.09e+06 │ 8.28e+06 │\n",
-       "│ sigma_imag │ 1.96e+03 │ 2.95e+01 │ 1.96e+03 │ 1.91e+03 │ 2.01e+03 │\n",
-       "│ sigma_real │ 2.58e+03 │ 3.21e+01 │ 2.58e+03 │ 2.53e+03 │ 2.63e+03 │\n",
+       "│        P1n │ 1.00e+00 │ 2.22e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P1w │ 1.55e-06 │ 2.81e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│        P2n │ 2.08e-01 │ 3.03e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P2w │ 4.98e-07 │ 6.42e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
+       "│<span style=\"background-color: #808000\">         R3 </span>│<span style=\"background-color: #808000\"> 1.19e+11 </span>│<span style=\"background-color: #808000\"> 3.81e+11 </span>│<span style=\"background-color: #808000\"> 1.90e+10 </span>│<span style=\"background-color: #808000\"> 5.83e+07 </span>│<span style=\"background-color: #808000\"> 4.69e+11 </span>│\n",
+       "│<span style=\"background-color: #808000\">         R4 </span>│<span style=\"background-color: #808000\"> 1.32e+11 </span>│<span style=\"background-color: #808000\"> 5.43e+11 </span>│<span style=\"background-color: #808000\"> 2.41e+10 </span>│<span style=\"background-color: #808000\"> 4.46e+07 </span>│<span style=\"background-color: #808000\"> 4.72e+11 </span>│\n",
+       "│<span style=\"background-color: #808000\">         R5 </span>│<span style=\"background-color: #808000\"> 4.19e+01 </span>│<span style=\"background-color: #808000\"> 5.65e+01 </span>│<span style=\"background-color: #808000\"> 2.04e+01 </span>│<span style=\"background-color: #808000\"> 1.42e+00 </span>│<span style=\"background-color: #808000\"> 1.52e+02 </span>│\n",
+       "│ sigma_imag │ 5.06e+03 │ 4.39e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.36e+01 │ 4.71e+03 │ 4.64e+03 │ 4.78e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n",
        "</pre>\n"
       ],
       "text/plain": [
-       "\u001b[3m               [R1,P2]-R3-[P4,R5], 0/1000 divergences                \u001b[0m\n",
+       "\u001b[3m               [P1,[P2,R3-R4]]-R5, 0/1000 divergences                \u001b[0m\n",
        "┏━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┓\n",
        "┃\u001b[1m \u001b[0m\u001b[1m Parameter\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    Mean\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m     Std\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m  Median\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m    5.0%\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m   95.0%\u001b[0m\u001b[1m \u001b[0m┃\n",
        "┡━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━┩\n",
-       "│        P2n │ 9.12e-01 │ 9.65e-04 │ 9.12e-01 │ 9.10e-01 │ 9.13e-01 │\n",
-       "│        P2w │ 2.24e-06 │ 9.07e-09 │ 2.24e-06 │ 2.22e-06 │ 2.25e-06 │\n",
-       "│        P4n │ 7.14e-01 │ 2.65e-03 │ 7.14e-01 │ 7.10e-01 │ 7.19e-01 │\n",
-       "│        P4w │ 9.81e-06 │ 1.60e-07 │ 9.81e-06 │ 9.56e-06 │ 1.01e-05 │\n",
-       "│         R1 │ 3.14e+06 │ 1.19e+04 │ 3.14e+06 │ 3.12e+06 │ 3.16e+06 │\n",
-       "│\u001b[43m \u001b[0m\u001b[43m        R3\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.63e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m9.51e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.29e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m7.18e-03\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.20e+01\u001b[0m\u001b[43m \u001b[0m│\n",
-       "│         R5 │ 8.19e+06 │ 5.90e+04 │ 8.19e+06 │ 8.09e+06 │ 8.28e+06 │\n",
-       "│ sigma_imag │ 1.96e+03 │ 2.95e+01 │ 1.96e+03 │ 1.91e+03 │ 2.01e+03 │\n",
-       "│ sigma_real │ 2.58e+03 │ 3.21e+01 │ 2.58e+03 │ 2.53e+03 │ 2.63e+03 │\n",
+       "│        P1n │ 1.00e+00 │ 2.22e-05 │ 1.00e+00 │ 1.00e+00 │ 1.00e+00 │\n",
+       "│        P1w │ 1.55e-06 │ 2.81e-09 │ 1.55e-06 │ 1.54e-06 │ 1.55e-06 │\n",
+       "│        P2n │ 2.08e-01 │ 3.03e-04 │ 2.08e-01 │ 2.07e-01 │ 2.08e-01 │\n",
+       "│        P2w │ 4.98e-07 │ 6.42e-10 │ 4.98e-07 │ 4.97e-07 │ 4.99e-07 │\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R3\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.19e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m3.81e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.90e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.83e+07\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.69e+11\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R4\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.32e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.43e+11\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.41e+10\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.46e+07\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.72e+11\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│\u001b[43m \u001b[0m\u001b[43m        R5\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m4.19e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m5.65e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m2.04e+01\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.42e+00\u001b[0m\u001b[43m \u001b[0m│\u001b[43m \u001b[0m\u001b[43m1.52e+02\u001b[0m\u001b[43m \u001b[0m│\n",
+       "│ sigma_imag │ 5.06e+03 │ 4.39e+01 │ 5.06e+03 │ 4.99e+03 │ 5.14e+03 │\n",
+       "│ sigma_real │ 4.71e+03 │ 4.36e+01 │ 4.71e+03 │ 4.64e+03 │ 4.78e+03 │\n",
        "└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┘\n"
       ]
      },
@@ -781,7 +879,7 @@
     "\n",
     "def plot_trace_all(mcmc: \"numpyro.MCMC\", circuit: str):\n",
     "    \"\"\"Plots the posterior and trace of all variables in the MCMC sampler.\"\"\"\n",
-    "    variables = ae.metrics.get_parameter_labels(circuit)\n",
+    "    variables = ae.parser.get_parameter_labels(circuit)\n",
     "    samples = mcmc.get_samples()\n",
     "    children = [plot_trace(samples[var]) for var in variables]\n",
     "    tab = widgets.Tab()\n",
@@ -835,10 +933,10 @@
     "    \"\"\"Plots Nyquist plot of the circuit using the median of the posteriors.\"\"\"\n",
     "    # Compute circuit impedance using median of posteriors\n",
     "    samples = mcmc.get_samples()\n",
-    "    variables = ae.metrics.get_parameter_labels(circuit)\n",
+    "    variables = ae.parser.get_parameter_labels(circuit)\n",
     "    percentiles = [10, 50, 90]\n",
     "    params_list = [[np.percentile(samples[v], p) for v in variables] for p in percentiles]\n",
-    "    circuit_fn = ae.metrics.generate_circuit_fn(circuit)\n",
+    "    circuit_fn = ae.utils.generate_circuit_fn(circuit)\n",
     "    Zsim_list = [circuit_fn(params, freq) for params in params_list]\n",
     "    # Plot Nyquist plot\n",
     "    fig, ax = plt.subplots(figsize=(5.5, 4))\n",


Test patch:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 55574c4a..d45b7482 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -10,9 +10,9 @@ jobs:
         shell: bash
     strategy:
       matrix:
-        julia-version: ['1.9']
+        julia-version: ['1.10']
         python-version: ['3.10']
-        os: [ubuntu-latest, macos-latest, windows-latest]
+        os: [ubuntu-latest, macos-latest, macost-14, windows-latest]
 
     steps:
       - uses: actions/checkout@v4