sinter 1.12.dev1688842788__tar.gz → 1.12.dev1688897006__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of sinter might be problematic. Click here for more details.

Files changed (54) hide show
  1. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/PKG-INFO +1 -1
  2. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/setup.py +1 -1
  3. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/__init__.py +1 -1
  4. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_plotting.py +1 -1
  5. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_probability_util.py +17 -2
  6. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/PKG-INFO +1 -1
  7. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/README.md +0 -0
  8. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/readme_example_plot.png +0 -0
  9. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/requirements.txt +0 -0
  10. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/setup.cfg +0 -0
  11. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_anon_task_stats.py +0 -0
  12. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_anon_task_stats_test.py +0 -0
  13. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection.py +0 -0
  14. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection_options.py +0 -0
  15. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection_options_test.py +0 -0
  16. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection_test.py +0 -0
  17. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection_tracker_for_single_task.py +0 -0
  18. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_collection_work_manager.py +0 -0
  19. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_csv_out.py +0 -0
  20. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding.py +0 -0
  21. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_all_built_in_decoders.py +0 -0
  22. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_decoder_class.py +0 -0
  23. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_fusion_blossom.py +0 -0
  24. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_internal.py +0 -0
  25. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_pymatching.py +0 -0
  26. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_test.py +0 -0
  27. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_decoding_vacuous.py +0 -0
  28. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_existing_data.py +0 -0
  29. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_existing_data_test.py +0 -0
  30. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main.py +0 -0
  31. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_collect.py +0 -0
  32. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_collect_test.py +0 -0
  33. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_combine.py +0 -0
  34. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_combine_test.py +0 -0
  35. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_plot.py +0 -0
  36. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_plot_test.py +0 -0
  37. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_predict.py +0 -0
  38. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_main_predict_test.py +0 -0
  39. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_plotting_test.py +0 -0
  40. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_predict.py +0 -0
  41. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_predict_test.py +0 -0
  42. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_printer.py +0 -0
  43. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_probability_util_test.py +0 -0
  44. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_task.py +0 -0
  45. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_task_stats.py +0 -0
  46. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_task_stats_test.py +0 -0
  47. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_task_test.py +0 -0
  48. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_worker.py +0 -0
  49. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter/_worker_test.py +0 -0
  50. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/SOURCES.txt +0 -0
  51. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/dependency_links.txt +0 -0
  52. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/entry_points.txt +0 -0
  53. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/requires.txt +0 -0
  54. {sinter-1.12.dev1688842788 → sinter-1.12.dev1688897006}/src/sinter.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sinter
3
- Version: 1.12.dev1688842788
3
+ Version: 1.12.dev1688897006
4
4
  Summary: Samples stim circuits and decodes them using pymatching.
5
5
  Author: Craig Gidney
6
6
  Author-email: craig.gidney@gmail.com
@@ -19,7 +19,7 @@ with open('README.md', encoding='UTF-8') as f:
19
19
  with open('requirements.txt', encoding='UTF-8') as f:
20
20
  requirements = [line.split()[0] for line in f.read().splitlines()]
21
21
 
22
- __version__ = '1.12.dev1688842788'
22
+ __version__ = '1.12.dev1688897006'
23
23
 
24
24
  setup(
25
25
  name='sinter',
@@ -1,4 +1,4 @@
1
- __version__ = '1.12.dev1688842788'
1
+ __version__ = '1.12.dev1688897006'
2
2
 
3
3
  from sinter._anon_task_stats import (
4
4
  AnonTaskStats,
@@ -426,7 +426,7 @@ def plot_custom(
426
426
  kwargs.setdefault('color', 'black')
427
427
  ax.plot(xs, ys, **kwargs)
428
428
 
429
- if line_fits is not None and len(xs) >= 2:
429
+ if line_fits is not None and len(set(xs)) >= 2:
430
430
  x_scale, y_scale = line_fits
431
431
  fit_xs = _rescale(xs, x_scale, False)
432
432
  fit_ys = _rescale(ys, y_scale, False)
@@ -1,7 +1,7 @@
1
1
  import dataclasses
2
2
  import math
3
3
  import pathlib
4
- from typing import Any, Dict, Union, Callable, Sequence, TYPE_CHECKING
4
+ from typing import Any, Dict, Union, Callable, Sequence, TYPE_CHECKING, overload
5
5
 
6
6
  import numpy as np
7
7
 
@@ -363,11 +363,18 @@ def fit_binomial(
363
363
  return Fit(best=num_hits / num_shots, low=low / num_shots, high=high / num_shots)
364
364
 
365
365
 
366
+ @overload
366
367
  def shot_error_rate_to_piece_error_rate(shot_error_rate: float, *, pieces: float, values: float = 1) -> float:
368
+ pass
369
+ @overload
370
+ def shot_error_rate_to_piece_error_rate(shot_error_rate: 'sinter.Fit', *, pieces: float, values: float = 1) -> 'sinter.Fit':
371
+ pass
372
+ def shot_error_rate_to_piece_error_rate(shot_error_rate: Union[float, 'sinter.Fit'], *, pieces: float, values: float = 1) -> Union[float, 'sinter.Fit']:
367
373
  """Convert from total error rate to per-piece error rate.
368
374
 
369
375
  Args:
370
- shot_error_rate: The rate at which shots fail.
376
+ shot_error_rate: The rate at which shots fail. If this is set to a sinter.Fit,
377
+ the conversion broadcasts over the low,best,high of the fit.
371
378
  pieces: The number of xor-pieces we want to subdivide each shot into,
372
379
  as if each piece was an independent chance for the shot to fail and
373
380
  the total chance of a shot failing was the xor of each piece
@@ -418,6 +425,14 @@ def shot_error_rate_to_piece_error_rate(shot_error_rate: float, *, pieces: float
418
425
  ... )
419
426
  0.12052311142021144
420
427
  """
428
+
429
+ if isinstance(shot_error_rate, Fit):
430
+ return Fit(
431
+ low=shot_error_rate_to_piece_error_rate(shot_error_rate=shot_error_rate.low, pieces=pieces, values=values),
432
+ best=shot_error_rate_to_piece_error_rate(shot_error_rate=shot_error_rate.best, pieces=pieces, values=values),
433
+ high=shot_error_rate_to_piece_error_rate(shot_error_rate=shot_error_rate.high, pieces=pieces, values=values),
434
+ )
435
+
421
436
  if not (0 <= shot_error_rate <= 1):
422
437
  raise ValueError(f'need (0 <= shot_error_rate={shot_error_rate} <= 1)')
423
438
  if pieces <= 0:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sinter
3
- Version: 1.12.dev1688842788
3
+ Version: 1.12.dev1688897006
4
4
  Summary: Samples stim circuits and decodes them using pymatching.
5
5
  Author: Craig Gidney
6
6
  Author-email: craig.gidney@gmail.com