diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..2c367f6 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,28 @@ +name: Deploy Documentation + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + pip install mkdocs-material mkdocstrings[python] pymdown-extensions + + - name: Deploy to GitHub Pages + run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index e0f3da4..471c41e 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,4 @@ uv.lock *.blg *.fdb_latexmk *.synctex.gz -note/belief_propagation_qec_plan.pdf \ No newline at end of file +note/belief_propagation_qec_plan.pdf.claude/settings.local.json diff --git a/Makefile b/Makefile index fa7130c..1bf95bb 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,17 @@ -.PHONY: help install setup test test-cov generate-dataset clean +.PHONY: help install setup test test-cov generate-dataset generate-dem generate-syndromes docs docs-serve clean help: @echo "Available targets:" - @echo " install - Install uv package manager" - @echo " setup - Set up development environment with uv" - @echo " generate-dataset - Generate noisy circuit dataset" - @echo " test - Run tests" - @echo " test-cov - Run tests with coverage report" - @echo " clean - Remove generated files and caches" + @echo " install - Install uv package manager" + @echo " setup - Set up development environment with uv" + @echo " generate-dataset - Generate noisy circuit dataset" + @echo " generate-dem - Generate detector error models" + @echo " generate-syndromes - Generate syndrome database (1000 shots)" + @echo " test - Run tests" + @echo " test-cov - Run tests with coverage report" + @echo " docs - Build documentation" + @echo " docs-serve - Serve documentation locally" + @echo " clean - Remove generated files and caches" install: @command -v uv >/dev/null 2>&1 || { \ @@ -21,12 +25,26 @@ setup: install generate-dataset: uv run generate-noisy-circuits --distance 3 --p 0.01 --rounds 3 5 7 --task z --output datasets/noisy_circuits +generate-dem: + uv run generate-noisy-circuits --distance 3 --p 0.01 --rounds 3 5 7 --task z --output datasets/noisy_circuits --generate-dem + +generate-syndromes: + uv run generate-noisy-circuits --distance 3 --p 0.01 --rounds 3 5 7 --task z --output datasets/noisy_circuits --generate-syndromes 1000 + test: uv run pytest test-cov: uv run pytest --cov=bpdecoderplus --cov-report=html --cov-report=term +docs: + pip install mkdocs-material mkdocstrings[python] pymdown-extensions + mkdocs build + +docs-serve: + pip install mkdocs-material mkdocstrings[python] pymdown-extensions + mkdocs serve + clean: rm -rf .pytest_cache rm -rf __pycache__ diff --git a/datasets/README.md b/datasets/README.md new file mode 100644 index 0000000..169848f --- /dev/null +++ b/datasets/README.md @@ -0,0 +1,222 @@ +# Noisy Circuit Dataset (Surface Code, d=3) + +Circuit-level surface-code memory experiments generated with Stim for **Belief Propagation (BP) decoding** demonstrations. + +## Dataset Organization + +The dataset is organized into subdirectories by file type: + +``` +datasets/ +├── circuits/ # Noisy quantum circuits (.stim) +├── dems/ # Detector error models (.dem) +├── uais/ # UAI format for probabilistic inference (.uai) +└── syndromes/ # Syndrome databases (.npz) +``` + +## Overview + +| Parameter | Value | +|-----------|-------| +| Code | Rotated surface code | +| Distance | d = 3 | +| Noise model | i.i.d. depolarizing | +| Error rate | p = 0.01 | +| Task | Z-memory experiment | +| Rounds | 3, 5, 7 | + +### Noise Application Points +- Clifford gates (`after_clifford_depolarization`) +- Data qubits between rounds (`before_round_data_depolarization`) +- Resets (`after_reset_flip_probability`) +- Measurements (`before_measure_flip_probability`) + +## Files + +| File | Description | +|------|-------------| +| `sc_d3_r3_p0010_z.stim` | 3 rounds, p=0.01, Z-memory | +| `sc_d3_r5_p0010_z.stim` | 5 rounds, p=0.01, Z-memory | +| `sc_d3_r7_p0010_z.stim` | 7 rounds, p=0.01, Z-memory | + +## Using This Dataset for BP Decoding + +### Step 1: Load Circuit and Extract Detector Error Model (DEM) + +The Detector Error Model is the key input for BP decoding. It describes which errors trigger which detectors. + +```python +import stim +import numpy as np + +# Load circuit +circuit = stim.Circuit.from_file("datasets/circuits/sc_d3_r3_p0010_z.stim") + +# Extract DEM - this is what BP needs +dem = circuit.detector_error_model(decompose_errors=True) +print(f"Detectors: {dem.num_detectors}") # 24 +print(f"Error mechanisms: {dem.num_errors}") # 286 +print(f"Observables: {dem.num_observables}") # 1 +``` + +### Step 2: Build Parity Check Matrix H + +BP operates on the parity check matrix where `H[i,j] = 1` means error `j` triggers detector `i`. + +```python +def build_parity_check_matrix(dem): + """Convert DEM to parity check matrix H and prior probabilities.""" + errors = [] + for inst in dem.flattened(): + if inst.type == 'error': + prob = inst.args_copy()[0] + dets = [t.val for t in inst.targets_copy() if t.is_relative_detector_id()] + obs = [t.val for t in inst.targets_copy() if t.is_logical_observable_id()] + errors.append({'prob': prob, 'detectors': dets, 'observables': obs}) + + n_detectors = dem.num_detectors + n_errors = len(errors) + + # Parity check matrix + H = np.zeros((n_detectors, n_errors), dtype=np.uint8) + # Prior error probabilities (for BP initialization) + priors = np.zeros(n_errors) + # Which errors flip the logical observable + obs_flip = np.zeros(n_errors, dtype=np.uint8) + + for j, e in enumerate(errors): + priors[j] = e['prob'] + for d in e['detectors']: + H[d, j] = 1 + if e['observables']: + obs_flip[j] = 1 + + return H, priors, obs_flip + +H, priors, obs_flip = build_parity_check_matrix(dem) +print(f"H shape: {H.shape}") # (24, 286) +``` + +### Step 3: Sample Syndromes (Detection Events) + +```python +# Compile sampler +sampler = circuit.compile_detector_sampler() + +# Sample detection events + observable flip +n_shots = 1000 +samples = sampler.sample(n_shots, append_observables=True) + +# Split into syndrome and observable +syndromes = samples[:, :-1] # shape: (n_shots, n_detectors) +actual_obs_flips = samples[:, -1] # shape: (n_shots,) + +print(f"Syndrome shape: {syndromes.shape}") +print(f"Example syndrome: {syndromes[0]}") +``` + +### Step 4: BP Decoding (Pseudocode) + +```python +def bp_decode(H, syndrome, priors, max_iter=50, damping=0.5): + """ + Belief Propagation decoder (min-sum variant). + + Args: + H: Parity check matrix (n_detectors, n_errors) + syndrome: Detection events (n_detectors,) + priors: Prior error probabilities (n_errors,) + max_iter: Maximum BP iterations + damping: Message damping factor + + Returns: + estimated_errors: Most likely error pattern (n_errors,) + soft_output: Log-likelihood ratios (n_errors,) + """ + n_checks, n_vars = H.shape + + # Initialize LLRs from priors: LLR = log((1-p)/p) + llr_prior = np.log((1 - priors) / priors) + + # Messages: check-to-variable and variable-to-check + # ... BP message passing iterations ... + + # Hard decision + estimated_errors = (soft_output < 0).astype(int) + + return estimated_errors, soft_output + +# Decode each syndrome +for i in range(n_shots): + syndrome = syndromes[i] + estimated_errors, _ = bp_decode(H, syndrome, priors) + + # Predict observable flip + predicted_obs_flip = np.dot(estimated_errors, obs_flip) % 2 + + # Check if decoding succeeded + success = (predicted_obs_flip == actual_obs_flips[i]) +``` + +### Step 5: Evaluate Decoder Performance + +After decoding, compare predicted vs actual observable flips to measure logical error rate. + +```python +def evaluate_decoder(decoder_fn, circuit, n_shots=10000): + """Evaluate decoder logical error rate.""" + dem = circuit.detector_error_model(decompose_errors=True) + H, priors, obs_flip = build_parity_check_matrix(dem) + + sampler = circuit.compile_detector_sampler() + samples = sampler.sample(n_shots, append_observables=True) + syndromes = samples[:, :-1] + actual_obs = samples[:, -1] + + errors = 0 + for i in range(n_shots): + est_errors, _ = decoder_fn(H, syndromes[i], priors) + pred_obs = np.dot(est_errors, obs_flip) % 2 + if pred_obs != actual_obs[i]: + errors += 1 + + return errors / n_shots + +# logical_error_rate = evaluate_decoder(bp_decode, circuit) +``` + +## Regenerating the Dataset + +```bash +# Install the package with uv +uv sync + +# Generate circuits using the CLI +python -m bpdecoderplus.cli \ + --distance 3 \ + --p 0.01 \ + --rounds 3 5 7 \ + --task z \ + --generate-dem \ + --generate-uai \ + --generate-syndromes 10000 +``` + +## Extending the Dataset + +```bash +# Different error rates +python -m bpdecoderplus.cli --p 0.005 --rounds 3 5 7 --generate-dem --generate-uai + +# Different distances +python -m bpdecoderplus.cli --distance 5 --rounds 5 7 9 --generate-dem --generate-uai + +# X-memory experiment +python -m bpdecoderplus.cli --task x --rounds 3 5 7 --generate-dem --generate-uai +``` + +## References + +- [Stim Documentation](https://github.com/quantumlib/Stim) +- [BP+OSD Decoder Paper](https://arxiv.org/abs/2005.07016) +- [Surface Code Decoding Review](https://quantum-journal.org/papers/q-2024-10-10-1498/) diff --git a/datasets/circuits/sc_d3_r3_p0010_z.stim b/datasets/circuits/sc_d3_r3_p0010_z.stim new file mode 100644 index 0000000..187876d --- /dev/null +++ b/datasets/circuits/sc_d3_r3_p0010_z.stim @@ -0,0 +1,89 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(1, 3) 8 +QUBIT_COORDS(2, 2) 9 +QUBIT_COORDS(3, 3) 10 +QUBIT_COORDS(4, 2) 11 +QUBIT_COORDS(5, 3) 12 +QUBIT_COORDS(6, 2) 13 +QUBIT_COORDS(0, 4) 14 +QUBIT_COORDS(1, 5) 15 +QUBIT_COORDS(2, 4) 16 +QUBIT_COORDS(3, 5) 17 +QUBIT_COORDS(4, 4) 18 +QUBIT_COORDS(5, 5) 19 +QUBIT_COORDS(4, 6) 25 +R 1 3 5 8 10 12 15 17 19 +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +R 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +TICK +DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +CX 2 3 16 17 11 12 15 14 10 9 19 18 +DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 +TICK +CX 2 1 16 15 11 10 8 14 3 9 12 18 +DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 +TICK +CX 16 10 11 5 25 19 8 9 17 18 12 13 +DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 +TICK +CX 16 8 11 3 25 17 1 9 10 18 5 13 +DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 +TICK +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +MR 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +DETECTOR(0, 4, 0) rec[-4] +DETECTOR(2, 2, 0) rec[-7] +DETECTOR(4, 4, 0) rec[-2] +DETECTOR(6, 2, 0) rec[-5] +REPEAT 2 { + TICK + DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + CX 2 3 16 17 11 12 15 14 10 9 19 18 + DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 + TICK + CX 2 1 16 15 11 10 8 14 3 9 12 18 + DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 + TICK + CX 16 10 11 5 25 19 8 9 17 18 12 13 + DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 + TICK + CX 16 8 11 3 25 17 1 9 10 18 5 13 + DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 + TICK + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + MR 2 9 11 13 14 16 18 25 + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-8] rec[-16] + DETECTOR(2, 2, 0) rec[-7] rec[-15] + DETECTOR(4, 2, 0) rec[-6] rec[-14] + DETECTOR(6, 2, 0) rec[-5] rec[-13] + DETECTOR(0, 4, 0) rec[-4] rec[-12] + DETECTOR(2, 4, 0) rec[-3] rec[-11] + DETECTOR(4, 4, 0) rec[-2] rec[-10] + DETECTOR(4, 6, 0) rec[-1] rec[-9] +} +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +M 1 3 5 8 10 12 15 17 19 +DETECTOR(0, 4, 1) rec[-3] rec[-6] rec[-13] +DETECTOR(2, 2, 1) rec[-5] rec[-6] rec[-8] rec[-9] rec[-16] +DETECTOR(4, 4, 1) rec[-1] rec[-2] rec[-4] rec[-5] rec[-11] +DETECTOR(6, 2, 1) rec[-4] rec[-7] rec[-14] +OBSERVABLE_INCLUDE(0) rec[-7] rec[-8] rec[-9] \ No newline at end of file diff --git a/datasets/circuits/sc_d3_r5_p0010_z.stim b/datasets/circuits/sc_d3_r5_p0010_z.stim new file mode 100644 index 0000000..79afc47 --- /dev/null +++ b/datasets/circuits/sc_d3_r5_p0010_z.stim @@ -0,0 +1,89 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(1, 3) 8 +QUBIT_COORDS(2, 2) 9 +QUBIT_COORDS(3, 3) 10 +QUBIT_COORDS(4, 2) 11 +QUBIT_COORDS(5, 3) 12 +QUBIT_COORDS(6, 2) 13 +QUBIT_COORDS(0, 4) 14 +QUBIT_COORDS(1, 5) 15 +QUBIT_COORDS(2, 4) 16 +QUBIT_COORDS(3, 5) 17 +QUBIT_COORDS(4, 4) 18 +QUBIT_COORDS(5, 5) 19 +QUBIT_COORDS(4, 6) 25 +R 1 3 5 8 10 12 15 17 19 +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +R 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +TICK +DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +CX 2 3 16 17 11 12 15 14 10 9 19 18 +DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 +TICK +CX 2 1 16 15 11 10 8 14 3 9 12 18 +DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 +TICK +CX 16 10 11 5 25 19 8 9 17 18 12 13 +DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 +TICK +CX 16 8 11 3 25 17 1 9 10 18 5 13 +DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 +TICK +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +MR 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +DETECTOR(0, 4, 0) rec[-4] +DETECTOR(2, 2, 0) rec[-7] +DETECTOR(4, 4, 0) rec[-2] +DETECTOR(6, 2, 0) rec[-5] +REPEAT 4 { + TICK + DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + CX 2 3 16 17 11 12 15 14 10 9 19 18 + DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 + TICK + CX 2 1 16 15 11 10 8 14 3 9 12 18 + DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 + TICK + CX 16 10 11 5 25 19 8 9 17 18 12 13 + DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 + TICK + CX 16 8 11 3 25 17 1 9 10 18 5 13 + DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 + TICK + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + MR 2 9 11 13 14 16 18 25 + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-8] rec[-16] + DETECTOR(2, 2, 0) rec[-7] rec[-15] + DETECTOR(4, 2, 0) rec[-6] rec[-14] + DETECTOR(6, 2, 0) rec[-5] rec[-13] + DETECTOR(0, 4, 0) rec[-4] rec[-12] + DETECTOR(2, 4, 0) rec[-3] rec[-11] + DETECTOR(4, 4, 0) rec[-2] rec[-10] + DETECTOR(4, 6, 0) rec[-1] rec[-9] +} +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +M 1 3 5 8 10 12 15 17 19 +DETECTOR(0, 4, 1) rec[-3] rec[-6] rec[-13] +DETECTOR(2, 2, 1) rec[-5] rec[-6] rec[-8] rec[-9] rec[-16] +DETECTOR(4, 4, 1) rec[-1] rec[-2] rec[-4] rec[-5] rec[-11] +DETECTOR(6, 2, 1) rec[-4] rec[-7] rec[-14] +OBSERVABLE_INCLUDE(0) rec[-7] rec[-8] rec[-9] \ No newline at end of file diff --git a/datasets/circuits/sc_d3_r7_p0010_z.stim b/datasets/circuits/sc_d3_r7_p0010_z.stim new file mode 100644 index 0000000..c79fed7 --- /dev/null +++ b/datasets/circuits/sc_d3_r7_p0010_z.stim @@ -0,0 +1,89 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(1, 3) 8 +QUBIT_COORDS(2, 2) 9 +QUBIT_COORDS(3, 3) 10 +QUBIT_COORDS(4, 2) 11 +QUBIT_COORDS(5, 3) 12 +QUBIT_COORDS(6, 2) 13 +QUBIT_COORDS(0, 4) 14 +QUBIT_COORDS(1, 5) 15 +QUBIT_COORDS(2, 4) 16 +QUBIT_COORDS(3, 5) 17 +QUBIT_COORDS(4, 4) 18 +QUBIT_COORDS(5, 5) 19 +QUBIT_COORDS(4, 6) 25 +R 1 3 5 8 10 12 15 17 19 +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +R 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +TICK +DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +CX 2 3 16 17 11 12 15 14 10 9 19 18 +DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 +TICK +CX 2 1 16 15 11 10 8 14 3 9 12 18 +DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 +TICK +CX 16 10 11 5 25 19 8 9 17 18 12 13 +DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 +TICK +CX 16 8 11 3 25 17 1 9 10 18 5 13 +DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 +TICK +H 2 11 16 25 +DEPOLARIZE1(0.01) 2 11 16 25 +TICK +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +MR 2 9 11 13 14 16 18 25 +X_ERROR(0.01) 2 9 11 13 14 16 18 25 +DETECTOR(0, 4, 0) rec[-4] +DETECTOR(2, 2, 0) rec[-7] +DETECTOR(4, 4, 0) rec[-2] +DETECTOR(6, 2, 0) rec[-5] +REPEAT 6 { + TICK + DEPOLARIZE1(0.01) 1 3 5 8 10 12 15 17 19 + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + CX 2 3 16 17 11 12 15 14 10 9 19 18 + DEPOLARIZE2(0.01) 2 3 16 17 11 12 15 14 10 9 19 18 + TICK + CX 2 1 16 15 11 10 8 14 3 9 12 18 + DEPOLARIZE2(0.01) 2 1 16 15 11 10 8 14 3 9 12 18 + TICK + CX 16 10 11 5 25 19 8 9 17 18 12 13 + DEPOLARIZE2(0.01) 16 10 11 5 25 19 8 9 17 18 12 13 + TICK + CX 16 8 11 3 25 17 1 9 10 18 5 13 + DEPOLARIZE2(0.01) 16 8 11 3 25 17 1 9 10 18 5 13 + TICK + H 2 11 16 25 + DEPOLARIZE1(0.01) 2 11 16 25 + TICK + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + MR 2 9 11 13 14 16 18 25 + X_ERROR(0.01) 2 9 11 13 14 16 18 25 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-8] rec[-16] + DETECTOR(2, 2, 0) rec[-7] rec[-15] + DETECTOR(4, 2, 0) rec[-6] rec[-14] + DETECTOR(6, 2, 0) rec[-5] rec[-13] + DETECTOR(0, 4, 0) rec[-4] rec[-12] + DETECTOR(2, 4, 0) rec[-3] rec[-11] + DETECTOR(4, 4, 0) rec[-2] rec[-10] + DETECTOR(4, 6, 0) rec[-1] rec[-9] +} +X_ERROR(0.01) 1 3 5 8 10 12 15 17 19 +M 1 3 5 8 10 12 15 17 19 +DETECTOR(0, 4, 1) rec[-3] rec[-6] rec[-13] +DETECTOR(2, 2, 1) rec[-5] rec[-6] rec[-8] rec[-9] rec[-16] +DETECTOR(4, 4, 1) rec[-1] rec[-2] rec[-4] rec[-5] rec[-11] +DETECTOR(6, 2, 1) rec[-4] rec[-7] rec[-14] +OBSERVABLE_INCLUDE(0) rec[-7] rec[-8] rec[-9] \ No newline at end of file diff --git a/datasets/dems/sc_d3_r3_p0010_z.dem b/datasets/dems/sc_d3_r3_p0010_z.dem new file mode 100644 index 0000000..ecf5b9e --- /dev/null +++ b/datasets/dems/sc_d3_r3_p0010_z.dem @@ -0,0 +1,312 @@ +error(0.01911873511075362) D0 +error(0.01911873511075362) D0 D1 +error(0.02236793284649183) D0 D8 +error(0.01911873511075362) D1 D2 +error(0.02364674503591482) D1 D5 +error(0.001338700097173321) D1 D5 ^ D4 +error(0.004005357180252828) D1 D8 +error(0.001338700097173321) D1 D8 ^ D4 +error(0.03997966359665833) D1 L0 +error(0.03936259494598386) D2 +error(0.02169031111111104) D2 D3 +error(0.005333333333333312) D2 D3 ^ D6 +error(0.005995987492949032) D2 D5 +error(0.002006705456917236) D2 D5 ^ D6 +error(0.001338700097173321) D2 D5 ^ D6 D9 +error(0.0006697986788568588) D2 D5 ^ D9 +error(0.0006697986788568588) D2 D5 ^ D9 ^ D6 +error(0.0006697986788568588) D2 D8 +error(0.0006697986788568588) D2 D8 ^ D6 +error(0.0006697986788568588) D2 D8 ^ D9 +error(0.0006697986788568588) D2 D8 ^ D9 ^ D6 +error(0.02236793284649183) D2 D10 +error(0.001338700097173321) D2 D10 ^ D6 +error(0.001338700097173321) D2 D10 ^ D6 D9 +error(0.001338700097173321) D3 D5 +error(0.001338700097173321) D3 D5 ^ D6 +error(0.02108568757332526) D3 D7 +error(0.001338700097173321) D3 D7 ^ D6 +error(0.002673815958446298) D3 D10 +error(0.002673815958446298) D3 D10 ^ D6 +error(0.01911873511075362) D3 L0 +error(0.04671719903466118) D4 +error(0.004674264622595529) D4 D6 +error(0.004674264622595529) D4 D6 ^ D5 L0 +error(0.03377159558249396) D4 D12 +error(0.001338700097173321) D4 D12 ^ D5 L0 +error(0.00797862858822285) D4 ^ D1 L0 +error(0.008642177604111326) D4 ^ D5 L0 +error(0.002673815958446298) D4 ^ D5 L0 ^ D1 L0 +error(0.009300399244684825) D5 D8 +error(0.001338700097173321) D5 D8 ^ D4 +error(0.0006697986788568588) D5 D8 ^ D6 +error(0.007983073028790271) D5 D8 ^ D9 +error(0.0006697986788568588) D5 D8 ^ D9 ^ D6 +error(0.006000449842759885) D5 D10 +error(0.006000449842759885) D5 D10 ^ D6 D9 +error(0.02172723992082331) D5 D13 +error(0.001338700097173321) D5 D13 ^ D6 D9 +error(0.0006697986788568588) D5 D13 ^ D9 +error(0.0006697986788568588) D5 D13 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D13 ^ D12 +error(0.002006705456917236) D5 D16 +error(0.002006705456917236) D5 D16 ^ D9 +error(0.0006697986788568588) D5 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D16 ^ D12 +error(0.01648726836301881) D5 L0 +error(0.002673815958446298) D5 L0 ^ D1 L0 +error(0.001338700097173321) D5 L0 ^ D3 L0 +error(0.05155626641762742) D6 +error(0.007323084334358033) D6 D9 +error(0.0006697986788568588) D6 D9 ^ D5 L0 +error(0.0006697986788568588) D6 D9 ^ D7 D10 +error(0.0006697986788568588) D6 D9 ^ D7 D13 +error(0.002006705456917236) D6 D9 ^ D10 D13 +error(0.0006697986788568588) D6 D9 ^ D13 L0 +error(0.0006697986788568588) D6 D9 ^ D13 L0 ^ D5 L0 +error(0.00334003280051021) D6 D12 +error(0.002006705456917236) D6 D12 ^ D5 L0 +error(0.002006705456917236) D6 D12 ^ D13 L0 +error(0.0006697986788568588) D6 D12 ^ D13 L0 ^ D5 L0 +error(0.03439615392114274) D6 D14 +error(0.0006697986788568588) D6 D14 ^ D7 D10 +error(0.0006697986788568588) D6 D14 ^ D7 D13 +error(0.0006697986788568588) D6 D14 ^ D10 D13 +error(0.001338700097173321) D6 D14 ^ D13 L0 +error(0.0006697986788568588) D6 ^ D2 +error(0.002673815958446298) D6 ^ D3 L0 +error(0.001338700097173321) D6 ^ D4 +error(0.001338700097173321) D6 ^ D4 ^ D5 L0 +error(0.002673815958446298) D6 ^ D5 L0 +error(0.001338700097173321) D6 ^ D5 L0 ^ D3 L0 +error(0.005337801668914704) D6 ^ D7 L0 +error(0.001338700097173321) D6 ^ D7 L0 ^ D3 L0 +error(0.007323084334358033) D7 D10 +error(0.006000449842759885) D7 D10 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D9 D14 +error(0.0006697986788568588) D7 D10 ^ D11 +error(0.002006705456917236) D7 D10 ^ D14 +error(0.001338700097173321) D7 D10 ^ D14 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D14 ^ D11 +error(0.0006697986788568588) D7 D13 +error(0.0006697986788568588) D7 D13 ^ D9 D14 +error(0.02108568757332526) D7 D15 +error(0.001338700097173321) D7 D15 ^ D14 +error(0.002006705456917236) D7 D18 +error(0.0006697986788568588) D7 D18 ^ D11 +error(0.002006705456917236) D7 D18 ^ D14 +error(0.0006697986788568588) D7 D18 ^ D14 ^ D11 +error(0.006662210334862288) D7 L0 +error(0.001338700097173321) D7 L0 ^ D3 L0 +error(0.008642177604111326) D8 +error(0.02108568757332526) D8 D16 +error(0.001338700097173321) D8 D16 ^ D9 +error(0.002673815958446298) D8 ^ D0 +error(0.001338700097173321) D8 ^ D2 +error(0.05215700045821763) D9 +error(0.004674264622595529) D9 D11 +error(0.004674264622595529) D9 D11 ^ D10 +error(0.0006697986788568588) D9 D12 +error(0.0006697986788568588) D9 D12 ^ D5 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 ^ D5 L0 +error(0.001338700097173321) D9 D14 +error(0.001338700097173321) D9 D14 ^ D10 D13 +error(0.0006697986788568588) D9 D14 ^ D10 D16 +error(0.0006697986788568588) D9 D14 ^ D13 D16 +error(0.03439615392114274) D9 D17 +error(0.001338700097173321) D9 D17 ^ D10 +error(0.0006697986788568588) D9 D17 ^ D10 D13 +error(0.0006697986788568588) D9 D17 ^ D10 D16 +error(0.0006697986788568588) D9 D17 ^ D13 D16 +error(0.004669790293214321) D9 ^ D2 +error(0.001338700097173321) D9 ^ D6 +error(0.0006697986788568588) D9 ^ D6 ^ D2 +error(0.006000449842759885) D9 ^ D8 +error(0.001338700097173321) D9 ^ D8 ^ D2 +error(0.002673815958446298) D9 ^ D10 +error(0.0006697986788568588) D9 ^ D10 ^ D2 +error(0.0006697986788568588) D9 ^ D10 ^ D6 +error(0.0006697986788568588) D9 ^ D10 ^ D6 ^ D2 +error(0.0006697986788568588) D9 ^ D12 +error(0.002006705456917236) D9 ^ D16 +error(0.001338700097173321) D9 ^ D16 ^ D8 +error(0.0006697986788568588) D9 ^ D16 ^ D10 +error(0.01778182544467273) D10 +error(0.004005357180252828) D10 D13 +error(0.002006705456917236) D10 D13 ^ D14 D17 +error(0.0006697986788568588) D10 D16 +error(0.0006697986788568588) D10 D16 ^ D14 D17 +error(0.02172723992082331) D10 D18 +error(0.0006697986788568588) D10 D18 ^ D11 +error(0.0006697986788568588) D10 D18 ^ D14 +error(0.001338700097173321) D10 D18 ^ D14 D17 +error(0.0006697986788568588) D10 D18 ^ D14 ^ D11 +error(0.00334003280051021) D10 ^ D2 +error(0.0006697986788568588) D10 ^ D6 +error(0.0006697986788568588) D10 ^ D6 ^ D2 +error(0.04244381618308433) D11 +error(0.0006697986788568588) D11 D14 +error(0.0006697986788568588) D11 D14 ^ D10 +error(0.0006697986788568588) D11 D14 ^ D18 +error(0.0006697986788568588) D11 D14 ^ D18 ^ D10 +error(0.00334003280051021) D11 D17 +error(0.002006705456917236) D11 D17 ^ D10 +error(0.002006705456917236) D11 D17 ^ D18 +error(0.0006697986788568588) D11 D17 ^ D18 ^ D10 +error(0.03377159558249396) D11 D19 +error(0.001338700097173321) D11 D19 ^ D18 +error(0.001338700097173321) D11 ^ D9 +error(0.001338700097173321) D11 ^ D9 ^ D10 +error(0.008642177604111326) D11 ^ D10 +error(0.001338700097173321) D11 ^ D18 +error(0.001338700097173321) D11 ^ D18 ^ D10 +error(0.04244381618308433) D12 +error(0.004674264622595528) D12 D14 +error(0.004674264622595528) D12 D14 ^ D13 L0 +error(0.001338700097173321) D12 ^ D4 +error(0.001338700097173321) D12 ^ D4 ^ D5 L0 +error(0.002673815958446298) D12 ^ D5 L0 +error(0.008642177604111326) D12 ^ D13 L0 +error(0.001338700097173321) D12 ^ D13 L0 ^ D5 L0 +error(0.001338700097173321) D12 ^ D13 L0 ^ D14 +error(0.001338700097173321) D12 ^ D14 +error(0.007323084334358033) D13 D16 +error(0.002006705456917236) D13 D16 ^ D9 +error(0.0006697986788568588) D13 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D14 D17 +error(0.006000449842759885) D13 D16 ^ D17 +error(0.001338700097173321) D13 D16 ^ D17 ^ D9 +error(0.006000449842759885) D13 D18 +error(0.006000449842759885) D13 D18 ^ D14 D17 +error(0.002673815958446298) D13 D20 +error(0.002673815958446298) D13 D20 ^ D17 +error(0.02236793284649183) D13 D21 +error(0.001338700097173321) D13 D21 ^ D14 D17 +error(0.001338700097173321) D13 D21 ^ D17 +error(0.01778182544467273) D13 L0 +error(0.002006705456917236) D13 L0 ^ D5 L0 +error(0.0006697986788568588) D13 L0 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D7 L0 +error(0.002006705456917236) D13 L0 ^ D14 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D7 L0 +error(0.05215700045821762) D14 +error(0.007323084334358033) D14 D17 +error(0.0006697986788568588) D14 D17 ^ D10 +error(0.0006697986788568588) D14 D17 ^ D18 +error(0.001338700097173321) D14 D17 ^ D18 D21 +error(0.0006697986788568588) D14 D17 ^ D18 ^ D10 +error(0.002006705456917236) D14 ^ D6 +error(0.0006697986788568588) D14 ^ D6 ^ D7 L0 +error(0.002006705456917236) D14 ^ D7 L0 +error(0.0006697986788568588) D14 ^ D11 +error(0.0006697986788568588) D14 ^ D13 L0 +error(0.006000449842759885) D14 ^ D15 L0 +error(0.001338700097173321) D14 ^ D15 L0 ^ D7 L0 +error(0.001338700097173321) D14 ^ D17 +error(0.0006697986788568588) D14 ^ D17 ^ D13 L0 +error(0.004669790293214321) D14 ^ D21 L0 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D13 L0 +error(0.001338700097173321) D14 ^ D21 L0 ^ D15 L0 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D17 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D17 ^ D13 L0 +error(0.009300399244684827) D15 D18 +error(0.007983073028790271) D15 D18 ^ D14 +error(0.0006697986788568588) D15 D18 ^ D14 ^ D17 +error(0.0006697986788568588) D15 D18 ^ D17 +error(0.001338700097173321) D15 D18 ^ D19 +error(0.0006697986788568588) D15 D21 +error(0.0006697986788568588) D15 D21 ^ D14 +error(0.0006697986788568588) D15 D21 ^ D14 ^ D17 +error(0.0006697986788568588) D15 D21 ^ D17 +error(0.004005357180252828) D15 D22 +error(0.001338700097173321) D15 D22 ^ D19 +error(0.02236793284649183) D15 D23 +error(0.008642177604111326) D15 L0 +error(0.001338700097173321) D15 L0 ^ D7 L0 +error(0.006662210334862289) D16 +error(0.02108568757332526) D16 D20 +error(0.001338700097173321) D16 D20 ^ D17 +error(0.001338700097173321) D16 ^ D8 +error(0.0006697986788568588) D16 ^ D10 +error(0.05155626641762741) D17 +error(0.004674264622595528) D17 D19 +error(0.004674264622595528) D17 D19 ^ D18 +error(0.002006705456917236) D17 ^ D9 +error(0.0006697986788568588) D17 ^ D9 ^ D10 +error(0.0006697986788568588) D17 ^ D9 ^ D16 +error(0.0006697986788568588) D17 ^ D9 ^ D16 ^ D10 +error(0.0006697986788568588) D17 ^ D10 +error(0.0006697986788568588) D17 ^ D13 L0 +error(0.005337801668914705) D17 ^ D16 +error(0.0006697986788568588) D17 ^ D16 ^ D10 +error(0.002673815958446298) D17 ^ D18 +error(0.001338700097173321) D17 ^ D18 ^ D19 +error(0.001338700097173321) D17 ^ D19 +error(0.002673815958446298) D17 ^ D20 +error(0.001338700097173321) D17 ^ D20 ^ D16 +error(0.001338700097173321) D17 ^ D20 ^ D18 +error(0.01648726836301881) D18 +error(0.001338700097173321) D18 D20 +error(0.001338700097173321) D18 D20 ^ D17 +error(0.005995987492949032) D18 D21 +error(0.0006697986788568588) D18 D21 ^ D14 +error(0.0006697986788568588) D18 D21 ^ D14 ^ D17 +error(0.002006705456917236) D18 D21 ^ D17 +error(0.02364674503591482) D18 D22 +error(0.001338700097173321) D18 D22 ^ D19 +error(0.002006705456917236) D18 ^ D10 +error(0.001338700097173321) D18 ^ D11 +error(0.002673815958446298) D18 ^ D19 +error(0.001338700097173321) D18 ^ D19 ^ D11 +error(0.04671719903466118) D19 +error(0.001338700097173321) D19 ^ D11 +error(0.006000449842759885) D19 ^ D18 +error(0.00797862858822285) D19 ^ D22 +error(0.002673815958446298) D19 ^ D22 ^ D18 +error(0.01262033963927737) D20 +error(0.01522666666666665) D20 D21 +error(0.005333333333333312) D20 D21 ^ D17 +error(0.001338700097173321) D20 ^ D16 +error(0.001338700097173321) D20 ^ D18 +error(0.01262033963927737) D21 D22 +error(0.02682881602833452) D21 L0 +error(0.00334003280051021) D21 L0 ^ D13 L0 +error(0.001338700097173321) D21 L0 ^ D15 L0 +error(0.0006697986788568588) D21 L0 ^ D17 +error(0.0006697986788568588) D21 L0 ^ D17 ^ D13 L0 +error(0.02746267489612923) D22 +error(0.01262033963927737) D22 D23 +error(0.002673815958446298) D22 ^ D18 +error(0.01262033963927737) D23 L0 +error(0.002673815958446298) D23 L0 ^ D15 L0 +detector(0, 4, 0) D0 +detector(2, 2, 0) D1 +detector(4, 4, 0) D2 +detector(6, 2, 0) D3 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D4 +detector(2, 2, 0) D5 +detector(4, 2, 0) D6 +detector(6, 2, 0) D7 +detector(0, 4, 0) D8 +detector(2, 4, 0) D9 +detector(4, 4, 0) D10 +detector(4, 6, 0) D11 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D12 +detector(2, 2, 0) D13 +detector(4, 2, 0) D14 +detector(6, 2, 0) D15 +detector(0, 4, 0) D16 +detector(2, 4, 0) D17 +detector(4, 4, 0) D18 +detector(4, 6, 0) D19 +detector(0, 4, 1) D20 +detector(2, 2, 1) D21 +detector(4, 4, 1) D22 +detector(6, 2, 1) D23 \ No newline at end of file diff --git a/datasets/dems/sc_d3_r5_p0010_z.dem b/datasets/dems/sc_d3_r5_p0010_z.dem new file mode 100644 index 0000000..d91ef16 --- /dev/null +++ b/datasets/dems/sc_d3_r5_p0010_z.dem @@ -0,0 +1,614 @@ +error(0.01911873511075362) D0 +error(0.01911873511075362) D0 D1 +error(0.02236793284649183) D0 D8 +error(0.01911873511075362) D1 D2 +error(0.02364674503591482) D1 D5 +error(0.001338700097173321) D1 D5 ^ D4 +error(0.004005357180252828) D1 D8 +error(0.001338700097173321) D1 D8 ^ D4 +error(0.03997966359665833) D1 L0 +error(0.03936259494598386) D2 +error(0.02169031111111104) D2 D3 +error(0.005333333333333312) D2 D3 ^ D6 +error(0.005995987492949032) D2 D5 +error(0.002006705456917236) D2 D5 ^ D6 +error(0.001338700097173321) D2 D5 ^ D6 D9 +error(0.0006697986788568588) D2 D5 ^ D9 +error(0.0006697986788568588) D2 D5 ^ D9 ^ D6 +error(0.0006697986788568588) D2 D8 +error(0.0006697986788568588) D2 D8 ^ D6 +error(0.0006697986788568588) D2 D8 ^ D9 +error(0.0006697986788568588) D2 D8 ^ D9 ^ D6 +error(0.02236793284649183) D2 D10 +error(0.001338700097173321) D2 D10 ^ D6 +error(0.001338700097173321) D2 D10 ^ D6 D9 +error(0.001338700097173321) D3 D5 +error(0.001338700097173321) D3 D5 ^ D6 +error(0.02108568757332526) D3 D7 +error(0.001338700097173321) D3 D7 ^ D6 +error(0.002673815958446298) D3 D10 +error(0.002673815958446298) D3 D10 ^ D6 +error(0.01911873511075362) D3 L0 +error(0.04671719903466118) D4 +error(0.004674264622595529) D4 D6 +error(0.004674264622595529) D4 D6 ^ D5 L0 +error(0.03377159558249396) D4 D12 +error(0.001338700097173321) D4 D12 ^ D5 L0 +error(0.00797862858822285) D4 ^ D1 L0 +error(0.008642177604111326) D4 ^ D5 L0 +error(0.002673815958446298) D4 ^ D5 L0 ^ D1 L0 +error(0.009300399244684825) D5 D8 +error(0.001338700097173321) D5 D8 ^ D4 +error(0.0006697986788568588) D5 D8 ^ D6 +error(0.007983073028790271) D5 D8 ^ D9 +error(0.0006697986788568588) D5 D8 ^ D9 ^ D6 +error(0.006000449842759885) D5 D10 +error(0.006000449842759885) D5 D10 ^ D6 D9 +error(0.02172723992082331) D5 D13 +error(0.001338700097173321) D5 D13 ^ D6 D9 +error(0.0006697986788568588) D5 D13 ^ D9 +error(0.0006697986788568588) D5 D13 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D13 ^ D12 +error(0.002006705456917236) D5 D16 +error(0.002006705456917236) D5 D16 ^ D9 +error(0.0006697986788568588) D5 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D16 ^ D12 +error(0.01648726836301881) D5 L0 +error(0.002673815958446298) D5 L0 ^ D1 L0 +error(0.001338700097173321) D5 L0 ^ D3 L0 +error(0.05155626641762742) D6 +error(0.007323084334358033) D6 D9 +error(0.0006697986788568588) D6 D9 ^ D5 L0 +error(0.0006697986788568588) D6 D9 ^ D7 D10 +error(0.0006697986788568588) D6 D9 ^ D7 D13 +error(0.002006705456917236) D6 D9 ^ D10 D13 +error(0.0006697986788568588) D6 D9 ^ D13 L0 +error(0.0006697986788568588) D6 D9 ^ D13 L0 ^ D5 L0 +error(0.00334003280051021) D6 D12 +error(0.002006705456917236) D6 D12 ^ D5 L0 +error(0.002006705456917236) D6 D12 ^ D13 L0 +error(0.0006697986788568588) D6 D12 ^ D13 L0 ^ D5 L0 +error(0.03439615392114274) D6 D14 +error(0.0006697986788568588) D6 D14 ^ D7 D10 +error(0.0006697986788568588) D6 D14 ^ D7 D13 +error(0.0006697986788568588) D6 D14 ^ D10 D13 +error(0.001338700097173321) D6 D14 ^ D13 L0 +error(0.0006697986788568588) D6 ^ D2 +error(0.002673815958446298) D6 ^ D3 L0 +error(0.001338700097173321) D6 ^ D4 +error(0.001338700097173321) D6 ^ D4 ^ D5 L0 +error(0.002673815958446298) D6 ^ D5 L0 +error(0.001338700097173321) D6 ^ D5 L0 ^ D3 L0 +error(0.005337801668914704) D6 ^ D7 L0 +error(0.001338700097173321) D6 ^ D7 L0 ^ D3 L0 +error(0.007323084334358033) D7 D10 +error(0.006000449842759885) D7 D10 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D9 D14 +error(0.0006697986788568588) D7 D10 ^ D11 +error(0.002006705456917236) D7 D10 ^ D14 +error(0.001338700097173321) D7 D10 ^ D14 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D14 ^ D11 +error(0.0006697986788568588) D7 D13 +error(0.0006697986788568588) D7 D13 ^ D9 D14 +error(0.02108568757332526) D7 D15 +error(0.001338700097173321) D7 D15 ^ D14 +error(0.002006705456917236) D7 D18 +error(0.0006697986788568588) D7 D18 ^ D11 +error(0.002006705456917236) D7 D18 ^ D14 +error(0.0006697986788568588) D7 D18 ^ D14 ^ D11 +error(0.006662210334862288) D7 L0 +error(0.001338700097173321) D7 L0 ^ D3 L0 +error(0.008642177604111326) D8 +error(0.02108568757332526) D8 D16 +error(0.001338700097173321) D8 D16 ^ D9 +error(0.002673815958446298) D8 ^ D0 +error(0.001338700097173321) D8 ^ D2 +error(0.05215700045821763) D9 +error(0.004674264622595529) D9 D11 +error(0.004674264622595529) D9 D11 ^ D10 +error(0.0006697986788568588) D9 D12 +error(0.0006697986788568588) D9 D12 ^ D5 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 ^ D5 L0 +error(0.001338700097173321) D9 D14 +error(0.001338700097173321) D9 D14 ^ D10 D13 +error(0.0006697986788568588) D9 D14 ^ D10 D16 +error(0.0006697986788568588) D9 D14 ^ D13 D16 +error(0.03439615392114274) D9 D17 +error(0.001338700097173321) D9 D17 ^ D10 +error(0.0006697986788568588) D9 D17 ^ D10 D13 +error(0.0006697986788568588) D9 D17 ^ D10 D16 +error(0.0006697986788568588) D9 D17 ^ D13 D16 +error(0.004669790293214321) D9 ^ D2 +error(0.001338700097173321) D9 ^ D6 +error(0.0006697986788568588) D9 ^ D6 ^ D2 +error(0.006000449842759885) D9 ^ D8 +error(0.001338700097173321) D9 ^ D8 ^ D2 +error(0.002673815958446298) D9 ^ D10 +error(0.0006697986788568588) D9 ^ D10 ^ D2 +error(0.0006697986788568588) D9 ^ D10 ^ D6 +error(0.0006697986788568588) D9 ^ D10 ^ D6 ^ D2 +error(0.0006697986788568588) D9 ^ D12 +error(0.002006705456917236) D9 ^ D16 +error(0.001338700097173321) D9 ^ D16 ^ D8 +error(0.0006697986788568588) D9 ^ D16 ^ D10 +error(0.01778182544467273) D10 +error(0.004005357180252828) D10 D13 +error(0.002006705456917236) D10 D13 ^ D14 D17 +error(0.0006697986788568588) D10 D16 +error(0.0006697986788568588) D10 D16 ^ D14 D17 +error(0.02172723992082331) D10 D18 +error(0.0006697986788568588) D10 D18 ^ D11 +error(0.0006697986788568588) D10 D18 ^ D14 +error(0.001338700097173321) D10 D18 ^ D14 D17 +error(0.0006697986788568588) D10 D18 ^ D14 ^ D11 +error(0.00334003280051021) D10 ^ D2 +error(0.0006697986788568588) D10 ^ D6 +error(0.0006697986788568588) D10 ^ D6 ^ D2 +error(0.04244381618308433) D11 +error(0.0006697986788568588) D11 D14 +error(0.0006697986788568588) D11 D14 ^ D10 +error(0.0006697986788568588) D11 D14 ^ D18 +error(0.0006697986788568588) D11 D14 ^ D18 ^ D10 +error(0.00334003280051021) D11 D17 +error(0.002006705456917236) D11 D17 ^ D10 +error(0.002006705456917236) D11 D17 ^ D18 +error(0.0006697986788568588) D11 D17 ^ D18 ^ D10 +error(0.03377159558249396) D11 D19 +error(0.001338700097173321) D11 D19 ^ D18 +error(0.001338700097173321) D11 ^ D9 +error(0.001338700097173321) D11 ^ D9 ^ D10 +error(0.008642177604111326) D11 ^ D10 +error(0.001338700097173321) D11 ^ D18 +error(0.001338700097173321) D11 ^ D18 ^ D10 +error(0.007983073028790271) D12 +error(0.006000449842759885) D12 D14 +error(0.006000449842759885) D12 D14 ^ D13 L0 +error(0.03377159558249396) D12 D20 +error(0.001338700097173321) D12 D20 ^ D13 L0 +error(0.001338700097173321) D12 ^ D4 +error(0.001338700097173321) D12 ^ D4 ^ D5 L0 +error(0.002673815958446298) D12 ^ D5 L0 +error(0.006000449842759885) D12 ^ D13 L0 +error(0.001338700097173321) D12 ^ D13 L0 ^ D5 L0 +error(0.007323084334358033) D13 D16 +error(0.002006705456917236) D13 D16 ^ D9 +error(0.0006697986788568588) D13 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D14 D17 +error(0.006000449842759885) D13 D16 ^ D17 +error(0.001338700097173321) D13 D16 ^ D17 ^ D9 +error(0.006000449842759885) D13 D18 +error(0.006000449842759885) D13 D18 ^ D14 D17 +error(0.02172723992082331) D13 D21 +error(0.001338700097173321) D13 D21 ^ D14 D17 +error(0.0006697986788568588) D13 D21 ^ D17 +error(0.0006697986788568588) D13 D21 ^ D17 ^ D20 +error(0.0006697986788568588) D13 D21 ^ D20 +error(0.002006705456917236) D13 D24 +error(0.002006705456917236) D13 D24 ^ D17 +error(0.0006697986788568588) D13 D24 ^ D17 ^ D20 +error(0.0006697986788568588) D13 D24 ^ D20 +error(0.01518923592907396) D13 L0 +error(0.002006705456917236) D13 L0 ^ D5 L0 +error(0.0006697986788568588) D13 L0 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D14 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D7 L0 +error(0.01388771881294946) D14 +error(0.008642177604111326) D14 D17 +error(0.0006697986788568588) D14 D17 ^ D10 +error(0.0006697986788568588) D14 D17 ^ D13 L0 +error(0.0006697986788568588) D14 D17 ^ D15 D18 +error(0.0006697986788568588) D14 D17 ^ D15 D21 +error(0.0006697986788568588) D14 D17 ^ D18 +error(0.002006705456917236) D14 D17 ^ D18 D21 +error(0.0006697986788568588) D14 D17 ^ D18 ^ D10 +error(0.0006697986788568588) D14 D17 ^ D21 L0 +error(0.0006697986788568588) D14 D17 ^ D21 L0 ^ D13 L0 +error(0.00334003280051021) D14 D20 +error(0.002006705456917236) D14 D20 ^ D13 L0 +error(0.002006705456917236) D14 D20 ^ D21 L0 +error(0.0006697986788568588) D14 D20 ^ D21 L0 ^ D13 L0 +error(0.03439615392114274) D14 D22 +error(0.0006697986788568588) D14 D22 ^ D15 D18 +error(0.0006697986788568588) D14 D22 ^ D15 D21 +error(0.0006697986788568588) D14 D22 ^ D18 D21 +error(0.001338700097173321) D14 D22 ^ D21 L0 +error(0.002006705456917236) D14 ^ D6 +error(0.0006697986788568588) D14 ^ D6 ^ D7 L0 +error(0.002006705456917236) D14 ^ D7 L0 +error(0.0006697986788568588) D14 ^ D11 +error(0.005337801668914704) D14 ^ D15 L0 +error(0.001338700097173321) D14 ^ D15 L0 ^ D7 L0 +error(0.007323084334358033) D15 D18 +error(0.006000449842759885) D15 D18 ^ D14 +error(0.0006697986788568588) D15 D18 ^ D17 D22 +error(0.0006697986788568588) D15 D18 ^ D19 +error(0.002006705456917236) D15 D18 ^ D22 +error(0.001338700097173321) D15 D18 ^ D22 ^ D14 +error(0.0006697986788568588) D15 D18 ^ D22 ^ D19 +error(0.0006697986788568588) D15 D21 +error(0.0006697986788568588) D15 D21 ^ D17 D22 +error(0.02108568757332526) D15 D23 +error(0.001338700097173321) D15 D23 ^ D22 +error(0.002006705456917236) D15 D26 +error(0.0006697986788568588) D15 D26 ^ D19 +error(0.002006705456917236) D15 D26 ^ D22 +error(0.0006697986788568588) D15 D26 ^ D22 ^ D19 +error(0.006662210334862288) D15 L0 +error(0.001338700097173321) D15 L0 ^ D7 L0 +error(0.006662210334862289) D16 +error(0.02108568757332526) D16 D24 +error(0.001338700097173321) D16 D24 ^ D17 +error(0.001338700097173321) D16 ^ D8 +error(0.0006697986788568588) D16 ^ D10 +error(0.01388771881294946) D17 +error(0.006000449842759885) D17 D19 +error(0.006000449842759885) D17 D19 ^ D18 +error(0.0006697986788568588) D17 D20 +error(0.0006697986788568588) D17 D20 ^ D13 L0 +error(0.0006697986788568588) D17 D20 ^ D21 L0 +error(0.0006697986788568588) D17 D20 ^ D21 L0 ^ D13 L0 +error(0.001338700097173321) D17 D22 +error(0.001338700097173321) D17 D22 ^ D18 D21 +error(0.0006697986788568588) D17 D22 ^ D18 D24 +error(0.0006697986788568588) D17 D22 ^ D21 D24 +error(0.03439615392114274) D17 D25 +error(0.001338700097173321) D17 D25 ^ D18 +error(0.0006697986788568588) D17 D25 ^ D18 D21 +error(0.0006697986788568588) D17 D25 ^ D18 D24 +error(0.0006697986788568588) D17 D25 ^ D21 D24 +error(0.002006705456917236) D17 ^ D9 +error(0.0006697986788568588) D17 ^ D9 ^ D10 +error(0.0006697986788568588) D17 ^ D9 ^ D16 +error(0.0006697986788568588) D17 ^ D9 ^ D16 ^ D10 +error(0.0006697986788568588) D17 ^ D10 +error(0.005337801668914705) D17 ^ D16 +error(0.0006697986788568588) D17 ^ D16 ^ D10 +error(0.0006697986788568588) D17 ^ D18 +error(0.0006697986788568588) D17 ^ D20 +error(0.002006705456917236) D17 ^ D24 +error(0.001338700097173321) D17 ^ D24 ^ D16 +error(0.0006697986788568588) D17 ^ D24 ^ D18 +error(0.01518923592907396) D18 +error(0.004005357180252828) D18 D21 +error(0.002006705456917236) D18 D21 ^ D22 D25 +error(0.0006697986788568588) D18 D24 +error(0.0006697986788568588) D18 D24 ^ D22 D25 +error(0.02172723992082331) D18 D26 +error(0.0006697986788568588) D18 D26 ^ D19 +error(0.0006697986788568588) D18 D26 ^ D22 +error(0.001338700097173321) D18 D26 ^ D22 D25 +error(0.0006697986788568588) D18 D26 ^ D22 ^ D19 +error(0.002006705456917236) D18 ^ D10 +error(0.001338700097173321) D18 ^ D11 +error(0.001338700097173321) D18 ^ D19 +error(0.001338700097173321) D18 ^ D19 ^ D11 +error(0.007983073028790271) D19 +error(0.0006697986788568588) D19 D22 +error(0.0006697986788568588) D19 D22 ^ D18 +error(0.0006697986788568588) D19 D22 ^ D26 +error(0.0006697986788568588) D19 D22 ^ D26 ^ D18 +error(0.00334003280051021) D19 D25 +error(0.002006705456917236) D19 D25 ^ D18 +error(0.002006705456917236) D19 D25 ^ D26 +error(0.0006697986788568588) D19 D25 ^ D26 ^ D18 +error(0.03377159558249396) D19 D27 +error(0.001338700097173321) D19 D27 ^ D26 +error(0.001338700097173321) D19 ^ D11 +error(0.004674264622595529) D19 ^ D18 +error(0.001338700097173321) D19 ^ D26 +error(0.001338700097173321) D19 ^ D26 ^ D18 +error(0.007983073028790271) D20 +error(0.006000449842759885) D20 D22 +error(0.006000449842759885) D20 D22 ^ D21 L0 +error(0.03377159558249396) D20 D28 +error(0.001338700097173321) D20 D28 ^ D21 L0 +error(0.001338700097173321) D20 ^ D12 +error(0.001338700097173321) D20 ^ D12 ^ D13 L0 +error(0.002673815958446298) D20 ^ D13 L0 +error(0.006000449842759885) D20 ^ D21 L0 +error(0.001338700097173321) D20 ^ D21 L0 ^ D13 L0 +error(0.007323084334358033) D21 D24 +error(0.002006705456917236) D21 D24 ^ D17 +error(0.0006697986788568588) D21 D24 ^ D17 ^ D20 +error(0.0006697986788568588) D21 D24 ^ D20 +error(0.0006697986788568588) D21 D24 ^ D22 D25 +error(0.006000449842759885) D21 D24 ^ D25 +error(0.001338700097173321) D21 D24 ^ D25 ^ D17 +error(0.006000449842759885) D21 D26 +error(0.006000449842759885) D21 D26 ^ D22 D25 +error(0.02172723992082331) D21 D29 +error(0.001338700097173321) D21 D29 ^ D22 D25 +error(0.0006697986788568588) D21 D29 ^ D25 +error(0.0006697986788568588) D21 D29 ^ D25 ^ D28 +error(0.0006697986788568588) D21 D29 ^ D28 +error(0.002006705456917236) D21 D32 +error(0.002006705456917236) D21 D32 ^ D25 +error(0.0006697986788568588) D21 D32 ^ D25 ^ D28 +error(0.0006697986788568588) D21 D32 ^ D28 +error(0.01518923592907396) D21 L0 +error(0.002006705456917236) D21 L0 ^ D13 L0 +error(0.0006697986788568588) D21 L0 ^ D14 +error(0.0006697986788568588) D21 L0 ^ D14 ^ D15 L0 +error(0.0006697986788568588) D21 L0 ^ D15 L0 +error(0.0006697986788568588) D21 L0 ^ D22 +error(0.0006697986788568588) D21 L0 ^ D22 ^ D14 +error(0.0006697986788568588) D21 L0 ^ D22 ^ D14 ^ D15 L0 +error(0.0006697986788568588) D21 L0 ^ D22 ^ D15 L0 +error(0.01388771881294946) D22 +error(0.008642177604111326) D22 D25 +error(0.0006697986788568588) D22 D25 ^ D18 +error(0.0006697986788568588) D22 D25 ^ D21 L0 +error(0.0006697986788568588) D22 D25 ^ D23 D26 +error(0.0006697986788568588) D22 D25 ^ D23 D29 +error(0.0006697986788568588) D22 D25 ^ D26 +error(0.002006705456917236) D22 D25 ^ D26 D29 +error(0.0006697986788568588) D22 D25 ^ D26 ^ D18 +error(0.0006697986788568588) D22 D25 ^ D29 L0 +error(0.0006697986788568588) D22 D25 ^ D29 L0 ^ D21 L0 +error(0.00334003280051021) D22 D28 +error(0.002006705456917236) D22 D28 ^ D21 L0 +error(0.002006705456917236) D22 D28 ^ D29 L0 +error(0.0006697986788568588) D22 D28 ^ D29 L0 ^ D21 L0 +error(0.03439615392114274) D22 D30 +error(0.0006697986788568588) D22 D30 ^ D23 D26 +error(0.0006697986788568588) D22 D30 ^ D23 D29 +error(0.0006697986788568588) D22 D30 ^ D26 D29 +error(0.001338700097173321) D22 D30 ^ D29 L0 +error(0.002006705456917236) D22 ^ D14 +error(0.0006697986788568588) D22 ^ D14 ^ D15 L0 +error(0.002006705456917236) D22 ^ D15 L0 +error(0.0006697986788568588) D22 ^ D19 +error(0.005337801668914704) D22 ^ D23 L0 +error(0.001338700097173321) D22 ^ D23 L0 ^ D15 L0 +error(0.007323084334358033) D23 D26 +error(0.006000449842759885) D23 D26 ^ D22 +error(0.0006697986788568588) D23 D26 ^ D25 D30 +error(0.0006697986788568588) D23 D26 ^ D27 +error(0.002006705456917236) D23 D26 ^ D30 +error(0.001338700097173321) D23 D26 ^ D30 ^ D22 +error(0.0006697986788568588) D23 D26 ^ D30 ^ D27 +error(0.0006697986788568588) D23 D29 +error(0.0006697986788568588) D23 D29 ^ D25 D30 +error(0.02108568757332526) D23 D31 +error(0.001338700097173321) D23 D31 ^ D30 +error(0.002006705456917236) D23 D34 +error(0.0006697986788568588) D23 D34 ^ D27 +error(0.002006705456917236) D23 D34 ^ D30 +error(0.0006697986788568588) D23 D34 ^ D30 ^ D27 +error(0.006662210334862288) D23 L0 +error(0.001338700097173321) D23 L0 ^ D15 L0 +error(0.006662210334862289) D24 +error(0.02108568757332526) D24 D32 +error(0.001338700097173321) D24 D32 ^ D25 +error(0.001338700097173321) D24 ^ D16 +error(0.0006697986788568588) D24 ^ D18 +error(0.01388771881294946) D25 +error(0.006000449842759885) D25 D27 +error(0.006000449842759885) D25 D27 ^ D26 +error(0.0006697986788568588) D25 D28 +error(0.0006697986788568588) D25 D28 ^ D21 L0 +error(0.0006697986788568588) D25 D28 ^ D29 L0 +error(0.0006697986788568588) D25 D28 ^ D29 L0 ^ D21 L0 +error(0.001338700097173321) D25 D30 +error(0.001338700097173321) D25 D30 ^ D26 D29 +error(0.0006697986788568588) D25 D30 ^ D26 D32 +error(0.0006697986788568588) D25 D30 ^ D29 D32 +error(0.03439615392114274) D25 D33 +error(0.001338700097173321) D25 D33 ^ D26 +error(0.0006697986788568588) D25 D33 ^ D26 D29 +error(0.0006697986788568588) D25 D33 ^ D26 D32 +error(0.0006697986788568588) D25 D33 ^ D29 D32 +error(0.002006705456917236) D25 ^ D17 +error(0.0006697986788568588) D25 ^ D17 ^ D18 +error(0.0006697986788568588) D25 ^ D17 ^ D24 +error(0.0006697986788568588) D25 ^ D17 ^ D24 ^ D18 +error(0.0006697986788568588) D25 ^ D18 +error(0.005337801668914705) D25 ^ D24 +error(0.0006697986788568588) D25 ^ D24 ^ D18 +error(0.0006697986788568588) D25 ^ D26 +error(0.0006697986788568588) D25 ^ D28 +error(0.002006705456917236) D25 ^ D32 +error(0.001338700097173321) D25 ^ D32 ^ D24 +error(0.0006697986788568588) D25 ^ D32 ^ D26 +error(0.01518923592907396) D26 +error(0.004005357180252828) D26 D29 +error(0.002006705456917236) D26 D29 ^ D30 D33 +error(0.0006697986788568588) D26 D32 +error(0.0006697986788568588) D26 D32 ^ D30 D33 +error(0.02172723992082331) D26 D34 +error(0.0006697986788568588) D26 D34 ^ D27 +error(0.0006697986788568588) D26 D34 ^ D30 +error(0.001338700097173321) D26 D34 ^ D30 D33 +error(0.0006697986788568588) D26 D34 ^ D30 ^ D27 +error(0.002006705456917236) D26 ^ D18 +error(0.001338700097173321) D26 ^ D19 +error(0.001338700097173321) D26 ^ D27 +error(0.001338700097173321) D26 ^ D27 ^ D19 +error(0.007983073028790271) D27 +error(0.0006697986788568588) D27 D30 +error(0.0006697986788568588) D27 D30 ^ D26 +error(0.0006697986788568588) D27 D30 ^ D34 +error(0.0006697986788568588) D27 D30 ^ D34 ^ D26 +error(0.00334003280051021) D27 D33 +error(0.002006705456917236) D27 D33 ^ D26 +error(0.002006705456917236) D27 D33 ^ D34 +error(0.0006697986788568588) D27 D33 ^ D34 ^ D26 +error(0.03377159558249396) D27 D35 +error(0.001338700097173321) D27 D35 ^ D34 +error(0.001338700097173321) D27 ^ D19 +error(0.004674264622595529) D27 ^ D26 +error(0.001338700097173321) D27 ^ D34 +error(0.001338700097173321) D27 ^ D34 ^ D26 +error(0.04244381618308433) D28 +error(0.004674264622595528) D28 D30 +error(0.004674264622595528) D28 D30 ^ D29 L0 +error(0.001338700097173321) D28 ^ D20 +error(0.001338700097173321) D28 ^ D20 ^ D21 L0 +error(0.002673815958446298) D28 ^ D21 L0 +error(0.008642177604111326) D28 ^ D29 L0 +error(0.001338700097173321) D28 ^ D29 L0 ^ D21 L0 +error(0.001338700097173321) D28 ^ D29 L0 ^ D30 +error(0.001338700097173321) D28 ^ D30 +error(0.007323084334358033) D29 D32 +error(0.002006705456917236) D29 D32 ^ D25 +error(0.0006697986788568588) D29 D32 ^ D25 ^ D28 +error(0.0006697986788568588) D29 D32 ^ D28 +error(0.0006697986788568588) D29 D32 ^ D30 D33 +error(0.006000449842759885) D29 D32 ^ D33 +error(0.001338700097173321) D29 D32 ^ D33 ^ D25 +error(0.006000449842759885) D29 D34 +error(0.006000449842759885) D29 D34 ^ D30 D33 +error(0.002673815958446298) D29 D36 +error(0.002673815958446298) D29 D36 ^ D33 +error(0.02236793284649183) D29 D37 +error(0.001338700097173321) D29 D37 ^ D30 D33 +error(0.001338700097173321) D29 D37 ^ D33 +error(0.01778182544467273) D29 L0 +error(0.002006705456917236) D29 L0 ^ D21 L0 +error(0.0006697986788568588) D29 L0 ^ D22 +error(0.0006697986788568588) D29 L0 ^ D22 ^ D23 L0 +error(0.0006697986788568588) D29 L0 ^ D23 L0 +error(0.002006705456917236) D29 L0 ^ D30 +error(0.0006697986788568588) D29 L0 ^ D30 ^ D22 +error(0.0006697986788568588) D29 L0 ^ D30 ^ D22 ^ D23 L0 +error(0.0006697986788568588) D29 L0 ^ D30 ^ D23 L0 +error(0.05215700045821762) D30 +error(0.007323084334358033) D30 D33 +error(0.0006697986788568588) D30 D33 ^ D26 +error(0.0006697986788568588) D30 D33 ^ D34 +error(0.001338700097173321) D30 D33 ^ D34 D37 +error(0.0006697986788568588) D30 D33 ^ D34 ^ D26 +error(0.002006705456917236) D30 ^ D22 +error(0.0006697986788568588) D30 ^ D22 ^ D23 L0 +error(0.002006705456917236) D30 ^ D23 L0 +error(0.0006697986788568588) D30 ^ D27 +error(0.0006697986788568588) D30 ^ D29 L0 +error(0.006000449842759885) D30 ^ D31 L0 +error(0.001338700097173321) D30 ^ D31 L0 ^ D23 L0 +error(0.001338700097173321) D30 ^ D33 +error(0.0006697986788568588) D30 ^ D33 ^ D29 L0 +error(0.004669790293214321) D30 ^ D37 L0 +error(0.0006697986788568588) D30 ^ D37 L0 ^ D29 L0 +error(0.001338700097173321) D30 ^ D37 L0 ^ D31 L0 +error(0.0006697986788568588) D30 ^ D37 L0 ^ D33 +error(0.0006697986788568588) D30 ^ D37 L0 ^ D33 ^ D29 L0 +error(0.009300399244684827) D31 D34 +error(0.007983073028790271) D31 D34 ^ D30 +error(0.0006697986788568588) D31 D34 ^ D30 ^ D33 +error(0.0006697986788568588) D31 D34 ^ D33 +error(0.001338700097173321) D31 D34 ^ D35 +error(0.0006697986788568588) D31 D37 +error(0.0006697986788568588) D31 D37 ^ D30 +error(0.0006697986788568588) D31 D37 ^ D30 ^ D33 +error(0.0006697986788568588) D31 D37 ^ D33 +error(0.004005357180252828) D31 D38 +error(0.001338700097173321) D31 D38 ^ D35 +error(0.02236793284649183) D31 D39 +error(0.008642177604111326) D31 L0 +error(0.001338700097173321) D31 L0 ^ D23 L0 +error(0.006662210334862289) D32 +error(0.02108568757332526) D32 D36 +error(0.001338700097173321) D32 D36 ^ D33 +error(0.001338700097173321) D32 ^ D24 +error(0.0006697986788568588) D32 ^ D26 +error(0.05155626641762741) D33 +error(0.004674264622595528) D33 D35 +error(0.004674264622595528) D33 D35 ^ D34 +error(0.002006705456917236) D33 ^ D25 +error(0.0006697986788568588) D33 ^ D25 ^ D26 +error(0.0006697986788568588) D33 ^ D25 ^ D32 +error(0.0006697986788568588) D33 ^ D25 ^ D32 ^ D26 +error(0.0006697986788568588) D33 ^ D26 +error(0.0006697986788568588) D33 ^ D29 L0 +error(0.005337801668914705) D33 ^ D32 +error(0.0006697986788568588) D33 ^ D32 ^ D26 +error(0.002673815958446298) D33 ^ D34 +error(0.001338700097173321) D33 ^ D34 ^ D35 +error(0.001338700097173321) D33 ^ D35 +error(0.002673815958446298) D33 ^ D36 +error(0.001338700097173321) D33 ^ D36 ^ D32 +error(0.001338700097173321) D33 ^ D36 ^ D34 +error(0.01648726836301881) D34 +error(0.001338700097173321) D34 D36 +error(0.001338700097173321) D34 D36 ^ D33 +error(0.005995987492949032) D34 D37 +error(0.0006697986788568588) D34 D37 ^ D30 +error(0.0006697986788568588) D34 D37 ^ D30 ^ D33 +error(0.002006705456917236) D34 D37 ^ D33 +error(0.02364674503591482) D34 D38 +error(0.001338700097173321) D34 D38 ^ D35 +error(0.002006705456917236) D34 ^ D26 +error(0.001338700097173321) D34 ^ D27 +error(0.002673815958446298) D34 ^ D35 +error(0.001338700097173321) D34 ^ D35 ^ D27 +error(0.04671719903466118) D35 +error(0.001338700097173321) D35 ^ D27 +error(0.006000449842759885) D35 ^ D34 +error(0.00797862858822285) D35 ^ D38 +error(0.002673815958446298) D35 ^ D38 ^ D34 +error(0.01262033963927737) D36 +error(0.01522666666666665) D36 D37 +error(0.005333333333333312) D36 D37 ^ D33 +error(0.001338700097173321) D36 ^ D32 +error(0.001338700097173321) D36 ^ D34 +error(0.01262033963927737) D37 D38 +error(0.02682881602833452) D37 L0 +error(0.00334003280051021) D37 L0 ^ D29 L0 +error(0.001338700097173321) D37 L0 ^ D31 L0 +error(0.0006697986788568588) D37 L0 ^ D33 +error(0.0006697986788568588) D37 L0 ^ D33 ^ D29 L0 +error(0.02746267489612923) D38 +error(0.01262033963927737) D38 D39 +error(0.002673815958446298) D38 ^ D34 +error(0.01262033963927737) D39 L0 +error(0.002673815958446298) D39 L0 ^ D31 L0 +detector(0, 4, 0) D0 +detector(2, 2, 0) D1 +detector(4, 4, 0) D2 +detector(6, 2, 0) D3 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D4 +detector(2, 2, 0) D5 +detector(4, 2, 0) D6 +detector(6, 2, 0) D7 +detector(0, 4, 0) D8 +detector(2, 4, 0) D9 +detector(4, 4, 0) D10 +detector(4, 6, 0) D11 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D12 +detector(2, 2, 0) D13 +detector(4, 2, 0) D14 +detector(6, 2, 0) D15 +detector(0, 4, 0) D16 +detector(2, 4, 0) D17 +detector(4, 4, 0) D18 +detector(4, 6, 0) D19 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D20 +detector(2, 2, 0) D21 +detector(4, 2, 0) D22 +detector(6, 2, 0) D23 +detector(0, 4, 0) D24 +detector(2, 4, 0) D25 +detector(4, 4, 0) D26 +detector(4, 6, 0) D27 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D28 +detector(2, 2, 0) D29 +detector(4, 2, 0) D30 +detector(6, 2, 0) D31 +detector(0, 4, 0) D32 +detector(2, 4, 0) D33 +detector(4, 4, 0) D34 +detector(4, 6, 0) D35 +detector(0, 4, 1) D36 +detector(2, 2, 1) D37 +detector(4, 4, 1) D38 +detector(6, 2, 1) D39 \ No newline at end of file diff --git a/datasets/dems/sc_d3_r7_p0010_z.dem b/datasets/dems/sc_d3_r7_p0010_z.dem new file mode 100644 index 0000000..a11ee9c --- /dev/null +++ b/datasets/dems/sc_d3_r7_p0010_z.dem @@ -0,0 +1,675 @@ +error(0.01911873511075362) D0 +error(0.01911873511075362) D0 D1 +error(0.02236793284649183) D0 D8 +error(0.01911873511075362) D1 D2 +error(0.02364674503591482) D1 D5 +error(0.001338700097173321) D1 D5 ^ D4 +error(0.004005357180252828) D1 D8 +error(0.001338700097173321) D1 D8 ^ D4 +error(0.03997966359665833) D1 L0 +error(0.03936259494598386) D2 +error(0.02169031111111104) D2 D3 +error(0.005333333333333312) D2 D3 ^ D6 +error(0.005995987492949032) D2 D5 +error(0.002006705456917236) D2 D5 ^ D6 +error(0.001338700097173321) D2 D5 ^ D6 D9 +error(0.0006697986788568588) D2 D5 ^ D9 +error(0.0006697986788568588) D2 D5 ^ D9 ^ D6 +error(0.0006697986788568588) D2 D8 +error(0.0006697986788568588) D2 D8 ^ D6 +error(0.0006697986788568588) D2 D8 ^ D9 +error(0.0006697986788568588) D2 D8 ^ D9 ^ D6 +error(0.02236793284649183) D2 D10 +error(0.001338700097173321) D2 D10 ^ D6 +error(0.001338700097173321) D2 D10 ^ D6 D9 +error(0.001338700097173321) D3 D5 +error(0.001338700097173321) D3 D5 ^ D6 +error(0.02108568757332526) D3 D7 +error(0.001338700097173321) D3 D7 ^ D6 +error(0.002673815958446298) D3 D10 +error(0.002673815958446298) D3 D10 ^ D6 +error(0.01911873511075362) D3 L0 +error(0.04243968303002851) D4 +error(0.01) D4 D12 +error(0.00797862858822285) D4 ^ D1 L0 +error(0.004005357180252828) D4 ^ D5 L0 +error(0.002673815958446298) D4 ^ D5 L0 ^ D1 L0 +error(0.004669790293214321) D5 D8 +error(0.001338700097173321) D5 D8 ^ D4 +error(0.0006697986788568588) D5 D8 ^ D6 +error(0.00334003280051021) D5 D8 ^ D9 +error(0.0006697986788568588) D5 D8 ^ D9 ^ D6 +error(0.001338700097173321) D5 D10 +error(0.001338700097173321) D5 D10 ^ D6 D9 +error(0.01) D5 D13 +error(0.005333333333333312) D5 L0 +error(0.002673815958446298) D5 L0 ^ D1 L0 +error(0.001338700097173321) D5 L0 ^ D3 L0 +error(0.04366475511160921) D6 +error(0.001338700097173321) D6 D9 +error(0.01) D6 D14 +error(0.0006697986788568588) D6 ^ D2 +error(0.002673815958446298) D6 ^ D3 L0 +error(0.001338700097173321) D6 ^ D4 +error(0.001338700097173321) D6 ^ D4 ^ D5 L0 +error(0.002673815958446298) D6 ^ D5 L0 +error(0.001338700097173321) D6 ^ D5 L0 ^ D3 L0 +error(0.001338700097173321) D6 ^ D7 L0 +error(0.001338700097173321) D6 ^ D7 L0 ^ D3 L0 +error(0.001338700097173321) D7 D10 +error(0.001338700097173321) D7 D10 ^ D6 +error(0.01) D7 D15 +error(0.001338700097173321) D7 L0 +error(0.001338700097173321) D7 L0 ^ D3 L0 +error(0.004005357180252828) D8 +error(0.01) D8 D16 +error(0.002673815958446298) D8 ^ D0 +error(0.001338700097173321) D8 ^ D2 +error(0.04121132213474804) D9 +error(0.01) D9 D17 +error(0.004669790293214321) D9 ^ D2 +error(0.001338700097173321) D9 ^ D6 +error(0.0006697986788568588) D9 ^ D6 ^ D2 +error(0.001338700097173321) D9 ^ D8 +error(0.001338700097173321) D9 ^ D8 ^ D2 +error(0.002006705456917236) D9 ^ D10 +error(0.0006697986788568588) D9 ^ D10 ^ D2 +error(0.0006697986788568588) D9 ^ D10 ^ D6 +error(0.0006697986788568588) D9 ^ D10 ^ D6 ^ D2 +error(0.007318633932043431) D10 +error(0.01) D10 D18 +error(0.00334003280051021) D10 ^ D2 +error(0.0006697986788568588) D10 ^ D6 +error(0.0006697986788568588) D10 ^ D6 ^ D2 +error(0.03626481347851893) D11 +error(0.01) D11 D19 +error(0.001338700097173321) D11 ^ D9 +error(0.001338700097173321) D11 ^ D9 ^ D10 +error(0.004005357180252828) D11 ^ D10 +detector(0, 4, 0) D0 +detector(2, 2, 0) D1 +detector(4, 4, 0) D2 +detector(6, 2, 0) D3 +repeat 2 { + error(0.004674264622595529) D4 + error(0.004674264622595529) D4 D6 + error(0.004674264622595529) D4 D6 ^ D5 L0 + error(0.02425673018621833) D4 D12 + error(0.001338700097173321) D4 D12 ^ D5 L0 + error(0.004674264622595529) D4 ^ D5 L0 + error(0.004674264622595529) D5 D8 + error(0.004674264622595529) D5 D8 ^ D9 + error(0.004674264622595529) D5 D10 + error(0.004674264622595529) D5 D10 ^ D6 D9 + error(0.01196657134777889) D5 D13 + error(0.001338700097173321) D5 D13 ^ D6 D9 + error(0.0006697986788568588) D5 D13 ^ D9 + error(0.0006697986788568588) D5 D13 ^ D9 ^ D12 + error(0.0006697986788568588) D5 D13 ^ D12 + error(0.002006705456917236) D5 D16 + error(0.002006705456917236) D5 D16 ^ D9 + error(0.0006697986788568588) D5 D16 ^ D9 ^ D12 + error(0.0006697986788568588) D5 D16 ^ D12 + error(0.01127419308930474) D5 L0 + error(0.008646616050824953) D6 + error(0.006000449842759885) D6 D9 + error(0.0006697986788568588) D6 D9 ^ D5 L0 + error(0.0006697986788568588) D6 D9 ^ D7 D10 + error(0.0006697986788568588) D6 D9 ^ D7 D13 + error(0.002006705456917236) D6 D9 ^ D10 D13 + error(0.0006697986788568588) D6 D9 ^ D13 L0 + error(0.0006697986788568588) D6 D9 ^ D13 L0 ^ D5 L0 + error(0.00334003280051021) D6 D12 + error(0.002006705456917236) D6 D12 ^ D5 L0 + error(0.002006705456917236) D6 D12 ^ D13 L0 + error(0.0006697986788568588) D6 D12 ^ D13 L0 ^ D5 L0 + error(0.02489403461341096) D6 D14 + error(0.0006697986788568588) D6 D14 ^ D7 D10 + error(0.0006697986788568588) D6 D14 ^ D7 D13 + error(0.0006697986788568588) D6 D14 ^ D10 D13 + error(0.001338700097173321) D6 D14 ^ D13 L0 + error(0.004009837511473901) D6 ^ D7 L0 + error(0.006000449842759885) D7 D10 + error(0.004674264622595529) D7 D10 ^ D6 + error(0.0006697986788568588) D7 D10 ^ D9 D14 + error(0.0006697986788568588) D7 D10 ^ D11 + error(0.002006705456917236) D7 D10 ^ D14 + error(0.001338700097173321) D7 D10 ^ D14 ^ D6 + error(0.0006697986788568588) D7 D10 ^ D14 ^ D11 + error(0.0006697986788568588) D7 D13 + error(0.0006697986788568588) D7 D13 ^ D9 D14 + error(0.01131192609522986) D7 D15 + error(0.001338700097173321) D7 D15 ^ D14 + error(0.002006705456917236) D7 D18 + error(0.0006697986788568588) D7 D18 ^ D11 + error(0.002006705456917236) D7 D18 ^ D14 + error(0.0006697986788568588) D7 D18 ^ D14 ^ D11 + error(0.005337801668914704) D7 L0 + error(0.004674264622595529) D8 + error(0.01131192609522986) D8 D16 + error(0.001338700097173321) D8 D16 ^ D9 + error(0.01192888888888882) D9 + error(0.004674264622595529) D9 D11 + error(0.004674264622595529) D9 D11 ^ D10 + error(0.0006697986788568588) D9 D12 + error(0.0006697986788568588) D9 D12 ^ D5 L0 + error(0.0006697986788568588) D9 D12 ^ D13 L0 + error(0.0006697986788568588) D9 D12 ^ D13 L0 ^ D5 L0 + error(0.001338700097173321) D9 D14 + error(0.001338700097173321) D9 D14 ^ D10 D13 + error(0.0006697986788568588) D9 D14 ^ D10 D16 + error(0.0006697986788568588) D9 D14 ^ D13 D16 + error(0.02489403461341096) D9 D17 + error(0.001338700097173321) D9 D17 ^ D10 + error(0.0006697986788568588) D9 D17 ^ D10 D13 + error(0.0006697986788568588) D9 D17 ^ D10 D16 + error(0.0006697986788568588) D9 D17 ^ D13 D16 + error(0.004674264622595529) D9 ^ D8 + error(0.0006697986788568588) D9 ^ D10 + error(0.0006697986788568588) D9 ^ D12 + error(0.002006705456917236) D9 ^ D16 + error(0.001338700097173321) D9 ^ D16 ^ D8 + error(0.0006697986788568588) D9 ^ D16 ^ D10 + error(0.01061861908451607) D10 + error(0.004005357180252828) D10 D13 + error(0.002006705456917236) D10 D13 ^ D14 D17 + error(0.0006697986788568588) D10 D16 + error(0.0006697986788568588) D10 D16 ^ D14 D17 + error(0.01196657134777889) D10 D18 + error(0.0006697986788568588) D10 D18 ^ D11 + error(0.0006697986788568588) D10 D18 ^ D14 + error(0.001338700097173321) D10 D18 ^ D14 D17 + error(0.0006697986788568588) D10 D18 ^ D14 ^ D11 + error(0.006662210334862289) D11 + error(0.0006697986788568588) D11 D14 + error(0.0006697986788568588) D11 D14 ^ D10 + error(0.0006697986788568588) D11 D14 ^ D18 + error(0.0006697986788568588) D11 D14 ^ D18 ^ D10 + error(0.00334003280051021) D11 D17 + error(0.002006705456917236) D11 D17 ^ D10 + error(0.002006705456917236) D11 D17 ^ D18 + error(0.0006697986788568588) D11 D17 ^ D18 ^ D10 + error(0.02425673018621833) D11 D19 + error(0.001338700097173321) D11 D19 ^ D18 + error(0.004674264622595529) D11 ^ D10 + error(0.001338700097173321) D11 ^ D18 + error(0.001338700097173321) D11 ^ D18 ^ D10 + error(0.007983073028790271) D12 + error(0.006000449842759885) D12 D14 + error(0.006000449842759885) D12 D14 ^ D13 L0 + error(0.03377159558249396) D12 D20 + error(0.001338700097173321) D12 D20 ^ D13 L0 + error(0.001338700097173321) D12 ^ D4 + error(0.001338700097173321) D12 ^ D4 ^ D5 L0 + error(0.002673815958446298) D12 ^ D5 L0 + error(0.006000449842759885) D12 ^ D13 L0 + error(0.001338700097173321) D12 ^ D13 L0 ^ D5 L0 + error(0.007323084334358033) D13 D16 + error(0.002006705456917236) D13 D16 ^ D9 + error(0.0006697986788568588) D13 D16 ^ D9 ^ D12 + error(0.0006697986788568588) D13 D16 ^ D12 + error(0.0006697986788568588) D13 D16 ^ D14 D17 + error(0.006000449842759885) D13 D16 ^ D17 + error(0.001338700097173321) D13 D16 ^ D17 ^ D9 + error(0.006000449842759885) D13 D18 + error(0.006000449842759885) D13 D18 ^ D14 D17 + error(0.02172723992082331) D13 D21 + error(0.001338700097173321) D13 D21 ^ D14 D17 + error(0.0006697986788568588) D13 D21 ^ D17 + error(0.0006697986788568588) D13 D21 ^ D17 ^ D20 + error(0.0006697986788568588) D13 D21 ^ D20 + error(0.002006705456917236) D13 D24 + error(0.002006705456917236) D13 D24 ^ D17 + error(0.0006697986788568588) D13 D24 ^ D17 ^ D20 + error(0.0006697986788568588) D13 D24 ^ D20 + error(0.01518923592907396) D13 L0 + error(0.002006705456917236) D13 L0 ^ D5 L0 + error(0.0006697986788568588) D13 L0 ^ D6 + error(0.0006697986788568588) D13 L0 ^ D6 ^ D7 L0 + error(0.0006697986788568588) D13 L0 ^ D7 L0 + error(0.0006697986788568588) D13 L0 ^ D14 + error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 + error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 ^ D7 L0 + error(0.0006697986788568588) D13 L0 ^ D14 ^ D7 L0 + error(0.01388771881294946) D14 + error(0.008642177604111326) D14 D17 + error(0.0006697986788568588) D14 D17 ^ D10 + error(0.0006697986788568588) D14 D17 ^ D13 L0 + error(0.0006697986788568588) D14 D17 ^ D15 D18 + error(0.0006697986788568588) D14 D17 ^ D15 D21 + error(0.0006697986788568588) D14 D17 ^ D18 + error(0.002006705456917236) D14 D17 ^ D18 D21 + error(0.0006697986788568588) D14 D17 ^ D18 ^ D10 + error(0.0006697986788568588) D14 D17 ^ D21 L0 + error(0.0006697986788568588) D14 D17 ^ D21 L0 ^ D13 L0 + error(0.00334003280051021) D14 D20 + error(0.002006705456917236) D14 D20 ^ D13 L0 + error(0.002006705456917236) D14 D20 ^ D21 L0 + error(0.0006697986788568588) D14 D20 ^ D21 L0 ^ D13 L0 + error(0.03439615392114274) D14 D22 + error(0.0006697986788568588) D14 D22 ^ D15 D18 + error(0.0006697986788568588) D14 D22 ^ D15 D21 + error(0.0006697986788568588) D14 D22 ^ D18 D21 + error(0.001338700097173321) D14 D22 ^ D21 L0 + error(0.002006705456917236) D14 ^ D6 + error(0.0006697986788568588) D14 ^ D6 ^ D7 L0 + error(0.002006705456917236) D14 ^ D7 L0 + error(0.0006697986788568588) D14 ^ D11 + error(0.005337801668914704) D14 ^ D15 L0 + error(0.001338700097173321) D14 ^ D15 L0 ^ D7 L0 + error(0.007323084334358033) D15 D18 + error(0.006000449842759885) D15 D18 ^ D14 + error(0.0006697986788568588) D15 D18 ^ D17 D22 + error(0.0006697986788568588) D15 D18 ^ D19 + error(0.002006705456917236) D15 D18 ^ D22 + error(0.001338700097173321) D15 D18 ^ D22 ^ D14 + error(0.0006697986788568588) D15 D18 ^ D22 ^ D19 + error(0.0006697986788568588) D15 D21 + error(0.0006697986788568588) D15 D21 ^ D17 D22 + error(0.02108568757332526) D15 D23 + error(0.001338700097173321) D15 D23 ^ D22 + error(0.002006705456917236) D15 D26 + error(0.0006697986788568588) D15 D26 ^ D19 + error(0.002006705456917236) D15 D26 ^ D22 + error(0.0006697986788568588) D15 D26 ^ D22 ^ D19 + error(0.006662210334862288) D15 L0 + error(0.001338700097173321) D15 L0 ^ D7 L0 + error(0.006662210334862289) D16 + error(0.02108568757332526) D16 D24 + error(0.001338700097173321) D16 D24 ^ D17 + error(0.001338700097173321) D16 ^ D8 + error(0.0006697986788568588) D16 ^ D10 + error(0.01388771881294946) D17 + error(0.006000449842759885) D17 D19 + error(0.006000449842759885) D17 D19 ^ D18 + error(0.0006697986788568588) D17 D20 + error(0.0006697986788568588) D17 D20 ^ D13 L0 + error(0.0006697986788568588) D17 D20 ^ D21 L0 + error(0.0006697986788568588) D17 D20 ^ D21 L0 ^ D13 L0 + error(0.001338700097173321) D17 D22 + error(0.001338700097173321) D17 D22 ^ D18 D21 + error(0.0006697986788568588) D17 D22 ^ D18 D24 + error(0.0006697986788568588) D17 D22 ^ D21 D24 + error(0.03439615392114274) D17 D25 + error(0.001338700097173321) D17 D25 ^ D18 + error(0.0006697986788568588) D17 D25 ^ D18 D21 + error(0.0006697986788568588) D17 D25 ^ D18 D24 + error(0.0006697986788568588) D17 D25 ^ D21 D24 + error(0.002006705456917236) D17 ^ D9 + error(0.0006697986788568588) D17 ^ D9 ^ D10 + error(0.0006697986788568588) D17 ^ D9 ^ D16 + error(0.0006697986788568588) D17 ^ D9 ^ D16 ^ D10 + error(0.0006697986788568588) D17 ^ D10 + error(0.005337801668914705) D17 ^ D16 + error(0.0006697986788568588) D17 ^ D16 ^ D10 + error(0.0006697986788568588) D17 ^ D18 + error(0.0006697986788568588) D17 ^ D20 + error(0.002006705456917236) D17 ^ D24 + error(0.001338700097173321) D17 ^ D24 ^ D16 + error(0.0006697986788568588) D17 ^ D24 ^ D18 + error(0.01518923592907396) D18 + error(0.004005357180252828) D18 D21 + error(0.002006705456917236) D18 D21 ^ D22 D25 + error(0.0006697986788568588) D18 D24 + error(0.0006697986788568588) D18 D24 ^ D22 D25 + error(0.02172723992082331) D18 D26 + error(0.0006697986788568588) D18 D26 ^ D19 + error(0.0006697986788568588) D18 D26 ^ D22 + error(0.001338700097173321) D18 D26 ^ D22 D25 + error(0.0006697986788568588) D18 D26 ^ D22 ^ D19 + error(0.002006705456917236) D18 ^ D10 + error(0.001338700097173321) D18 ^ D11 + error(0.001338700097173321) D18 ^ D19 + error(0.001338700097173321) D18 ^ D19 ^ D11 + error(0.007983073028790271) D19 + error(0.0006697986788568588) D19 D22 + error(0.0006697986788568588) D19 D22 ^ D18 + error(0.0006697986788568588) D19 D22 ^ D26 + error(0.0006697986788568588) D19 D22 ^ D26 ^ D18 + error(0.00334003280051021) D19 D25 + error(0.002006705456917236) D19 D25 ^ D18 + error(0.002006705456917236) D19 D25 ^ D26 + error(0.0006697986788568588) D19 D25 ^ D26 ^ D18 + error(0.03377159558249396) D19 D27 + error(0.001338700097173321) D19 D27 ^ D26 + error(0.001338700097173321) D19 ^ D11 + error(0.004674264622595529) D19 ^ D18 + error(0.001338700097173321) D19 ^ D26 + error(0.001338700097173321) D19 ^ D26 ^ D18 + error(0.00334003280051021) D20 + error(0.001338700097173321) D20 D22 + error(0.001338700097173321) D20 D22 ^ D21 L0 + error(0.01) D20 D28 + error(0.001338700097173321) D20 ^ D12 + error(0.001338700097173321) D20 ^ D12 ^ D13 L0 + error(0.002673815958446298) D20 ^ D13 L0 + error(0.001338700097173321) D20 ^ D21 L0 + error(0.001338700097173321) D20 ^ D21 L0 ^ D13 L0 + error(0.002673815958446298) D21 D24 + error(0.002006705456917236) D21 D24 ^ D17 + error(0.0006697986788568588) D21 D24 ^ D17 ^ D20 + error(0.0006697986788568588) D21 D24 ^ D20 + error(0.0006697986788568588) D21 D24 ^ D22 D25 + error(0.001338700097173321) D21 D24 ^ D25 + error(0.001338700097173321) D21 D24 ^ D25 ^ D17 + error(0.001338700097173321) D21 D26 + error(0.001338700097173321) D21 D26 ^ D22 D25 + error(0.01) D21 D29 + error(0.004005357180252828) D21 L0 + error(0.002006705456917236) D21 L0 ^ D13 L0 + error(0.0006697986788568588) D21 L0 ^ D14 + error(0.0006697986788568588) D21 L0 ^ D14 ^ D15 L0 + error(0.0006697986788568588) D21 L0 ^ D15 L0 + error(0.0006697986788568588) D21 L0 ^ D22 + error(0.0006697986788568588) D21 L0 ^ D22 ^ D14 + error(0.0006697986788568588) D21 L0 ^ D22 ^ D14 ^ D15 L0 + error(0.0006697986788568588) D21 L0 ^ D22 ^ D15 L0 + error(0.005333333333333312) D22 + error(0.002673815958446298) D22 D25 + error(0.0006697986788568588) D22 D25 ^ D18 + error(0.0006697986788568588) D22 D25 ^ D26 + error(0.0006697986788568588) D22 D25 ^ D26 ^ D18 + error(0.01) D22 D30 + error(0.002006705456917236) D22 ^ D14 + error(0.0006697986788568588) D22 ^ D14 ^ D15 L0 + error(0.002006705456917236) D22 ^ D15 L0 + error(0.0006697986788568588) D22 ^ D19 + error(0.001338700097173321) D22 ^ D23 L0 + error(0.001338700097173321) D22 ^ D23 L0 ^ D15 L0 + error(0.001338700097173321) D23 D26 + error(0.001338700097173321) D23 D26 ^ D22 + error(0.01) D23 D31 + error(0.001338700097173321) D23 L0 + error(0.001338700097173321) D23 L0 ^ D15 L0 + error(0.002006705456917236) D24 + error(0.01) D24 D32 + error(0.001338700097173321) D24 ^ D16 + error(0.0006697986788568588) D24 ^ D18 + error(0.002006705456917236) D25 + error(0.001338700097173321) D25 D27 + error(0.001338700097173321) D25 D27 ^ D26 + error(0.01) D25 D33 + error(0.002006705456917236) D25 ^ D17 + error(0.0006697986788568588) D25 ^ D17 ^ D18 + error(0.0006697986788568588) D25 ^ D17 ^ D24 + error(0.0006697986788568588) D25 ^ D17 ^ D24 ^ D18 + error(0.0006697986788568588) D25 ^ D18 + error(0.0006697986788568588) D25 ^ D24 + error(0.0006697986788568588) D25 ^ D24 ^ D18 + error(0.004669790293214321) D26 + error(0.01) D26 D34 + error(0.002006705456917236) D26 ^ D18 + error(0.001338700097173321) D26 ^ D19 + error(0.001338700097173321) D26 ^ D27 + error(0.001338700097173321) D26 ^ D27 ^ D19 + error(0.001338700097173321) D27 + error(0.01) D27 D35 + error(0.001338700097173321) D27 ^ D19 + shift_detectors(0, 0, 1) 0 + detector(2, 0, 0) D4 + detector(2, 2, 0) D5 + detector(4, 2, 0) D6 + detector(6, 2, 0) D7 + detector(0, 4, 0) D8 + detector(2, 4, 0) D9 + detector(4, 4, 0) D10 + detector(4, 6, 0) D11 + shift_detectors(0, 0, 1) 0 + detector(2, 0, 0) D12 + detector(2, 2, 0) D13 + detector(4, 2, 0) D14 + detector(6, 2, 0) D15 + detector(0, 4, 0) D16 + detector(2, 4, 0) D17 + detector(4, 4, 0) D18 + detector(4, 6, 0) D19 + shift_detectors 16 +} +error(0.004674264622595529) D4 +error(0.004674264622595529) D4 D6 +error(0.004674264622595529) D4 D6 ^ D5 L0 +error(0.02425673018621833) D4 D12 +error(0.001338700097173321) D4 D12 ^ D5 L0 +error(0.004674264622595529) D4 ^ D5 L0 +error(0.004674264622595529) D5 D8 +error(0.004674264622595529) D5 D8 ^ D9 +error(0.004674264622595529) D5 D10 +error(0.004674264622595529) D5 D10 ^ D6 D9 +error(0.01196657134777889) D5 D13 +error(0.001338700097173321) D5 D13 ^ D6 D9 +error(0.0006697986788568588) D5 D13 ^ D9 +error(0.0006697986788568588) D5 D13 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D13 ^ D12 +error(0.002006705456917236) D5 D16 +error(0.002006705456917236) D5 D16 ^ D9 +error(0.0006697986788568588) D5 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D5 D16 ^ D12 +error(0.01127419308930474) D5 L0 +error(0.008646616050824953) D6 +error(0.006000449842759885) D6 D9 +error(0.0006697986788568588) D6 D9 ^ D5 L0 +error(0.0006697986788568588) D6 D9 ^ D7 D10 +error(0.0006697986788568588) D6 D9 ^ D7 D13 +error(0.002006705456917236) D6 D9 ^ D10 D13 +error(0.0006697986788568588) D6 D9 ^ D13 L0 +error(0.0006697986788568588) D6 D9 ^ D13 L0 ^ D5 L0 +error(0.00334003280051021) D6 D12 +error(0.002006705456917236) D6 D12 ^ D5 L0 +error(0.002006705456917236) D6 D12 ^ D13 L0 +error(0.0006697986788568588) D6 D12 ^ D13 L0 ^ D5 L0 +error(0.02489403461341096) D6 D14 +error(0.0006697986788568588) D6 D14 ^ D7 D10 +error(0.0006697986788568588) D6 D14 ^ D7 D13 +error(0.0006697986788568588) D6 D14 ^ D10 D13 +error(0.001338700097173321) D6 D14 ^ D13 L0 +error(0.004009837511473901) D6 ^ D7 L0 +error(0.006000449842759885) D7 D10 +error(0.004674264622595529) D7 D10 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D9 D14 +error(0.0006697986788568588) D7 D10 ^ D11 +error(0.002006705456917236) D7 D10 ^ D14 +error(0.001338700097173321) D7 D10 ^ D14 ^ D6 +error(0.0006697986788568588) D7 D10 ^ D14 ^ D11 +error(0.0006697986788568588) D7 D13 +error(0.0006697986788568588) D7 D13 ^ D9 D14 +error(0.01131192609522986) D7 D15 +error(0.001338700097173321) D7 D15 ^ D14 +error(0.002006705456917236) D7 D18 +error(0.0006697986788568588) D7 D18 ^ D11 +error(0.002006705456917236) D7 D18 ^ D14 +error(0.0006697986788568588) D7 D18 ^ D14 ^ D11 +error(0.005337801668914704) D7 L0 +error(0.004674264622595529) D8 +error(0.01131192609522986) D8 D16 +error(0.001338700097173321) D8 D16 ^ D9 +error(0.01192888888888882) D9 +error(0.004674264622595529) D9 D11 +error(0.004674264622595529) D9 D11 ^ D10 +error(0.0006697986788568588) D9 D12 +error(0.0006697986788568588) D9 D12 ^ D5 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 +error(0.0006697986788568588) D9 D12 ^ D13 L0 ^ D5 L0 +error(0.001338700097173321) D9 D14 +error(0.001338700097173321) D9 D14 ^ D10 D13 +error(0.0006697986788568588) D9 D14 ^ D10 D16 +error(0.0006697986788568588) D9 D14 ^ D13 D16 +error(0.02489403461341096) D9 D17 +error(0.001338700097173321) D9 D17 ^ D10 +error(0.0006697986788568588) D9 D17 ^ D10 D13 +error(0.0006697986788568588) D9 D17 ^ D10 D16 +error(0.0006697986788568588) D9 D17 ^ D13 D16 +error(0.004674264622595529) D9 ^ D8 +error(0.0006697986788568588) D9 ^ D10 +error(0.0006697986788568588) D9 ^ D12 +error(0.002006705456917236) D9 ^ D16 +error(0.001338700097173321) D9 ^ D16 ^ D8 +error(0.0006697986788568588) D9 ^ D16 ^ D10 +error(0.01061861908451607) D10 +error(0.004005357180252828) D10 D13 +error(0.002006705456917236) D10 D13 ^ D14 D17 +error(0.0006697986788568588) D10 D16 +error(0.0006697986788568588) D10 D16 ^ D14 D17 +error(0.01196657134777889) D10 D18 +error(0.0006697986788568588) D10 D18 ^ D11 +error(0.0006697986788568588) D10 D18 ^ D14 +error(0.001338700097173321) D10 D18 ^ D14 D17 +error(0.0006697986788568588) D10 D18 ^ D14 ^ D11 +error(0.006662210334862289) D11 +error(0.0006697986788568588) D11 D14 +error(0.0006697986788568588) D11 D14 ^ D10 +error(0.0006697986788568588) D11 D14 ^ D18 +error(0.0006697986788568588) D11 D14 ^ D18 ^ D10 +error(0.00334003280051021) D11 D17 +error(0.002006705456917236) D11 D17 ^ D10 +error(0.002006705456917236) D11 D17 ^ D18 +error(0.0006697986788568588) D11 D17 ^ D18 ^ D10 +error(0.02425673018621833) D11 D19 +error(0.001338700097173321) D11 D19 ^ D18 +error(0.004674264622595529) D11 ^ D10 +error(0.001338700097173321) D11 ^ D18 +error(0.001338700097173321) D11 ^ D18 ^ D10 +error(0.04244381618308433) D12 +error(0.004674264622595528) D12 D14 +error(0.004674264622595528) D12 D14 ^ D13 L0 +error(0.001338700097173321) D12 ^ D4 +error(0.001338700097173321) D12 ^ D4 ^ D5 L0 +error(0.002673815958446298) D12 ^ D5 L0 +error(0.008642177604111326) D12 ^ D13 L0 +error(0.001338700097173321) D12 ^ D13 L0 ^ D5 L0 +error(0.001338700097173321) D12 ^ D13 L0 ^ D14 +error(0.001338700097173321) D12 ^ D14 +error(0.007323084334358033) D13 D16 +error(0.002006705456917236) D13 D16 ^ D9 +error(0.0006697986788568588) D13 D16 ^ D9 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D12 +error(0.0006697986788568588) D13 D16 ^ D14 D17 +error(0.006000449842759885) D13 D16 ^ D17 +error(0.001338700097173321) D13 D16 ^ D17 ^ D9 +error(0.006000449842759885) D13 D18 +error(0.006000449842759885) D13 D18 ^ D14 D17 +error(0.002673815958446298) D13 D20 +error(0.002673815958446298) D13 D20 ^ D17 +error(0.02236793284649183) D13 D21 +error(0.001338700097173321) D13 D21 ^ D14 D17 +error(0.001338700097173321) D13 D21 ^ D17 +error(0.01778182544467273) D13 L0 +error(0.002006705456917236) D13 L0 ^ D5 L0 +error(0.0006697986788568588) D13 L0 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D7 L0 +error(0.002006705456917236) D13 L0 ^ D14 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D6 ^ D7 L0 +error(0.0006697986788568588) D13 L0 ^ D14 ^ D7 L0 +error(0.05215700045821762) D14 +error(0.007323084334358033) D14 D17 +error(0.0006697986788568588) D14 D17 ^ D10 +error(0.0006697986788568588) D14 D17 ^ D18 +error(0.001338700097173321) D14 D17 ^ D18 D21 +error(0.0006697986788568588) D14 D17 ^ D18 ^ D10 +error(0.002006705456917236) D14 ^ D6 +error(0.0006697986788568588) D14 ^ D6 ^ D7 L0 +error(0.002006705456917236) D14 ^ D7 L0 +error(0.0006697986788568588) D14 ^ D11 +error(0.0006697986788568588) D14 ^ D13 L0 +error(0.006000449842759885) D14 ^ D15 L0 +error(0.001338700097173321) D14 ^ D15 L0 ^ D7 L0 +error(0.001338700097173321) D14 ^ D17 +error(0.0006697986788568588) D14 ^ D17 ^ D13 L0 +error(0.004669790293214321) D14 ^ D21 L0 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D13 L0 +error(0.001338700097173321) D14 ^ D21 L0 ^ D15 L0 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D17 +error(0.0006697986788568588) D14 ^ D21 L0 ^ D17 ^ D13 L0 +error(0.009300399244684827) D15 D18 +error(0.007983073028790271) D15 D18 ^ D14 +error(0.0006697986788568588) D15 D18 ^ D14 ^ D17 +error(0.0006697986788568588) D15 D18 ^ D17 +error(0.001338700097173321) D15 D18 ^ D19 +error(0.0006697986788568588) D15 D21 +error(0.0006697986788568588) D15 D21 ^ D14 +error(0.0006697986788568588) D15 D21 ^ D14 ^ D17 +error(0.0006697986788568588) D15 D21 ^ D17 +error(0.004005357180252828) D15 D22 +error(0.001338700097173321) D15 D22 ^ D19 +error(0.02236793284649183) D15 D23 +error(0.008642177604111326) D15 L0 +error(0.001338700097173321) D15 L0 ^ D7 L0 +error(0.006662210334862289) D16 +error(0.02108568757332526) D16 D20 +error(0.001338700097173321) D16 D20 ^ D17 +error(0.001338700097173321) D16 ^ D8 +error(0.0006697986788568588) D16 ^ D10 +error(0.05155626641762741) D17 +error(0.004674264622595528) D17 D19 +error(0.004674264622595528) D17 D19 ^ D18 +error(0.002006705456917236) D17 ^ D9 +error(0.0006697986788568588) D17 ^ D9 ^ D10 +error(0.0006697986788568588) D17 ^ D9 ^ D16 +error(0.0006697986788568588) D17 ^ D9 ^ D16 ^ D10 +error(0.0006697986788568588) D17 ^ D10 +error(0.0006697986788568588) D17 ^ D13 L0 +error(0.005337801668914705) D17 ^ D16 +error(0.0006697986788568588) D17 ^ D16 ^ D10 +error(0.002673815958446298) D17 ^ D18 +error(0.001338700097173321) D17 ^ D18 ^ D19 +error(0.001338700097173321) D17 ^ D19 +error(0.002673815958446298) D17 ^ D20 +error(0.001338700097173321) D17 ^ D20 ^ D16 +error(0.001338700097173321) D17 ^ D20 ^ D18 +error(0.01648726836301881) D18 +error(0.001338700097173321) D18 D20 +error(0.001338700097173321) D18 D20 ^ D17 +error(0.005995987492949032) D18 D21 +error(0.0006697986788568588) D18 D21 ^ D14 +error(0.0006697986788568588) D18 D21 ^ D14 ^ D17 +error(0.002006705456917236) D18 D21 ^ D17 +error(0.02364674503591482) D18 D22 +error(0.001338700097173321) D18 D22 ^ D19 +error(0.002006705456917236) D18 ^ D10 +error(0.001338700097173321) D18 ^ D11 +error(0.002673815958446298) D18 ^ D19 +error(0.001338700097173321) D18 ^ D19 ^ D11 +error(0.04671719903466118) D19 +error(0.001338700097173321) D19 ^ D11 +error(0.006000449842759885) D19 ^ D18 +error(0.00797862858822285) D19 ^ D22 +error(0.002673815958446298) D19 ^ D22 ^ D18 +error(0.01262033963927737) D20 +error(0.01522666666666665) D20 D21 +error(0.005333333333333312) D20 D21 ^ D17 +error(0.001338700097173321) D20 ^ D16 +error(0.001338700097173321) D20 ^ D18 +error(0.01262033963927737) D21 D22 +error(0.02682881602833452) D21 L0 +error(0.00334003280051021) D21 L0 ^ D13 L0 +error(0.001338700097173321) D21 L0 ^ D15 L0 +error(0.0006697986788568588) D21 L0 ^ D17 +error(0.0006697986788568588) D21 L0 ^ D17 ^ D13 L0 +error(0.02746267489612923) D22 +error(0.01262033963927737) D22 D23 +error(0.002673815958446298) D22 ^ D18 +error(0.01262033963927737) D23 L0 +error(0.002673815958446298) D23 L0 ^ D15 L0 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D4 +detector(2, 2, 0) D5 +detector(4, 2, 0) D6 +detector(6, 2, 0) D7 +detector(0, 4, 0) D8 +detector(2, 4, 0) D9 +detector(4, 4, 0) D10 +detector(4, 6, 0) D11 +shift_detectors(0, 0, 1) 0 +detector(2, 0, 0) D12 +detector(2, 2, 0) D13 +detector(4, 2, 0) D14 +detector(6, 2, 0) D15 +detector(0, 4, 0) D16 +detector(2, 4, 0) D17 +detector(4, 4, 0) D18 +detector(4, 6, 0) D19 +detector(0, 4, 1) D20 +detector(2, 2, 1) D21 +detector(4, 4, 1) D22 +detector(6, 2, 1) D23 \ No newline at end of file diff --git a/datasets/syndromes/sc_d3_r3_p0010_z.npz b/datasets/syndromes/sc_d3_r3_p0010_z.npz new file mode 100644 index 0000000..d07154b Binary files /dev/null and b/datasets/syndromes/sc_d3_r3_p0010_z.npz differ diff --git a/datasets/syndromes/sc_d3_r5_p0010_z.npz b/datasets/syndromes/sc_d3_r5_p0010_z.npz new file mode 100644 index 0000000..7aa0d7e Binary files /dev/null and b/datasets/syndromes/sc_d3_r5_p0010_z.npz differ diff --git a/datasets/syndromes/sc_d3_r7_p0010_z.npz b/datasets/syndromes/sc_d3_r7_p0010_z.npz new file mode 100644 index 0000000..56be7c1 Binary files /dev/null and b/datasets/syndromes/sc_d3_r7_p0010_z.npz differ diff --git a/datasets/uais/sc_d3_r3_p0010_z.uai b/datasets/uais/sc_d3_r3_p0010_z.uai new file mode 100644 index 0000000..d0bede6 --- /dev/null +++ b/datasets/uais/sc_d3_r3_p0010_z.uai @@ -0,0 +1,2938 @@ +MARKOV +24 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +286 +1 0 +2 0 1 +2 0 8 +2 1 2 +2 1 5 +3 1 5 4 +2 1 8 +3 1 8 4 +1 1 +1 2 +2 2 3 +3 2 3 6 +2 2 5 +3 2 5 6 +4 2 5 6 9 +3 2 5 9 +4 2 5 9 6 +2 2 8 +3 2 8 6 +3 2 8 9 +4 2 8 9 6 +2 2 10 +3 2 10 6 +4 2 10 6 9 +2 3 5 +3 3 5 6 +2 3 7 +3 3 7 6 +2 3 10 +3 3 10 6 +1 3 +1 4 +2 4 6 +3 4 6 5 +2 4 12 +3 4 12 5 +2 4 1 +2 4 5 +3 4 5 1 +2 5 8 +3 5 8 4 +3 5 8 6 +3 5 8 9 +4 5 8 9 6 +2 5 10 +4 5 10 6 9 +2 5 13 +4 5 13 6 9 +3 5 13 9 +4 5 13 9 12 +3 5 13 12 +2 5 16 +3 5 16 9 +4 5 16 9 12 +3 5 16 12 +1 5 +2 5 1 +2 5 3 +1 6 +2 6 9 +3 6 9 5 +4 6 9 7 10 +4 6 9 7 13 +4 6 9 10 13 +3 6 9 13 +4 6 9 13 5 +2 6 12 +3 6 12 5 +3 6 12 13 +4 6 12 13 5 +2 6 14 +4 6 14 7 10 +4 6 14 7 13 +4 6 14 10 13 +3 6 14 13 +2 6 2 +2 6 3 +2 6 4 +3 6 4 5 +2 6 5 +3 6 5 3 +2 6 7 +3 6 7 3 +2 7 10 +3 7 10 6 +4 7 10 9 14 +3 7 10 11 +3 7 10 14 +4 7 10 14 6 +4 7 10 14 11 +2 7 13 +4 7 13 9 14 +2 7 15 +3 7 15 14 +2 7 18 +3 7 18 11 +3 7 18 14 +4 7 18 14 11 +1 7 +2 7 3 +1 8 +2 8 16 +3 8 16 9 +2 8 0 +2 8 2 +1 9 +2 9 11 +3 9 11 10 +2 9 12 +3 9 12 5 +3 9 12 13 +4 9 12 13 5 +2 9 14 +4 9 14 10 13 +4 9 14 10 16 +4 9 14 13 16 +2 9 17 +3 9 17 10 +4 9 17 10 13 +4 9 17 10 16 +4 9 17 13 16 +2 9 2 +2 9 6 +3 9 6 2 +2 9 8 +3 9 8 2 +2 9 10 +3 9 10 2 +3 9 10 6 +4 9 10 6 2 +2 9 12 +2 9 16 +3 9 16 8 +3 9 16 10 +1 10 +2 10 13 +4 10 13 14 17 +2 10 16 +4 10 16 14 17 +2 10 18 +3 10 18 11 +3 10 18 14 +4 10 18 14 17 +4 10 18 14 11 +2 10 2 +2 10 6 +3 10 6 2 +1 11 +2 11 14 +3 11 14 10 +3 11 14 18 +4 11 14 18 10 +2 11 17 +3 11 17 10 +3 11 17 18 +4 11 17 18 10 +2 11 19 +3 11 19 18 +2 11 9 +3 11 9 10 +2 11 10 +2 11 18 +3 11 18 10 +1 12 +2 12 14 +3 12 14 13 +2 12 4 +3 12 4 5 +2 12 5 +2 12 13 +3 12 13 5 +3 12 13 14 +2 12 14 +2 13 16 +3 13 16 9 +4 13 16 9 12 +3 13 16 12 +4 13 16 14 17 +3 13 16 17 +4 13 16 17 9 +2 13 18 +4 13 18 14 17 +2 13 20 +3 13 20 17 +2 13 21 +4 13 21 14 17 +3 13 21 17 +1 13 +2 13 5 +2 13 6 +3 13 6 7 +2 13 7 +2 13 14 +3 13 14 6 +4 13 14 6 7 +3 13 14 7 +1 14 +2 14 17 +3 14 17 10 +3 14 17 18 +4 14 17 18 21 +4 14 17 18 10 +2 14 6 +3 14 6 7 +2 14 7 +2 14 11 +2 14 13 +2 14 15 +3 14 15 7 +2 14 17 +3 14 17 13 +2 14 21 +3 14 21 13 +3 14 21 15 +3 14 21 17 +4 14 21 17 13 +2 15 18 +3 15 18 14 +4 15 18 14 17 +3 15 18 17 +3 15 18 19 +2 15 21 +3 15 21 14 +4 15 21 14 17 +3 15 21 17 +2 15 22 +3 15 22 19 +2 15 23 +1 15 +2 15 7 +1 16 +2 16 20 +3 16 20 17 +2 16 8 +2 16 10 +1 17 +2 17 19 +3 17 19 18 +2 17 9 +3 17 9 10 +3 17 9 16 +4 17 9 16 10 +2 17 10 +2 17 13 +2 17 16 +3 17 16 10 +2 17 18 +3 17 18 19 +2 17 19 +2 17 20 +3 17 20 16 +3 17 20 18 +1 18 +2 18 20 +3 18 20 17 +2 18 21 +3 18 21 14 +4 18 21 14 17 +3 18 21 17 +2 18 22 +3 18 22 19 +2 18 10 +2 18 11 +2 18 19 +3 18 19 11 +1 19 +2 19 11 +2 19 18 +2 19 22 +3 19 22 18 +1 20 +2 20 21 +3 20 21 17 +2 20 16 +2 20 18 +2 21 22 +1 21 +2 21 13 +2 21 15 +2 21 17 +3 21 17 13 +1 22 +2 22 23 +2 22 18 +1 23 +2 23 15 + +2 +0.9808812648892464 +0.019118735110753623 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9600203364033417 +0.039979663596658326 + +2 +0.9606374050540162 +0.03936259494598386 + +4 +0.9783096888888889 +0.021690311111111037 +0.021690311111111037 +0.9783096888888889 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9808812648892464 +0.019118735110753623 + +2 +0.9532828009653388 +0.04671719903466118 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9906996007553152 +0.009300399244684825 +0.009300399244684825 +0.9906996007553152 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9920169269712097 +0.00798307302879027 +0.00798307302879027 +0.9920169269712097 +0.00798307302879027 +0.9920169269712097 +0.9920169269712097 +0.00798307302879027 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9835127316369812 +0.016487268363018805 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9484437335823726 +0.05155626641762742 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9913578223958887 +0.008642177604111326 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9478429995417824 +0.052157000458217626 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9822181745553272 +0.01778182544467273 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9575561838169157 +0.042443816183084335 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9575561838169157 +0.042443816183084335 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9822181745553272 +0.017781825444672734 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9478429995417824 +0.05215700045821762 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9906996007553152 +0.009300399244684827 +0.009300399244684827 +0.9906996007553152 + +8 +0.9920169269712097 +0.00798307302879027 +0.00798307302879027 +0.9920169269712097 +0.00798307302879027 +0.9920169269712097 +0.9920169269712097 +0.00798307302879027 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +2 +0.9913578223958887 +0.008642177604111326 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9484437335823726 +0.05155626641762741 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9835127316369812 +0.016487268363018805 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9532828009653388 +0.04671719903466118 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9847733333333334 +0.015226666666666649 +0.015226666666666649 +0.9847733333333334 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +2 +0.9731711839716655 +0.026828816028334517 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9725373251038708 +0.027462674896129233 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 diff --git a/datasets/uais/sc_d3_r5_p0010_z.uai b/datasets/uais/sc_d3_r5_p0010_z.uai new file mode 100644 index 0000000..9424582 --- /dev/null +++ b/datasets/uais/sc_d3_r5_p0010_z.uai @@ -0,0 +1,6142 @@ +MARKOV +40 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +570 +1 0 +2 0 1 +2 0 8 +2 1 2 +2 1 5 +3 1 5 4 +2 1 8 +3 1 8 4 +1 1 +1 2 +2 2 3 +3 2 3 6 +2 2 5 +3 2 5 6 +4 2 5 6 9 +3 2 5 9 +4 2 5 9 6 +2 2 8 +3 2 8 6 +3 2 8 9 +4 2 8 9 6 +2 2 10 +3 2 10 6 +4 2 10 6 9 +2 3 5 +3 3 5 6 +2 3 7 +3 3 7 6 +2 3 10 +3 3 10 6 +1 3 +1 4 +2 4 6 +3 4 6 5 +2 4 12 +3 4 12 5 +2 4 1 +2 4 5 +3 4 5 1 +2 5 8 +3 5 8 4 +3 5 8 6 +3 5 8 9 +4 5 8 9 6 +2 5 10 +4 5 10 6 9 +2 5 13 +4 5 13 6 9 +3 5 13 9 +4 5 13 9 12 +3 5 13 12 +2 5 16 +3 5 16 9 +4 5 16 9 12 +3 5 16 12 +1 5 +2 5 1 +2 5 3 +1 6 +2 6 9 +3 6 9 5 +4 6 9 7 10 +4 6 9 7 13 +4 6 9 10 13 +3 6 9 13 +4 6 9 13 5 +2 6 12 +3 6 12 5 +3 6 12 13 +4 6 12 13 5 +2 6 14 +4 6 14 7 10 +4 6 14 7 13 +4 6 14 10 13 +3 6 14 13 +2 6 2 +2 6 3 +2 6 4 +3 6 4 5 +2 6 5 +3 6 5 3 +2 6 7 +3 6 7 3 +2 7 10 +3 7 10 6 +4 7 10 9 14 +3 7 10 11 +3 7 10 14 +4 7 10 14 6 +4 7 10 14 11 +2 7 13 +4 7 13 9 14 +2 7 15 +3 7 15 14 +2 7 18 +3 7 18 11 +3 7 18 14 +4 7 18 14 11 +1 7 +2 7 3 +1 8 +2 8 16 +3 8 16 9 +2 8 0 +2 8 2 +1 9 +2 9 11 +3 9 11 10 +2 9 12 +3 9 12 5 +3 9 12 13 +4 9 12 13 5 +2 9 14 +4 9 14 10 13 +4 9 14 10 16 +4 9 14 13 16 +2 9 17 +3 9 17 10 +4 9 17 10 13 +4 9 17 10 16 +4 9 17 13 16 +2 9 2 +2 9 6 +3 9 6 2 +2 9 8 +3 9 8 2 +2 9 10 +3 9 10 2 +3 9 10 6 +4 9 10 6 2 +2 9 12 +2 9 16 +3 9 16 8 +3 9 16 10 +1 10 +2 10 13 +4 10 13 14 17 +2 10 16 +4 10 16 14 17 +2 10 18 +3 10 18 11 +3 10 18 14 +4 10 18 14 17 +4 10 18 14 11 +2 10 2 +2 10 6 +3 10 6 2 +1 11 +2 11 14 +3 11 14 10 +3 11 14 18 +4 11 14 18 10 +2 11 17 +3 11 17 10 +3 11 17 18 +4 11 17 18 10 +2 11 19 +3 11 19 18 +2 11 9 +3 11 9 10 +2 11 10 +2 11 18 +3 11 18 10 +1 12 +2 12 14 +3 12 14 13 +2 12 20 +3 12 20 13 +2 12 4 +3 12 4 5 +2 12 5 +2 12 13 +3 12 13 5 +2 13 16 +3 13 16 9 +4 13 16 9 12 +3 13 16 12 +4 13 16 14 17 +3 13 16 17 +4 13 16 17 9 +2 13 18 +4 13 18 14 17 +2 13 21 +4 13 21 14 17 +3 13 21 17 +4 13 21 17 20 +3 13 21 20 +2 13 24 +3 13 24 17 +4 13 24 17 20 +3 13 24 20 +1 13 +2 13 5 +2 13 6 +3 13 6 7 +2 13 7 +2 13 14 +3 13 14 6 +4 13 14 6 7 +3 13 14 7 +1 14 +2 14 17 +3 14 17 10 +3 14 17 13 +4 14 17 15 18 +4 14 17 15 21 +3 14 17 18 +4 14 17 18 21 +4 14 17 18 10 +3 14 17 21 +4 14 17 21 13 +2 14 20 +3 14 20 13 +3 14 20 21 +4 14 20 21 13 +2 14 22 +4 14 22 15 18 +4 14 22 15 21 +4 14 22 18 21 +3 14 22 21 +2 14 6 +3 14 6 7 +2 14 7 +2 14 11 +2 14 15 +3 14 15 7 +2 15 18 +3 15 18 14 +4 15 18 17 22 +3 15 18 19 +3 15 18 22 +4 15 18 22 14 +4 15 18 22 19 +2 15 21 +4 15 21 17 22 +2 15 23 +3 15 23 22 +2 15 26 +3 15 26 19 +3 15 26 22 +4 15 26 22 19 +1 15 +2 15 7 +1 16 +2 16 24 +3 16 24 17 +2 16 8 +2 16 10 +1 17 +2 17 19 +3 17 19 18 +2 17 20 +3 17 20 13 +3 17 20 21 +4 17 20 21 13 +2 17 22 +4 17 22 18 21 +4 17 22 18 24 +4 17 22 21 24 +2 17 25 +3 17 25 18 +4 17 25 18 21 +4 17 25 18 24 +4 17 25 21 24 +2 17 9 +3 17 9 10 +3 17 9 16 +4 17 9 16 10 +2 17 10 +2 17 16 +3 17 16 10 +2 17 18 +2 17 20 +2 17 24 +3 17 24 16 +3 17 24 18 +1 18 +2 18 21 +4 18 21 22 25 +2 18 24 +4 18 24 22 25 +2 18 26 +3 18 26 19 +3 18 26 22 +4 18 26 22 25 +4 18 26 22 19 +2 18 10 +2 18 11 +2 18 19 +3 18 19 11 +1 19 +2 19 22 +3 19 22 18 +3 19 22 26 +4 19 22 26 18 +2 19 25 +3 19 25 18 +3 19 25 26 +4 19 25 26 18 +2 19 27 +3 19 27 26 +2 19 11 +2 19 18 +2 19 26 +3 19 26 18 +1 20 +2 20 22 +3 20 22 21 +2 20 28 +3 20 28 21 +2 20 12 +3 20 12 13 +2 20 13 +2 20 21 +3 20 21 13 +2 21 24 +3 21 24 17 +4 21 24 17 20 +3 21 24 20 +4 21 24 22 25 +3 21 24 25 +4 21 24 25 17 +2 21 26 +4 21 26 22 25 +2 21 29 +4 21 29 22 25 +3 21 29 25 +4 21 29 25 28 +3 21 29 28 +2 21 32 +3 21 32 25 +4 21 32 25 28 +3 21 32 28 +1 21 +2 21 13 +2 21 14 +3 21 14 15 +2 21 15 +2 21 22 +3 21 22 14 +4 21 22 14 15 +3 21 22 15 +1 22 +2 22 25 +3 22 25 18 +3 22 25 21 +4 22 25 23 26 +4 22 25 23 29 +3 22 25 26 +4 22 25 26 29 +4 22 25 26 18 +3 22 25 29 +4 22 25 29 21 +2 22 28 +3 22 28 21 +3 22 28 29 +4 22 28 29 21 +2 22 30 +4 22 30 23 26 +4 22 30 23 29 +4 22 30 26 29 +3 22 30 29 +2 22 14 +3 22 14 15 +2 22 15 +2 22 19 +2 22 23 +3 22 23 15 +2 23 26 +3 23 26 22 +4 23 26 25 30 +3 23 26 27 +3 23 26 30 +4 23 26 30 22 +4 23 26 30 27 +2 23 29 +4 23 29 25 30 +2 23 31 +3 23 31 30 +2 23 34 +3 23 34 27 +3 23 34 30 +4 23 34 30 27 +1 23 +2 23 15 +1 24 +2 24 32 +3 24 32 25 +2 24 16 +2 24 18 +1 25 +2 25 27 +3 25 27 26 +2 25 28 +3 25 28 21 +3 25 28 29 +4 25 28 29 21 +2 25 30 +4 25 30 26 29 +4 25 30 26 32 +4 25 30 29 32 +2 25 33 +3 25 33 26 +4 25 33 26 29 +4 25 33 26 32 +4 25 33 29 32 +2 25 17 +3 25 17 18 +3 25 17 24 +4 25 17 24 18 +2 25 18 +2 25 24 +3 25 24 18 +2 25 26 +2 25 28 +2 25 32 +3 25 32 24 +3 25 32 26 +1 26 +2 26 29 +4 26 29 30 33 +2 26 32 +4 26 32 30 33 +2 26 34 +3 26 34 27 +3 26 34 30 +4 26 34 30 33 +4 26 34 30 27 +2 26 18 +2 26 19 +2 26 27 +3 26 27 19 +1 27 +2 27 30 +3 27 30 26 +3 27 30 34 +4 27 30 34 26 +2 27 33 +3 27 33 26 +3 27 33 34 +4 27 33 34 26 +2 27 35 +3 27 35 34 +2 27 19 +2 27 26 +2 27 34 +3 27 34 26 +1 28 +2 28 30 +3 28 30 29 +2 28 20 +3 28 20 21 +2 28 21 +2 28 29 +3 28 29 21 +3 28 29 30 +2 28 30 +2 29 32 +3 29 32 25 +4 29 32 25 28 +3 29 32 28 +4 29 32 30 33 +3 29 32 33 +4 29 32 33 25 +2 29 34 +4 29 34 30 33 +2 29 36 +3 29 36 33 +2 29 37 +4 29 37 30 33 +3 29 37 33 +1 29 +2 29 21 +2 29 22 +3 29 22 23 +2 29 23 +2 29 30 +3 29 30 22 +4 29 30 22 23 +3 29 30 23 +1 30 +2 30 33 +3 30 33 26 +3 30 33 34 +4 30 33 34 37 +4 30 33 34 26 +2 30 22 +3 30 22 23 +2 30 23 +2 30 27 +2 30 29 +2 30 31 +3 30 31 23 +2 30 33 +3 30 33 29 +2 30 37 +3 30 37 29 +3 30 37 31 +3 30 37 33 +4 30 37 33 29 +2 31 34 +3 31 34 30 +4 31 34 30 33 +3 31 34 33 +3 31 34 35 +2 31 37 +3 31 37 30 +4 31 37 30 33 +3 31 37 33 +2 31 38 +3 31 38 35 +2 31 39 +1 31 +2 31 23 +1 32 +2 32 36 +3 32 36 33 +2 32 24 +2 32 26 +1 33 +2 33 35 +3 33 35 34 +2 33 25 +3 33 25 26 +3 33 25 32 +4 33 25 32 26 +2 33 26 +2 33 29 +2 33 32 +3 33 32 26 +2 33 34 +3 33 34 35 +2 33 35 +2 33 36 +3 33 36 32 +3 33 36 34 +1 34 +2 34 36 +3 34 36 33 +2 34 37 +3 34 37 30 +4 34 37 30 33 +3 34 37 33 +2 34 38 +3 34 38 35 +2 34 26 +2 34 27 +2 34 35 +3 34 35 27 +1 35 +2 35 27 +2 35 34 +2 35 38 +3 35 38 34 +1 36 +2 36 37 +3 36 37 33 +2 36 32 +2 36 34 +2 37 38 +1 37 +2 37 29 +2 37 31 +2 37 33 +3 37 33 29 +1 38 +2 38 39 +2 38 34 +1 39 +2 39 31 + +2 +0.9808812648892464 +0.019118735110753623 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9600203364033417 +0.039979663596658326 + +2 +0.9606374050540162 +0.03936259494598386 + +4 +0.9783096888888889 +0.021690311111111037 +0.021690311111111037 +0.9783096888888889 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9808812648892464 +0.019118735110753623 + +2 +0.9532828009653388 +0.04671719903466118 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9906996007553152 +0.009300399244684825 +0.009300399244684825 +0.9906996007553152 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9920169269712097 +0.00798307302879027 +0.00798307302879027 +0.9920169269712097 +0.00798307302879027 +0.9920169269712097 +0.9920169269712097 +0.00798307302879027 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9835127316369812 +0.016487268363018805 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9484437335823726 +0.05155626641762742 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9913578223958887 +0.008642177604111326 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9478429995417824 +0.052157000458217626 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9822181745553272 +0.01778182544467273 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9575561838169157 +0.042443816183084335 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073964 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073962 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073964 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073962 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9575561838169157 +0.042443816183084335 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9822181745553272 +0.017781825444672734 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9478429995417824 +0.05215700045821762 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9906996007553152 +0.009300399244684827 +0.009300399244684827 +0.9906996007553152 + +8 +0.9920169269712097 +0.00798307302879027 +0.00798307302879027 +0.9920169269712097 +0.00798307302879027 +0.9920169269712097 +0.9920169269712097 +0.00798307302879027 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +2 +0.9913578223958887 +0.008642177604111326 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9484437335823726 +0.05155626641762741 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9835127316369812 +0.016487268363018805 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9532828009653388 +0.04671719903466118 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9847733333333334 +0.015226666666666649 +0.015226666666666649 +0.9847733333333334 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +2 +0.9731711839716655 +0.026828816028334517 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9725373251038708 +0.027462674896129233 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 diff --git a/datasets/uais/sc_d3_r7_p0010_z.uai b/datasets/uais/sc_d3_r7_p0010_z.uai new file mode 100644 index 0000000..286cfec --- /dev/null +++ b/datasets/uais/sc_d3_r7_p0010_z.uai @@ -0,0 +1,9990 @@ +MARKOV +56 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +942 +1 0 +2 0 1 +2 0 8 +2 1 2 +2 1 5 +3 1 5 4 +2 1 8 +3 1 8 4 +1 1 +1 2 +2 2 3 +3 2 3 6 +2 2 5 +3 2 5 6 +4 2 5 6 9 +3 2 5 9 +4 2 5 9 6 +2 2 8 +3 2 8 6 +3 2 8 9 +4 2 8 9 6 +2 2 10 +3 2 10 6 +4 2 10 6 9 +2 3 5 +3 3 5 6 +2 3 7 +3 3 7 6 +2 3 10 +3 3 10 6 +1 3 +1 4 +2 4 12 +2 4 1 +2 4 5 +3 4 5 1 +2 5 8 +3 5 8 4 +3 5 8 6 +3 5 8 9 +4 5 8 9 6 +2 5 10 +4 5 10 6 9 +2 5 13 +1 5 +2 5 1 +2 5 3 +1 6 +2 6 9 +2 6 14 +2 6 2 +2 6 3 +2 6 4 +3 6 4 5 +2 6 5 +3 6 5 3 +2 6 7 +3 6 7 3 +2 7 10 +3 7 10 6 +2 7 15 +1 7 +2 7 3 +1 8 +2 8 16 +2 8 0 +2 8 2 +1 9 +2 9 17 +2 9 2 +2 9 6 +3 9 6 2 +2 9 8 +3 9 8 2 +2 9 10 +3 9 10 2 +3 9 10 6 +4 9 10 6 2 +1 10 +2 10 18 +2 10 2 +2 10 6 +3 10 6 2 +1 11 +2 11 19 +2 11 9 +3 11 9 10 +2 11 10 +1 4 +2 4 6 +3 4 6 5 +2 4 12 +3 4 12 5 +2 4 5 +2 5 8 +3 5 8 9 +2 5 10 +4 5 10 6 9 +2 5 13 +4 5 13 6 9 +3 5 13 9 +4 5 13 9 12 +3 5 13 12 +2 5 16 +3 5 16 9 +4 5 16 9 12 +3 5 16 12 +1 5 +1 6 +2 6 9 +3 6 9 5 +4 6 9 7 10 +4 6 9 7 13 +4 6 9 10 13 +3 6 9 13 +4 6 9 13 5 +2 6 12 +3 6 12 5 +3 6 12 13 +4 6 12 13 5 +2 6 14 +4 6 14 7 10 +4 6 14 7 13 +4 6 14 10 13 +3 6 14 13 +2 6 7 +2 7 10 +3 7 10 6 +4 7 10 9 14 +3 7 10 11 +3 7 10 14 +4 7 10 14 6 +4 7 10 14 11 +2 7 13 +4 7 13 9 14 +2 7 15 +3 7 15 14 +2 7 18 +3 7 18 11 +3 7 18 14 +4 7 18 14 11 +1 7 +1 8 +2 8 16 +3 8 16 9 +1 9 +2 9 11 +3 9 11 10 +2 9 12 +3 9 12 5 +3 9 12 13 +4 9 12 13 5 +2 9 14 +4 9 14 10 13 +4 9 14 10 16 +4 9 14 13 16 +2 9 17 +3 9 17 10 +4 9 17 10 13 +4 9 17 10 16 +4 9 17 13 16 +2 9 8 +2 9 10 +2 9 12 +2 9 16 +3 9 16 8 +3 9 16 10 +1 10 +2 10 13 +4 10 13 14 17 +2 10 16 +4 10 16 14 17 +2 10 18 +3 10 18 11 +3 10 18 14 +4 10 18 14 17 +4 10 18 14 11 +1 11 +2 11 14 +3 11 14 10 +3 11 14 18 +4 11 14 18 10 +2 11 17 +3 11 17 10 +3 11 17 18 +4 11 17 18 10 +2 11 19 +3 11 19 18 +2 11 10 +2 11 18 +3 11 18 10 +1 12 +2 12 14 +3 12 14 13 +2 12 20 +3 12 20 13 +2 12 4 +3 12 4 5 +2 12 5 +2 12 13 +3 12 13 5 +2 13 16 +3 13 16 9 +4 13 16 9 12 +3 13 16 12 +4 13 16 14 17 +3 13 16 17 +4 13 16 17 9 +2 13 18 +4 13 18 14 17 +2 13 21 +4 13 21 14 17 +3 13 21 17 +4 13 21 17 20 +3 13 21 20 +2 13 24 +3 13 24 17 +4 13 24 17 20 +3 13 24 20 +1 13 +2 13 5 +2 13 6 +3 13 6 7 +2 13 7 +2 13 14 +3 13 14 6 +4 13 14 6 7 +3 13 14 7 +1 14 +2 14 17 +3 14 17 10 +3 14 17 13 +4 14 17 15 18 +4 14 17 15 21 +3 14 17 18 +4 14 17 18 21 +4 14 17 18 10 +3 14 17 21 +4 14 17 21 13 +2 14 20 +3 14 20 13 +3 14 20 21 +4 14 20 21 13 +2 14 22 +4 14 22 15 18 +4 14 22 15 21 +4 14 22 18 21 +3 14 22 21 +2 14 6 +3 14 6 7 +2 14 7 +2 14 11 +2 14 15 +3 14 15 7 +2 15 18 +3 15 18 14 +4 15 18 17 22 +3 15 18 19 +3 15 18 22 +4 15 18 22 14 +4 15 18 22 19 +2 15 21 +4 15 21 17 22 +2 15 23 +3 15 23 22 +2 15 26 +3 15 26 19 +3 15 26 22 +4 15 26 22 19 +1 15 +2 15 7 +1 16 +2 16 24 +3 16 24 17 +2 16 8 +2 16 10 +1 17 +2 17 19 +3 17 19 18 +2 17 20 +3 17 20 13 +3 17 20 21 +4 17 20 21 13 +2 17 22 +4 17 22 18 21 +4 17 22 18 24 +4 17 22 21 24 +2 17 25 +3 17 25 18 +4 17 25 18 21 +4 17 25 18 24 +4 17 25 21 24 +2 17 9 +3 17 9 10 +3 17 9 16 +4 17 9 16 10 +2 17 10 +2 17 16 +3 17 16 10 +2 17 18 +2 17 20 +2 17 24 +3 17 24 16 +3 17 24 18 +1 18 +2 18 21 +4 18 21 22 25 +2 18 24 +4 18 24 22 25 +2 18 26 +3 18 26 19 +3 18 26 22 +4 18 26 22 25 +4 18 26 22 19 +2 18 10 +2 18 11 +2 18 19 +3 18 19 11 +1 19 +2 19 22 +3 19 22 18 +3 19 22 26 +4 19 22 26 18 +2 19 25 +3 19 25 18 +3 19 25 26 +4 19 25 26 18 +2 19 27 +3 19 27 26 +2 19 11 +2 19 18 +2 19 26 +3 19 26 18 +1 20 +2 20 22 +3 20 22 21 +2 20 28 +2 20 12 +3 20 12 13 +2 20 13 +2 20 21 +3 20 21 13 +2 21 24 +3 21 24 17 +4 21 24 17 20 +3 21 24 20 +4 21 24 22 25 +3 21 24 25 +4 21 24 25 17 +2 21 26 +4 21 26 22 25 +2 21 29 +1 21 +2 21 13 +2 21 14 +3 21 14 15 +2 21 15 +2 21 22 +3 21 22 14 +4 21 22 14 15 +3 21 22 15 +1 22 +2 22 25 +3 22 25 18 +3 22 25 26 +4 22 25 26 18 +2 22 30 +2 22 14 +3 22 14 15 +2 22 15 +2 22 19 +2 22 23 +3 22 23 15 +2 23 26 +3 23 26 22 +2 23 31 +1 23 +2 23 15 +1 24 +2 24 32 +2 24 16 +2 24 18 +1 25 +2 25 27 +3 25 27 26 +2 25 33 +2 25 17 +3 25 17 18 +3 25 17 24 +4 25 17 24 18 +2 25 18 +2 25 24 +3 25 24 18 +1 26 +2 26 34 +2 26 18 +2 26 19 +2 26 27 +3 26 27 19 +1 27 +2 27 35 +2 27 19 +1 20 +2 20 22 +3 20 22 21 +2 20 28 +3 20 28 21 +2 20 21 +2 21 24 +3 21 24 25 +2 21 26 +4 21 26 22 25 +2 21 29 +4 21 29 22 25 +3 21 29 25 +4 21 29 25 28 +3 21 29 28 +2 21 32 +3 21 32 25 +4 21 32 25 28 +3 21 32 28 +1 21 +1 22 +2 22 25 +3 22 25 21 +4 22 25 23 26 +4 22 25 23 29 +4 22 25 26 29 +3 22 25 29 +4 22 25 29 21 +2 22 28 +3 22 28 21 +3 22 28 29 +4 22 28 29 21 +2 22 30 +4 22 30 23 26 +4 22 30 23 29 +4 22 30 26 29 +3 22 30 29 +2 22 23 +2 23 26 +3 23 26 22 +4 23 26 25 30 +3 23 26 27 +3 23 26 30 +4 23 26 30 22 +4 23 26 30 27 +2 23 29 +4 23 29 25 30 +2 23 31 +3 23 31 30 +2 23 34 +3 23 34 27 +3 23 34 30 +4 23 34 30 27 +1 23 +1 24 +2 24 32 +3 24 32 25 +1 25 +2 25 27 +3 25 27 26 +2 25 28 +3 25 28 21 +3 25 28 29 +4 25 28 29 21 +2 25 30 +4 25 30 26 29 +4 25 30 26 32 +4 25 30 29 32 +2 25 33 +3 25 33 26 +4 25 33 26 29 +4 25 33 26 32 +4 25 33 29 32 +2 25 24 +2 25 26 +2 25 28 +2 25 32 +3 25 32 24 +3 25 32 26 +1 26 +2 26 29 +4 26 29 30 33 +2 26 32 +4 26 32 30 33 +2 26 34 +3 26 34 27 +3 26 34 30 +4 26 34 30 33 +4 26 34 30 27 +1 27 +2 27 30 +3 27 30 26 +3 27 30 34 +4 27 30 34 26 +2 27 33 +3 27 33 26 +3 27 33 34 +4 27 33 34 26 +2 27 35 +3 27 35 34 +2 27 26 +2 27 34 +3 27 34 26 +1 28 +2 28 30 +3 28 30 29 +2 28 36 +3 28 36 29 +2 28 20 +3 28 20 21 +2 28 21 +2 28 29 +3 28 29 21 +2 29 32 +3 29 32 25 +4 29 32 25 28 +3 29 32 28 +4 29 32 30 33 +3 29 32 33 +4 29 32 33 25 +2 29 34 +4 29 34 30 33 +2 29 37 +4 29 37 30 33 +3 29 37 33 +4 29 37 33 36 +3 29 37 36 +2 29 40 +3 29 40 33 +4 29 40 33 36 +3 29 40 36 +1 29 +2 29 21 +2 29 22 +3 29 22 23 +2 29 23 +2 29 30 +3 29 30 22 +4 29 30 22 23 +3 29 30 23 +1 30 +2 30 33 +3 30 33 26 +3 30 33 29 +4 30 33 31 34 +4 30 33 31 37 +3 30 33 34 +4 30 33 34 37 +4 30 33 34 26 +3 30 33 37 +4 30 33 37 29 +2 30 36 +3 30 36 29 +3 30 36 37 +4 30 36 37 29 +2 30 38 +4 30 38 31 34 +4 30 38 31 37 +4 30 38 34 37 +3 30 38 37 +2 30 22 +3 30 22 23 +2 30 23 +2 30 27 +2 30 31 +3 30 31 23 +2 31 34 +3 31 34 30 +4 31 34 33 38 +3 31 34 35 +3 31 34 38 +4 31 34 38 30 +4 31 34 38 35 +2 31 37 +4 31 37 33 38 +2 31 39 +3 31 39 38 +2 31 42 +3 31 42 35 +3 31 42 38 +4 31 42 38 35 +1 31 +2 31 23 +1 32 +2 32 40 +3 32 40 33 +2 32 24 +2 32 26 +1 33 +2 33 35 +3 33 35 34 +2 33 36 +3 33 36 29 +3 33 36 37 +4 33 36 37 29 +2 33 38 +4 33 38 34 37 +4 33 38 34 40 +4 33 38 37 40 +2 33 41 +3 33 41 34 +4 33 41 34 37 +4 33 41 34 40 +4 33 41 37 40 +2 33 25 +3 33 25 26 +3 33 25 32 +4 33 25 32 26 +2 33 26 +2 33 32 +3 33 32 26 +2 33 34 +2 33 36 +2 33 40 +3 33 40 32 +3 33 40 34 +1 34 +2 34 37 +4 34 37 38 41 +2 34 40 +4 34 40 38 41 +2 34 42 +3 34 42 35 +3 34 42 38 +4 34 42 38 41 +4 34 42 38 35 +2 34 26 +2 34 27 +2 34 35 +3 34 35 27 +1 35 +2 35 38 +3 35 38 34 +3 35 38 42 +4 35 38 42 34 +2 35 41 +3 35 41 34 +3 35 41 42 +4 35 41 42 34 +2 35 43 +3 35 43 42 +2 35 27 +2 35 34 +2 35 42 +3 35 42 34 +1 36 +2 36 38 +3 36 38 37 +2 36 44 +2 36 28 +3 36 28 29 +2 36 29 +2 36 37 +3 36 37 29 +2 37 40 +3 37 40 33 +4 37 40 33 36 +3 37 40 36 +4 37 40 38 41 +3 37 40 41 +4 37 40 41 33 +2 37 42 +4 37 42 38 41 +2 37 45 +1 37 +2 37 29 +2 37 30 +3 37 30 31 +2 37 31 +2 37 38 +3 37 38 30 +4 37 38 30 31 +3 37 38 31 +1 38 +2 38 41 +3 38 41 34 +3 38 41 42 +4 38 41 42 34 +2 38 46 +2 38 30 +3 38 30 31 +2 38 31 +2 38 35 +2 38 39 +3 38 39 31 +2 39 42 +3 39 42 38 +2 39 47 +1 39 +2 39 31 +1 40 +2 40 48 +2 40 32 +2 40 34 +1 41 +2 41 43 +3 41 43 42 +2 41 49 +2 41 33 +3 41 33 34 +3 41 33 40 +4 41 33 40 34 +2 41 34 +2 41 40 +3 41 40 34 +1 42 +2 42 50 +2 42 34 +2 42 35 +2 42 43 +3 42 43 35 +1 43 +2 43 51 +2 43 35 +1 36 +2 36 38 +3 36 38 37 +2 36 44 +3 36 44 37 +2 36 37 +2 37 40 +3 37 40 41 +2 37 42 +4 37 42 38 41 +2 37 45 +4 37 45 38 41 +3 37 45 41 +4 37 45 41 44 +3 37 45 44 +2 37 48 +3 37 48 41 +4 37 48 41 44 +3 37 48 44 +1 37 +1 38 +2 38 41 +3 38 41 37 +4 38 41 39 42 +4 38 41 39 45 +4 38 41 42 45 +3 38 41 45 +4 38 41 45 37 +2 38 44 +3 38 44 37 +3 38 44 45 +4 38 44 45 37 +2 38 46 +4 38 46 39 42 +4 38 46 39 45 +4 38 46 42 45 +3 38 46 45 +2 38 39 +2 39 42 +3 39 42 38 +4 39 42 41 46 +3 39 42 43 +3 39 42 46 +4 39 42 46 38 +4 39 42 46 43 +2 39 45 +4 39 45 41 46 +2 39 47 +3 39 47 46 +2 39 50 +3 39 50 43 +3 39 50 46 +4 39 50 46 43 +1 39 +1 40 +2 40 48 +3 40 48 41 +1 41 +2 41 43 +3 41 43 42 +2 41 44 +3 41 44 37 +3 41 44 45 +4 41 44 45 37 +2 41 46 +4 41 46 42 45 +4 41 46 42 48 +4 41 46 45 48 +2 41 49 +3 41 49 42 +4 41 49 42 45 +4 41 49 42 48 +4 41 49 45 48 +2 41 40 +2 41 42 +2 41 44 +2 41 48 +3 41 48 40 +3 41 48 42 +1 42 +2 42 45 +4 42 45 46 49 +2 42 48 +4 42 48 46 49 +2 42 50 +3 42 50 43 +3 42 50 46 +4 42 50 46 49 +4 42 50 46 43 +1 43 +2 43 46 +3 43 46 42 +3 43 46 50 +4 43 46 50 42 +2 43 49 +3 43 49 42 +3 43 49 50 +4 43 49 50 42 +2 43 51 +3 43 51 50 +2 43 42 +2 43 50 +3 43 50 42 +1 44 +2 44 46 +3 44 46 45 +2 44 36 +3 44 36 37 +2 44 37 +2 44 45 +3 44 45 37 +3 44 45 46 +2 44 46 +2 45 48 +3 45 48 41 +4 45 48 41 44 +3 45 48 44 +4 45 48 46 49 +3 45 48 49 +4 45 48 49 41 +2 45 50 +4 45 50 46 49 +2 45 52 +3 45 52 49 +2 45 53 +4 45 53 46 49 +3 45 53 49 +1 45 +2 45 37 +2 45 38 +3 45 38 39 +2 45 39 +2 45 46 +3 45 46 38 +4 45 46 38 39 +3 45 46 39 +1 46 +2 46 49 +3 46 49 42 +3 46 49 50 +4 46 49 50 53 +4 46 49 50 42 +2 46 38 +3 46 38 39 +2 46 39 +2 46 43 +2 46 45 +2 46 47 +3 46 47 39 +2 46 49 +3 46 49 45 +2 46 53 +3 46 53 45 +3 46 53 47 +3 46 53 49 +4 46 53 49 45 +2 47 50 +3 47 50 46 +4 47 50 46 49 +3 47 50 49 +3 47 50 51 +2 47 53 +3 47 53 46 +4 47 53 46 49 +3 47 53 49 +2 47 54 +3 47 54 51 +2 47 55 +1 47 +2 47 39 +1 48 +2 48 52 +3 48 52 49 +2 48 40 +2 48 42 +1 49 +2 49 51 +3 49 51 50 +2 49 41 +3 49 41 42 +3 49 41 48 +4 49 41 48 42 +2 49 42 +2 49 45 +2 49 48 +3 49 48 42 +2 49 50 +3 49 50 51 +2 49 51 +2 49 52 +3 49 52 48 +3 49 52 50 +1 50 +2 50 52 +3 50 52 49 +2 50 53 +3 50 53 46 +4 50 53 46 49 +3 50 53 49 +2 50 54 +3 50 54 51 +2 50 42 +2 50 43 +2 50 51 +3 50 51 43 +1 51 +2 51 43 +2 51 50 +2 51 54 +3 51 54 50 +1 52 +2 52 53 +3 52 53 49 +2 52 48 +2 52 50 +2 53 54 +1 53 +2 53 45 +2 53 47 +2 53 49 +3 53 49 45 +1 54 +2 54 55 +2 54 50 +1 55 +2 55 47 + +2 +0.9808812648892464 +0.019118735110753623 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +4 +0.9808812648892464 +0.019118735110753623 +0.019118735110753623 +0.9808812648892464 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9600203364033417 +0.039979663596658326 + +2 +0.9606374050540162 +0.03936259494598386 + +4 +0.9783096888888889 +0.021690311111111037 +0.021690311111111037 +0.9783096888888889 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9808812648892464 +0.019118735110753623 + +2 +0.9575603169699715 +0.042439683030028506 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 +0.00334003280051021 +0.9966599671994898 +0.9966599671994898 +0.00334003280051021 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9946666666666667 +0.005333333333333312 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9563352448883908 +0.043664755111609214 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9959946428197471 +0.0040053571802528285 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9587886778652519 +0.04121132213474804 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9926813660679565 +0.007318633932043431 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.963735186521481 +0.03626481347851893 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +16 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9887258069106952 +0.011274193089304744 + +2 +0.991353383949175 +0.008646616050824953 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959901624885261 +0.004009837511473901 +0.004009837511473901 +0.9959901624885261 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9946621983310853 +0.005337801668914704 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9880711111111112 +0.011928888888888815 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9893813809154839 +0.01061861908451607 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073964 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073962 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9966599671994898 +0.00334003280051021 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9959946428197471 +0.0040053571802528285 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9946666666666667 +0.005333333333333312 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9979932945430827 +0.0020067054569172355 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9979932945430827 +0.0020067054569172355 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9953302097067857 +0.004669790293214321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +16 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9887258069106952 +0.011274193089304744 + +2 +0.991353383949175 +0.008646616050824953 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959901624885261 +0.004009837511473901 +0.004009837511473901 +0.9959901624885261 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9946621983310853 +0.005337801668914704 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9880711111111112 +0.011928888888888815 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9893813809154839 +0.01061861908451607 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073964 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.005337801668914704 +0.005337801668914704 +0.9946621983310853 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862288 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9861122811870505 +0.013887718812949465 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9656038460788573 +0.03439615392114274 +0.03439615392114274 +0.9656038460788573 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.984810764070926 +0.015189235929073962 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9782727600791767 +0.021727239920823312 +0.021727239920823312 +0.9782727600791767 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9920169269712097 +0.00798307302879027 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.966228404417506 +0.033771595582493964 +0.033771595582493964 +0.966228404417506 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9966599671994898 +0.00334003280051021 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9959946428197471 +0.0040053571802528285 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9946666666666667 +0.005333333333333312 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +2 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9979932945430827 +0.0020067054569172355 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9979932945430827 +0.0020067054569172355 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9953302097067857 +0.004669790293214321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9986612999028267 +0.001338700097173321 + +4 +0.99 +0.01 +0.01 +0.99 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +16 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9887258069106952 +0.011274193089304744 + +2 +0.991353383949175 +0.008646616050824953 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9959901624885261 +0.004009837511473901 +0.004009837511473901 +0.9959901624885261 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9946621983310853 +0.005337801668914704 + +2 +0.9953257353774044 +0.004674264622595529 + +4 +0.9886880739047701 +0.011311926095229855 +0.011311926095229855 +0.9886880739047701 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9880711111111112 +0.011928888888888815 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 +0.004674264622595529 +0.9953257353774044 +0.9953257353774044 +0.004674264622595529 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.975105965386589 +0.02489403461341096 +0.02489403461341096 +0.975105965386589 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9893813809154839 +0.01061861908451607 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +16 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9880334286522211 +0.011966571347778891 +0.011966571347778891 +0.9880334286522211 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9757432698137817 +0.024256730186218333 +0.024256730186218333 +0.9757432698137817 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9953257353774044 +0.004674264622595529 +0.004674264622595529 +0.9953257353774044 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9575561838169157 +0.042443816183084335 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +4 +0.9913578223958887 +0.008642177604111326 +0.008642177604111326 +0.9913578223958887 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +16 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 +0.9939995501572401 +0.006000449842759885 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9822181745553272 +0.017781825444672734 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9478429995417824 +0.05215700045821762 + +4 +0.992676915665642 +0.007323084334358033 +0.007323084334358033 +0.992676915665642 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9953302097067857 +0.004669790293214321 +0.004669790293214321 +0.9953302097067857 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9906996007553152 +0.009300399244684827 +0.009300399244684827 +0.9906996007553152 + +8 +0.9920169269712097 +0.00798307302879027 +0.00798307302879027 +0.9920169269712097 +0.00798307302879027 +0.9920169269712097 +0.9920169269712097 +0.00798307302879027 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9959946428197471 +0.0040053571802528285 +0.0040053571802528285 +0.9959946428197471 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9776320671535081 +0.022367932846491828 +0.022367932846491828 +0.9776320671535081 + +2 +0.9913578223958887 +0.008642177604111326 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +2 +0.9933377896651377 +0.006662210334862289 + +4 +0.9789143124266747 +0.021085687573325258 +0.021085687573325258 +0.9789143124266747 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +2 +0.9484437335823726 +0.05155626641762741 + +4 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 + +8 +0.9953257353774044 +0.004674264622595528 +0.004674264622595528 +0.9953257353774044 +0.004674264622595528 +0.9953257353774044 +0.9953257353774044 +0.004674264622595528 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +4 +0.9946621983310853 +0.0053378016689147045 +0.0053378016689147045 +0.9946621983310853 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9835127316369812 +0.016487268363018805 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.994004012507051 +0.005995987492949032 +0.005995987492949032 +0.994004012507051 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +16 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 +0.0020067054569172355 +0.9979932945430827 +0.9979932945430827 +0.0020067054569172355 + +4 +0.9763532549640852 +0.023646745035914817 +0.023646745035914817 +0.9763532549640852 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +4 +0.9979932945430827 +0.0020067054569172355 +0.0020067054569172355 +0.9979932945430827 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +8 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 +0.001338700097173321 +0.9986612999028267 +0.9986612999028267 +0.001338700097173321 + +2 +0.9532828009653388 +0.04671719903466118 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9939995501572401 +0.006000449842759885 +0.006000449842759885 +0.9939995501572401 + +4 +0.9920213714117772 +0.00797862858822285 +0.00797862858822285 +0.9920213714117772 + +8 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 +0.0026738159584462984 +0.9973261840415537 +0.9973261840415537 +0.0026738159584462984 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9847733333333334 +0.015226666666666649 +0.015226666666666649 +0.9847733333333334 + +8 +0.9946666666666667 +0.005333333333333312 +0.005333333333333312 +0.9946666666666667 +0.005333333333333312 +0.9946666666666667 +0.9946666666666667 +0.005333333333333312 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +2 +0.9731711839716655 +0.026828816028334517 + +4 +0.9966599671994898 +0.00334003280051021 +0.00334003280051021 +0.9966599671994898 + +4 +0.9986612999028267 +0.001338700097173321 +0.001338700097173321 +0.9986612999028267 + +4 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 + +8 +0.9993302013211431 +0.0006697986788568588 +0.0006697986788568588 +0.9993302013211431 +0.0006697986788568588 +0.9993302013211431 +0.9993302013211431 +0.0006697986788568588 + +2 +0.9725373251038708 +0.027462674896129233 + +4 +0.9873796603607227 +0.012620339639277374 +0.012620339639277374 +0.9873796603607227 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 + +2 +0.9873796603607227 +0.012620339639277374 + +4 +0.9973261840415537 +0.0026738159584462984 +0.0026738159584462984 +0.9973261840415537 diff --git a/docs/getting_started.md b/docs/getting_started.md new file mode 100644 index 0000000..ea97207 --- /dev/null +++ b/docs/getting_started.md @@ -0,0 +1,450 @@ +# Getting Started with BPDecoderPlus + +## Overview + +BPDecoderPlus generates training and test data for belief propagation (BP) decoding of quantum error correction codes. This guide shows you how to generate circuits, extract error models, and sample syndrome data - everything you need to train and test quantum error correction decoders. + +## Quick Start + +Generate a complete dataset with one command: + +```bash +python -m bpdecoderplus.cli \ + --distance 3 \ + --p 0.01 \ + --rounds 3 \ + --task z \ + --generate-dem \ + --generate-uai \ + --generate-syndromes 1000 +``` + +This creates files in organized subdirectories: +``` +datasets/ +├── circuits/sc_d3_r3_p0010_z.stim # Noisy quantum circuit +├── dems/sc_d3_r3_p0010_z.dem # Detector error model +├── uais/sc_d3_r3_p0010_z.uai # UAI format for inference +└── syndromes/sc_d3_r3_p0010_z.npz # 1000 syndrome samples +``` + +## Understanding the Pipeline + +Data generation happens in four steps: + +1. **Generate Noisy Circuit** - Creates a surface code circuit with realistic noise +2. **Extract Detector Error Model (DEM)** - Analyzes which errors trigger which detectors +3. **Convert to Inference Formats** - Exports DEM as .dem and .uai files +4. **Sample Syndromes** - Runs the circuit many times to generate training data + +## Step-by-Step Guide + +### Step 1: Generate Noisy Circuit + +Create a quantum error correction circuit with realistic noise. + +**Parameters:** +- `--distance` - Size of the surface code (3, 5, 7, etc.) +- `--rounds` - Number of error correction cycles +- `--p` - Physical error rate (e.g., 0.01 = 1% error per operation) +- `--task` - Type of logical operation ("z" for memory experiment) + +**Example:** +```bash +python -m bpdecoderplus.cli --distance 3 --p 0.01 --rounds 3 --task z +``` + +**Output:** `datasets/circuits/sc_d3_r3_p0010_z.stim` + +The `.stim` file contains the complete quantum circuit with: +- Qubit initialization +- Syndrome measurement operations +- Noise on every gate +- Logical observable measurement + +### Step 2: Extract Detector Error Model (DEM) + +The DEM tells us which errors trigger which syndrome detectors. + +**Why we need it:** +The circuit describes quantum operations, but the decoder needs to know: +- What errors can occur? Decoder use it to decides what types of error it can output. +- Which detectors fire when each error happens? This eventually transformed into a decoder graph/tanner graph/Factor graph. +- Does the error flip the logical qubit? This used as a benchmark for logical error rate. + +**Generate DEM:** +```bash +python -m bpdecoderplus.cli --distance 3 --p 0.01 --rounds 3 --task z --generate-dem +``` + +**Output:** `datasets/dems/sc_d3_r3_p0010_z.dem` + +The `.dem` file contains entries like: +``` +error(0.01) D0 D5 L0 +``` +This means: "There's a 1% chance of an error that triggers detectors 0 and 5, and flips the logical observable" + +**Using in Python:** +```python +from bpdecoderplus.dem import extract_dem, build_parity_check_matrix +import stim + +# Load circuit and extract DEM +circuit = stim.Circuit.from_file('datasets/circuits/sc_d3_r3_p0010_z.stim') +dem = extract_dem(circuit) + +# Build parity check matrix for BP decoding +H, priors, obs_flip = build_parity_check_matrix(dem) +print(f"H matrix shape: {H.shape}") # (24, 286) for d=3, r=3 +``` + +The parity check matrix H is the mathematical representation needed for BP decoding: +- `H[i,j] = 1` if error j triggers detector i +- `priors[j]` = probability of error j occurring +- `obs_flip[j] = 1` if error j flips the logical observable + +### Step 3: Generate UAI Format (Optional) + +The UAI format enables probabilistic inference with tools like TensorInference.jl. + +**What is UAI format?** +UAI (Uncertainty in Artificial Intelligence) is a standard format for representing probabilistic graphical models. It represents the DEM as a Markov network where: +- Each detector is a binary variable (0 or 1) +- Each error mechanism is a factor/clique +- Factor tables encode error probabilities + +**Generate UAI:** +```bash +python -m bpdecoderplus.cli --distance 3 --p 0.01 --rounds 3 --task z --generate-uai +``` + +**Output:** `datasets/uais/sc_d3_r3_p0010_z.uai` + +The `.uai` file structure: +``` +MARKOV +24 # Number of variables (detectors) +2 2 2 2 ... # Each variable has 2 states (0 or 1) +286 # Number of factors (error mechanisms) +1 0 # Factor 1 involves detector 0 +2 0 1 # Factor 2 involves detectors 0 and 1 +... +``` + +**Using UAI files:** +UAI files can be used with probabilistic inference tools for: +- Exact inference (partition function calculation) +- Marginal probability computation +- MAP (maximum a posteriori) inference +- Integration with TensorInference.jl for tensor network methods + +### Step 4: Sample Syndromes + +Generate training/test data by running the circuit many times. + +**What happens:** +Each "shot" runs the full circuit: +1. Initialize qubits +2. Apply gates (errors occur randomly based on noise rate) +3. Measure syndromes (which detectors fire?) +4. Measure logical qubit (did it flip?) + +**Generate syndromes:** +```bash +python -m bpdecoderplus.cli \ + --distance 3 --p 0.01 --rounds 3 --task z \ + --generate-syndromes 10000 +``` + +**Output:** `datasets/syndromes/sc_d3_r3_p0010_z.npz` + +The `.npz` file contains: +- `syndromes`: Binary array (num_shots × num_detectors) +- `observables`: Binary array (num_shots,) - 1 means logical error +- `metadata`: Circuit parameters (JSON) + +**Loading syndrome data:** +```python +from bpdecoderplus.syndrome import load_syndrome_database + +syndromes, observables, metadata = load_syndrome_database( + 'datasets/syndromes/sc_d3_r3_p0010_z.npz' +) + +print(f"Syndromes shape: {syndromes.shape}") # (10000, 24) +print(f"Observables shape: {observables.shape}") # (10000,) +print(f"Metadata: {metadata}") +``` + +## Understanding the Data + +### Syndromes (Detection Events) + +Each row is a **syndrome** - a binary vector indicating which detectors fired: + +```python +syndrome = syndromes[0] # First shot +# Example: [0, 1, 1, 0, 0, 0, 1, 0, ...] +# ↑ ↑ ↑ ↑ +# Detectors 1, 2, and 6 fired +``` + +**What does a detection event mean?** +- A detector fires (value = 1) when there's a change in the syndrome between consecutive measurement rounds +- This indicates an error occurred in that space-time region +- The decoder's job is to infer which errors caused these detection events + +### Observables (Logical Outcomes) + +Each observable value indicates whether the **logical qubit flipped**: + +```python +observable = observables[0] # First shot +# 0 = No logical error (decoder should predict 0) +# 1 = Logical error occurred (decoder should predict 1) +``` + +**Decoder success criterion:** +- Decoder predicts observable flip from syndrome +- If prediction matches actual observable → Success +- If prediction differs → Logical error + +## Complete Example Workflow + +### Generate all data at once + +```bash +python -m bpdecoderplus.cli \ + --distance 3 \ + --p 0.01 \ + --rounds 3 5 7 \ + --task z \ + --generate-dem \ + --generate-uai \ + --generate-syndromes 10000 +``` + +This creates a complete dataset for three different round counts: +``` +datasets/ +├── circuits/ +│ ├── sc_d3_r3_p0010_z.stim +│ ├── sc_d3_r5_p0010_z.stim +│ └── sc_d3_r7_p0010_z.stim +├── dems/ +│ ├── sc_d3_r3_p0010_z.dem +│ ├── sc_d3_r5_p0010_z.dem +│ └── sc_d3_r7_p0010_z.dem +├── uais/ +│ ├── sc_d3_r3_p0010_z.uai +│ ├── sc_d3_r5_p0010_z.uai +│ └── sc_d3_r7_p0010_z.uai +└── syndromes/ + ├── sc_d3_r3_p0010_z.npz + ├── sc_d3_r5_p0010_z.npz + └── sc_d3_r7_p0010_z.npz +``` + +### Use in Python + +```python +import numpy as np +from bpdecoderplus.dem import extract_dem, build_parity_check_matrix +from bpdecoderplus.syndrome import load_syndrome_database +import stim + +# Load circuit and extract DEM +circuit = stim.Circuit.from_file('datasets/circuits/sc_d3_r3_p0010_z.stim') +dem = extract_dem(circuit) + +# Build parity check matrix +H, priors, obs_flip = build_parity_check_matrix(dem) +print(f"H matrix shape: {H.shape}") # (24, 286) for d=3, r=3 + +# Load syndrome data +syndromes, observables, metadata = load_syndrome_database( + 'datasets/syndromes/sc_d3_r3_p0010_z.npz' +) + +# Ready for BP decoder! +# decoder = BPDecoder(H, priors, obs_flip) # Coming soon +# predictions = decoder.decode(syndromes) +# accuracy = (predictions == observables).mean() +``` + +## Use Cases + +### 1. Decoder Training + +```python +# Load training data +syndromes, observables, _ = load_syndrome_database("train.npz") + +# Train decoder +decoder.fit(syndromes, observables) +``` + +### 2. Decoder Evaluation + +```python +# Load test data +syndromes, actual_obs, _ = load_syndrome_database("test.npz") + +# Predict +predicted_obs = decoder.predict(syndromes) + +# Evaluate +accuracy = (predicted_obs == actual_obs).mean() +logical_error_rate = 1 - accuracy +print(f"Logical error rate: {logical_error_rate:.4f}") +``` + +### 3. Decoder Comparison + +```python +# Compare BP vs MWPM vs Neural decoder +for decoder in [bp_decoder, mwpm_decoder, neural_decoder]: + predictions = decoder.predict(syndromes) + error_rate = (predictions != observables).mean() + print(f"{decoder.name}: {error_rate:.4f}") +``` + +## Advanced Usage + +### Generate multiple noise levels + +For comprehensive testing, generate data at different noise levels: + +```bash +# Low noise +python -m bpdecoderplus.cli --distance 3 --p 0.001 --rounds 3 --task z \ + --generate-dem --generate-uai --generate-syndromes 10000 + +# Medium noise +python -m bpdecoderplus.cli --distance 3 --p 0.01 --rounds 3 --task z \ + --generate-dem --generate-uai --generate-syndromes 10000 + +# High noise +python -m bpdecoderplus.cli --distance 3 --p 0.05 --rounds 3 --task z \ + --generate-dem --generate-uai --generate-syndromes 10000 +``` + +### Different code distances + +```bash +# Small code (fast, lower threshold) +python -m bpdecoderplus.cli --distance 3 --p 0.01 --rounds 3 --task z \ + --generate-dem --generate-syndromes 10000 + +# Larger code (slower, higher threshold) +python -m bpdecoderplus.cli --distance 5 --p 0.01 --rounds 5 --task z \ + --generate-dem --generate-syndromes 10000 +``` + +### Custom sampling + +```python +from bpdecoderplus.syndrome import sample_syndromes, save_syndrome_database +import stim + +# Load circuit +circuit = stim.Circuit.from_file("datasets/circuits/sc_d3_r3_p0010_z.stim") + +# Sample with custom shots +syndromes, observables = sample_syndromes(circuit, num_shots=100000) + +# Save with metadata +metadata = {"description": "Large training set", "purpose": "neural decoder"} +save_syndrome_database( + syndromes, observables, + "datasets/syndromes/large_train.npz", + metadata +) +``` + +## Expected Performance + +For a distance-3 surface code with p=0.01: + +| Property | Expected Value | +|----------|---------------| +| Number of detectors | 24 (8 per round × 3 rounds) | +| Number of error mechanisms | ~286 | +| Detection event rate | 3-5% per detector | +| Observable flip rate | ~0.5-1% | +| Non-trivial syndromes | >90% | + +The BP decoder should reduce the logical error rate by 3-10x compared to no decoding. + +## File Format Reference + +### Circuit File (.stim) +Contains quantum operations and noise model. Handled automatically by the package. + +### DEM File (.dem) +Lists all error mechanisms and their effects: +``` +error(0.01) D0 D1 # Error triggers detectors 0 and 1 +error(0.01) D1 D2 # Error triggers detectors 1 and 2 +error(0.01) D0 D2 L0 # Error triggers detectors 0, 2 and flips logical +``` + +### UAI File (.uai) +Markov network representation for probabilistic inference: +``` +MARKOV # Network type +24 # Number of variables +2 2 2 ... # Variable cardinalities +286 # Number of factors +1 0 # Factor scopes +2 0 1 +... +``` + +### Syndrome Database (.npz) +NumPy archive with three components: +```python +data = np.load('sc_d3_r3_p0010_z.npz') +syndromes = data['syndromes'] # Shape: (num_shots, num_detectors) +observables = data['observables'] # Shape: (num_shots,) +metadata = data['metadata'] # JSON string with parameters +``` + +## Troubleshooting + +**Q: The command is slow** +A: Syndrome sampling is the slowest part. Start with fewer shots (e.g., 1000) for testing. + +**Q: Files are large** +A: The .npz files scale with num_shots. Use 1000-10000 shots for development, more for final evaluation. + +**Q: What's a good starting point?** +A: Use distance=3, rounds=3, p=0.01, and 10000 shots. This runs quickly and gives good statistics. + +**Q: When should I use UAI format?** +A: Use UAI format if you want to: +- Integrate with TensorInference.jl or other probabilistic inference tools +- Perform exact inference or marginal probability calculations +- Use tensor network methods for decoding + +## Next Steps + +1. **Generate your first dataset** using the Quick Start command +2. **Explore the data** by loading the .npz file and examining syndromes +3. **Experiment with different parameters** (distance, rounds, noise rate) +4. **Wait for BP decoder implementation** to evaluate decoder performance + +## References + +- [Stim Documentation](https://github.com/quantumlib/Stim) - Circuit simulation and sampling +- [TensorInference.jl](https://tensorbfs.github.io/TensorInference.jl/) - UAI format and tensor network inference +- [Surface Code Decoding](https://quantum-journal.org/papers/q-2024-10-10-1498/) - Decoder review +- [BP+OSD Paper](https://arxiv.org/abs/2005.07016) - BP decoder with OSD post-processing + +## Support + +For issues or questions: +- Check test suite: `tests/test_*.py` +- See minimal example: `examples/minimal_example.py` +- Report issues: GitHub Issues diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..0d41186 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,117 @@ +# BPDecoderPlus + +[![Tests](https://github.com/GiggleLiu/BPDecoderPlus/actions/workflows/test.yml/badge.svg)](https://github.com/GiggleLiu/BPDecoderPlus/actions/workflows/test.yml) +[![codecov](https://codecov.io/gh/GiggleLiu/BPDecoderPlus/branch/main/graph/badge.svg)](https://codecov.io/gh/GiggleLiu/BPDecoderPlus) + +**Quantum Error Correction with Belief Propagation** + +!!! note "Work in Progress" + This WIP project is for AI + Quantum winter school training. + +A winter school project on circuit-level decoding of surface codes using belief propagation and integer programming decoders, with extensions for atom loss in neutral atom quantum computers. + +## Project Goals + +| Level | Task | Description | +|-------|------|-------------| +| **Basic** | MLE Decoder | Reproduce the integer programming (MLE) decoder as the baseline | +| **Challenge** | Atom Loss | Handle atom loss errors in neutral atom systems | +| **Extension** | QEC Visualization | https://github.com/nzy1997/qec-thrust | + +!!! info + We also want to explore the boundary of vibe coding, which may lead to a scipost paper. + +## Learning Objectives + +After completing this project, students will: + +- Understand surface code structure and syndrome extraction +- Implement and compare different decoding algorithms +- Analyze decoder performance through threshold plots +- Learn about practical QEC challenges (atom loss, circuit-level noise) + +## Prerequisites + +- **Programming**: Julia basics, familiarity with Python for plotting +- **Mathematics**: Linear algebra, probability theory +- **QEC Background**: Stabilizer formalism, surface codes (helpful but not required) + +## Quick Start + +Install the package: + +```bash +# Clone the repository +git clone https://github.com/GiggleLiu/BPDecoderPlus.git +cd BPDecoderPlus + +# Install dependencies +make setup + +# Run tests +make test +``` + +Generate a dataset: + +```bash +python -m bpdecoderplus.cli \ + --distance 3 \ + --p 0.01 \ + --rounds 3 5 7 \ + --generate-dem \ + --generate-syndromes 1000 +``` + +## Features + +### Python Module (bpdecoderplus) + +- **Noisy Circuit Generation**: Create surface code circuits with realistic noise models +- **Detector Error Model (DEM)**: Extract error models for belief propagation +- **UAI Format Support**: Export to UAI format for probabilistic inference with TensorInference.jl +- **Syndrome Database**: Generate training datasets from circuit simulations +- **PyTorch BP Implementation**: Belief propagation solver for factor graphs + +### Julia Module (TensorQEC.jl Integration) + +- Multiple decoder implementations (IP, BP, BP+OSD, Matching) +- Comprehensive benchmarking tools +- Performance visualization + +## Documentation + +- [Getting Started](getting_started.md) - Quick start guide and pipeline overview +- [Usage Guide](usage_guide.md) - Detailed usage examples +- [API Reference](api_reference.md) - Complete API documentation +- [Mathematical Description](mathematical_description.md) - Mathematical background + +## Available Decoders + +| Decoder | Symbol | Description | +|---------|--------|-------------| +| IP (MLE) | `:IP` | Integer programming decoder - finds minimum weight error | +| BP | `:BP` | Belief propagation without post-processing | +| BP+OSD | `:BPOSD` | BP with Ordered Statistics Decoding post-processing | +| Matching | `:Matching` | Minimum weight perfect matching (via TensorQEC) | + +## Resources + +### Core Library +- [TensorQEC.jl](https://github.com/nzy1997/TensorQEC.jl) - QEC library we build on + +### Reference Implementations +- [bp_osd](https://github.com/quantumgizmos/bp_osd) - Python BP+OSD implementation +- [ldpc](https://github.com/quantumgizmos/ldpc) - LDPC decoder library + +### Documentation +- [TensorQEC Documentation](https://nzy1997.github.io/TensorQEC.jl/dev/) +- [Error Correction Zoo](https://errorcorrectionzoo.org/) + +## License + +MIT License - See LICENSE file for details. + +## Acknowledgments + +This project is built on [TensorQEC.jl](https://github.com/nzy1997/TensorQEC.jl) by nzy1997. diff --git a/docs/lecture_note.pdf b/docs/lecture_note.pdf new file mode 100644 index 0000000..12bff0f Binary files /dev/null and b/docs/lecture_note.pdf differ diff --git a/docs/lecture_note.typ b/docs/lecture_note.typ new file mode 100644 index 0000000..5c18322 --- /dev/null +++ b/docs/lecture_note.typ @@ -0,0 +1,2048 @@ +// BP + OSD Algorithm for Quantum Error Correction +// Lecture Note based on arXiv:2005.07016 +// "Decoding Across the Quantum LDPC Code Landscape" +// by Roffe, White, Burton, and Campbell (2020) + +#import "@preview/cetz:0.3.2": canvas, draw + +#set document(title: "BP + OSD Algorithm for Quantum Error Correction") +#set page(paper: "a4", margin: 2.5cm) +#set text(font: "New Computer Modern", size: 11pt) +#set heading(numbering: "1.1") +#set math.equation(numbering: "(1)") + +// Custom environments +#let definition(body) = block( + width: 100%, + stroke: (left: 3pt + blue), + inset: (left: 12pt, y: 8pt), + fill: rgb("#f0f7ff"), + [#text(weight: "bold")[Definition.] #body] +) + + +#let keypoint(body) = block( + width: 100%, + stroke: 1pt + orange, + inset: 10pt, + radius: 4pt, + fill: rgb("#fffaf0"), + [#text(weight: "bold")[Key Point.] #body] +) + +#let theorem(title, body) = block( + width: 100%, + stroke: (left: 3pt + purple), + inset: (left: 12pt, y: 8pt), + fill: rgb("#f8f0ff"), + [#text(weight: "bold")[Theorem (#title).] #body] +) + +#let proof(body) = block( + width: 100%, + inset: (left: 12pt, y: 8pt), + [#text(weight: "bold", style: "italic")[Proof.] #body #h(1fr) $square$] +) + +// Title +#align(center)[ + #text(size: 18pt, weight: "bold")[ + BP + OSD Algorithm for Quantum Error Correction + ] + #v(0.5em) + #text(size: 12pt)[Lecture Note based on arXiv:2005.07016] + #v(0.5em) + #text(size: 10pt, style: "italic")[ + Roffe, White, Burton, and Campbell (2020) + ] +] + +#v(1em) + +#outline(indent: auto, depth: 2) + +#pagebreak() + += Introduction + +== Overview + +This lecture note introduces the *BP+OSD decoder* for quantum error correction: + +- *BP* = Belief Propagation (a classical decoding algorithm) +- *OSD* = Ordered Statistics Decoding (a post-processing technique) + +Together, BP+OSD provides a general-purpose decoder for *quantum LDPC codes* (Low-Density Parity Check codes). + +== Learning Objectives + +By the end of this note, you will understand: + +#enum( + [How classical error correction codes work], + [The Belief Propagation algorithm for decoding], + [Why BP fails for quantum codes (the degeneracy problem)], + [How OSD fixes the degeneracy problem], + [The complete BP+OSD decoding algorithm], +) + +#pagebreak() + += Classical Error Correction + +== Linear Codes + +All arithmetic in this note is performed in *binary* (modulo 2): +- $0 + 0 = 0$, $quad$ $1 + 0 = 0 + 1 = 1$, $quad$ $1 + 1 = 0$ +- This is also written as XOR: $a plus.o b = (a + b) mod 2$ +- Vectors and matrices use element-wise mod-2 arithmetic + +== Hamming Weight and Distance + +#definition[ + The *Hamming weight* of a binary vector $bold(v)$ is the number of 1s it contains $|bold(v)| = sum_i v_i$. + The *Hamming distance* between two vectors $bold(u)$ and $bold(v)$ is the number of positions where they differ:$d(bold(u), bold(v)) = |bold(u) + bold(v)|$. +] +For example, for $bold(v) = (1, 0, 1, 1, 0)$: Hamming weight $|bold(v)| = 3$ + and for $bold(u) = (1, 1, 0, 1, 0)$ and $bold(v) = (1, 0, 1, 1, 0)$: $bold(u) + bold(v) = (0, 1, 1, 0, 0)$ and $d(bold(u), bold(v)) = 2$. +#definition[ + An *$[n, k, d]$ linear code* $cal(C)$ is a set of binary vectors (called *codewords*) where $n$ is the *block length* (number of bits in each codeword), $k$ is the *dimension* (number of information bits encoded), and $d$ is the *minimum distance* (minimum Hamming weight among non-zero codewords). The *rate* of the code is $R = k\/n$. + ] + + +A linear code can be defined by an $m times n$ *parity check matrix* $H$. $H_(i j)$ denotes the entry in row $i$, column $j$ of matrix $H$. $m$ is the number of rows in $H$ (number of parity checks), $n$ is the number of columns in $H$ (number of bits), and $"rank"(H)$ is the number of linearly independent rows. By the rank-nullity theorem: $k = n - "rank"(H)$. + +For example, + The *$[3, 1, 3]$ repetition code* encodes 1 bit into 3 bits by triplication. + + Parity check matrix: + $ H = mat(1, 1, 0; 0, 1, 1) $ + + Verification: $H dot mat(0;0;0) = mat(0;0)$ ✓ and $H dot mat(1;1;1) = mat(0;0)$ ✓ + + So the codewords are: $cal(C)_H = {(0,0,0), (1,1,1)}$ + + Parameters: $n = 3$ bits, $k = 3 - 2 = 1$ info bit, $d = 3$ (weight of $(1,1,1)$) + + +#pagebreak() + +== Error Model and Syndrome + +#definition[ + In the *binary symmetric channel* (BSC) with error probability $p$: + - Each bit is independently flipped with probability $p$ + - Original codeword: $bold(c)$ + - Error pattern: $bold(e)$ (a binary vector, $e_i = 1$ means bit $i$ flipped) + - Received word: $bold(r) = bold(c) + bold(e)$ +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Channel diagram + rect((-4, -0.5), (-2, 0.5), name: "input") + content("input", $bold(c)$) + + rect((0, -0.7), (2, 0.7), name: "channel", fill: rgb("#f0f0f0")) + content("channel", [BSC($p$)]) + + rect((4, -0.5), (6, 0.5), name: "output") + content("output", $bold(r) = bold(c) + bold(e)$) + + // Arrows + line((-2, 0), (-0.1, 0), mark: (end: ">")) + line((2.1, 0), (4, 0), mark: (end: ">")) + + // Error annotation + content((1, -1.3), text(size: 9pt)[$bold(e)$: random error]) + }), + caption: [Binary symmetric channel model] +) + +#definition[ + The *syndrome* of a received word $bold(r)$ is: + $ bold(s) = H dot bold(r) $ + + Since $H dot bold(c) = bold(0)$ for any codeword, we have: + $ bold(s) = H dot bold(r) = H dot (bold(c) + bold(e)) = H dot bold(c) + H dot bold(e) = bold(0) + H dot bold(e) = H dot bold(e) $ +] + +#keypoint[ + The syndrome depends *only on the error*, not on which codeword was sent! + This is what makes syndrome-based decoding possible. +] + +== The Decoding Problem + +Given: Parity check matrix $H$ and syndrome $bold(s) = H dot bold(e)$ + +Find: The most likely error $bold(e)^*$ that could have produced $bold(s)$ + +#definition[ + *Maximum likelihood decoding* finds: + $ bold(e)^* = arg min_(bold(e) : H dot bold(e) = bold(s)) |bold(e)| $ + + That is, the minimum Hamming weight error consistent with the syndrome. +] + +#pagebreak() + +== Probabilistic Graphical Models + +Before introducing the Belief Propagation algorithm, we need to understand how probabilistic inference problems can be represented as graphs. + +#definition[ + A *probabilistic graphical model* (PGM) is a graph-based representation of a probability distribution. Nodes represent random variables, and edges encode conditional independence relationships. PGMs enable efficient inference algorithms by exploiting the structure of the distribution. +] + +There are two main families of PGMs: +- *Directed graphical models* (Bayesian networks): edges have direction, representing causal relationships +- *Undirected graphical models* (Markov networks): edges are undirected, representing symmetric dependencies + +For error correction, we use undirected models because parity constraints are symmetric — no variable "causes" another. + +== Undirected Probabilistic Graphical Models + +#definition[ + An *undirected probabilistic graphical model* (also called a *Markov network* or *Markov random field*) represents a joint probability distribution as: + $ P(bold(x)) = 1/Z product_(c in cal(C)) psi_c (bold(x)_c) $ + + where: + - $bold(x) = (x_1, ..., x_n)$ are random variables + - $cal(C)$ is a set of *cliques* (fully connected subgraphs) + - $psi_c (bold(x)_c)$ is a *potential function* over variables in clique $c$ + - $Z = sum_(bold(x)) product_c psi_c (bold(x)_c)$ is the *partition function* (normalization constant) +] + +#keypoint[ + The UAI format mentioned in the getting started guide represents exactly this structure: variables (detectors), cliques (error mechanisms), and potential functions (error probabilities). +] + +For binary error correction with syndrome $bold(s)$, we want to compute: +$ P(bold(e) | bold(s)) prop product_c psi_c (bold(e)_c) $ + +where each potential $psi_c$ encodes a parity constraint. + +== Factor Graphs + +To understand the Belief Propagation algorithm, we need the concept of *factor graphs*. + +#definition[ + A *factor graph* is a bipartite graph $G = (V, U, E)$ representing the parity check matrix $H$. +The *data nodes* are set $V = {v_1, v_2, ..., v_n}$ + such that each node $v_j$ corresponds to each column of $H$. + A *parity nodes* are set $U = {u_1, u_2, ..., u_m}$ + such that each node $u_i$ corresponds to each row of $H$. + An *edges* $E = {(v_j, u_i) : H_(i j) = 1}$ + connects $v_j$ to $u_i$ exists if $H_(i j) = 1$. +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Data nodes (top row) + circle((0, 2), radius: 0.35, name: "v1") + content("v1", $v_1$) + circle((2, 2), radius: 0.35, name: "v2") + content("v2", $v_2$) + circle((4, 2), radius: 0.35, name: "v3") + content("v3", $v_3$) + + // Parity nodes (bottom row) + rect((0.7, -0.3), (1.3, 0.3), name: "u1") + content("u1", $u_1$) + rect((2.7, -0.3), (3.3, 0.3), name: "u2") + content("u2", $u_2$) + + // Edges for H = [[1,1,0], [0,1,1]] + line((0, 1.65), (1, 0.3)) // v1 - u1 + line((2, 1.65), (1, 0.3)) // v2 - u1 + line((2, 1.65), (3, 0.3)) // v2 - u2 + line((4, 1.65), (3, 0.3)) // v3 - u2 + // Labels + content((8, 1), text(size: 12pt)[Factor graph for $H = mat(1,1,0; 0,1,1)$]) + }), + caption: [Factor graph for the $[3,1,3]$ repetition code with node conventions] +) + +The *neighborhoods* of nodes are defined as: $V(u_i) = {v_j : H_(i j) = 1}$. + +== Comparing Graph Representations + +Three related graph representations appear in coding theory and probabilistic inference: + +#definition[ + *Comparison of graph representations:* + + 1. *Undirected Probabilistic Graphical Model (Markov Network)*: + - Nodes = random variables + - Edges = direct dependencies between variables + - Cliques = groups of mutually dependent variables + - Represents: $P(bold(x)) = 1/Z product_c psi_c (bold(x)_c)$ + + 2. *Factor Graph*: + - Two types of nodes: variable nodes AND factor nodes + - Bipartite structure: edges only between variables and factors + - Explicitly represents factorization of the distribution + - Represents: $P(bold(x)) = 1/Z product_i f_i (bold(x)_(N(i)))$ + + 3. *Tanner Graph*: + - A special case of factor graph for error correction codes + - Variable nodes = bits (columns of $H$) + - Factor nodes = parity checks (rows of $H$) + - Represents: parity check matrix $H$ structure +] + +#keypoint[ + *Key relationships:* + - Factor graphs are a *bipartite refinement* of Markov networks that make the factorization explicit + - Tanner graphs are factor graphs *specialized for linear codes* where factors represent parity constraints + - All three represent the same probability distribution, but factor graphs enable more efficient message-passing algorithms + - The UAI format represents Markov networks (cliques and potentials), while BP operates on the factor graph representation +] + +#figure( + table( + columns: 4, + align: center, + stroke: 0.5pt, + [*Property*], [*Markov Network*], [*Factor Graph*], [*Tanner Graph*], + [Node types], [Variables only], [Variables + Factors], [Bits + Checks], + [Graph structure], [General], [Bipartite], [Bipartite], + [Edges represent], [Dependencies], [Factor membership], [Parity constraints], + [Used for], [General inference], [Message passing], [Code decoding], + [BP efficiency], [Less efficient], [Efficient], [Efficient], + ), + caption: [Comparison of graph representations] +) + +*Why use factor graphs for BP?* +The bipartite structure of factor graphs makes message passing natural: +- Messages flow between variables and factors +- Each factor collects evidence from its variables +- Each variable aggregates information from its factors +- No need to handle complex clique structures + +For error correction, the Tanner graph (factor graph) representation is ideal because: +- Parity checks are naturally factors (XOR constraints) +- Bits are naturally variables (error indicators) +- The sparse structure ($H$ has few 1s) gives efficient $O(n)$ BP iterations + +#definition[ + An *$(l, q)$-LDPC code* is a linear code whose parity check matrix $H$ satisfies: + - Each column has at most $l$ ones (each bit is in at most $l$ checks) + - Each row has at most $q$ ones (each check involves at most $q$ bits) + The matrix $H$ is called *sparse* because $l$ and $q$ are small constants independent of $n$. +] + +#keypoint[ + LDPC codes are important because their sparse structure enables efficient decoding via Belief Propagation with complexity $O(n)$ per iteration. +] + +#pagebreak() + += Belief Propagation Decoder + +== Introduction and Motivation + +The rediscovery of Low-Density Parity-Check (LDPC) codes in the late 1990s marked a paradigm shift in coding theory, transitioning from algebraic decoding algorithms to probabilistic iterative decoding that approaches the Shannon limit @mackay2003information. Central to this revolution is the *Belief Propagation* (BP) algorithm @pearl1988probabilistic, a message-passing protocol that operates on the graphical representation of codes. + +#keypoint[ + *BP in Modern Communications:* BP decoding powers critical communication standards: + - Wi-Fi (IEEE 802.11n/ac/ax) + - Satellite communication (DVB-S2) + - 5G New Radio + + While its practical efficacy is undisputed, the mathematical rigor underlying its convergence behavior involves multiple theoretical frameworks: Density Evolution for asymptotic analysis, Bethe Free Energy for variational optimization, and trapping set theory for failure mechanisms. +] + +The convergence of BP is understood through different lenses depending on the regime. In the asymptotic limit of infinite block length, convergence is probabilistic and governed by Density Evolution @richardson2001capacity. In finite-length regimes, convergence is variational, linked to minimization of the Bethe Free Energy @yedidia2003understanding. However, combinatorial substructures known as trapping sets can arrest decoding, creating error floors @dolecek2010analysis. + +== The Message Passing Mechanism + +*Belief Propagation* (BP), also called the *sum-product algorithm*, is an iterative message-passing algorithm on the factor graph. + +#definition[ + The goal of BP is to compute, for each bit $j$, the *marginal probability*: + $ P_1(e_j) = P(e_j = 1 | bold(s)), $ + given $bold(s) = H dot bold(e)$ is the syndrome of the error $bold(e)$. + This is called a *soft decision* -- it tells us how likely each bit is to be flipped. +] + +We use the following notation throughout: +- $p$ as the channel error probability (probability each bit flips) +- $m_(v_j arrow.r u_i)$ as the message from data node $v_j$ to parity node $u_i$ +- $m_(u_i arrow.r v_j)$ as the message from parity node $u_i$ to data node $v_j$ +- Messages represent beliefs about whether $e_j = 1$ + +#figure( + canvas(length: 1cm, { + import draw: * + + // Data node + circle((0, 0), radius: 0.4, name: "vj") + content("vj", $v_j$) + + // Parity node + rect((4, -0.35), (4.7, 0.35), name: "ui") + content("ui", $u_i$) + + // Messages + line((0.5, 0.15), (3.9, 0.15), mark: (end: ">"), stroke: blue) + content((2.2, 0.55), text(fill: blue, size: 9pt)[$m_(v_j arrow.r u_i)$]) + + line((3.9, -0.15), (0.5, -0.15), mark: (end: ">"), stroke: red) + content((2.2, -0.55), text(fill: red, size: 9pt)[$m_(u_i arrow.r v_j)$]) + }), + caption: [Messages passed between data and parity nodes] +) +The BP-algorithm requires the quantification of how certain we are about the bit being flipped or not. This is done using *log-likelihood ratios* (LLR). +#definition[ + Instead of probabilities, BP uses *log-likelihood ratios* (LLR) for numerical stability: + $ "LLR"(e_j) = log (P(e_j = 0)) / (P(e_j = 1)) $ + + - $"LLR" > 0$ means $e_j = 0$ is more likely (bit probably correct) + - $"LLR" < 0$ means $e_j = 1$ is more likely (bit probably flipped) + - $|"LLR"|$ indicates confidence level +] + +For the channel with error probability $p$, the *channel LLR* is: +$ p_l = log (1 - p) / p $ + +Since $p < 0.5$ in practice, we have $p_l > 0$. + +#pagebreak() + +== BP Algorithm: Step-by-Step + +#let step-box(num, title, content) = { + box( + width: 100%, + stroke: 0.5pt + gray, + inset: 10pt, + radius: 4pt, + [ + #text(weight: "bold")[Step #num: #title] + #v(0.3em) + #content + ] + ) +} + +#step-box(1, "Initialization")[ + Set the channel LLR: + $ p_l = log (1-p) / p $ + + Initialize all messages from data nodes to parity nodes with the channel prior: + $ m_(v_j arrow.r u_i) := p_l quad "for all edges" (v_j, u_i) $ +] + +*Why?* Before any message passing, the only information we have about each bit is from the *channel itself*. Since each bit flips independently with probability $p$, the initial belief is simply the channel's prior: "this bit is probably correct" (because $p < 0.5$, so $p_l > 0$). + +#v(0.5em) + +#step-box(2, "Parity-to-Data Messages")[ + Each parity node $u_i$ sends a message to each connected data node $v_j$: + + $ m_(u_i arrow.r v_j) = (-1)^(s_i) dot alpha dot product_(v'_j in V(u_i) backslash v_j) "sign"(m_(v'_j arrow.r u_i)) dot min_(v'_j in V(u_i) backslash v_j) |m_(v'_j arrow.r u_i)| $ + + Where: + - $s_i$ = the $i$-th syndrome bit (given as input, either 0 or 1) + - $V(u_i) backslash v_j$ = all neighbors of $u_i$ except $v_j$ (defined in Section 3.5) + - $"sign"(x) = +1$ if $x >= 0$, else $-1$ + - $alpha = 1 - 2^(-t)$ is a *damping factor* at iteration $t$ (helps convergence) +] + +*Why?* A parity check enforces that XOR of all connected bits equals the syndrome bit $s_i$. The check node tells $v_j$: "Based on what I know about the *other* bits, here's how likely *you* are to be flipped." + +#figure( + canvas(length: 1cm, { + import draw: * + + // Parity node (center) + rect((2.7, 0.7), (3.3, 1.3), name: "ui", fill: rgb("#ffe0e0")) + content("ui", $u_i$) + + // Data nodes (tree-like above) + circle((0, 3), radius: 0.35, name: "v1", fill: rgb("#e0ffe0")) + content("v1", $v_1$) + circle((2, 3), radius: 0.35, name: "v2", fill: rgb("#e0ffe0")) + content("v2", $v_2$) + circle((4, 3), radius: 0.35, name: "vj", fill: rgb("#e0e0ff")) + content("vj", $v_j$) + circle((6, 3), radius: 0.35, name: "v4", fill: rgb("#e0ffe0")) + content("v4", $v_4$) + + // Incoming messages (green arrows) + line((0, 2.6), (2.8, 1.4), mark: (end: ">"), stroke: 1.5pt + green) + line((2, 2.6), (2.9, 1.4), mark: (end: ">"), stroke: 1.5pt + green) + line((6, 2.6), (3.2, 1.4), mark: (end: ">"), stroke: 1.5pt + green) + + // Outgoing message to v_j (blue arrow, thicker) + line((3.1, 1.4), (4, 2.6), mark: (end: ">"), stroke: 2pt + blue) + content((4.8, 2), text(fill: blue, size: 9pt)[$m_(u_i arrow.r v_j)$]) + + // Excluded message (dashed, gray) + line((4, 2.6), (3.1, 1.4), stroke: (dash: "dashed", paint: gray)) + content((2.3, 2.2), text(fill: gray, size: 8pt)[excluded]) + + // Labels + content((3, -0.2), text(size: 8pt)[Check node collects info from $v_1, v_2, v_4$]) + content((3, -0.7), text(size: 8pt)[to compute message to $v_j$ (excluding $v_j$'s own message)]) + }), + caption: [Parity-to-data message: $u_i$ uses info from all neighbors *except* $v_j$ to tell $v_j$ what it should be] +) + +*Intuition:* If $s_i = 0$, the parity check says "even number of flipped bits." If the other bits all look correct (positive LLR), then $v_j$ should also be correct. If one other bit looks flipped (negative LLR), then $v_j$ should be correct to maintain even parity. The formula computes this XOR-like logic in LLR form. + +#v(0.5em) + +#step-box(3, "Data-to-Parity Messages")[ + Each data node $v_j$ sends a message to each connected parity node $u_i$: + + $ m_(v_j arrow.r u_i) = p_l + sum_(u'_i in U(v_j) backslash u_i) m_(u'_i arrow.r v_j) $ + + Where $U(v_j) backslash u_i$ = all parity neighbors of $v_j$ except $u_i$. +] + +*Why?* A data node collects evidence from multiple parity checks. Each check provides independent information about whether this bit is flipped. The data node sums up all this evidence (in LLR, multiplication of probabilities becomes addition). + +#figure( + canvas(length: 1cm, { + import draw: * + + // Data node (center) + circle((3, 2), radius: 0.4, name: "vj", fill: rgb("#e0e0ff")) + content("vj", $v_j$) + + // Parity nodes (tree-like below) + rect((-0.3, -0.3), (0.3, 0.3), name: "u1", fill: rgb("#ffe0e0")) + content("u1", $u_1$) + rect((2.7, -0.3), (3.3, 0.3), name: "u2", fill: rgb("#ffe0e0")) + content("u2", $u_2$) + rect((5.7, -0.3), (6.3, 0.3), name: "ui", fill: rgb("#fff0e0")) + content("ui", $u_i$) + + // Incoming messages (green arrows) + line((0.1, 0.4), (2.7, 1.7), mark: (end: ">"), stroke: 1.5pt + green) + content((0.8, 1.3), text(fill: green, size: 8pt)[$m_(u_1 arrow.r v_j)$]) + line((3, 0.4), (3, 1.55), mark: (end: ">"), stroke: 1.5pt + green) + content((3.9, 0.9), text(fill: green, size: 8pt)[$m_(u_2 arrow.r v_j)$]) + + // Outgoing message to u_i (blue arrow) + line((3.3, 1.7), (5.9, 0.4), mark: (end: ">"), stroke: 2pt + blue) + content((5.5, 1.3), text(fill: blue, size: 8pt)[$m_(v_j arrow.r u_i)$]) + + // Excluded message (dashed) + line((5.9, 0.4), (3.3, 1.7), stroke: (dash: "dashed", paint: gray)) + content((5.8, 1.8), text(fill: gray, size: 8pt)[excluded]) + + // Channel prior + line((3, 3.5), (3, 2.45), mark: (end: ">"), stroke: 1.5pt + purple) + content((3, 3.8), text(fill: purple, size: 8pt)[channel prior $p_l$]) + + // Labels + content((3, -1.2), text(size: 8pt)[Data node sums: channel prior + messages from $u_1, u_2$]) + content((3, -1.7), text(size: 8pt)[to send to $u_i$ (excluding $u_i$'s own message)]) + }), + caption: [Data-to-parity message: $v_j$ combines channel prior with info from other checks] +) + +*Intuition:* Why exclude $u_i$? To avoid *echo effects*. If $v_j$ included the message it previously received from $u_i$, that information would bounce back, creating a feedback loop. On a *tree-structured graph*, this exclusion ensures each piece of evidence is counted exactly once, making BP exact. On graphs with cycles, this is an approximation. + +#pagebreak() + +#step-box(4, "Compute Soft Decisions")[ + For each bit $j$, compute the total belief (sum of all evidence): + + $ P_1(e_j) = p_l + sum_(u_i in U(v_j)) m_(u_i arrow.r v_j) $ +] + +*Why?* Unlike Step 3, here we include *all* incoming messages (no exclusion). This is the final belief about bit $j$, combining the channel prior with evidence from *every* connected parity check. The result is the log-posterior probability ratio. + +#v(0.5em) + +#step-box(5, "Make Hard Decisions")[ + Convert soft decisions to a binary estimate: + + $ e_j^"BP" = cases( + 1 & "if" P_1(e_j) < 0 quad "(more likely flipped)", + 0 & "otherwise" quad "(more likely correct)" + ) $ + + This gives us the BP estimate $bold(e)^"BP" = (e_1^"BP", e_2^"BP", ..., e_n^"BP")$. +] + +*Why?* The sign of LLR directly tells us the most likely value: $P_1 > 0$ means $P(e_j = 0) > P(e_j = 1)$, so the bit is probably correct. $P_1 < 0$ means the bit is probably flipped. + +#v(0.5em) + +#step-box(6, "Check Convergence")[ + Verify if the estimate satisfies the syndrome equation: + + $ H dot bold(e)^"BP" = bold(s) quad ? $ + + - *If yes:* BP has *converged*. Return $bold(e)^"BP"$ and soft decisions $P_1$. + - *If no:* Go back to Step 2 and repeat. + - *If max iterations reached:* BP has *failed to converge*. +] + +*Why iterate?* On graphs with cycles, a single pass doesn't propagate information globally. Each iteration allows beliefs to travel further through the graph. Eventually, if the error is correctable, the hard decisions will satisfy all parity checks. + +#figure( + canvas(length: 1cm, { + import draw: * + + // Iteration 1 + content((1, 2.5), text(weight: "bold", size: 9pt)[Iteration 1]) + circle((0, 1), radius: 0.25, fill: rgb("#e0ffe0")) + circle((1, 1), radius: 0.25, fill: rgb("#ffe0e0")) + circle((2, 1), radius: 0.25, fill: rgb("#e0e0e0")) + line((0.3, 1), (0.7, 1), mark: (end: ">"), stroke: blue) + content((1, 0.3), text(size: 7pt)[local info]) + + // Iteration 2 + content((4.5, 2.5), text(weight: "bold", size: 9pt)[Iteration 2]) + circle((3.5, 1), radius: 0.25, fill: rgb("#e0ffe0")) + circle((4.5, 1), radius: 0.25, fill: rgb("#d0ffd0")) + circle((5.5, 1), radius: 0.25, fill: rgb("#ffe0e0")) + line((3.8, 1), (4.2, 1), mark: (end: ">"), stroke: blue) + line((4.8, 1), (5.2, 1), mark: (end: ">"), stroke: blue) + content((4.5, 0.3), text(size: 7pt)[info spreads]) + + // Iteration N + content((8, 2.5), text(weight: "bold", size: 9pt)[Iteration N]) + circle((7, 1), radius: 0.25, fill: rgb("#c0ffc0")) + circle((8, 1), radius: 0.25, fill: rgb("#c0ffc0")) + circle((9, 1), radius: 0.25, fill: rgb("#c0ffc0")) + line((7.3, 1), (7.7, 1), mark: (end: ">"), stroke: green) + line((8.3, 1), (8.7, 1), mark: (end: ">"), stroke: green) + content((8, 0.3), text(size: 7pt)[global consensus]) + }), + caption: [Information propagates further with each iteration until convergence] +) +== BP Algorithm: Pseudocode + +#figure( + align(left)[ + #box( + width: 100%, + stroke: 1pt, + inset: 12pt, + radius: 4pt, + fill: luma(250), + [ + #text(weight: "bold", size: 10pt)[Algorithm 1: Belief Propagation (Min-Sum Variant)] + #v(0.5em) + #text(size: 9pt)[ + ``` + Input: Parity check matrix H, syndrome s, error probability p + Output: (converged, error_estimate, soft_decisions) + + function BP(H, s, p, max_iter=n): + p_l = log((1-p)/p) // Channel LLR + + // Step 1: Initialize all messages + for each edge (v_j, u_i) where H[i,j] = 1: + m[v_j → u_i] = p_l + + for t = 1 to max_iter: + α = 1 - 2^(-t) // Damping factor + + // Step 2: Parity-to-Data messages + for each parity node u_i: + for each neighbor v_j of u_i: + others = V(u_i) \ {v_j} // All neighbors except v_j + sign_prod = (-1)^(s[i]) × ∏_{v' in others} sign(m[v'→u_i]) + min_mag = min_{v' in others} |m[v'→u_i]| + m[u_i → v_j] = α × sign_prod × min_mag + + // Step 3: Data-to-Parity messages + for each data node v_j: + for each neighbor u_i of v_j: + others = U(v_j) \ {u_i} // All neighbors except u_i + m[v_j → u_i] = p_l + Σ_{u' in others} m[u'→v_j] + + // Steps 4-5: Compute decisions + for j = 1 to n: + P_1[j] = p_l + Σ_{u_i in U(v_j)} m[u_i→v_j] + e_BP[j] = 1 if P_1[j] < 0 else 0 + + // Step 6: Check convergence + if H × e_BP == s: + return (True, e_BP, P_1) + + return (False, e_BP, P_1) + ``` + ] + ] + ) + ], + caption: [Belief Propagation pseudocode] +) + +#pagebreak() + +== Minimum Working Example: BP on a Simple Graph + +Before diving into rigorous convergence proofs, let's build intuition with the simplest possible example: a 2-bit parity check. + +=== Problem Setup + +Consider a minimal factor graph with: +- *2 variable nodes* $v_1, v_2$ (representing error bits $e_1, e_2$) +- *1 check node* $u_1$ (enforcing parity constraint $e_1 plus.o e_2 = s$) +- *Channel error probability* $p = 0.1$ (each bit flips with 10% probability) +- *Observed syndrome* $s = 1$ (odd parity detected) + +#figure( + canvas(length: 1cm, { + import draw: * + + // Variable nodes + circle((-2, 0), radius: 0.3, fill: rgb("#e0ffe0"), name: "v1") + content("v1", $v_1$) + + circle((2, 0), radius: 0.3, fill: rgb("#e0ffe0"), name: "v2") + content("v2", $v_2$) + + // Check node + rect((-0.3, -0.3), (0.3, 0.3), fill: rgb("#ffe0e0"), name: "u1") + content("u1", $u_1$) + + // Edges with message labels + line((-1.7, 0), (-0.3, 0), stroke: blue) + content((-1, 0.3), text(fill: blue, size: 8pt)[$m_(v_1 arrow.r u_1)$]) + + line((0.3, 0), (1.7, 0), stroke: blue) + content((1, 0.3), text(fill: blue, size: 8pt)[$m_(v_2 arrow.r u_1)$]) + + line((-1.7, -0.15), (-0.3, -0.15), stroke: red) + content((-1, -0.5), text(fill: red, size: 8pt)[$m_(u_1 arrow.r v_1)$]) + + line((0.3, -0.15), (1.7, -0.15), stroke: red) + content((1, -0.5), text(fill: red, size: 8pt)[$m_(u_1 arrow.r v_2)$]) + + content((0, -1.5), text(size: 9pt)[Constraint: $e_1 plus.o e_2 = 1$]) + }), + caption: [Minimal BP example: 2 bits, 1 parity check] +) + +=== Message Initialization + +We represent messages as *log-likelihood ratios* (LLRs): +$ "LLR"(e_j) = ln((P(e_j = 0))/(P(e_j = 1))) $ + +*Initial channel messages* (prior beliefs from channel): +$ "LLR"_"channel" = ln((1-p)/p) = ln(0.9/0.1) = ln(9) approx 2.197 $ + +This means: "I believe the bit is correct (0) with 9:1 odds." + +*Iteration 0* (initialization): +$ m_(v_1 arrow.r u_1)^((0)) &= "LLR"_"channel" = 2.197 \ + m_(v_2 arrow.r u_1)^((0)) &= "LLR"_"channel" = 2.197 $ + +=== Iteration 1: Check Node Update + +The check node enforces $e_1 plus.o e_2 = 1$. The check node update rule in LLR domain is: +$ m_(u_1 arrow.r v_1)^((1)) = (-1)^s dot 2 tanh^(-1)(tanh(m_(v_2 arrow.r u_1)^((0)) \/ 2)) $ + +For syndrome $s = 1$ (odd parity), the factor $(-1)^s = -1$ *flips the sign*: + +$ m_(u_1 arrow.r v_1)^((1)) &= -2 tanh^(-1)(tanh(2.197 \/ 2)) \ + &= -2 tanh^(-1)(tanh(1.099)) \ + &= -2 tanh^(-1)(0.800) \ + &approx -2 dot 1.099 = -2.197 $ + +Similarly: +$ m_(u_1 arrow.r v_2)^((1)) = -2.197 $ + +*Interpretation:* The check node says "Given that your neighbor believes the bit is correct (+2.197), and I detected odd parity, *you* must be the error (-2.197)." + +=== Iteration 2: Variable Node Update + +Each variable node combines channel evidence with check messages: +$ m_(v_1 arrow.r u_1)^((1)) &= "LLR"_"channel" + m_(u_1 arrow.r v_1)^((1)) \ + &= 2.197 + (-2.197) = 0 $ + +$ m_(v_2 arrow.r u_1)^((1)) &= 2.197 + (-2.197) = 0 $ + +*Interpretation:* "The channel says I'm correct (+2.197), but the check says I'm wrong (-2.197). I'm uncertain (0)." + +=== Iteration 3: Check Node Update (Again) + +$ m_(u_1 arrow.r v_1)^((2)) &= -2 tanh^(-1)(tanh(0 \/ 2)) = -2 tanh^(-1)(0) = 0 \ + m_(u_1 arrow.r v_2)^((2)) &= 0 $ + +*Convergence:* Messages have stabilized at 0 (maximum uncertainty). This is expected because: +- Both bits have *identical* channel evidence +- The syndrome only tells us *one* bit is wrong, not *which* one +- BP correctly identifies that both bits are equally likely to be the error + +=== Final Beliefs + +The *belief* at each variable node combines all incoming messages. For the *final decision*, we compute: +$ "LLR"_"posterior"(e_1) = "LLR"_"channel" + m_(u_1 arrow.r v_1)^((2)) = 2.197 + 0 = 2.197 $ + +This gives $P(e_1 = 0) \/ P(e_1 = 1) = e^(2.197) approx 9$, so $P(e_1 = 1) approx 0.1$. + +Similarly for $e_2$: $P(e_2 = 1) approx 0.1$. + +*Interpretation:* BP converged to the correct marginal probabilities! Given: +- Channel error rate $p = 0.1$ +- Syndrome $s = 1$ (exactly one error) +- No way to distinguish which bit is the error + +The posterior probability that each bit is the error is indeed $approx 0.1$ (the channel prior), which is the correct Bayesian inference. + +#keypoint[ + *Key Insights from this Example:* + + 1. *Message passing converges quickly* (3 iterations for this simple graph) + + 2. *Check nodes enforce constraints* by flipping message signs when syndrome is violated + + 3. *Variable nodes aggregate evidence* from channel and checks + + 4. *BP finds correct marginals* even when the exact error is ambiguous + + 5. *Symmetry is preserved*: Both bits have equal posterior probability because they have identical evidence +] + +=== What if Syndrome was $s = 0$? + +If we observed $s = 0$ (even parity, no error detected), then: +- Check node messages: $m_(u_1 arrow.r v_i) = +2.197$ (confirming channel belief) +- Final beliefs: $"LLR"_"posterior" = 2.197 + 2.197 = 4.394$ +- Posterior: $P(e_i = 1) approx 0.01$ (very confident both bits are correct) + +This shows how BP *amplifies confidence* when channel and syndrome agree, and *resolves uncertainty* when they conflict. + +#pagebreak() + +== BP Convergence and Performance Guarantees + +#theorem("BP Convergence on Trees")[@pearl1988probabilistic @montanari2008belief + If the factor graph $G = (V, U, E)$ is a *tree* (contains no cycles), then BP converges to the *exact* marginal probabilities $P(e_j = 1 | bold(s))$ in at most $d$ iterations, where $d$ is the diameter of the tree (maximum distance between any two nodes). +] + +#proof[ + We prove exactness by induction on the tree structure, using the factorization property of graphical models. + + *Factorization on Trees:* For a tree-structured factor graph, the joint probability distribution factors as: + $ P(bold(x)) = 1/Z product_(a in cal(F)) psi_a(bold(x)_(cal(N)(a))) $ + where $cal(F)$ is the set of factors, $cal(N)(a)$ are neighbors of factor $a$, and $Z$ is the partition function. + + *Key Property:* On a tree, removing any node $v$ separates the graph into disjoint connected components (subtrees). By the global Markov property, variables in different subtrees are conditionally independent given $v$. + + *Base Case (Leaf Nodes):* Consider a leaf variable node $v$ with single neighbor (factor) $a$. The message $mu_(v arrow.r a)(x_v)$ depends only on the local evidence $P(y_v | x_v)$. Since there are no other dependencies, this message is exact at iteration 1. + + *Inductive Step:* Assume messages from all nodes at distance $> k$ from root are exact. Consider node $u$ at distance $k$ with neighbors $cal(N)(u) = {a_1, ..., a_m}$. + + For message $mu_(u arrow.r a_i)(x_u)$, the BP update is: + $ mu_(u arrow.r a_i)(x_u) prop P(y_u | x_u) product_(a_j in cal(N)(u) without {a_i}) mu_(a_j arrow.r u)(x_u) $ + + By the separation property, removing $u$ creates $m$ independent subtrees rooted at ${a_1, ..., a_m}$. By the inductive hypothesis, messages from these subtrees are exact marginals of their respective subtrees. Since subtrees are conditionally independent given $u$, the product of messages equals the joint probability of all subtree configurations, making $mu_(u arrow.r a_i)(x_u)$ exact. + + *Termination:* After $d$ iterations (where $d$ is the tree diameter), messages have propagated from all leaves to all nodes. Each node's belief $b_v(x_v) prop P(y_v | x_v) product_(a in cal(N)(v)) mu_(a arrow.r v)(x_v)$ equals the exact marginal $P(x_v | bold(y))$ by the factorization property. + + Therefore, BP computes exact marginals on trees in $d$ iterations. +] + +*Example:* Consider the $[7, 4, 3]$ Hamming code with tree-structured factor graph: + +#figure( + canvas(length: 1cm, { + import draw: * + + // Data nodes (top) + for (i, x) in ((0, 0), (1, 2), (2, 4), (3, 6)) { + circle((x, 3), radius: 0.3, name: "v" + str(i), fill: rgb("#e0ffe0")) + content("v" + str(i), $v_#i$) + } + + // Parity nodes (bottom) + for (i, x) in ((0, 1), (1, 3), (2, 5)) { + rect((x - 0.3, -0.3), (x + 0.3, 0.3), name: "u" + str(i), fill: rgb("#ffe0e0")) + content("u" + str(i), $u_#i$) + } + + // Tree edges (no cycles) + line((0, 2.7), (0.8, 0.3)) // v0-u0 + line((2, 2.7), (1.2, 0.3)) // v1-u0 + line((2, 2.7), (2.8, 0.3)) // v1-u1 + line((4, 2.7), (3.2, 0.3)) // v2-u1 + line((4, 2.7), (4.8, 0.3)) // v2-u2 + line((6, 2.7), (5.2, 0.3)) // v3-u2 + + content((3, -1.2), text(size: 9pt)[Tree structure: diameter $d = 4$, BP converges in 4 iterations]) + }), + caption: [Tree-structured code where BP gives exact solution] +) + +For this tree with syndrome $bold(s) = (1, 0, 0)$ and $p = 0.1$: +- BP converges in $d = 4$ iterations +- Output: $bold(e)^"BP" = (1, 0, 0, 0, 0, 0, 0)$ (single bit flip at position 0) +- This is the *exact* maximum likelihood solution + +#v(1em) + +#theorem("BP Performance on Graphs with Cycles")[@richardson2008modern @tatikonda2002loopy + For an $(l, q)$-LDPC code with factor graph of *girth* $g$ (minimum cycle length), BP provides the following guarantees: + + 1. *Local optimality:* If the true error $bold(e)^*$ has Hamming weight $|bold(e)^*| < g\/2$, then BP converges to $bold(e)^*$ with high probability (for sufficiently small $p$). + + 2. *Approximation bound:* For codes with girth $g >= 6$ and maximum degree $Delta = max(l, q)$, if BP converges, the output $bold(e)^"BP"$ satisfies: + $ |bold(e)^"BP"| <= (1 + epsilon(g, Delta)) dot |bold(e)^*| $ + where $epsilon(g, Delta) arrow.r 0$ as $g arrow.r infinity$ for fixed $Delta$. + + 3. *Iteration complexity:* BP requires $O(g)$ iterations to propagate information across the shortest cycle. +] + +#proof[ + *Part 1 (Local optimality):* Consider an error $bold(e)^*$ with $|bold(e)^*| < g\/2$. In the factor graph, the neighborhood of radius $r = floor(g\/2) - 1$ around any error bit is a tree (no cycles within distance $r$). Within this tree neighborhood: + - BP computes exact marginals (by Theorem 1) + - The error bits are separated by distance $>= g\/2$ + - No interference between error regions + + Therefore, BP correctly identifies each error bit independently, giving $bold(e)^"BP" = bold(e)^*$. + + *Part 2 (Approximation bound):* For $|bold(e)^*| >= g\/2$, cycles create dependencies. The approximation error comes from: + - *Double-counting:* Evidence circulates through cycles + - *Correlation:* Nearby error bits are not independent + + For girth $g$, the correlation decays exponentially with distance. The number of length-$g$ cycles through a node is bounded by $Delta^g$. Using the correlation decay lemma for loopy belief propagation, the relative error in log-likelihood ratios is: + $ epsilon(g, Delta) <= C dot Delta^(2-g\/2) $ + for some constant $C$. This translates to the weight approximation bound. + + *Part 3 (Iteration complexity):* Information propagates one edge per iteration. To detect a cycle of length $g$, messages must travel distance $g$, requiring $O(g)$ iterations. +] + +#keypoint[ + *Practical implications:* + - Codes with large girth $g$ (e.g., $g >= 8$) allow BP to correct more errors + - Random LDPC codes typically have $g = O(log n)$, giving good BP performance + - Structured codes (e.g., Toric code with $g = 4$) have small girth, leading to BP failures + - The degeneracy problem in quantum codes compounds the cycle problem, making OSD necessary +] + +=== Density Evolution Framework + +We now develop the rigorous theoretical foundations that explain *when* and *why* BP converges in different regimes, drawing from asymptotic analysis via density evolution @richardson2001capacity, variational optimization through statistical physics @yedidia2003understanding, and combinatorial failure modes @dolecek2010analysis. + +For infinite-length random LDPC codes, convergence is analyzed through the *density evolution* method @richardson2008modern, which tracks the probability distributions of messages rather than individual message values. + +#definition[ + *Cycle-Free Horizon:* For a random LDPC code with block length $n arrow.r infinity$, the *computation tree* of depth $l$ rooted at any edge is the subgraph containing all nodes reachable within $l$ hops. The cycle-free horizon property states: + $ lim_(n arrow.r infinity) bb(P)(text("cycle in depth-")l text(" tree")) = 0 $ + + This means that for any fixed number of iterations $l$, the local neighborhood appears tree-like with probability approaching 1 as $n arrow.r infinity$. +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Root edge + circle((0, 0), radius: 0.15, fill: blue.lighten(60%)) + content((0, 0), text(size: 8pt, fill: blue)[root]) + + // Depth 1 + for i in range(3) { + let x = (i - 1) * 1.5 + circle((x, -1.2), radius: 0.12, fill: red.lighten(70%)) + line((0, -0.15), (x, -1.08)) + } + + // Depth 2 + for i in range(3) { + for j in range(2) { + let x = (i - 1) * 1.5 + (j - 0.5) * 0.6 + let y = -2.2 + circle((x, y), radius: 0.1, fill: blue.lighten(60%)) + line(((i - 1) * 1.5, -1.32), (x, y + 0.1)) + } + } + + content((0, -3), text(size: 9pt)[Computation tree of depth $l=2$: no cycles]) + content((3.5, -1), text(size: 8pt, fill: red)[check nodes]) + content((3.5, -1.5), text(size: 8pt, fill: blue)[variable nodes]) + }), + caption: [Locally tree-like structure in large random graphs] +) + +#keypoint[ + The cycle-free horizon is the mathematical justification for applying tree-based convergence proofs to loopy graphs in the asymptotic limit. It explains why BP performs well on long random LDPC codes despite the presence of cycles. +] + +#definition[ + *Concentration Theorem:* Let $Z$ be a performance metric (e.g., bit error rate) of BP after $l$ iterations on a code randomly drawn from ensemble $cal(C)(n, lambda, rho)$, where $lambda(x)$ and $rho(x)$ are the variable and check node degree distributions. For any $epsilon > 0$: + $ bb(P)(|Z - bb(E)[Z]| > epsilon) <= e^(-beta n epsilon^2) $ + where $beta > 0$ depends on the ensemble parameters. + + *Interpretation:* As $n arrow.r infinity$, almost all codes in the ensemble perform identically to the ensemble average. Individual code performance concentrates around the mean with exponentially small deviation probability. +] + +#keypoint[ + *Concentration visualization:* The performance metric $Z$ concentrates exponentially around its ensemble average $bb(E)[Z]$. For large block length $n$, the probability of deviation greater than $epsilon$ decays as $e^(-beta n epsilon^2)$, meaning almost all codes perform identically to the average. +] + +The proof of the Concentration Theorem uses martingale theory: + +#proof[ + *Proof sketch via Doob's Martingale:* + + 1. *Martingale Construction:* View code selection as revealing edges sequentially. Define $Z_i = bb(E)[Z | text("first ") i text(" edges revealed")]$. This forms a Doob martingale: $bb(E)[Z_(i+1) | Z_0, ..., Z_i] = Z_i$. + + 2. *Bounded Differences:* In a sparse graph with maximum degree $Delta$, changing a single edge affects at most $O(Delta^l)$ messages after $l$ iterations. Since $Delta$ is constant and $l$ is fixed, the change in $Z$ is bounded: $|Z_i - Z_(i-1)| <= c\/n$ for some constant $c$. + + 3. *Azuma-Hoeffding Inequality:* For a martingale with bounded differences $|Z_i - Z_(i-1)| <= c_i$: + $ bb(P)(|Z_m - Z_0| > epsilon) <= 2 exp(-(epsilon^2)/(2 sum_(i=1)^m c_i^2)) $ + + 4. *Application:* With $m = O(n)$ edges and $c_i = O(1\/n)$, we have $sum c_i^2 = O(1\/n)$, giving: + $ bb(P)(|Z - bb(E)[Z]| > epsilon) <= 2 exp(-(epsilon^2 n)/(2 C)) = e^(-beta n epsilon^2) $ + where $beta = 1\/(2C)$. +] + +#theorem("Threshold Theorem")[ + For a code ensemble with degree distributions $lambda(x), rho(x)$ and a symmetric channel with noise parameter $sigma$ (e.g., standard deviation for AWGN), there exists a unique *threshold* $sigma^*$ such that: + + 1. If $sigma < sigma^*$ (low noise): As $l arrow.r infinity$, the probability of decoding error $P_e^((l)) arrow.r 0$ + + 2. If $sigma > sigma^*$ (high noise): $P_e^((l))$ remains bounded away from zero + + The threshold is determined by the fixed points of the density evolution recursion: + $ P_(l+1) = Phi(P_l, sigma) $ + where $Phi$ is the density update operator combining variable and check node operations. +] + +#keypoint[ + *Threshold phenomenon:* There exists a sharp transition at $sigma^*$. Below this threshold (low noise), BP converges to zero error as iterations increase. Above threshold (high noise), errors persist. This sharp phase transition is characteristic of random LDPC ensembles. +] + +#keypoint[ + *Why the threshold exists:* The density evolution operator $Phi$ has two competing fixed points: + - *All-correct fixed point:* Messages concentrate at $plus.minus infinity$ (high confidence) + - *Error fixed point:* Messages remain near zero (low confidence) + + Below threshold, the all-correct fixed point is stable and attracts all trajectories. Above threshold, the error fixed point becomes stable, trapping the decoder. +] + +=== Variational Perspective: Bethe Free Energy + +The density evolution framework applies to infinite-length codes. For finite loopy graphs, we need a different lens: *statistical physics* @yedidia2003understanding. This reveals that BP is actually performing *variational optimization* of an energy function. + +#definition[ + *Bethe Free Energy:* For a factor graph with variables $bold(x) = (x_1, ..., x_n)$ and factors $psi_a$, let $b_i(x_i)$ be the *belief* (pseudo-marginal) at variable $i$ and $b_a(bold(x)_a)$ be the belief at factor $a$. The Bethe Free Energy is: + $ F_"Bethe"(b) = sum_a sum_(bold(x)_a) b_a(bold(x)_a) E_a(bold(x)_a) - H_"Bethe"(b) $ + + where the *Bethe entropy* approximates the true entropy using local entropies: + $ H_"Bethe" = sum_a H(b_a) + sum_i (1 - d_i) H(b_i) $ + + Here $d_i$ is the degree of variable $i$, and $H(b) = -sum_x b(x) log b(x)$ is the Shannon entropy. + + *Constraints:* Beliefs must be normalized and *marginally consistent*: + $ sum_(bold(x)_a without x_i) b_a(bold(x)_a) = b_i(x_i) quad "for all" i in a $ +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Simple 3-node factor graph + circle((-1.5, 0), radius: 0.15, fill: blue.lighten(60%)) + content((-1.5, 0), text(size: 8pt)[$x_1$]) + + circle((1.5, 0), radius: 0.15, fill: blue.lighten(60%)) + content((1.5, 0), text(size: 8pt)[$x_2$]) + + rect((-0.15, -0.15), (0.15, 0.15), fill: red.lighten(70%)) + content((0, 0), text(size: 8pt)[$psi$]) + + line((-1.35, 0), (-0.15, 0), stroke: gray) + line((0.15, 0), (1.35, 0), stroke: gray) + + // Entropy terms + content((-1.5, -0.8), text(size: 8pt, fill: blue)[$H(b_1)$]) + content((1.5, -0.8), text(size: 8pt, fill: blue)[$H(b_2)$]) + content((0, -0.8), text(size: 8pt, fill: red)[$H(b_psi)$]) + + content((0, -1.5), text(size: 9pt)[Bethe entropy: $H_"Bethe" = H(b_psi) + (1-2)H(b_1) + (1-2)H(b_2)$]) + content((0, -2), text(size: 8pt)[$(d_1 = d_2 = 2$ for this graph$)$]) + }), + caption: [Bethe entropy decomposes global entropy into local terms] +) + +#keypoint[ + *Intuition:* The Bethe approximation treats each factor independently, summing local entropies. The $(1 - d_i)$ correction prevents double-counting: a variable connected to $d_i$ factors appears in $d_i$ factor entropies, so we subtract $(d_i - 1)$ copies of its individual entropy. +] + +#theorem("Yedidia-Freeman-Weiss")[@yedidia2003understanding + A set of beliefs $\\{b_i, b_a\\}$ is a *fixed point* of the Sum-Product BP algorithm if and only if it is a *stationary point* (critical point) of the Bethe Free Energy $F_"Bethe"(b)$ subject to normalization and marginalization constraints. + + *Equivalently:* BP performs coordinate descent on the Bethe Free Energy. Each message update corresponds to minimizing $F_"Bethe"$ with respect to one edge's belief. +] + +#proof[ + *Proof sketch via Lagrangian:* + + 1. *Constrained optimization:* Form the Lagrangian: + $ cal(L) = F_"Bethe"(b) + sum_(i,a) sum_(x_i) lambda_(i a)(x_i) (b_i(x_i) - sum_(bold(x)_a without x_i) b_a(bold(x)_a)) + "normalization terms" $ + + 2. *Stationarity conditions:* Taking $partial cal(L) \/ partial b_a = 0$ and $partial cal(L) \/ partial b_i = 0$: + $ b_a(bold(x)_a) prop psi_a(bold(x)_a) product_(i in a) exp(lambda_(i a)(x_i)) $ + $ b_i(x_i) prop product_(a in i) exp(lambda_(a i)(x_i)) $ + + 3. *Message identification:* Define messages $mu_(i arrow.r a)(x_i) = exp(lambda_(i a)(x_i))$. Substituting and enforcing marginalization constraints yields exactly the BP update equations: + $ mu_(i arrow.r a)(x_i) prop P(y_i | x_i) product_(a' in i without a) mu_(a' arrow.r i)(x_i) $ + $ mu_(a arrow.r i)(x_i) prop sum_(bold(x)_a without x_i) psi_a(bold(x)_a) product_(i' in a without i) mu_(i' arrow.r a)(x_(i')) $ +] + +#keypoint[ + *Energy landscape interpretation:* BP performs gradient descent on the Bethe Free Energy landscape. On trees, there's a single global minimum (correct solution). On loopy graphs, local minima can trap the decoder, corresponding to incorrect fixed points. The contour lines represent energy levels, with BP trajectories flowing toward minima. +] + +#keypoint[ + *Implications for convergence:* + - *On trees:* Bethe approximation is exact ($F_"Bethe" = F_"Gibbs"$), so BP finds the global minimum + - *On loopy graphs:* $F_"Bethe"$ is an approximation. BP finds a local minimum, which may not be the true posterior + - *Stable fixed points* correspond to local minima of $F_"Bethe"$ + - *Unstable fixed points* (saddle points) cause oscillations + + This explains why BP can converge to incorrect solutions: it gets trapped in local minima created by graph cycles. +] + +=== Sufficient Conditions for Convergence + +While density evolution guarantees asymptotic convergence and Bethe theory explains fixed points, neither provides *guarantees* for specific finite loopy graphs. We now present rigorous sufficient conditions @ihler2005loopy. + +#definition[ + *Dobrushin's Influence Matrix:* For a graphical model, the influence $C_(i j)$ measures the maximum change in the marginal distribution of variable $i$ caused by fixing variable $j$: + $ C_(i j) = sup_(x_j, x_j') ||P(x_i | x_j) - P(x_i | x_j')||_"TV" $ + + where $|| dot ||_"TV"$ is the total variation distance. + + The *Dobrushin interdependence matrix* $bold(C)$ has entries $C_(i j)$ for $i eq.not j$ and $C_(i i) = 0$. +] + +#theorem("Dobrushin's Uniqueness Condition")[ + If the Dobrushin matrix satisfies: + $ ||bold(C)||_infinity = max_i sum_(j eq.not i) C_(i j) < 1 $ + + then: + 1. The Gibbs measure has a unique fixed point + 2. BP converges exponentially fast to this fixed point from any initialization + 3. The convergence rate is $lambda = ||bold(C)||_infinity$ +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Small graph example + for i in range(4) { + let angle = i * 90deg + let x = 1.5 * calc.cos(angle) + let y = 1.5 * calc.sin(angle) + circle((x, y), radius: 0.15, fill: blue.lighten(60%)) + content((x, y), text(size: 8pt)[$x_#(i+1)$]) + } + + // Edges + for i in range(4) { + let angle1 = i * 90deg + let angle2 = calc.rem(i + 1, 4) * 90deg + let x1 = 1.5 * calc.cos(angle1) + let y1 = 1.5 * calc.sin(angle1) + let x2 = 1.5 * calc.cos(angle2) + let y2 = 1.5 * calc.sin(angle2) + line((x1, y1), (x2, y2), stroke: gray) + } + + // Influence matrix + content((0, -2.5), text(size: 9pt)[Example: 4-cycle with weak coupling]) + content((0, -3), text(size: 8pt)[$||bold(C)||_infinity = max_i sum_j C_(i j) = 2 dot 0.3 = 0.6 < 1$ ✓]) + }), + caption: [Dobrushin condition: information dissipates through the graph] +) + +#keypoint[ + *Limitation for LDPC codes:* Error correction codes are designed to *propagate* information over long distances. Parity checks impose hard constraints (infinite coupling strength). Therefore, useful LDPC codes typically *violate* Dobrushin's condition. + + While sufficient, Dobrushin's condition is far from necessary. It applies mainly to high-noise regimes where correlations are weak. +] + +#theorem("Contraction Mapping Convergence")[ + View BP as a mapping $bold(T): cal(M) arrow.r cal(M)$ on the space of messages. If $bold(T)$ is a *contraction* under some metric $d$: + $ d(bold(T)(bold(m)), bold(T)(bold(m'))) <= lambda dot d(bold(m), bold(m')) $ + with Lipschitz constant $lambda < 1$, then: + + 1. BP has a unique fixed point $bold(m)^*$ + 2. BP converges geometrically: $d(bold(m)^((t)), bold(m)^*) <= lambda^t d(bold(m)^((0)), bold(m)^*)$ +] + +#proof[ + *Proof:* Direct application of the Banach Fixed Point Theorem. The contraction property ensures: + - *Uniqueness:* If $bold(m)^*$ and $bold(m')^*$ are both fixed points, then: + $ d(bold(m)^*, bold(m')^*) = d(bold(T)(bold(m)^*), bold(T)(bold(m')^*)) <= lambda dot d(bold(m)^*, bold(m')^*) $ + Since $lambda < 1$, this implies $d(bold(m)^*, bold(m')^*) = 0$, so $bold(m)^* = bold(m')^*$. + + - *Convergence:* For any initialization $bold(m)^((0))$: + $ d(bold(m)^((t+1)), bold(m)^*) = d(bold(T)(bold(m)^((t))), bold(T)(bold(m)^*)) <= lambda dot d(bold(m)^((t)), bold(m)^*) $ + Iterating gives $d(bold(m)^((t)), bold(m)^*) <= lambda^t d(bold(m)^((0)), bold(m)^*)$. +] + +#keypoint[ + *Spectral radius condition:* For binary pairwise models, the contraction constant can be computed from the *spectral radius* of the interaction matrix: + $ rho(bold(A)) < 1, quad "where" A_(i j) = tanh |J_(i j)| $ + + This is sharper than Dobrushin's condition (which corresponds to the $L_infinity$ norm of $bold(A)$). +] + +=== Failure Mechanisms: Trapping Sets + +The previous sections explain when BP converges. We now characterize when and why it *fails* @dolecek2010analysis. In the high-SNR regime, BP can get trapped in incorrect fixed points due to specific graph substructures. + +#definition[ + *(a,b) Absorbing Set:* A subset $cal(D) subset.eq V$ of $a$ variable nodes is an $(a, b)$ absorbing set if: + + 1. The induced subgraph contains exactly $b$ *odd-degree* check nodes (unsatisfied checks) + 2. Every variable node $v in cal(D)$ has *strictly more* even-degree neighbors than odd-degree neighbors in the induced subgraph + + *Interpretation:* If the variables in $cal(D)$ are in error, each receives more "confirming" messages (from satisfied checks) than "correcting" messages (from unsatisfied checks), causing the decoder to stabilize in the error state. +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // The canonical (5,3) absorbing set + // 5 variable nodes in a specific configuration + let var_pos = ( + (-1.5, 0), + (-0.75, 1), + (0.75, 1), + (1.5, 0), + (0, -0.5) + ) + + // Variable nodes + for (i, pos) in var_pos.enumerate() { + circle(pos, radius: 0.15, fill: red.lighten(40%)) + content(pos, text(size: 7pt, fill: white, weight: "bold")[$v_#(i+1)$]) + } + + // Check nodes (3 odd-degree, others even-degree) + let check_pos = ( + (-1.1, 0.5), // odd + (0, 0.7), // odd + (1.1, 0.5), // odd + (-0.5, -0.8), // even (degree 2) + (0.5, -0.8) // even (degree 2) + ) + + for (i, pos) in check_pos.enumerate() { + let color = if i < 3 { rgb("#ff8800") } else { rgb("#00cc00") } + rect((pos.at(0) - 0.12, pos.at(1) - 0.12), (pos.at(0) + 0.12, pos.at(1) + 0.12), + fill: color.lighten(60%)) + content(pos, text(size: 6pt)[$c_#(i+1)$]) + } + + // Edges (simplified connectivity) + line(var_pos.at(0), check_pos.at(0)) + line(var_pos.at(1), check_pos.at(0)) + line(var_pos.at(1), check_pos.at(1)) + line(var_pos.at(2), check_pos.at(1)) + line(var_pos.at(2), check_pos.at(2)) + line(var_pos.at(3), check_pos.at(2)) + line(var_pos.at(4), check_pos.at(3)) + line(var_pos.at(0), check_pos.at(3)) + line(var_pos.at(4), check_pos.at(4)) + line(var_pos.at(3), check_pos.at(4)) + + content((0, -1.8), text(size: 9pt, fill: red)[5 error variables (red)]) + content((0, -2.2), text(size: 9pt, fill: rgb("#ff8800"))[3 odd-degree checks (orange)]) + content((0, -2.6), text(size: 9pt, fill: rgb("#00cc00"))[Even-degree checks (green)]) + content((0, -3.2), text(size: 8pt)[Canonical $(5,3)$ absorbing set: each variable has $>=2$ even neighbors]) + }), + caption: [The $(5,3)$ absorbing set: a stable error configuration] +) + +#keypoint[ + *Why BP gets trapped:* + 1. *Majority vote:* Each variable node performs a weighted majority vote of its check neighbors + 2. *Satisfied checks dominate:* In an absorbing set, satisfied checks (even degree) outnumber unsatisfied checks (odd degree) for each variable + 3. *Reinforcement loop:* Satisfied checks send messages that *confirm* the error state, while unsatisfied checks send weak correction signals + 4. *Stable fixed point:* The configuration becomes a local minimum of the Bethe Free Energy + + This is the primary cause of *error floors* in LDPC codes: at high SNR, rare noise patterns that activate absorbing sets dominate the error probability. +] + +#theorem("Absorbing Sets and Error Floors")[ + For an LDPC code with minimum absorbing set size $(a_"min", b_"min")$, the error floor is dominated by: + $ P_"error" approx binom(n, a_"min") dot p^(a_"min") dot (1-p)^(n-a_"min") dot P_"trap" $ + + where $P_"trap"$ is the probability that BP fails to correct the absorbing set configuration. + + *Implication:* Error floor height is determined by the *size* and *multiplicity* of small absorbing sets. Code design focuses on eliminating small absorbing sets. +] + +#pagebreak() + + += Minimum Weight Perfect Matching (MWPM) Decoder + +== Maximum Likelihood Decoding and MWPM + +Maximum Likelihood Decoding (MLD) seeks the most probable error pattern $bold(e)$ given syndrome $bold(s)$ and error probabilities $p(bold(e))$. + +#definition[ + *Maximum Likelihood Decoding Problem:* Given parity check matrix $bold(H) in bb(F)_2^(m times n)$, syndrome $bold(s) in bb(F)_2^m$, and error weights $w_i = ln((1-p_i)/p_i)$, find: + $ min_(bold(c) in bb(F)_2^n) sum_(i in [n]) w_i c_i quad "subject to" quad bold(H) bold(c) = bold(s) $ +] + +For certain code structures, MLD can be efficiently reduced to a graph matching problem. + +#theorem("MLD to MWPM Reduction")[ + If every column of $bold(H)$ has at most 2 non-zero elements (each error triggers at most 2 detectors), then MLD can be deterministically reduced to Minimum Weight Perfect Matching with boundaries in polynomial time. +] + +#definition[ + *Detector Graph:* Given $bold(H) in bb(F)_2^(m times n)$, construct graph $G = (V, E)$ where: + - Vertices: $V = [m] union {0}$ (detectors plus boundary vertex) + - Edges: For each column $i$ of $bold(H)$: + - If column $i$ has weight 2 (triggers detectors $x_1, x_2$): edge $(x_1, x_2)$ with weight $w_i$ + - If column $i$ has weight 1 (triggers detector $x$): edge $(x, 0)$ with weight $w_i$ +] + +#proof[ + *Reduction procedure:* + + 1. *Graph construction:* Build detector graph $G$ from $bold(H)$ as defined above. The boundary operator $partial: bb(F)_2^n arrow.r bb(F)_2^(m+1)$ maps edge vectors to vertex vectors, corresponding to the parity check matrix. + + 2. *Syndrome to boundary:* Given syndrome $bold(s) in bb(F)_2^m$, identify the set $D subset.eq V$ of vertices with non-zero syndrome values. This becomes the boundary condition for the matching problem. + + 3. *Shortest path computation:* For all pairs $(u, v)$ where $u, v in D union {0}$, compute shortest paths using Dijkstra's algorithm. This requires $O(|D|^2)$ shortest path computations, constructing a complete weighted graph on $D union {0}$. + + 4. *MWPM with boundary:* Solve MWPM on the complete graph with boundary vertex ${0}$. The solution gives edges whose boundary equals $D$, which corresponds to the minimum weight error pattern satisfying $bold(H) bold(c) = bold(s)$. + + Since each step is polynomial time, MLD reduces to MWPM in polynomial time. +] + +== The Matching Polytope + +#definition[ + *Weighted Perfect Matching:* Given weighted graph $G = (V, E, W)$ where $W = {w_e in bb(R) | e in E}$: + - A *matching* $M subset.eq E$ has no two edges sharing a vertex + - A *perfect matching* covers every vertex in $V$ + - The *weight* of matching $M$ is $sum_(e in M) w_e$ +] + +The integer programming formulation uses indicator variables $x_e in {0, 1}$: + +$ min_bold(x) sum_(e in E) w_e x_e quad "subject to" quad sum_(e in delta({v})) x_e = 1 space forall v in V, quad x_e in {0, 1} $ + +where $delta({v})$ denotes edges incident to vertex $v$. + +#theorem("Matching Polytope Characterization")[ + Define the odd set family $cal(O)(G) = {U subset.eq V : |U| "is odd and" >= 3}$. Let: + $ P_1(G) &= "conv"{bold(x) : x_e in {0,1}, sum_(e in delta({v})) x_e = 1 space forall v in V} \ + P_2(G) &= {bold(x) : x_e >= 0, sum_(e in delta({v})) x_e = 1 space forall v in V, sum_(e in delta(U)) x_e >= 1 space forall U in cal(O)(G)} $ + + If edge weights are rational, then $P_1(G) = P_2(G)$. + + *Implication:* The integer program can be relaxed to a linear program by replacing $x_e in {0,1}$ with $x_e >= 0$ and adding the *blossom constraints* $sum_(e in delta(U)) x_e >= 1$ for all odd sets $U$. +] + +#keypoint[ + *Why blossom constraints matter:* An odd set $U$ cannot have a perfect matching using only internal edges (odd number of vertices). Therefore, at least one edge must connect to the outside: $sum_(e in delta(U)) x_e >= 1$. This constraint is necessary and sufficient for the convex hull to equal the integer hull. +] + +== Dual Formulation and Optimality Conditions + +#definition[ + *MWPM Dual Problem:* The dual of the MWPM linear program is: + $ max_(bold(y)) sum_(v in V) y_v + sum_(O in cal(O)(G)) y_O $ + subject to: + $ lambda_e = w_e - (y_(v_1) + y_(v_2)) - sum_(O: e in delta(O)) y_O >= 0 quad forall e in E \ + y_O >= 0 quad forall O in cal(O)(G) $ + + where $lambda_e$ is the *slack* of edge $e$. +] + +#theorem("KKT Complementary Slackness")[ + Primal solution $bold(x)$ and dual solution $(bold(y), {y_O})$ are optimal if and only if: + 1. *Primal feasibility:* $sum_(e in delta({v})) x_e = 1$, $sum_(e in delta(U)) x_e >= 1$, $x_e >= 0$ + 2. *Dual feasibility:* $lambda_e >= 0$, $y_O >= 0$ + 3. *Complementary slackness:* + - $lambda_e x_e = 0$ (tight edges are in matching) + - $y_O (sum_(e in delta(O)) x_e - 1) = 0$ (tight odd sets have positive dual) +] + +== The Blossom Algorithm + +The Blossom algorithm, developed by Edmonds (1965), solves MWPM by maintaining primal and dual feasibility while growing alternating trees. + +#definition[ + *Alternating structures:* + - *M-alternating walk:* Path $(v_0, v_1, ..., v_t)$ where edges alternate between $M$ and $E without M$ + - *M-augmenting path:* M-alternating walk with both endpoints unmatched + - *M-blossom:* Odd-length cycle in an M-alternating walk where edges alternate in/out of $M$ +] + +#keypoint[ + *Algorithm overview:* + + 1. *Initialization:* Start with empty matching $M = emptyset$, dual variables $y_v = 0$ + + 2. *Main loop:* While $M$ is not perfect: + - *Search:* Find M-alternating walks from unmatched vertices + - *Augment:* If M-augmenting path found, flip edges along path (add unmatched edges, remove matched edges) + - *Shrink:* If M-blossom found, contract it to a single vertex, update dual variables + - *Grow:* If no path/blossom found, increase dual variables to make new edges tight, add to search tree + - *Expand:* When blossom dual variable reaches zero, uncontract it + + 3. *Termination:* When all vertices are matched, return $M$ +] + +#theorem("Blossom Algorithm Correctness and Complexity")[ + The Blossom algorithm: + 1. Maintains primal feasibility, dual feasibility, and complementary slackness throughout + 2. Terminates with an optimal MWPM + 3. Runs in $O(|V|^3)$ time with careful implementation + + *Iteration bounds:* + - Augmentations: at most $|V|\/2$ + - Contractions: at most $2|V|$ + - Expansions: at most $2|V|$ + - Edge additions: at most $3|V|$ + - Total: $O(|V|^2)$ iterations, each taking $O(|V|)$ time +] + +#keypoint[ + *Why MWPM for quantum codes:* + - Surface codes and other topological codes have parity check matrices where each error triggers at most 2 stabilizers + - This structure allows efficient MLD via MWPM + - Blossom algorithm provides polynomial-time optimal decoding + - Practical implementations achieve near-optimal thresholds (~10-11% for surface codes) + - Contrast with BP: MWPM finds global optimum but is slower; BP is faster but can get trapped in local minima +] + +#pagebreak() + += Quantum Error Correction Basics + +== Qubits and Quantum States + +#definition[ + A *qubit* is a quantum two-level system. Its state is written using *ket notation*: + $ |psi〉 = alpha |0〉 + beta |1〉 $ + + where: + - $|0〉 = mat(1; 0)$ and $|1〉 = mat(0; 1)$ are the *computational basis states* + - $alpha, beta$ are complex numbers with $|alpha|^2 + |beta|^2 = 1$ + - The ket symbol $|dot〉$ is standard notation for quantum states +] + +Common quantum states include: +- $|0〉, |1〉$ = computational basis +- $|+〉 = 1/sqrt(2)(|0〉 + |1〉)$ = superposition (plus state) +- $|-〉 = 1/sqrt(2)(|0〉 - |1〉)$ = superposition (minus state) + +== Pauli Operators + +#definition[ + The *Pauli operators* are the fundamental single-qubit error operations: + + #figure( + table( + columns: 4, + align: center, + [*Symbol*], [*Matrix*], [*Binary repr.*], [*Effect on states*], + [$bb(1)$ (Identity)], [$mat(1,0;0,1)$], [$(0,0)$], [No change], + [$X$ (bit flip)], [$mat(0,1;1,0)$], [$(1,0)$], [$|0〉 arrow.l.r |1〉$], + [$Z$ (phase flip)], [$mat(1,0;0,-1)$], [$(0,1)$], [$|+〉 arrow.l.r |-〉$], + [$Y = i X Z$], [$mat(0,-i;i,0)$], [$(1,1)$], [Both flips], + ), + caption: [Pauli operators] + ) +] + +#keypoint[ + Quantum errors are modeled as random Pauli operators: + - *X errors* = bit flips (like classical errors) + - *Z errors* = phase flips (uniquely quantum, no classical analogue) + - *Y errors* = both (can be written as $Y = i X Z$) +] + +#pagebreak() + +== Binary Representation of Pauli Errors + +#definition[ + An $n$-qubit Pauli error $E$ can be written in *binary representation*: + $ E arrow.r.bar bold(e)_Q = (bold(x), bold(z)) $ + + where: + - $bold(x) = (x_1, ..., x_n)$ indicates X components ($x_j = 1$ means X error on qubit $j$) + - $bold(z) = (z_1, ..., z_n)$ indicates Z components ($z_j = 1$ means Z error on qubit $j$) +] + +For example, the error $E = X_1 Z_3$ on 3 qubits (X on qubit 1, Z on qubit 3) has binary representation: +$ bold(e)_Q = (bold(x), bold(z)) = ((1,0,0), (0,0,1)) $ + +== CSS Codes + +#definition[ + A *CSS code* (Calderbank-Shor-Steane code) is a quantum error-correcting code with a structure that allows X and Z errors to be corrected independently. + + A CSS code is defined by two classical parity check matrices $H_X$ and $H_Z$ satisfying: + $ H_X dot H_Z^T = bold(0) quad ("orthogonality constraint") $ + + The combined quantum parity check matrix is: + $ H_"CSS" = mat(H_Z, bold(0); bold(0), H_X) $ +] + +#keypoint[ + The orthogonality constraint $H_X dot H_Z^T = bold(0)$ ensures that the quantum stabilizers *commute* (a necessary condition for valid quantum codes). +] + +#pagebreak() + +== Syndrome Measurement in CSS Codes + +For a CSS code with error $E arrow.r.bar bold(e)_Q = (bold(x), bold(z))$: + +#definition[ + The *quantum syndrome* is: + $ bold(s)_Q = (bold(s)_x, bold(s)_z) = (H_Z dot bold(x), H_X dot bold(z)) $ + + - $bold(s)_x = H_Z dot bold(x)$ detects X (bit-flip) errors + - $bold(s)_z = H_X dot bold(z)$ detects Z (phase-flip) errors +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // X-error decoding + rect((-4, 0.8), (-0.5, 2), fill: rgb("#e8f4e8"), name: "xbox") + content((-2.25, 1.6), [X-error decoding]) + content((-2.25, 1.1), text(size: 9pt)[$H_Z dot bold(x) = bold(s)_x$]) + + // Z-error decoding + rect((0.5, 0.8), (4, 2), fill: rgb("#e8e8f4"), name: "zbox") + content((2.25, 1.6), [Z-error decoding]) + content((2.25, 1.1), text(size: 9pt)[$H_X dot bold(z) = bold(s)_z$]) + + // Label + content((0, 0.2), text(size: 9pt)[Two independent classical problems!]) + }), + caption: [CSS codes allow independent X and Z decoding] +) + +#keypoint[ + CSS codes allow *independent decoding*: + - Decode X errors using matrix $H_Z$ and syndrome $bold(s)_x$ + - Decode Z errors using matrix $H_X$ and syndrome $bold(s)_z$ + + Each is a classical syndrome decoding problem — so BP can be applied! +] + +== Quantum Code Parameters + +Quantum codes use double-bracket notation $[[n, k, d]]$: +- $n$ = number of physical qubits +- $k$ = number of logical qubits encoded +- $d$ = code distance (minimum weight of undetectable errors) + +Compare to classical $[n, k, d]$ notation (single brackets). + +#definition[ + A *quantum LDPC (QLDPC) code* is a CSS code where $H_"CSS"$ is sparse. + + An *$(l_Q, q_Q)$-QLDPC code* has: + - Each column of $H_"CSS"$ has at most $l_Q$ ones + - Each row of $H_"CSS"$ has at most $q_Q$ ones +] + +#pagebreak() + +== The Hypergraph Product Construction + +#definition[ + The *hypergraph product* constructs a quantum CSS code from a classical code. + + Given classical code with $m times n$ parity check matrix $H$: + + $ H_X = mat(H times.o bb(1)_n, bb(1)_m times.o H^T) $ + $ H_Z = mat(bb(1)_n times.o H, H^T times.o bb(1)_m) $ + + Where: + - $times.o$ = *Kronecker product* (tensor product of matrices) + - $bb(1)_n$ = $n times n$ identity matrix + - $H^T$ = transpose of $H$ +] + +A well-known example is the *Toric Code*, which is the hypergraph product of the ring code (cyclic repetition code). From a classical $[n, 1, n]$ ring code, we obtain a quantum $[[2n^2, 2, n]]$ Toric code. Its properties include: +- $(4, 4)$-QLDPC: each stabilizer involves at most 4 qubits +- High threshold (~10.3% with optimal decoder) +- Rate $R = 2/(2n^2) arrow.r 0$ as $n arrow.r infinity$ + +#pagebreak() + += The Degeneracy Problem + +== Why BP Fails on Quantum Codes + +#box( + width: 100%, + stroke: 2pt + red, + inset: 12pt, + radius: 4pt, + fill: rgb("#fff5f5"), + [ + #text(weight: "bold", fill: red)[The Degeneracy Problem] + #v(0.5em) + + In quantum codes, *multiple different errors can produce the same syndrome*. + + This is called *degeneracy* and it breaks BP! + ] +) + +#definition[ + Two errors $bold(e)_1$ and $bold(e)_2$ are *degenerate* if: + $ H dot bold(e)_1 = H dot bold(e)_2 = bold(s) $ + + In quantum codes, degenerate errors are often *equivalent* for error correction purposes. +] + +== The Split-Belief Problem + +#figure( + canvas(length: 1cm, { + import draw: * + + // Two solutions + circle((-2, 0), radius: 0.6, fill: rgb("#ffe0e0"), name: "e1") + content("e1", $bold(e)_1$) + + circle((2, 0), radius: 0.6, fill: rgb("#e0e0ff"), name: "e2") + content("e2", $bold(e)_2$) + + // Same syndrome + rect((-0.5, -2.5), (0.5, -1.7), name: "syn") + content("syn", $bold(s)$) + + // Arrows + line((-1.5, -0.5), (-0.3, -1.6), mark: (end: ">")) + line((1.5, -0.5), (0.3, -1.6), mark: (end: ">")) + + // Labels + content((0, 0.3), text(size: 9pt)[Equal weight]) + content((0, -3.2), text(size: 9pt)[Same syndrome!]) + }), + caption: [Two errors with the same syndrome cause BP to fail] +) + +When BP encounters degenerate errors of equal weight: + +#enum( + [BP assigns high probability to *both* solutions $bold(e)_1$ and $bold(e)_2$], + [The beliefs "split" between the two solutions], + [BP outputs $bold(e)^"BP" approx bold(e)_1 + bold(e)_2$], + [Check: $H dot bold(e)^"BP" = H dot (bold(e)_1 + bold(e)_2) = bold(s) + bold(s) = bold(0) eq.not bold(s)$], + [*BP fails to converge!*] +) + +#keypoint[ + For the Toric code, degeneracy is so prevalent that *BP alone shows no threshold* — increasing code distance makes performance worse, not better! +] + +#pagebreak() + += Ordered Statistics Decoding (OSD) + +== The Key Insight + +The parity check matrix $H$ (size $m times n$ with $n > m$) has more columns than rows and cannot be directly inverted. + +#keypoint[ + We can select a subset of $r = "rank"(H)$ linearly independent columns to form an invertible $m times r$ submatrix! +] + +#definition[ + For an $m times n$ matrix $H$ with $"rank"(H) = r$: + - *Basis set* $[S]$: indices of $r$ linearly independent columns + - *Remainder set* $[T]$: indices of the remaining $k' = n - r$ columns + - $H_([S])$: the $m times r$ submatrix of columns in $[S]$ (this is invertible!) + - $H_([T])$: the $m times k'$ submatrix of columns in $[T]$ +] + +#figure( + canvas(length: 1cm, { + import draw: * + + // Original matrix + rect((-4, -1), (-1, 1), fill: rgb("#f0f0f0"), name: "H") + content("H", $H$) + content((-2.5, -1.5), text(size: 9pt)[$m times n$]) + + // Arrow + line((-0.5, 0), (0.5, 0), mark: (end: ">")) + content((0, 0.5), text(size: 8pt)[split]) + + // Basis submatrix + rect((1, -1), (2.5, 1), fill: rgb("#e0ffe0"), name: "HS") + content("HS", $H_([S])$) + content((1.75, -1.5), text(size: 9pt)[$m times r$]) + content((1.75, -2), text(size: 8pt)[invertible!]) + + // Remainder submatrix + rect((3, -1), (5, 1), fill: rgb("#ffe0e0"), name: "HT") + content("HT", $H_([T])$) + content((4, -1.5), text(size: 9pt)[$m times k'$]) + }), + caption: [Splitting $H$ into basis and remainder parts] +) + +#pagebreak() + +== OSD-0: The Basic Algorithm + +#definition[ + *OSD-0* (zeroth-order OSD) finds a solution by: + 1. Choosing a "good" basis $[S]$ using BP soft decisions $P_1$ + 2. Solving for the basis bits via matrix inversion + 3. Setting all remainder bits to zero +] + +#figure( + align(left)[ + #box( + width: 100%, + stroke: 1pt, + inset: 12pt, + radius: 4pt, + fill: luma(250), + [ + #text(weight: "bold")[Algorithm 2: OSD-0] + #v(0.5em) + + *Input:* + - Parity matrix $H$ (size $m times n$, rank $r$) + - Syndrome $bold(s)$ + - BP soft decisions $P_1(e_1), ..., P_1(e_n)$ (from Algorithm 1) + + *Steps:* + + #enum( + [*Rank bits by probability:* + Sort bit indices by $P_1$ values: most-likely-flipped first. + Result: ordered list $[O_"BP"] = (j_1, j_2, ..., j_n)$], + + [*Reorder columns:* + $H_([O_"BP"])$ = matrix $H$ with columns reordered by $[O_"BP"]$], + + [*Select basis:* + Scan left-to-right, select first $r$ linearly independent columns. + Basis indices: $[S]$. Remainder indices: $[T]$ (size $k' = n - r$)], + + [*Solve on basis:* + $bold(e)_([S]) = H_([S])^(-1) dot bold(s)$], + + [*Set remainder to zero:* + $bold(e)_([T]) = bold(0)$ (zero vector of length $k'$)], + + [*Remap to original ordering:* + Combine $(bold(e)_([S]), bold(e)_([T]))$ and undo the permutation] + ) + + *Output:* $bold(e)^"OSD-0"$ satisfying $H dot bold(e)^"OSD-0" = bold(s)$ + ] + ) + ], + caption: [OSD-0 algorithm] +) + +#pagebreak() + +== Why OSD Resolves Degeneracy + +#keypoint[ + OSD resolves split beliefs by *forcing a unique solution*: + - The basis selection $[S]$ determines one specific solution + - BP soft decisions guide toward low-weight solutions + - Matrix inversion on $H_([S])$ eliminates ambiguity +] + +== Higher-Order OSD + +OSD-0 assumes $bold(e)_([T]) = bold(0)$. This may miss the minimum-weight solution. + +#definition[ + *Higher-order OSD* considers non-zero configurations of $bold(e)_([T])$. + + For any choice of $bold(e)_([T])$, the corresponding basis solution is: + $ bold(e)_([S]) = H_([S])^(-1) dot (bold(s) + H_([T]) dot bold(e)_([T])) $ + + This always satisfies $H dot bold(e) = bold(s)$ (verify by substitution). +] + +*Challenge:* With $k' = n - r$ remainder bits, there are $2^(k')$ possible configurations — exhaustive search is infeasible! + +== Combination Sweep Strategy (OSD-CS) + +#definition[ + *Combination sweep* is a greedy search testing configurations by likelihood: + + #enum( + [*Sort remainder bits:* Order bits in $[T]$ by BP soft decisions (most likely first)], + [*Test weight-1:* Set each single bit in $bold(e)_([T])$ to 1 (all $k'$ possibilities)], + [*Test weight-2:* Set each pair among the first $lambda$ bits to 1] + ) + + Keep the minimum-weight solution found. +] + +Recall that the *binomial coefficient* $binom(lambda, 2) = (lambda(lambda-1))/2$ counts ways to choose 2 items from $lambda$. + +Total configurations: $k' + binom(lambda, 2)$ + +With $lambda = 60$: $k' + 1770$ configurations (vs $2^(k')$ for exhaustive search!) + +#pagebreak() + += The Complete BP+OSD Decoder + +== Algorithm Flow + +#figure( + canvas(length: 1cm, { + import draw: * + + // Input box + rect((-1.5, 6), (1.5, 7), radius: 0.1, name: "input") + content("input", [Input: $H$, $bold(s)$, $p$]) + + // BP box + rect((-1.5, 4), (1.5, 5), radius: 0.1, fill: rgb("#e8f4e8"), name: "bp") + content("bp", [Run BP]) + + // Decision diamond + line((0, 3.5), (1.2, 2.5), (0, 1.5), (-1.2, 2.5), close: true) + content((0, 2.5), text(size: 8pt)[Converged?]) + + // OSD box + rect((3, 1.7), (5.5, 2.8), radius: 0.1, fill: rgb("#fff4e8"), name: "osd") + content("osd", [Run OSD]) + + // Output boxes + rect((-1.5, -0.5), (1.5, 0.5), radius: 0.1, fill: rgb("#e8e8f4"), name: "out1") + content("out1", [Return $bold(e)^"BP"$]) + + rect((3, -0.5), (5.5, 0.5), radius: 0.1, fill: rgb("#e8e8f4"), name: "out2") + content("out2", [Return $bold(e)^"OSD"$]) + + // Arrows + line((0, 6), (0, 5.1), mark: (end: ">")) + line((0, 4), (0, 3.6), mark: (end: ">")) + line((0, 1.5), (0, 0.6), mark: (end: ">")) + content((-0.5, 1), text(size: 8pt)[Yes]) + + line((1.2, 2.5), (2.9, 2.5), mark: (end: ">")) + content((2, 2.9), text(size: 8pt)[No]) + + line((4.25, 1.6), (4.25, 0.6), mark: (end: ">")) + }), + caption: [BP+OSD decoder flowchart] +) + +#keypoint[ + - If BP succeeds (converges): use BP result — fast! + - If BP fails: use OSD to resolve degeneracy — always gives valid answer +] + +#pagebreak() + +== Complete Algorithm: BP+OSD-CS + +#figure( + align(left)[ + #box( + width: 100%, + stroke: 1pt, + inset: 12pt, + radius: 4pt, + fill: luma(250), + [ + #text(weight: "bold", size: 10pt)[Algorithm 3: BP+OSD-CS Decoder] + #v(0.5em) + #text(size: 8.5pt)[ + ``` + Input: Parity matrix H (m×n, rank r), syndrome s, error prob p, depth λ=60 + Output: Error estimate e satisfying H·e = s + + function BP_OSD_CS(H, s, p, λ): + // ===== STAGE 1: Run Belief Propagation (Algorithm 1) ===== + (converged, e_BP, P_1) = BP(H, s, p) + if converged: + return e_BP + + // ===== STAGE 2: OSD-0 (Algorithm 2) ===== + [O_BP] = argsort(P_1) // Sort: most likely flipped first + H_sorted = H[:, O_BP] // Reorder columns + [S] = first r linearly independent columns of H_sorted + [T] = remaining k' = n - r columns + + e_[S] = H_[S]^(-1) × s // Solve on basis + e_[T] = zeros(k') // Set remainder to zero + best = (e_[S], e_[T]) + best_wt = hamming_weight(best) + + // ===== STAGE 3: Combination Sweep ===== + // Weight-1 search: try flipping each remainder bit + for i = 0 to k'-1: + e_[T] = zeros(k'); e_[T][i] = 1 + e_[S] = H_[S]^(-1) × (s + H_[T] × e_[T]) + if hamming_weight((e_[S], e_[T])) < best_wt: + best = (e_[S], e_[T]) + best_wt = hamming_weight(best) + + // Weight-2 search: try flipping pairs in first λ bits + for i = 0 to min(λ, k')-1: + for j = i+1 to min(λ, k')-1: + e_[T] = zeros(k'); e_[T][i] = 1; e_[T][j] = 1 + e_[S] = H_[S]^(-1) × (s + H_[T] × e_[T]) + if hamming_weight((e_[S], e_[T])) < best_wt: + best = (e_[S], e_[T]) + best_wt = hamming_weight(best) + + return inverse_permute(best, O_BP) // Remap to original ordering + ``` + ] + ] + ) + ], + caption: [Complete BP+OSD-CS algorithm] +) + +#pagebreak() + += Results and Performance + +== Error Threshold + +#definition[ + The *threshold* $p_"th"$ is the maximum error rate below which the logical error rate decreases with increasing code distance. + + - If $p < p_"th"$: Larger codes $arrow.r$ exponentially better protection + - If $p > p_"th"$: Larger codes $arrow.r$ worse protection (error correction fails) +] + +== Experimental Results + +#figure( + table( + columns: 4, + align: center, + stroke: 0.5pt, + [*Code Family*], [*BP Only*], [*BP+OSD-0*], [*BP+OSD-CS*], + [Toric], [N/A (fails)], [$9.2 plus.minus 0.2%$], [$bold(9.9 plus.minus 0.2%)$], + [Semi-topological], [N/A (fails)], [$9.1 plus.minus 0.2%$], [$bold(9.7 plus.minus 0.2%)$], + [Random QLDPC], [$6.5 plus.minus 0.1%$], [$6.7 plus.minus 0.1%$], [$bold(7.1 plus.minus 0.1%)$], + ), + caption: [Observed thresholds from the paper] +) + +#box( + width: 100%, + stroke: 1pt + green, + inset: 12pt, + radius: 4pt, + fill: rgb("#f5fff5"), + [ + #text(weight: "bold")[Key Results for Toric Code] + + - *BP alone:* Complete failure due to degeneracy (no threshold) + - *BP+OSD-CS:* 9.9% threshold (optimal decoder achieves 10.3%) + - *Improvement:* Combination sweep gains ~0.7% over OSD-0 + - *Low-error regime:* Exponential suppression of logical errors + ] +) + +== Complexity + +#figure( + table( + columns: 3, + align: (left, center, left), + stroke: 0.5pt, + [*Component*], [*Complexity*], [*Notes*], + [BP (per iteration)], [$O(n)$], [Linear in block length], + [OSD-0], [$O(n^3)$], [Dominated by matrix inversion], + [Combination sweep], [$O(lambda^2)$], [$lambda = 60 arrow.r$ ~1830 trials], + [*Total*], [$O(n^3)$], [Practical for moderate $n$], + ), + caption: [Complexity analysis] +) + +#pagebreak() + += Summary + +== Key Takeaways + +#enum( + [*Classical BP* computes marginal probabilities via message passing on factor graphs], + + [*Quantum codes suffer from degeneracy*: multiple errors can produce the same syndrome, causing BP to output invalid solutions (split beliefs)], + + [*OSD resolves degeneracy* by selecting a basis guided by BP soft decisions, then solving via matrix inversion to get a unique valid solution], + + [*Combination sweep* efficiently improves OSD-0 by testing low-weight configurations of the remainder bits], + + [*BP+OSD is general*: works for Toric codes, semi-topological codes, and random QLDPC codes, achieving near-optimal thresholds], +) + +== The BP+OSD Recipe + +#figure( + canvas(length: 1cm, { + import draw: * + + // Box 1 + rect((-5, -0.8), (-2, 0.8), radius: 0.15, fill: rgb("#e8f4e8"), name: "b1") + content((-3.5, 0.3), text(weight: "bold")[1. Run BP]) + content((-3.5, -0.3), text(size: 8pt)[Get $P_1$ values]) + + // Box 2 + rect((-1, -0.8), (2, 0.8), radius: 0.15, fill: rgb("#fff4e8"), name: "b2") + content((0.5, 0.3), text(weight: "bold")[2. Run OSD-0]) + content((0.5, -0.3), text(size: 8pt)[Use $P_1$ for basis]) + + // Box 3 + rect((3, -0.8), (6, 0.8), radius: 0.15, fill: rgb("#e8e8f4"), name: "b3") + content((4.5, 0.3), text(weight: "bold")[3. Sweep]) + content((4.5, -0.3), text(size: 8pt)[Try weight-1,2]) + + // Arrows + line((-1.9, 0), (-1.1, 0), mark: (end: ">")) + line((2.1, 0), (2.9, 0), mark: (end: ">")) + }), + caption: [BP+OSD in three steps] +) + +#pagebreak() + += References + +#bibliography("references.bib", style: "ieee") + +#v(2em) +#align(center)[#text(style: "italic")[End of Lecture Note]] + diff --git a/docs/references.bib b/docs/references.bib new file mode 100644 index 0000000..dc7c053 --- /dev/null +++ b/docs/references.bib @@ -0,0 +1,82 @@ +@book{pearl1988probabilistic, + title={Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference}, + author={Pearl, Judea}, + year={1988}, + publisher={Morgan Kaufmann} +} + +@incollection{yedidia2003understanding, + title={Understanding Belief Propagation and Its Generalizations}, + author={Yedidia, Jonathan S and Freeman, William T and Weiss, Yair}, + booktitle={Exploring Artificial Intelligence in the New Millennium}, + pages={239--269}, + year={2003} +} + +@book{mackay2003information, + title={Information Theory, Inference, and Learning Algorithms}, + author={MacKay, David JC}, + year={2003}, + publisher={Cambridge University Press} +} + +@book{richardson2008modern, + title={Modern Coding Theory}, + author={Richardson, Tom and Urbanke, R{\"u}diger}, + year={2008}, + publisher={Cambridge University Press} +} + +@article{gallager1962low, + title={Low-Density Parity-Check Codes}, + author={Gallager, Robert G}, + journal={IRE Transactions on Information Theory}, + volume={8}, + number={1}, + pages={21--28}, + year={1962} +} + +@article{richardson2001capacity, + title={The Capacity of Low-Density Parity-Check Codes Under Message-Passing Decoding}, + author={Richardson, Tom and Urbanke, R{\"u}diger}, + journal={IEEE Transactions on Information Theory}, + volume={47}, + number={2}, + pages={599--618}, + year={2001} +} + +@inproceedings{tatikonda2002loopy, + title={Loopy Belief Propagation and Gibbs Measures}, + author={Tatikonda, Sekhar and Jordan, Michael I}, + booktitle={Proceedings of the Eighteenth Conference on Uncertainty in Artificial Intelligence}, + pages={493--500}, + year={2002} +} + +@article{ihler2005loopy, + title={Loopy Belief Propagation: Convergence and Effects of Message Errors}, + author={Ihler, Alexander T and Fisher III, John W and Willsky, Alan S}, + journal={Journal of Machine Learning Research}, + volume={6}, + pages={905--936}, + year={2005} +} + +@article{dolecek2010analysis, + title={Analysis of Absorbing Sets and Fully Absorbing Sets of Array-Based LDPC Codes}, + author={Dolecek, Lara and Zhang, Zhengya and Anantharam, Venkat and Wainwright, Martin J and Nikoli{\'c}, Borivoje}, + journal={IEEE Transactions on Information Theory}, + volume={56}, + number={1}, + pages={181--201}, + year={2010} +} + +@online{montanari2008belief, + title={Belief Propagation}, + author={Montanari, Andrea}, + year={2008}, + url={https://web.stanford.edu/~montanar/RESEARCH/BOOK/partD.pdf} +} diff --git a/examples/minimal_example.py b/examples/minimal_example.py new file mode 100644 index 0000000..df677f3 --- /dev/null +++ b/examples/minimal_example.py @@ -0,0 +1,192 @@ +""" +Minimum Working Example: Complete Pipeline +=========================================== + +This script demonstrates the complete pipeline from circuit generation +to syndrome sampling and decoder preparation. + +Run with: uv run python examples/minimal_example.py +""" + +import sys +from pathlib import Path + +# Add src to path +sys.path.insert(0, str(Path(__file__).parent.parent / "src")) + +import numpy as np +from bpdecoderplus.circuit import generate_circuit +from bpdecoderplus.dem import extract_dem, build_parity_check_matrix +from bpdecoderplus.syndrome import sample_syndromes + + +def main(): + print("=" * 70) + print("MINIMUM WORKING EXAMPLE: Quantum Error Correction Pipeline") + print("=" * 70) + + # ======================================================================== + # STEP 1: Generate a noisy quantum circuit + # ======================================================================== + print("\n[STEP 1] Generate Noisy Circuit") + print("-" * 70) + + circuit = generate_circuit( + distance=3, # Code distance (larger = more error correction) + rounds=3, # Number of syndrome measurement rounds + p=0.01, # Physical error rate (1% per operation) + task="z" # Z-memory experiment + ) + + print(f"✓ Generated surface code circuit") + print(f" - Distance: 3 (can correct 1 error)") + print(f" - Rounds: 3 (measure syndrome 3 times)") + print(f" - Error rate: 1% per gate/measurement") + + # ======================================================================== + # STEP 2: Extract Detector Error Model (DEM) + # ======================================================================== + print("\n[STEP 2] Extract Detector Error Model") + print("-" * 70) + + dem = extract_dem(circuit, decompose_errors=True) + + print(f"✓ Extracted DEM from circuit") + print(f" - Detectors: {dem.num_detectors}") + print(f" - Observables: {dem.num_observables}") + print(f"\nWhat is a DEM?") + print(f" The DEM describes which errors trigger which detectors.") + print(f" It's the 'rulebook' that connects physical errors to") + print(f" detection events that we can observe.") + + # ======================================================================== + # STEP 3: Build Parity Check Matrix for BP Decoder + # ======================================================================== + print("\n[STEP 3] Build Parity Check Matrix") + print("-" * 70) + + H, priors, obs_flip = build_parity_check_matrix(dem) + + print(f"✓ Built parity check matrix H") + print(f" - H shape: {H.shape}") + print(f" - H[i,j] = 1 means error j triggers detector i") + print(f" - Prior probabilities: {len(priors)} error mechanisms") + print(f" - Observable flips: {obs_flip.sum()} errors flip logical qubit") + print(f"\nWhat is H used for?") + print(f" H is the input to Belief Propagation (BP) decoder.") + print(f" BP uses H to infer which errors occurred from syndromes.") + + # ======================================================================== + # STEP 4: Sample Syndromes (Detection Events) + # ======================================================================== + print("\n[STEP 4] Sample Syndromes") + print("-" * 70) + + num_shots = 10 + syndromes, observables = sample_syndromes(circuit, num_shots=num_shots) + + print(f"✓ Sampled {num_shots} syndrome measurements") + print(f" - Syndromes shape: {syndromes.shape}") + print(f" - Each row is one 'shot' (one circuit execution)") + print(f" - Each column is one detector (did it fire?)") + print(f"\nWhat is a syndrome?") + print(f" A syndrome is a binary vector showing which detectors fired.") + print(f" Detectors fire when errors occur in their region.") + + # ======================================================================== + # STEP 5: Examine Example Data + # ======================================================================== + print("\n[STEP 5] Examine Example Syndrome") + print("-" * 70) + + # Pick first shot + syndrome = syndromes[0] + observable = observables[0] + + detectors_fired = np.where(syndrome)[0] + + print(f"Shot #0:") + print(f" Syndrome: {syndrome.astype(int)}") + print(f" Detectors fired: {detectors_fired.tolist()}") + print(f" Number of detections: {len(detectors_fired)}") + print(f" Observable flip: {bool(observable)}") + print(f"\nInterpretation:") + if len(detectors_fired) == 0: + print(f" No detectors fired → No errors detected") + else: + print(f" {len(detectors_fired)} detectors fired → Errors occurred") + if observable: + print(f" Observable flipped → LOGICAL ERROR (decoder failed)") + else: + print(f" Observable stable → No logical error (decoder succeeded)") + + # ======================================================================== + # STEP 6: Decoder Task (Conceptual) + # ======================================================================== + print("\n[STEP 6] Decoder Task (Conceptual)") + print("-" * 70) + + print(f"Given:") + print(f" - Syndrome (what we observe): {syndrome.astype(int)}") + print(f" - Parity check matrix H: {H.shape}") + print(f" - Prior probabilities: {priors.shape}") + print(f"\nDecoder's job:") + print(f" 1. Use H and syndrome to infer which errors occurred") + print(f" 2. Predict if those errors flip the logical observable") + print(f" 3. Compare prediction with actual observable") + print(f"\nSuccess criterion:") + print(f" Predicted observable == Actual observable") + + # ======================================================================== + # STEP 7: Statistics + # ======================================================================== + print("\n[STEP 7] Dataset Statistics") + print("-" * 70) + + detection_rate = syndromes.mean() + logical_error_rate = observables.mean() + non_trivial = (syndromes.sum(axis=1) > 0).sum() + + print(f"Detection events:") + print(f" - Detection rate: {detection_rate:.4f}") + print(f" - Mean detections per shot: {syndromes.sum(axis=1).mean():.2f}") + print(f" - Non-trivial syndromes: {non_trivial}/{num_shots}") + + print(f"\nLogical errors:") + print(f" - Logical error rate: {logical_error_rate:.4f}") + print(f" - Successful shots: {num_shots - observables.sum()}/{num_shots}") + + print(f"\nWhy these numbers make sense:") + print(f" - Physical error rate p=0.01 (1%)") + print(f" - Detection rate ~3-5% (errors trigger nearby detectors)") + print(f" - Logical error rate ~0.5-1% (d=3 code corrects most errors)") + + # ======================================================================== + # Summary + # ======================================================================== + print("\n" + "=" * 70) + print("PIPELINE SUMMARY") + print("=" * 70) + + print(f""" +Circuit → DEM → Parity Check Matrix → Syndromes → Decoder + ↓ ↓ ↓ ↓ ↓ + .stim .dem H, priors, obs .npz Predictions + +1. Circuit: Defines the quantum operations and noise +2. DEM: Maps errors to detector outcomes +3. H matrix: Input for BP decoder +4. Syndromes: Observed detection events +5. Decoder: Predicts logical errors from syndromes + +Next steps: +- Implement BP decoder using H matrix +- Train/test decoder on syndrome datasets +- Evaluate logical error rate + """) + + print("✓ Pipeline demonstration complete!") + + +if __name__ == "__main__": + main() diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..e435f3e --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,56 @@ +site_name: BPDecoderPlus Documentation +site_description: Quantum Error Correction with Belief Propagation +site_author: BPDecoderPlus Contributors +repo_url: https://github.com/GiggleLiu/BPDecoderPlus +repo_name: GiggleLiu/BPDecoderPlus + +theme: + name: material + palette: + - scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: Switch to light mode + features: + - navigation.tabs + - navigation.sections + - navigation.expand + - navigation.top + - search.suggest + - search.highlight + - content.code.copy + +plugins: + - search + - mkdocstrings: + handlers: + python: + paths: [src] + +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - admonition + - pymdownx.details + - attr_list + - md_in_html + +nav: + - Home: index.md + - Getting Started: getting_started.md + - Usage Guide: usage_guide.md + - API Reference: api_reference.md + - Mathematical Description: mathematical_description.md diff --git a/pyproject.toml b/pyproject.toml index 85c8cbe..b8bb1d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,11 @@ dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", ] +docs = [ + "mkdocs-material>=9.0.0", + "mkdocstrings[python]>=0.24.0", + "pymdown-extensions>=10.0.0", +] [project.scripts] bpdecoderplus = "bpdecoderplus.cli:main" diff --git a/scripts/generate_demo_dataset.py b/scripts/generate_demo_dataset.py new file mode 100644 index 0000000..5f7653e --- /dev/null +++ b/scripts/generate_demo_dataset.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +""" +Generate syndrome dataset and validate it. +""" +import sys +sys.path.insert(0, 'src') + +from pathlib import Path +import numpy as np +from bpdecoderplus.circuit import generate_circuit +from bpdecoderplus.syndrome import sample_syndromes, save_syndrome_database +from bpdecoderplus.dem import extract_dem, build_parity_check_matrix + +# Generate circuit +print("Generating surface code circuit (d=3, r=3, p=0.01)...") +circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + +# Extract DEM +print("Extracting detector error model...") +dem = extract_dem(circuit) +print(f" - Detectors: {dem.num_detectors}") +print(f" - Observables: {dem.num_observables}") + +# Build parity check matrix +print("\nBuilding parity check matrix...") +H, priors, obs_flip = build_parity_check_matrix(dem) +print(f" - H shape: {H.shape}") +print(f" - Number of error mechanisms: {len(priors)}") +print(f" - Errors that flip observable: {obs_flip.sum()}") + +# Sample syndromes +print("\nSampling syndromes (100 shots)...") +syndromes, observables = sample_syndromes(circuit, num_shots=100) +print(f" - Syndromes shape: {syndromes.shape}") +print(f" - Observables shape: {observables.shape}") +print(f" - Syndrome dtype: {syndromes.dtype}") + +# Statistics +print("\nDataset statistics:") +print(f" - Detection event rate: {syndromes.mean():.4f}") +print(f" - Observable flip rate: {observables.mean():.4f}") +print(f" - Non-trivial syndromes: {(syndromes.sum(axis=1) > 0).sum()}/{len(syndromes)}") + +# Validate consistency +print("\nValidation checks:") +# Check 1: Syndrome dimensions match DEM +assert syndromes.shape[1] == dem.num_detectors, "Syndrome dimension mismatch!" +print(" ✓ Syndrome dimensions match DEM") + +# Check 2: Values are binary +assert np.all((syndromes == 0) | (syndromes == 1)), "Syndromes not binary!" +assert np.all((observables == 0) | (observables == 1)), "Observables not binary!" +print(" ✓ All values are binary") + +# Check 3: Detection events are sparse (for low error rate) +detection_rate = syndromes.mean() +assert 0 < detection_rate < 0.5, f"Detection rate {detection_rate} seems wrong!" +print(f" ✓ Detection rate ({detection_rate:.4f}) is reasonable for p=0.01") + +# Save dataset +output_dir = Path("datasets/noisy_circuits") +output_dir.mkdir(parents=True, exist_ok=True) + +output_path = output_dir / "sc_d3_r3_p0010_z_demo.npz" +metadata = { + "distance": 3, + "rounds": 3, + "p": 0.01, + "task": "z", + "num_shots": 100, + "num_detectors": dem.num_detectors, +} +save_syndrome_database(syndromes, observables, output_path, metadata) +print(f"\n✓ Dataset saved to {output_path}") + +# Show example syndrome +print("\nExample syndrome (first shot):") +print(f" Detectors fired: {np.where(syndromes[0])[0].tolist()}") +print(f" Observable flip: {bool(observables[0])}") + +print("\n✓ All validation checks passed!") diff --git a/scripts/validate_dataset.py b/scripts/validate_dataset.py new file mode 100644 index 0000000..e10d882 --- /dev/null +++ b/scripts/validate_dataset.py @@ -0,0 +1,216 @@ +""" +Syndrome Dataset Validation and Demonstration + +This script demonstrates the syndrome dataset format and validates its properties. +Run with: uv run python validate_dataset.py +""" + +from pathlib import Path +import numpy as np +import sys + +# Add src to path for imports +sys.path.insert(0, str(Path(__file__).parent / "src")) + +from bpdecoderplus.circuit import generate_circuit +from bpdecoderplus.syndrome import sample_syndromes, save_syndrome_database, load_syndrome_database +from bpdecoderplus.dem import extract_dem, build_parity_check_matrix + + +def generate_and_validate(): + """Generate syndrome dataset and validate it.""" + + print("=" * 70) + print("SYNDROME DATASET GENERATION AND VALIDATION") + print("=" * 70) + + # Parameters + distance = 3 + rounds = 3 + p = 0.01 + task = "z" + num_shots = 100 + + print(f"\nParameters:") + print(f" Distance (d): {distance}") + print(f" Rounds (r): {rounds}") + print(f" Error rate (p): {p}") + print(f" Task: {task}-memory") + print(f" Shots: {num_shots}") + + # Step 1: Generate circuit + print(f"\n{'='*70}") + print("STEP 1: Generate Circuit") + print("="*70) + circuit = generate_circuit(distance=distance, rounds=rounds, p=p, task=task) + print(f"✓ Generated surface code circuit") + + # Step 2: Extract DEM + print(f"\n{'='*70}") + print("STEP 2: Extract Detector Error Model") + print("="*70) + dem = extract_dem(circuit) + print(f" Detectors: {dem.num_detectors}") + print(f" Observables: {dem.num_observables}") + + # Build parity check matrix + H, priors, obs_flip = build_parity_check_matrix(dem) + print(f"\nParity Check Matrix:") + print(f" H shape: {H.shape}") + print(f" Error mechanisms: {len(priors)}") + print(f" Errors flipping observable: {obs_flip.sum()}") + + # Step 3: Sample syndromes + print(f"\n{'='*70}") + print("STEP 3: Sample Syndromes") + print("="*70) + syndromes, observables = sample_syndromes(circuit, num_shots=num_shots) + print(f" Syndromes shape: {syndromes.shape}") + print(f" Observables shape: {observables.shape}") + print(f" Syndromes dtype: {syndromes.dtype}") + print(f" Observables dtype: {observables.dtype}") + + # Step 4: Statistics + print(f"\n{'='*70}") + print("STEP 4: Dataset Statistics") + print("="*70) + + detection_rate = float(syndromes.mean()) + obs_flip_rate = float(observables.mean()) + non_trivial = int((syndromes.sum(axis=1) > 0).sum()) + + print(f"\nDetection Events:") + print(f" Detection rate: {detection_rate:.4f}") + print(f" Mean detections per shot: {syndromes.sum(axis=1).mean():.2f}") + print(f" Min detections: {syndromes.sum(axis=1).min()}") + print(f" Max detections: {syndromes.sum(axis=1).max()}") + print(f" Non-trivial syndromes: {non_trivial}/{num_shots} ({100*non_trivial/num_shots:.1f}%)") + + print(f"\nObservable Flips:") + print(f" Logical error rate: {obs_flip_rate:.4f} ({100*obs_flip_rate:.2f}%)") + print(f" Successful shots: {num_shots - observables.sum()}/{num_shots}") + + # Step 5: Validation + print(f"\n{'='*70}") + print("STEP 5: Validation Checks") + print("="*70) + + checks_passed = 0 + total_checks = 5 + + # Check 1: Dimensions + try: + assert syndromes.shape[1] == dem.num_detectors + print(" ✓ Check 1: Syndrome dimensions match DEM") + checks_passed += 1 + except AssertionError: + print(" ✗ Check 1: Syndrome dimensions mismatch!") + + # Check 2: Binary values + try: + assert np.all((syndromes == 0) | (syndromes == 1)) + assert np.all((observables == 0) | (observables == 1)) + print(" ✓ Check 2: All values are binary (0 or 1)") + checks_passed += 1 + except AssertionError: + print(" ✗ Check 2: Non-binary values found!") + + # Check 3: Detection rate + try: + assert 0.01 < detection_rate < 0.1 + print(f" ✓ Check 3: Detection rate ({detection_rate:.4f}) is reasonable") + checks_passed += 1 + except AssertionError: + print(f" ✗ Check 3: Detection rate ({detection_rate:.4f}) seems wrong!") + + # Check 4: Observable flip rate + try: + assert 0 <= obs_flip_rate < 0.05 + print(f" ✓ Check 4: Observable flip rate ({obs_flip_rate:.4f}) is reasonable") + checks_passed += 1 + except AssertionError: + print(f" ✗ Check 4: Observable flip rate ({obs_flip_rate:.4f}) seems wrong!") + + # Check 5: Non-trivial syndromes + try: + assert non_trivial > 0.8 * num_shots + print(f" ✓ Check 5: Most syndromes are non-trivial ({100*non_trivial/num_shots:.1f}%)") + checks_passed += 1 + except AssertionError: + print(f" ✗ Check 5: Too few non-trivial syndromes!") + + print(f"\n Result: {checks_passed}/{total_checks} checks passed") + + # Step 6: Example data + print(f"\n{'='*70}") + print("STEP 6: Example Data") + print("="*70) + + for i in range(min(3, num_shots)): + detectors_fired = np.where(syndromes[i])[0] + print(f"\nShot #{i}:") + print(f" Detectors fired: {detectors_fired.tolist()}") + print(f" Number of detections: {len(detectors_fired)}") + print(f" Observable flip: {bool(observables[i])}") + + # Step 7: Save dataset + print(f"\n{'='*70}") + print("STEP 7: Save Dataset") + print("="*70) + + output_dir = Path("datasets/noisy_circuits") + output_dir.mkdir(parents=True, exist_ok=True) + + output_path = output_dir / f"sc_d{distance}_r{rounds}_p{int(p*10000):04d}_{task}_demo.npz" + + metadata = { + "distance": distance, + "rounds": rounds, + "p": p, + "task": task, + "num_shots": num_shots, + "num_detectors": dem.num_detectors, + "num_observables": dem.num_observables, + } + + save_syndrome_database(syndromes, observables, output_path, metadata) + print(f" ✓ Saved to: {output_path}") + + # Step 8: Load and verify + print(f"\n{'='*70}") + print("STEP 8: Load and Verify") + print("="*70) + + loaded_syndromes, loaded_observables, loaded_metadata = load_syndrome_database(output_path) + + print(f" Loaded syndromes shape: {loaded_syndromes.shape}") + print(f" Loaded observables shape: {loaded_observables.shape}") + print(f" Loaded metadata: {loaded_metadata}") + + # Verify round-trip + assert np.array_equal(syndromes, loaded_syndromes) + assert np.array_equal(observables, loaded_observables) + print(f" ✓ Round-trip verification passed") + + # Final summary + print(f"\n{'='*70}") + print("SUMMARY") + print("="*70) + print(f"✓ Dataset generated successfully") + print(f"✓ All validation checks passed ({checks_passed}/{total_checks})") + print(f"✓ Data saved and verified") + print(f"\nDataset location: {output_path}") + print(f"Dataset size: {output_path.stat().st_size / 1024:.2f} KB") + + return checks_passed == total_checks + + +if __name__ == "__main__": + try: + success = generate_and_validate() + sys.exit(0 if success else 1) + except Exception as e: + print(f"\n✗ Error: {e}") + import traceback + traceback.print_exc() + sys.exit(1) diff --git a/src/bpdecoderplus/cli.py b/src/bpdecoderplus/cli.py index 180240e..c99ca94 100644 --- a/src/bpdecoderplus/cli.py +++ b/src/bpdecoderplus/cli.py @@ -1,5 +1,5 @@ """ -Command-line interface for generating noisy surface-code circuits. +Command-line interface for generating noisy surface-code circuits and syndrome databases. """ from __future__ import annotations @@ -15,6 +15,8 @@ run_smoke_test, write_circuit, ) +from bpdecoderplus.dem import generate_dem_from_circuit, generate_uai_from_circuit +from bpdecoderplus.syndrome import generate_syndrome_database_from_circuit def create_parser() -> argparse.ArgumentParser: @@ -63,6 +65,22 @@ def create_parser() -> argparse.ArgumentParser: action="store_true", help="Skip compiling and sampling for quick validation", ) + parser.add_argument( + "--generate-syndromes", + type=int, + metavar="NUM_SHOTS", + help="Generate syndrome database with specified number of shots", + ) + parser.add_argument( + "--generate-dem", + action="store_true", + help="Generate detector error model (.dem file)", + ) + parser.add_argument( + "--generate-uai", + action="store_true", + help="Generate UAI format file for probabilistic inference", + ) return parser @@ -110,6 +128,23 @@ def main(argv: list[str] | None = None) -> int: write_circuit(circuit, output_path) print(f"Wrote {output_path}") + # Generate DEM if requested + if args.generate_dem: + dem_path = generate_dem_from_circuit(output_path) + print(f"Wrote {dem_path}") + + # Generate UAI if requested + if args.generate_uai: + uai_path = generate_uai_from_circuit(output_path) + print(f"Wrote {uai_path}") + + # Generate syndrome database if requested + if args.generate_syndromes: + syndrome_path = generate_syndrome_database_from_circuit( + output_path, args.generate_syndromes + ) + print(f"Wrote {syndrome_path}") + print("Done.") return 0 diff --git a/src/bpdecoderplus/dem.py b/src/bpdecoderplus/dem.py new file mode 100644 index 0000000..249ffb8 --- /dev/null +++ b/src/bpdecoderplus/dem.py @@ -0,0 +1,268 @@ +""" +Detector Error Model (DEM) extraction module for noisy circuits. + +This module provides functions to extract and save Detector Error Models +from Stim circuits for use in decoder implementations. +""" + +from __future__ import annotations + +import json +import pathlib +from typing import Any + +import numpy as np +import stim + + +def extract_dem( + circuit: stim.Circuit, + decompose_errors: bool = True, +) -> stim.DetectorErrorModel: + """ + Extract Detector Error Model from a circuit. + + Args: + circuit: Stim circuit to extract DEM from. + decompose_errors: Whether to decompose errors into components. + + Returns: + Detector Error Model describing error mechanisms. + """ + return circuit.detector_error_model(decompose_errors=decompose_errors) + + +def save_dem( + dem: stim.DetectorErrorModel, + output_path: pathlib.Path, +) -> None: + """ + Save Detector Error Model to file in stim format. + + Args: + dem: Detector Error Model to save. + output_path: Path to save the DEM (.dem file). + """ + output_path.write_text(str(dem)) + + +def load_dem(input_path: pathlib.Path) -> stim.DetectorErrorModel: + """ + Load Detector Error Model from file. + + Args: + input_path: Path to the DEM file (.dem). + + Returns: + Loaded Detector Error Model. + """ + return stim.DetectorErrorModel.from_file(str(input_path)) + + +def dem_to_dict(dem: stim.DetectorErrorModel) -> dict[str, Any]: + """ + Convert DEM to dictionary with structured information. + + Args: + dem: Detector Error Model to convert. + + Returns: + Dictionary with DEM statistics and error information. + """ + errors = [] + for inst in dem.flattened(): + if inst.type == "error": + prob = inst.args_copy()[0] + targets = inst.targets_copy() + detectors = [t.val for t in targets if t.is_relative_detector_id()] + observables = [t.val for t in targets if t.is_logical_observable_id()] + + errors.append({ + "probability": float(prob), + "detectors": detectors, + "observables": observables, + }) + + return { + "num_detectors": dem.num_detectors, + "num_observables": dem.num_observables, + "num_errors": len(errors), + "errors": errors, + } + + +def save_dem_json( + dem: stim.DetectorErrorModel, + output_path: pathlib.Path, +) -> None: + """ + Save DEM as JSON for easier analysis. + + Args: + dem: Detector Error Model to save. + output_path: Path to save the JSON file. + """ + dem_dict = dem_to_dict(dem) + with open(output_path, "w") as f: + json.dump(dem_dict, f, indent=2) + + +def build_parity_check_matrix( + dem: stim.DetectorErrorModel, +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + """ + Build parity check matrix H from DEM for BP decoding. + + Args: + dem: Detector Error Model. + + Returns: + Tuple of (H, priors, obs_flip) where: + - H: Parity check matrix, shape (num_detectors, num_errors) + - priors: Prior error probabilities, shape (num_errors,) + - obs_flip: Observable flip indicators, shape (num_errors,) + """ + errors = [] + for inst in dem.flattened(): + if inst.type == "error": + prob = inst.args_copy()[0] + targets = inst.targets_copy() + detectors = [t.val for t in targets if t.is_relative_detector_id()] + observables = [t.val for t in targets if t.is_logical_observable_id()] + errors.append({ + "prob": prob, + "detectors": detectors, + "observables": observables, + }) + + n_detectors = dem.num_detectors + n_errors = len(errors) + + H = np.zeros((n_detectors, n_errors), dtype=np.uint8) + priors = np.zeros(n_errors, dtype=np.float64) + obs_flip = np.zeros(n_errors, dtype=np.uint8) + + for j, e in enumerate(errors): + priors[j] = e["prob"] + for d in e["detectors"]: + H[d, j] = 1 + if e["observables"]: + obs_flip[j] = 1 + + return H, priors, obs_flip + + +def dem_to_uai(dem: stim.DetectorErrorModel) -> str: + """ + Convert DEM to UAI format for probabilistic inference. + + Args: + dem: Detector Error Model to convert. + + Returns: + String in UAI format representing the factor graph. + """ + errors = [] + for inst in dem.flattened(): + if inst.type == "error": + prob = inst.args_copy()[0] + targets = inst.targets_copy() + detectors = [t.val for t in targets if t.is_relative_detector_id()] + errors.append({"prob": prob, "detectors": detectors}) + + n_detectors = dem.num_detectors + lines = [] + lines.append("MARKOV") + lines.append(str(n_detectors)) + lines.append(" ".join(["2"] * n_detectors)) + lines.append(str(len(errors))) + + for e in errors: + dets = e["detectors"] + lines.append(f"{len(dets)} " + " ".join(map(str, dets))) + + lines.append("") + for e in errors: + n_dets = len(e["detectors"]) + n_entries = 2 ** n_dets + lines.append(str(n_entries)) + + p = e["prob"] + for i in range(n_entries): + parity = bin(i).count("1") % 2 + if parity == 0: + lines.append(str(1 - p)) + else: + lines.append(str(p)) + lines.append("") + + return "\n".join(lines) + + +def save_uai(dem: stim.DetectorErrorModel, output_path: pathlib.Path) -> None: + """ + Save DEM as UAI format file. + + Args: + dem: Detector Error Model to save. + output_path: Path to save the UAI file. + """ + output_path.write_text(dem_to_uai(dem)) + + +def generate_dem_from_circuit( + circuit_path: pathlib.Path, + output_path: pathlib.Path | None = None, + decompose_errors: bool = True, +) -> pathlib.Path: + """ + Generate and save DEM from a circuit file. + + Args: + circuit_path: Path to the circuit file (.stim). + output_path: Optional output path. If None, uses datasets/dems/ directory. + decompose_errors: Whether to decompose errors into components. + + Returns: + Path to the saved DEM file. + """ + circuit = stim.Circuit.from_file(str(circuit_path)) + + if output_path is None: + dems_dir = pathlib.Path("datasets/dems") + dems_dir.mkdir(parents=True, exist_ok=True) + output_path = dems_dir / circuit_path.with_suffix(".dem").name + + dem = extract_dem(circuit, decompose_errors=decompose_errors) + save_dem(dem, output_path) + + return output_path + + +def generate_uai_from_circuit( + circuit_path: pathlib.Path, + output_path: pathlib.Path | None = None, + decompose_errors: bool = True, +) -> pathlib.Path: + """ + Generate and save UAI format file from a circuit file. + + Args: + circuit_path: Path to the circuit file (.stim). + output_path: Optional output path. If None, uses datasets/uais/ directory. + decompose_errors: Whether to decompose errors into components. + + Returns: + Path to the saved UAI file. + """ + circuit = stim.Circuit.from_file(str(circuit_path)) + + if output_path is None: + uais_dir = pathlib.Path("datasets/uais") + uais_dir.mkdir(parents=True, exist_ok=True) + output_path = uais_dir / circuit_path.with_suffix(".uai").name + + dem = extract_dem(circuit, decompose_errors=decompose_errors) + save_uai(dem, output_path) + + return output_path diff --git a/src/bpdecoderplus/syndrome.py b/src/bpdecoderplus/syndrome.py new file mode 100644 index 0000000..94f3901 --- /dev/null +++ b/src/bpdecoderplus/syndrome.py @@ -0,0 +1,141 @@ +""" +Syndrome database generation module for noisy surface-code circuits. + +This module provides functions to sample detection events (syndromes) from +circuits and save them in a structured format for decoder training/testing. +""" + +from __future__ import annotations + +import json +import pathlib +from typing import Any + +import numpy as np +import stim + + +def sample_syndromes( + circuit: stim.Circuit, + num_shots: int, + include_observables: bool = True, +) -> tuple[np.ndarray, np.ndarray | None]: + """ + Sample detection events (syndromes) from a circuit. + + Args: + circuit: Stim circuit to sample from. + num_shots: Number of syndrome samples to generate. + include_observables: Whether to include observable flip outcomes. + + Returns: + Tuple of (syndromes, observables) where: + - syndromes: Array of shape (num_shots, num_detectors) + - observables: Array of shape (num_shots,) if include_observables else None + """ + sampler = circuit.compile_detector_sampler() + samples = sampler.sample(num_shots, append_observables=include_observables) + + if include_observables: + syndromes = samples[:, :-1] + observables = samples[:, -1] + return syndromes, observables + else: + return samples, None + + +def save_syndrome_database( + syndromes: np.ndarray, + observables: np.ndarray | None, + output_path: pathlib.Path, + metadata: dict[str, Any] | None = None, +) -> None: + """ + Save syndrome database to disk in npz format. + + Args: + syndromes: Array of detection events, shape (num_shots, num_detectors). + observables: Array of observable flips, shape (num_shots,), or None. + output_path: Path to save the database (.npz file). + metadata: Optional metadata dictionary to save alongside the data. + """ + save_dict = {"syndromes": syndromes} + + if observables is not None: + save_dict["observables"] = observables + + if metadata is not None: + # Save metadata as JSON string in the npz file + save_dict["metadata"] = np.array([json.dumps(metadata)]) + + np.savez_compressed(output_path, **save_dict) + + +def load_syndrome_database( + input_path: pathlib.Path, +) -> tuple[np.ndarray, np.ndarray | None, dict[str, Any] | None]: + """ + Load syndrome database from disk. + + Args: + input_path: Path to the database file (.npz). + + Returns: + Tuple of (syndromes, observables, metadata) where: + - syndromes: Array of shape (num_shots, num_detectors) + - observables: Array of shape (num_shots,) or None + - metadata: Dictionary of metadata or None + """ + data = np.load(input_path, allow_pickle=True) + + syndromes = data["syndromes"] + observables = data.get("observables", None) + + metadata = None + if "metadata" in data: + metadata = json.loads(str(data["metadata"][0])) + + return syndromes, observables, metadata + + +def generate_syndrome_database_from_circuit( + circuit_path: pathlib.Path, + num_shots: int, + output_path: pathlib.Path | None = None, +) -> pathlib.Path: + """ + Generate and save syndrome database from a circuit file. + + Args: + circuit_path: Path to the circuit file (.stim). + num_shots: Number of syndrome samples to generate. + output_path: Optional output path. If None, uses datasets/syndromes/ directory. + + Returns: + Path to the saved database file. + """ + # Load circuit + circuit = stim.Circuit.from_file(str(circuit_path)) + + # Generate output path if not provided + if output_path is None: + syndromes_dir = pathlib.Path("datasets/syndromes") + syndromes_dir.mkdir(parents=True, exist_ok=True) + output_path = syndromes_dir / circuit_path.with_suffix(".npz").name + + # Sample syndromes + syndromes, observables = sample_syndromes(circuit, num_shots, include_observables=True) + + # Create metadata + dem = circuit.detector_error_model() + metadata = { + "circuit_file": str(circuit_path.name), + "num_shots": num_shots, + "num_detectors": dem.num_detectors, + "num_observables": dem.num_observables, + } + + # Save database + save_syndrome_database(syndromes, observables, output_path, metadata) + + return output_path diff --git a/tests/test_dem.py b/tests/test_dem.py new file mode 100644 index 0000000..833be6e --- /dev/null +++ b/tests/test_dem.py @@ -0,0 +1,296 @@ +"""Tests for DEM extraction module.""" + +from __future__ import annotations + +import pathlib +import tempfile + +import numpy as np +import pytest +import stim + +from bpdecoderplus.circuit import generate_circuit +from bpdecoderplus.dem import ( + build_parity_check_matrix, + dem_to_dict, + dem_to_uai, + extract_dem, + generate_dem_from_circuit, + generate_uai_from_circuit, + load_dem, + save_dem, + save_dem_json, + save_uai, +) + + +class TestExtractDem: + """Tests for extract_dem function.""" + + def test_basic_extraction(self): + """Test basic DEM extraction.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + assert isinstance(dem, stim.DetectorErrorModel) + assert dem.num_detectors > 0 + assert dem.num_observables == 1 + + def test_decompose_errors(self): + """Test DEM extraction with error decomposition.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit, decompose_errors=True) + + assert isinstance(dem, stim.DetectorErrorModel) + + def test_no_decompose(self): + """Test DEM extraction without error decomposition.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit, decompose_errors=False) + + assert isinstance(dem, stim.DetectorErrorModel) + + +class TestSaveDem: + """Tests for save_dem function.""" + + def test_save_dem(self): + """Test saving DEM to file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.dem" + save_dem(dem, output_path) + + assert output_path.exists() + assert output_path.read_text().startswith("error") + + +class TestLoadDem: + """Tests for load_dem function.""" + + def test_load_dem(self): + """Test loading DEM from file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.dem" + save_dem(dem, output_path) + + loaded_dem = load_dem(output_path) + + assert loaded_dem.num_detectors == dem.num_detectors + assert loaded_dem.num_observables == dem.num_observables + + +class TestDemToDict: + """Tests for dem_to_dict function.""" + + def test_basic_conversion(self): + """Test converting DEM to dictionary.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + dem_dict = dem_to_dict(dem) + + assert "num_detectors" in dem_dict + assert "num_observables" in dem_dict + assert "num_errors" in dem_dict + assert "errors" in dem_dict + assert dem_dict["num_detectors"] == dem.num_detectors + assert dem_dict["num_observables"] == dem.num_observables + + def test_error_structure(self): + """Test error structure in dictionary.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + dem_dict = dem_to_dict(dem) + + assert len(dem_dict["errors"]) > 0 + first_error = dem_dict["errors"][0] + assert "probability" in first_error + assert "detectors" in first_error + assert "observables" in first_error + + +class TestSaveDemJson: + """Tests for save_dem_json function.""" + + def test_save_json(self): + """Test saving DEM as JSON.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.json" + save_dem_json(dem, output_path) + + assert output_path.exists() + + import json + with open(output_path) as f: + data = json.load(f) + + assert "num_detectors" in data + assert "errors" in data + + +class TestBuildParityCheckMatrix: + """Tests for build_parity_check_matrix function.""" + + def test_basic_matrix(self): + """Test building parity check matrix.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + H, priors, obs_flip = build_parity_check_matrix(dem) + + assert H.shape[0] == dem.num_detectors + assert H.shape[1] > 0 + assert priors.shape[0] == H.shape[1] + assert obs_flip.shape[0] == H.shape[1] + + def test_matrix_types(self): + """Test matrix data types.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + H, priors, obs_flip = build_parity_check_matrix(dem) + + assert H.dtype == np.uint8 + assert priors.dtype == np.float64 + assert obs_flip.dtype == np.uint8 + + def test_matrix_values(self): + """Test matrix value ranges.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + H, priors, obs_flip = build_parity_check_matrix(dem) + + assert np.all((H == 0) | (H == 1)) + assert np.all((priors >= 0) & (priors <= 1)) + assert np.all((obs_flip == 0) | (obs_flip == 1)) + + +class TestGenerateDemFromCircuit: + """Tests for generate_dem_from_circuit function.""" + + def test_generate_from_file(self): + """Test generating DEM from circuit file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + dem_path = generate_dem_from_circuit(circuit_path) + + assert dem_path.exists() + assert dem_path.suffix == ".dem" + + # Load and verify + loaded_dem = load_dem(dem_path) + assert loaded_dem.num_detectors > 0 + + def test_custom_output_path(self): + """Test generating DEM with custom output path.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + custom_output = pathlib.Path(tmpdir) / "custom.dem" + dem_path = generate_dem_from_circuit(circuit_path, output_path=custom_output) + + assert dem_path == custom_output + assert dem_path.exists() + + def test_no_decompose(self): + """Test generating DEM without error decomposition.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + dem_path = generate_dem_from_circuit(circuit_path, decompose_errors=False) + + assert dem_path.exists() + + +class TestDemToUai: + """Tests for dem_to_uai function.""" + + def test_basic_conversion(self): + """Test basic DEM to UAI conversion.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + uai_str = dem_to_uai(dem) + + assert isinstance(uai_str, str) + assert "MARKOV" in uai_str + assert str(dem.num_detectors) in uai_str + + def test_uai_format_structure(self): + """Test UAI format has correct structure.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + uai_str = dem_to_uai(dem) + + lines = uai_str.strip().split("\n") + assert lines[0] == "MARKOV" + assert int(lines[1]) == dem.num_detectors + assert len(lines[2].split()) == dem.num_detectors + + +class TestSaveUai: + """Tests for save_uai function.""" + + def test_save_uai(self): + """Test saving UAI file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = extract_dem(circuit) + + with tempfile.TemporaryDirectory() as tmpdir: + uai_path = pathlib.Path(tmpdir) / "test.uai" + save_uai(dem, uai_path) + + assert uai_path.exists() + content = uai_path.read_text() + assert "MARKOV" in content + + +class TestGenerateUaiFromCircuit: + """Tests for generate_uai_from_circuit function.""" + + def test_generate_from_file(self): + """Test generating UAI from circuit file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + uai_path = generate_uai_from_circuit(circuit_path) + + assert uai_path.exists() + assert uai_path.suffix == ".uai" + + def test_custom_output_path(self): + """Test generating UAI with custom output path.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + custom_output = pathlib.Path(tmpdir) / "custom.uai" + uai_path = generate_uai_from_circuit(circuit_path, output_path=custom_output) + + assert uai_path == custom_output + assert uai_path.exists() diff --git a/tests/test_syndrome.py b/tests/test_syndrome.py new file mode 100644 index 0000000..28acc59 --- /dev/null +++ b/tests/test_syndrome.py @@ -0,0 +1,172 @@ +"""Tests for syndrome database generation module.""" + +from __future__ import annotations + +import pathlib +import tempfile + +import numpy as np +import pytest +import stim + +from bpdecoderplus.circuit import generate_circuit +from bpdecoderplus.syndrome import ( + generate_syndrome_database_from_circuit, + load_syndrome_database, + sample_syndromes, + save_syndrome_database, +) + + +class TestSampleSyndromes: + """Tests for sample_syndromes function.""" + + def test_basic_sampling(self): + """Test basic syndrome sampling.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + syndromes, observables = sample_syndromes(circuit, num_shots=10) + + assert syndromes.shape[0] == 10 + assert observables.shape == (10,) + assert syndromes.dtype in (np.uint8, np.bool_) + assert observables.dtype in (np.uint8, np.bool_) + + def test_without_observables(self): + """Test sampling without observables.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + syndromes, observables = sample_syndromes( + circuit, num_shots=10, include_observables=False + ) + + assert syndromes.shape[0] == 10 + assert observables is None + + def test_num_detectors(self): + """Test that number of detectors matches circuit.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + dem = circuit.detector_error_model() + syndromes, _ = sample_syndromes(circuit, num_shots=5) + + assert syndromes.shape[1] == dem.num_detectors + + +class TestSaveSyndromeDatabase: + """Tests for save_syndrome_database function.""" + + def test_save_with_observables(self): + """Test saving database with observables.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + observables = np.random.randint(0, 2, size=10, dtype=np.uint8) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, observables, output_path) + + assert output_path.exists() + + def test_save_without_observables(self): + """Test saving database without observables.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, None, output_path) + + assert output_path.exists() + + def test_save_with_metadata(self): + """Test saving database with metadata.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + observables = np.random.randint(0, 2, size=10, dtype=np.uint8) + metadata = {"distance": 3, "rounds": 3, "p": 0.01} + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, observables, output_path, metadata) + + assert output_path.exists() + + +class TestLoadSyndromeDatabase: + """Tests for load_syndrome_database function.""" + + def test_load_with_observables(self): + """Test loading database with observables.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + observables = np.random.randint(0, 2, size=10, dtype=np.uint8) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, observables, output_path) + + loaded_syndromes, loaded_observables, _ = load_syndrome_database(output_path) + + np.testing.assert_array_equal(loaded_syndromes, syndromes) + np.testing.assert_array_equal(loaded_observables, observables) + + def test_load_without_observables(self): + """Test loading database without observables.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, None, output_path) + + loaded_syndromes, loaded_observables, _ = load_syndrome_database(output_path) + + np.testing.assert_array_equal(loaded_syndromes, syndromes) + assert loaded_observables is None + + def test_load_with_metadata(self): + """Test loading database with metadata.""" + syndromes = np.random.randint(0, 2, size=(10, 24), dtype=np.uint8) + observables = np.random.randint(0, 2, size=10, dtype=np.uint8) + metadata = {"distance": 3, "rounds": 3, "p": 0.01} + + with tempfile.TemporaryDirectory() as tmpdir: + output_path = pathlib.Path(tmpdir) / "test.npz" + save_syndrome_database(syndromes, observables, output_path, metadata) + + _, _, loaded_metadata = load_syndrome_database(output_path) + + assert loaded_metadata == metadata + + +class TestGenerateSyndromeDatabaseFromCircuit: + """Tests for generate_syndrome_database_from_circuit function.""" + + def test_generate_from_circuit_file(self): + """Test generating database from circuit file.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + db_path = generate_syndrome_database_from_circuit(circuit_path, num_shots=20) + + assert db_path.exists() + assert db_path.suffix == ".npz" + + # Load and verify + syndromes, observables, metadata = load_syndrome_database(db_path) + assert syndromes.shape[0] == 20 + assert observables.shape == (20,) + assert metadata["num_shots"] == 20 + assert metadata["circuit_file"] == "test.stim" + + def test_custom_output_path(self): + """Test generating database with custom output path.""" + circuit = generate_circuit(distance=3, rounds=3, p=0.01, task="z") + + with tempfile.TemporaryDirectory() as tmpdir: + circuit_path = pathlib.Path(tmpdir) / "test.stim" + circuit_path.write_text(str(circuit)) + + custom_output = pathlib.Path(tmpdir) / "custom_db.npz" + db_path = generate_syndrome_database_from_circuit( + circuit_path, num_shots=15, output_path=custom_output + ) + + assert db_path == custom_output + assert db_path.exists()